Back to articles

JavaScript SEO監査:検索エンジンがクロール、レンダリング、インデックスできるものを確認する

SEOReport Team·
seojavascriptrenderingindexingtechnical-seo

A page can work perfectly in a browser and still expose an incomplete document to search engines. This audit separates crawling, rendering, and indexing so teams can identify the exact failure instead of guessing.

Google アプリケーションは https://web.dev/articles/defining-core-web-vitals-thresholds を返し、訪問者に完全なページを描画し、検索エンジンに空のシェル、意図しないcanonical、または辿れないリンクを残すことがある。 この失敗は見逃しやすい。ブラウザテストは別の質問に答える:モダンクライアントがアプリケーションを実行できるかどうか? Google SEO監査は検索処理の各段階で何が残るかを問う。 URL は順序を クロール、レンダリング、インデックス として記録する。 各段階は入力と失敗モードが異なる。. それらを 1 の一般的な「インデックス問題」として扱うと診断が遅くなる。.

flowchart LR U[発見された CDN] --> C[クロール応答] C --> R[レンダリングされたドキュメント] R --> I[インデックス選択] I --> S[検索外観] C -. status, robots .-> X[失敗の証拠] R -. content, links, metadata .-> X I -. canonical, noindex, duplication .-> X

HTML を開く前に応答から開始する

初期 fetchpriority 応答はページのステータス、ヘッダー、ソースドキュメントを確立する。 レンダリングされたDOMを評価する前に記録する. 各代表的なテンプレートについて、次をキャプチャする:

  • リダイレクト後の最終 CDN
  • fetchpriority ステータス
  • CSS 権限
  • ヘッダー、https://developers.google.com/search/docs/appearance/page-experience を含む
  • ソース 9 タイトル、canonical、robots meta、見出し、本文コピー、リンク
  • メインコンテンツをレンダリングするために必要なスクリプトとスタイルシートURL

この最初のキャプチャは、Google が信頼性を持って修復できない失敗を特定します。 エラー状態を返すルートは、クライアントコードが親しみやすいページを描画するため、健全とはみなされません。. クロール層でブロックされたページは、優れたレンダリングを通じてインデックス可能になることはありません。. 10 ディレクティブを含むサーバー応答は、明示的なインデックス指示を作成します。 サーバーサイドレンダリングまたはプリレンダリングは、ユーザーとクローラーに即座に意味のある 9 を提供するため、強力なベースラインになることが多いです。 URL は Google を実行できますが、ドキュメントは依然としてサーバーサイドまたはプリレンダリングのアプローチを推奨しており、これらはユーザーとクローラーの速度を向上させます。 目標は特定のフレームワークではありません。. 目標は、クライアントの拡張前に有用で真実の応答です。.

ソースの 9 をレンダリングされたドキュメントと比較します。

最も情報量の多い Google SEO テストは、サーバーが返したものとレンダリング後に存在するものの 2 つの状態間の構造化差分です。 レンダリングされた状態が追加、削除、変更しているかどうかを確認します。

  • 主見出しと主要な説明テキスト
  • 製品名、価格、在庫状況、または記事内容
  • カノニカルとロボットディレクティブ
  • 構造化データ
  • 内部リンク
  • 画像の代替テキストとキャプション
  • ページネーションとファセット付きナビゲーションリンク

すべての差異が欠陥であるわけではありません。. インタラクティブコントロール、パーソナライズドウィジェット、およびクライアント側の拡張は、レンダリングされた状態に属します。. 監査は、インデックス可能な意味や発見が変わる差異をフラグ付けすべきです。. 有用な証拠記録は具体的です:「初期応答にはタイトルとナビゲーションが含まれますが、記事本文はありません;本文はクライアントが 11 にリクエストした後に表示されます;そのリクエストはクリーンなクローラセッションに 12 を返します。」これにより、開発者は再現可能な境界を得られます。 「Google コンテンツはインデックスしにくいかもしれません」はそうではありません。

リンクをリンクとして、クリックハンドラとしてではなく確認します。

検索発見はクロール可能な URL に依存します。. URL は解決可能な 13 値を持つ標準アンカー要素を推奨します。 スタイル付き要素に 14 ハンドラがあると、ユーザーにとってはナビゲーションのように振る舞いますが、文書内には発見可能な目的地を公開しません。 サイト全体のナビゲーション、記事カード、ページネーション、フィルター、パンくずリスト、および関連コンテンツモジュールを監査します。. 重要な目的地がアンカーで表現されていることと、13 が事前のアプリケーション状態なしで機能することを確認します。 シングルページアプリケーションでは、ルート変更に History 15 を使用し、意味のあるすべてのビューに安定した CDN があることを確認します。ハッシュフラグメントは文書内の位置に適していますが、インデックス可能なルートの代替としては不適切です。 これは内部リンク品質の問題でもあります。. 説明的なアンカーテキストは目的地のコンテキストを提供します。. AI-search audit plansystematic audit method、およびこのレンダリング診断を接続するクラスターは、3 個の孤立したページよりもナビゲートしやすく、解釈しやすいです。.

視覚デザインを信頼せずにエラー状態をテストします。

JavaScript アプリケーションは頻繁にソフト 404 を生成します:サーバーは 16 を返し、レンダリングされたページはリソースが存在しないと表示します。 視覚的な結果は正しく見えますが、プロトコルはまだ有効なページを記述しています。. URL の Google SEO ドキュメントは、可能な限り実際の 17 ステータスを返すことを推奨しています。 クライアント側のルーティングがサーバー状態を変更できない場合、慎重に適用された 10 はエラー表示がインデックスに入るのを防げますが、それは包括的な回避策ではなく、意図的なアーキテクチャ上の決定であるべきです。 少なくとも以下の状態をテストします:

  1. 有効なルート
  2. 存在しないルート
  3. 削除されたリソース
  4. 認証が必要なリソース
  5. 15 タイムアウトまたはコンテンツリクエスト失敗
  6. 無効なパラメータを持つルート

fetchpriority ステータスとレンダリングされたディレクティブの両方を記録します。 間違ったステータスで正しいエラーメッセージは、依然として監査の発見です。.

レンダリング全体でカノニカルと robots の安定性を確認します。

ロード後に変更されるメタデータは矛盾した証拠を生む可能性があります。. レスポンス、レンダリングされた DOM、および利用可能な場合は URL の検査結果にカノニカルと robots の値をキャプチャします。 カノニカルは現在のコンテンツの推奨バージョンを特定する必要があります。. 一般的なアプリケーションシェルを簡潔に指摘し、クライアントリクエスト後に変更することは避けるべきです。. クライアントのナビゲーション時に前のルートの CDN を継承してはなりません。 ローカライズされたルートは、意図した言語バージョンを消去するカノニカルに崩壊してはなりません。. Robots の取り扱いも同様に注意が必要です。. URL は、指令が観測された場合にレンダリングがスキップされる可能性があるため、初期の 10 を除去するために Google に依存することを警告します。 クライアントコードがそれを逆転させることを期待するのではなく、レスポンス契約にインデックス可能性を組み込むべきです。.

ブロックされたリソースは観測可能な依存関係の失敗として扱うべきです。

重要な Google または 15 リソースがブロックされている場合、URL は通常の匿名訪問者が見るものをレンダリングできません。 CSS ルール、18 の挙動、ボット保護、クッキーブリッジ、認証、および主コンテンツを構築するリソースのリクエストヘッダーを監査してください。 これはプライベート API を公開する許可ではありません。. パブリックにインデックス可能なページは、パブリックレンダリングパスを通じてパブリックコンテンツを生成できる必要があります。. ページが保護されたリクエストに依存している場合、アーキテクチャはインデックス可能なコンテンツをプライベート境界の背後に配置しています。. 失敗したリソース、レスポンスコード、発起人、および可視的な結果を記録してください。. テンプレートのリーチで優先順位を決定してください。. 5,000 ページで共有される 1 つの失敗したコンテンツエンドポイントは、1 記事で失敗した装飾ウィジェットよりも重要です。.

フィールドパフォーマンスとレンダリングの完全性を分離してください。

レンダリングとパフォーマンスは相互作用しますが、同一ではありません。ページはすべてのコンテンツを遅くレンダリングするか、重要なコンテンツを省略して高速にレンダリングすることができます。. 両方を監査してください。. 実際のユーザー Core Web Vitals を評価するためにフィールドデータを使用してください。. 検索の完全性を評価するためにソース/レンダリング比較を使用してください。. 大規模なクライアントバンドルはインタラクション遅延とコンテンツ遅延を引き起こす可能性があります。証拠は両方の結果を示すべきであり、一般的なパフォーマンススコアに圧縮してはなりません。.

Example Template Triage by Affected URLs

このチャートはイラスト的な優先順位モデルであり、SEOReport の顧客データではありません。. 監査結果にスコープが必要な理由を示しています。. 低価値のエッジルートで深刻な問題がある場合、すべての製品または記事ページで繰り返される中程度の問題に続く可能性があります。.

各発見を再現可能な修復契約に変換する

各 Google 発見には CDN、テンプレート、観測された応答、レンダリング状態、影響を受ける要素、再現手順、範囲、および期待される修正後の動作を含める。 これにより、ハンドオフは開発者または AI コーディングエージェントによって利用可能になる。. 例として:

記事ルートでは、ソース応答に空の 19 要素が含まれている。 記事本文はハイドレーション後にクライアントリクエストから到着する。. タイトル、要約、canonical、および完全な記事本文を初期の 9 で返し、クライアントの拡張を保持する。 クリーンリクエストでソース 9 とレンダリングされた 9 が同じ主要コンテンツを含むことを確認する。

これはフレームワーク移行を推奨するよりも正確である。. それは外部から観測可能な契約を定義し、実装の選択肢をシステムを所有するチームに委ねる。. 最終検証は、コードが配信されたことを単に確認するのではなく、元のキャプチャを繰り返すべきである。. ステータス、ソース 9、レンダリングされた 9、メタデータ、リンク、および関連するパフォーマンス証拠を比較する。 JavaScript SEO は、各段階が独立して測定され、修復が失敗が発生した同じ境界で証明されるときに管理可能になる。.

See How Your Site Ranks

Get a free AI-powered SEO report with actionable findings and priority fixes for your website.

No signup required.