まずやること(最短ルート)
- ページソース(view-source)に本文テキストがあるか確認
- 重要要素(h1, リード文, 見出し)がHTMLにあるか確認
- 必要ならSSR/静的生成で「まず本文」を返す構成に変える
背景・判断のポイント
GoogleはJSをレンダリングできますが、常に即時ではありません。まずHTMLを取得し、必要に応じて後段でレンダリングするため、初期HTMLが空だと「発見・理解・評価」が遅れたり不安定になったりします。
SEO上重要なページは「最初のレスポンス(HTML)で要点が分かる」構成に寄せるのが基本です。CSRで後から埋まる設計は、検索だけでなくSNS/OGP/共有時にも不利になりがちです。
対処は、全ページをSSRにする必要はありません。重要ページだけでも「本文・見出し・内部リンク」をHTMLに出すだけで改善することが多いです。
症状の例(あるある)
- ブラウザでは本文が見えるのに、`view-source:` では本文テキストがほぼ無い
- URL検査の「取得したページ」に本文が出ない/レンダリングに失敗している
- 検索結果に出ても、スニペットが不自然(メニューだけ/フッターだけ)になりやすい
よくある原因
- CSRでAPI取得後に本文を描画しており、初期HTMLが空
- レンダリングが重く、Googleのレンダリング予算を超える
- 内部リンクもJSで後付けされ、発見が遅い
確認方法
- view-source と DevToolsのElementsの差を見る
- Lighthouse/PSIで初期HTMLの内容量とレンダリング遅延を確認
チェックリスト(確認漏れ防止)
- h1と導入文(リード)が初期HTMLに含まれているか
- 主要な見出し(h2/h3)と本文テキストが初期HTMLに含まれているか
- 内部リンク(グローバルナビ/一覧/パンくず)がJS後付けになっていないか
- APIエラー時に本文が空にならないフォールバックがあるか
- 画像/フォント/JSの読み込みでレンダリングがブロックされていないか
- クローラー視点での表示確認(URL検査、レンダリング結果)をしているか
対処
- 重要コンテンツはSSR/SSGでHTMLに含める
- 内部リンクは可能な限りHTMLで出す(メニュー/一覧など)
- レンダリングを軽くする(分割、不要JS削減、画像最適化)
やってはいけない(悪化しやすい手)
- 「見た目は表示されているからOK」と判断して、HTMLの中身を見ない
- 本文を出せないまま、タイトル/メタだけを整える(中身が無い)
- 内部リンクもJS後付けのままにする(発見・評価が遅れる)
再発防止
- 「SEO上重要なページはSSG/SSR」を原則にする
- データ取得が必要でも、骨格と要点は先にHTMLで返す
よくある質問(Q&A)
CSRでもGoogleは読めるのでは?
読める場合もありますが、レンダリングは常に即時ではありません。初期HTMLが空だと「発見が遅い」「評価が安定しない」「共有時に崩れる」などの実務デメリットが出やすいので、重要ページはHTMLに要点を含める設計が安全です。
全部SSRにしないとダメ?
全部でなくて構いません。検索流入の入口になるページ(記事詳細、カテゴリ、LPなど)だけでも、h1/導入文/本文の主要部分をSSG/SSRで返すと改善しやすいです。
確認は何を見ればいい?
`view-source:` で本文テキストがあるか、Search ConsoleのURL検査で取得/レンダリング結果がどう見えているかをまず確認してください。