公開日:7/22/2020 更新日:1/5/2025
ブログのホーム画面 ( https://nuxtblog.xyz ) のmetaタグ情報の設定は、nuxt.config.js
の head
に設定してます。ちなみに og:∼
で書かれるmetaタグはOGPのmetaタグです。OGPとは、「Open Graph Protcol」の略で Facebook やTwitter などの SNS でシェアした際に、設定したWEBページのタイトルやイメージ画像、詳細などを正しく伝えるためのHTML要素です。
・・・
head: {
title: "新人エンジニアの自習室",
meta: [
{ charset: 'utf-8' },
{ name: 'viewport', content: 'width=device-width, initial-scale=1' },
{ hid: 'description',name: 'description',content: 'プログラミングの勉強サイト'},
{ hid: 'og:site_name', property: 'og:site_name', content: '新人エンジニアの自習室' },
{ hid: 'og:type', property: 'og:type', content: 'website' },
{ hid: 'og:url', property: 'og:url', content: 'https://nuxtblog.xyz' },
{ hid: 'og:title', property: 'og:title', content: '新人エンジニアの自習室' },
{ hid: 'og:description', property: 'og:description', content: 'プログラミングの勉強サイト' },
],
link: [{ rel: "icon", type: "image/x-icon", href: "/favicon.ico" }]
},
・・・
個別ページのmetaタグは, _id.vue
に設定します。
microCMS からasyncData
メソッドにより取得した json は下記のような構造になっています。
{
"id": "ブログid",
"createdAt": "作成日時",
"updatedAt": "更新日時",
"publishedAt": "公開日時",
"title": "記事タイトル",
"content": "記事内容"
"description": "記事概要"
}
this.$route.params.id
で動的なページidが取得できるので、urlのメタ情報に 'https://nuxtblog.xyz/blog/'+this.$route.params.id+'/'
と設定しています。
後で気づきましたが、json からid を直接とれるので this.item.id
でも良かったですね。。。
ちなみに asyncData メソッドの結果は data とマージされますので、このように this でアクセスできています。
これで 記事タイトルや概要を、metaタグ情報として個別に設定することができます。
・・・
export default {
・・・
head() {
return {
title: this.item.title ,
meta: [
{ hid: 'description', name: 'description', content: this.item.description },
{ hid: 'og:type', property: 'og:type', content: 'article' },
{ hid: 'og:title', property: 'og:title', content: this.item.title },
{ hid: 'og:description', property: 'og:description', content: this.item.description },
{ hid: 'og:url', property: 'og:url', content: 'https://nuxtblog.xyz/blog/'+this.$route.params.id+'/'},
],
}
},
・・・
async asyncData({ params }) {
const { data } = await axios.get(
`https://******.microcms.io/api/v1/blog/${params.id}`,
{
headers: { "X-API-KEY": process.env.API_KEY }
}
);
return {
item: data
};
}
};
・・・
1.nuxt.js(v2)でSEOに必要なmeta(OGP)を入れたい
2.API: head プロパティ
3.API: asyncData メソッド