brand logo

ドキュメント

useServerSeoMeta

useServerSeoMeta コンポーザブルを使用すると、サイトのSEOメタタグをフラットなオブジェクトとして定義でき、完全なTypeScriptサポートが得られます。

useSeoMeta と同様に、useServerSeoMeta コンポーザブルを使用すると、サイトのSEOメタタグをフラットなオブジェクトとして定義でき、完全なTypeScriptサポートが得られます。

こちらも参照 api > composables > use-seo-meta

ほとんどの場合、メタタグはリアクティブである必要はありません。なぜなら、ロボットは初回ロード時のみスキャンするからです。そのため、クライアント側では何も行わない(または head オブジェクトを返す)パフォーマンス重視のユーティリティとして、useServerSeoMeta の使用をお勧めします。

app.vue
useServerSeoMeta({
  robots: 'index, follow'
})

パラメータは useSeoMeta と全く同じです。

こちらも参照 getting-started > seo-meta

tips

このセクションは公式ドキュメントの翻訳ではなく、本サイト独自の補足記事です。

useServerSeoMeta の実務活用ガイド

Nuxt での SEO 対策は、検索エンジンに正しくページ情報を伝えるために不可欠です。useServerSeoMeta は、サーバーサイドレンダリング(SSR)時に効率的にメタタグを設定できるコンポーザブルで、パフォーマンスを損なわずにSEOを強化できます。本記事では、useServerSeoMeta のメリットや使いどころ、実務での具体例、注意点を丁寧に解説します。


1. イントロ:なぜ useServerSeoMeta が嬉しいのか?

  • SEOメタタグは検索エンジンのクロール時に重要ですが、多くの場合クライアント側で動的に変わる必要はありません。
  • useServerSeoMeta はサーバー側でのみメタ情報を設定し、クライアント側の余計な処理を省くため、パフォーマンス向上に寄与します。
  • TypeScript による型安全な補完が得られ、開発効率とコード品質が向上します。
  • SSR環境に最適化されているため、初回ロード時に確実に正しいメタタグを出力できます。

2. まず結論:useServerSeoMeta の要点

  • サーバーサイド専用:クライアント側ではリアクティブに動作しないため、初期HTMLにのみメタタグを注入。
  • TypeScript対応:型定義が充実しており、誤ったメタタグ設定を防止。
  • パフォーマンス重視:クライアントでの不要な再レンダリングを回避し、ページ表示速度を改善。
  • 使い方は useSeoMeta と同じ:APIが統一されているため学習コストが低い。
  • 動的なSEO情報には不向き:ユーザー操作で変わるメタ情報には別の手法が必要。

3. いつ使うべきか・使わない方がよいケース

使うべきケース

  • 静的なSEOメタタグをページごとに設定したいとき(例:タイトル、description、robotsなど)。
  • SSRで初期HTMLに確実にSEO情報を埋め込みたいとき。
  • クライアント側でメタタグを動的に変更する必要がない場合。
  • パフォーマンスを重視し、クライアントの負荷を減らしたい場合。

使わない方がよいケース

  • ユーザーの操作や状態に応じてメタタグを動的に変更したい場合。
  • クライアントサイドでのリアクティブなSEO情報更新が必要な場合。
  • SPAモードでのみ動作するアプリケーション(SSRを使わない)では効果が薄い。

4. 実務でよくあるユースケースとサンプルコード

ユースケース1:基本的なSEOメタタグの設定

ブログやコーポレートサイトで、ページごとにタイトルやdescription、robotsを設定する場合。

useServerSeoMeta({
  title: 'NuxtでSEOを強化する方法',
  description: 'NuxtのuseServerSeoMetaを使って効率的にSEOメタタグを設定する方法を解説します。',
  robots: 'index, follow',
  ogTitle: 'Nuxt SEO Tips',
  ogDescription: 'NuxtでのSEO最適化のベストプラクティスを紹介。'
})

ユースケース2:多言語サイトでの言語別メタタグ設定

多言語対応サイトで、言語ごとに異なるメタ情報をSSR時に設定。

const locale = useI18n().locale.value

useServerSeoMeta({
  title: locale === 'ja' ? 'Nuxtでの多言語SEO' : 'Multilingual SEO with Nuxt',
  description: locale === 'ja'
    ? 'Nuxtを使った多言語サイトのSEO対策方法。'
    : 'How to handle SEO for multilingual sites with Nuxt.',
  lang: locale
})

ユースケース3:robotsメタタグでクロール制御

特定のページを検索エンジンにインデックスさせたくない場合にrobotsを設定。

useServerSeoMeta({
  robots: 'noindex, nofollow'
})

5. よくある落とし穴・注意点

SSRとCSRの違いによる挙動の理解

useServerSeoMeta はサーバーサイドでのみメタタグを設定します。クライアント側ではリアクティブに変化しないため、CSRでの動的なSEO更新には向きません。動的に変えたい場合は useSeoMeta を使いましょう。

Hydration(ハイドレーション)時の不整合に注意

サーバーで設定したメタタグとクライアントでの状態が異なると、HydrationエラーやSEO情報の不整合が起こる可能性があります。サーバーとクライアントで同じメタ情報を扱うか、クライアント側での変更を避ける設計が重要です。

パフォーマンス面のメリットと限界

クライアント側での不要な再計算を防げるためパフォーマンス向上に寄与しますが、動的SEOが必要なケースでは逆に複雑化することもあります。要件に応じて使い分けましょう。


6. まとめ

useServerSeoMeta は Nuxt の SSR 環境で静的かつ確実にSEOメタタグを設定したい場合に非常に有効なツールです。TypeScript対応で安全に使え、パフォーマンス面でも優れています。ただし、動的なSEO情報の更新が必要な場合は別の手法を検討する必要があります。実務ではページごとの基本的なSEO設定や多言語対応、robots制御などに活用し、SSRとCSRの挙動の違いを理解した上で適切に使い分けることが成功の鍵です。


useServerSeoMeta は初回ロード時のSEO対策に最適ですが、ユーザーの操作で変わるSEO情報は useSeoMeta と組み合わせて使うと効果的です。