より高度なSEO対策ができるuseSeoMetaを使ってみる

より高度なSEO対策ができるuseSeoMetaを使ってみる

2023年10月7日
Nuxt.js

Nuxt.jsの公式ドキュメントを見ていると、useSeoMetaというコンポーザブルがあり、気になったので調べて使ってみました。

そもそもuseHeadとuseSeoMetaでメタタグ生成するのに違いがあるの?

メタタグの生成時にはuseHeadを使っているのですが、そもそもuseHeadでメタタグ生成するのとuseSeoMetaで生成するのでは何か違いがあるのか分からず、調べてみました。

結論としては、どちらもSEOに関連するメタタグを生成できますが、useSeoMetaの方がより高度なSEO対策ができるみたいです。

  • useHead:Nuxt の標準的なヘッドコンポーネントでメタタグ、リンクタグ、スタイルタグなどを生成できる
  • useSeoMeta:SEOに関連するメタタグを生成するための専用コンポーネントでuseHeadよりも多くの機能を提供できる

useSeoMeta · Nuxt Composables

The useSeoMeta composable lets you defin…
nuxt.com

 

useServerSeoMetaとuseSeoMetaの違いは?

もう少し調べてみると、useServerSeoMetaというのもあり、useSeoMetaの違いを調べてみました。

useServerSeoMeta は、SSRで使用することを想定されています。サーバー側でメタタグを生成するため、パフォーマンスへの影響が少なく、カスタマイズが容易です。

useSeoMeta は、SPAで使用することを想定されています。クライアント側でメタタグを生成するため、パフォーマンスへの影響があるものの、カスタマイズが難しいというデメリットがあります。

  • useServerSeoMeta:サーバー側でメタタグを生成する。つまり、ページのHTML が生成されるタイミングでメタタグが生成される
  • useSeoMeta:クライアント側でメタタグを生成する。つまり、ユーザーがページを読み込むたびに、メタタグが生成される

SEO and Meta · Get Started with Nuxt

Improve your Nuxt app
nuxt.com

 

useServerSeoMetaを使ってみる

使い方はuseHeadで使っていたときみたいに、useServerSeoMetaの中に定義されているプロパティに対する値を入れてあげるだけです。

パラメータは100以上あり、詳しくはこちらを参照してください。

 

SSGでuseServerSeoMetaを使うと

SSGでどうなるか使ってみたのですが、発見があったのでまとめておきます。

useFetchしてコンテンツを取得して生成するページに関してはuseServerSeoMetaでメタタグ生成されましたが、サービス紹介ページのようなHTMLベタばりのページをSSGした場合は、useServerSeoMetaでメタタグ生成されないことがわかりました。

てっきりSSGの処理的には全ページをサーバー側で静的ページにビルドしていると思っていました。これはSSGでgenerateしてる時に、元々静的なページに関してはサーバー側で呼び出されてないのか分からないのですが、挙動が違ったことがわかりました。

useFetchしない静的ページに関してはuseSeoMetaを使うなどの使い分けが必要なのでしょうか。この辺り詳しい人に裏側でどうなっているのか聞いてみたいです。