SSGがSEOに有利な理由
Next.jsのSSG(Static Site Generation)はビルド時にHTMLを生成するため、サーバーサイドレンダリング(SSR)やCSR(クライアントサイドレンダリング)と比べてページ表示速度が速く、Googleのクローラーがコンテンツを確実にインデックスできます。CDNで配信するとCore Web VitalsのLCP(最大コンテンツ描画)が大幅に改善され、SEO評価が上がります。
SSG・SSR・CSRの選択はSEOに大きく影響します。SSGは静的HTMLが事前に生成されるためクローラーが最も確実にインデックスできます。SSRはリクエスト時にHTMLを生成するためパーソナライズされたコンテンツにも対応できます。CSRはJavaScriptが実行されないとコンテンツが見えないため、SEO上の不利があります。
- SSGが最適な場合:ブログ・ドキュメント・マーケティングサイトなど更新頻度が低いコンテンツ
- SSRが最適な場合:ユーザー別のダッシュボード・リアルタイムデータを表示するページ
- CSRが最適な場合:ログイン後の管理画面など、SEOが不要なアプリケーション部分
- Next.jsのISR:Incremental Static Regenerationで定期的に静的ページを再生成できる
Next.js App RouterのMetadata API活用
App Routerではpage.tsxから直接Metadataをexportできます。titleにはテンプレート(「%s | サイト名」)を使い、descriptionは120〜160文字で検索意図に合わせて書きましょう。alternates.canonicalで正規URLを明示し、重複コンテンツを防ぎます。openGraph・twitterメタデータも設定してSNSシェア時の見栄えを整えましょう。
- titleテンプレート:layout.tsxで「%s | サイト名」を定義し、各ページで個別のtitleを設定
- description:120〜160文字で検索意図に合わせて書く、キーワードを自然に含める
- canonical URL:alternates.canonicalでURL重複を防ぎPageRankを集中させる
- OGP設定:openGraph.imageにOGP用の1200×630px画像を設定しSNSシェアを最適化
構造化データ(JSON-LD)の実装
構造化データはGoogleリッチリザルトに表示されるためCTRが向上します。記事ページにはArticleスキーマ、FAQページにはFAQPageスキーマ、ランキングページにはItemListスキーマを実装しましょう。Next.jsではscriptタグのdangerouslySetInnerHTMLを使ってJSON-LDを埋め込むか、専用コンポーネントを作成します。
- Articleスキーマ:記事の著者・公開日・更新日・見出し画像を構造化データで指定
- FAQPageスキーマ:Q&A形式のコンテンツにFAQスキーマを実装するとリッチリザルト表示
- BreadcrumbListスキーマ:パンくずリストのスキーマ実装で検索結果にパンくずが表示
- 実装確認:Googleのリッチリザルトテストツールで正しく読み取られているか確認
Core Web Vitalsの改善方法
Core Web Vitalsの主要指標はLCP(2.5秒以内)・FID/INP(100ms以内)・CLS(0.1以内)です。Next.jsではnext/imageで画像を最適化し、next/fontでWebフォントを最適化します。不要なJavaScriptの削減にはdynamic importを使い、キャッシュヘッダーの設定でリピートアクセスを高速化します。Vercelへのデプロイで自動的にCDNが適用されます。
- LCP改善:next/imageで画像を最適化(WebP変換・サイズ最適化・遅延読み込み自動設定)
- CLS改善:画像・動的コンテンツに必ずwidth/heightを明示し、レイアウトシフトを防ぐ
- INP改善:重いJavaScriptをdynamic importで遅延読み込み、不要な依存関係を削除
- フォント最適化:next/fontでWebフォントをゼロCLS・最適化設定で読み込む
Googleサーチコンソールを使ったSEO改善サイクル
サイトを公開したらGoogle Search ConsoleにサイトマップURLを送信し、インデックス登録を促進しましょう。Search Consoleの「検索パフォーマンス」レポートでクリック数・表示回数・平均掲載順位を確認できます。「表示回数が多いのにクリック率が低いページ」はタイトル・ディスクリプションの改善余地があります。「掲載順位が11〜20位のキーワード」は内容を強化することで上位に上がりやすい「準上位キーワード」として重点改善対象です。
- サイトマップの送信:Next.js App RouterでのsiteMap.ts生成→Search Consoleで送信
- CTR改善:表示回数が多いのにCTRが低いページのタイトル・ディスクリプションを改善
- 準上位キーワード:掲載順位11〜20位のキーワードのページを強化すると上位に上がりやすい
- インデックス確認:「ページのインデックス登録」レポートで未インデックスページの原因を特定
内部リンク設計とサイト構造の最適化
SEOにおけるサイト内リンク設計は非常に重要です。関連性の高いページ同士を適切にリンクすることでGoogleのクローラーがサイト構造を把握しやすくなり、PageRankが重要ページに集中します。ピラミッド型の情報設計(カテゴリページ→記事一覧→個別記事)を意識し、重要な記事はできるだけ多くのページからリンクされるようにしましょう。パンくずリストの実装もユーザービリティとSEO両面で有効です。
- ピラミッド構造:トップページ→カテゴリページ→記事の階層で内部リンクを設計
- 関連記事リンク:記事末尾に「関連記事」セクションを設置し、クリックスルーを促進
- パンくずリスト:ユーザービリティ向上とBreadcrumbListスキーマでSEO効果
- 孤立ページの防止:どのページからもリンクされない「孤立したページ」をなくす