株式会社マスタープラン

Technical

【2025年版】JavaScript SEO徹底解説|SPAのレンダリング問題とSSR/SSG/ISRで解決する実務手順

JavaScript SEOの本質は、検索エンジンがHTMLを確実に取得・理解できる状態をつくることです。 SPA(シングル ページ アプリケーション)はUXに優れる一方で、SR(クライアント サイド レンダリング)のみだと、取得タイミングや実行制約によりインデックス遅延/欠落が発生しやすくなります。
本記事では、代表的なレンダリング方式(SSR:サーバー サイド レンダリング/SSG:静的サイト生成/ISR:インクリメンタル スタティック リジェネレーション)の選び方と、実務で必須のチェックリストをまとめます。

用語の整理(カタカナ読み付き)

  • SPA(シングル ページ アプリケーション)
    1つのHTMLを起点にJSで画面を切り替えるアーキテクチャ
  • CSR(クライアント サイド レンダリング)
    ブラウザ上でJSがHTMLを組み立てる方式
  • SSR(サーバー サイド レンダリング)
    サーバーでHTMLを生成し配信、初回からHTMLが存在
  • SSG(静的サイト生成)
    ビルド時にHTMLを生成してCDN等から配信
  • ISR(インクリメンタル スタティック リジェネレーション)
    公開後に必要なページだけ静的再生成
  • プリレンダリング
    ボット向けに事前描画済みHTMLを返す仕組み(中長期的にはSSR/SSGへの移行が推奨)

なぜSPAはインデックス問題を起こすのか

  • 取得タイミング依存
    CSRはJS実行後にDOMが出現するため、取得時点でHTMLが薄い場合がある
  • レンダリング制約
    エラー・タイムアウト・リソースブロックで主要コンテンツが生成されない
  • リンク不可視化
    onclick等のJS依存リンクは <a href> と比べて発見されにくい
  • URL一意性の欠如
    ハッシュルーティング(#)のみではページが別URLとして扱われない
  • メタ/構造化データの遅延注入
    CSR後に差し替えると取得されないリスク

対策の基本は、初回レスポンス時点で意味のあるHTMLを返す構成(SSR/SSG/ISR)を採用し、クローラブルなリンクと一意なURLを提供することです。

レンダリング方式の選び方(意思決定ガイド)

SSR(サーバー サイド レンダリング)

  • 向いている:更新頻度が高い、会員制・検索結果ページなど動的性が強い
  • 注意:サーバー負荷増→キャッシュ戦略(HTMLキャッシュ/Edge/TTFB短縮)が鍵

SSG(静的サイト生成)

  • 向いている:コーポレート・ブログ・LPなど更新頻度が中程度~低い
  • 注意:ビルド時間と発行フロー。多数URLではISRと併用検討

ISR(インクリメンタル再生成)

  • 向いている:大量URLで一部のみ頻繁更新(ニュース/商品/在庫)
  • 注意:再生成のタイミングとキャッシュ整合性、ステール表示のUX設計

フレームワーク例: Next.js / Nuxt / SvelteKit / Astro など(SSR/SSG/ISRに対応)。

検索に強いURLとリンク設計

  • History APIを使うルーティング(パスベース)。#依存のハッシュは回避
  • 各ビューは固有のURLを持ち、自己参照canonicalを出力
  • <a href="/path"> を基本に。onclickのみは避ける
  • フィルター/並び替えのURLパラメータ設計(不要な無限組合せはnoindex/正規化)
  • パンくず・関連リンクで内部リンク網を明示

メタ情報と構造化データの出力戦略

  • 初回HTMLにtitle/description/meta robots/OGP/Twitterを出力(CSR差し替え前提にしない)
  • JSON-LD(構造化データ)はサーバー出力が原則。CSR注入は未取得リスク
  • 多言語はhreflangの相互参照をテンプレートで担保
  • 重複/ファセットはcanonicalで正規化し、必要に応じてnoindex

パフォーマンス最適化(Core Web Vitals連携)

  • LCP(ラージェスト コンテントフル ペイント)
    ヒーロー画像のpreload、適切なfetchpriority、CDN
  • INP(インタラクション トゥ ネクスト ペイント)
    コード分割、遅延ロード、サードパーティ削減、長いタスク分割
  • CLS(キュムレイティブ レイアウト シフト)
    画像/広告/iframeにサイズ予約、フォントの表示戦略
  • JS配信
    type="module"defer、不要バンドル除去、リソースヒント(preload/prefetch)

プリレンダリングとダイナミックレンダリング

  • プリレンダリング
    ビルド時に静的HTMLを生成(SSG/ISRと概念的に近い)
  • ダイナミックレンダリング
    ボット検出で事前描画HTMLを返す回避策(中長期はSSR/SSGへ移行推奨)
  • 採用時は等価コンテンツ安定運用遅延/エラー検知を徹底

デバッグ&監視チェックリスト

  • URL検査(Search Console)
    ライブテストでレンダリング後HTMLとスクリーンショットを確認
  • ページソース vs レンダリング後DOM
    初回HTMLに主要コンテンツがあるか
  • ネットワーク/コンソールエラー
    リソース403/404、CSP、JS例外
  • リンク発見性
    <a>のhrefで遷移できるか、無限スクロール時のフォールバック
  • 構造化データ
    リッチリザルトテストで検証(テンプレート出力を前提)
  • ステータスコード
    ソフト404/リダイレクト連鎖を排除
  • クロール統計
    クロール頻度・取得サイズ・レンダリング待ちを定期監視

ヘッドレスCMS(WordPress)とSPAの実務

  • 構成
    WordPress(データ管理)+フロント(Next.js等)
  • 出力
    SSG/ISRで投稿・固定ページ・カテゴリ一覧を静的生成、更新はWebhookで再ビルド
  • メタ
    タイトル/ディスクリプション/JSON-LDはテンプレートでサーバー出力
  • 画像
    最適化(WebP/AVIF)とsrcset/sizes、LCP対象はpreload
  • 計測
    GSCのインデックス状況+Core Web Vitals/GA4/ログで効果を継続評価

実装プロセスとKPI

  1. 監査
    現在の出力がCSR依存か、初回HTMLに主要コンテンツがあるかを確認
  2. 方式選定
    SSR/SSG/ISRをURL特性ごとに割り当て(例:記事=SSG/ISR、検索=SSR)
  3. テンプレ設計
    URL・canonical・メタ・JSON-LD・パンくずをサーバー出力
  4. パフォーマンス
    コード分割、画像最適化、キャッシュ/Edge/CDN設計
  5. 検証
    URL検査(ライブ)・リッチリザルトテスト・ログで取得状況を確認
  6. 運用
    ビルド/再生成の自動化(Webhook)、アラート(5xx/ビルド失敗/CLS悪化)

目安KPI

  • 重要テンプレートの初回HTML文字数>レンダリング後との差が小さい
  • 対象URLのインデックス率の改善(4〜8週比較)
  • Core Web Vitals良好URL比率の上昇(LCP/INP/CLS)
  • 自然検索のクリック数/掲載順位の改善、記事タイプでの顕著な向上

まとめ

JavaScript SEOの勝ち筋は明快です。 ①初回HTMLで意味のあるコンテンツを返す(SSR/SSG/ISR) ②クローラブルなURLとリンク ③メタ/構造化データはサーバー出力 ④Core Web Vitalsで体験品質を底上げ。 この4点を押さえれば、SPAでも安定して検索評価を獲得できます。

株式会社マスタープランでは、SPAのSEO監査→方式設計(SSR/SSG/ISR)→テンプレ実装→高速化→計測運用まで一気通貫で支援します。

JavaScript SEOの無料診断

ご希望の方は、お気軽にご相談ください。


< PREV 技術系(テクニカルSEO)目次 NEXT >

一覧へ

pagetop