生HTML対レンダリング後HTMLチェッカー
Free, no signup. Open the page in a browser and it looks complete; Google sees raw HTML first, then runs JavaScript and looks again — and those two views don't always agree. Test a public URL through the bounded rendering service to find where they diverge, with a side-by-side raw-vs-rendered diff.
初期HTMLに十分な内容があるように見えても、ブラウザーでの比較をリクエストします。既存のレンダリング制限は引き続き適用され、リクエストしてもレンダリング後の取得が保証されるわけではありません。
既定の動作: Free, no sign-up. The page is rendered in headless Chrome only when the initial HTML looks incomplete — most server-rendered sites never need it.
チェックは当サーバーから実行します。入力したURLは取得しますが、結果は保存しません。 Reports are kept 7 days so you can share a link to the result. Anonymous aggregate stats feed our research posts; domains are counted once via an anonymized hash and never stored in the clear. 匿名化した実行単位の結果件数を集計調査に使う場合があります。URL、ドメイン、IPアドレス、識別子は含めず、100回未満の実行から統計を公開しません。
+ で現在のサイトまたはページを保存します。保存したサイト、ページ、リストの横にある☆を使うとお気に入りに追加できます。最近のチェック履歴は下に表示されます。
名前付きリストを作成
ローカルの選択内容から対象を入力しました。
サイトパスポート この保存済みサイトのローカルコンテキスト
ローカルデータ
保存した対象、名前付きリスト、最近のチェック概要はこのブラウザ内だけに残ります。
What JavaScript changed
Resources Google and AI bots couldn’t get
What non-rendering AI crawlers can see
This is a fast, directional check. For anything that affects indexing, confirm it in Google Search Console's URL Inspection tool — that's Google's own renderer and the real source of truth.
このツールを評価
What this is checking
The render gap
Google can process JavaScript in a rendering phase after crawling. Content that appears only after rendering depends on that phase and is absent from the initial response; this comparison does not predict discovery or indexing timing.
The most restrictive rule wins
If a noindex appears in either the raw or rendered HTML, Google may use it — and an initial-HTML noindex may cause Google to skip rendering, so JavaScript cannot reliably undo it.
Canonicals are conditional
JavaScript may add a canonical when the raw HTML has none, or keep the same value. A different or additional value creates competing canonical input.
Checks based on the JavaScript SEO guide on Ahrefs. Confirm findings in Search Console.
このツールについて
ページの初期HTMLと、JavaScript実行後にブラウザーが構築する最終DOMの差を測定します。Googleがクロール後のレンダリング段階で処理できる内容と、初期レスポンスに依存する内容を分けて確認できます。
既定の動作: 必要なページだけをヘッドレスChromeでレンダリングし、SSR、prerender、CSR、hybridのレンダリング戦略、約15項目のJavaScript-SEOチェック、raw-vs-rendered差分、共有可能なレポートを表示します。
機能
- 初期HTMLとレンダリングDOMの項目別比較
- noindex、canonical、robots、リンク、soft 404のチェック
- 既定の動作: 実行の要否を判定する制限付きヘッドレスChrome
- 7日間共有できるレポートと診断結果
仕組み
既定の動作: まずraw HTMLからタイトル、リンク、本文量、robotsの手掛かりを測定し、不完全に見える場合だけChromeでレンダリングします。初期HTMLと最終DOMを項目ごとに比較し、差分と検出したJavaScript-SEOシグナルを、観測事実と未確認の推測を分けて示します。
制限事項
- これは高速な方向性チェックであり、Googleのレンダラーやインデックス登録の予測ではありません。レンダリングを省略してもSSRや完全なパリティを証明しません。
- 取得できるのは公開raw HTML、robots.txt、レンダリング結果です。ログイン状態、後続のユーザー操作、Google固有のクロール・評価は確認できません。
よくある質問
JavaScript SEO におけるレンダリング差分とは何ですか?
レンダリング差分は、サーバーから配信された初期 HTML に含まれる内容と、ブラウザーが JavaScript を実行して最終 DOM を構築した後の内容との差です。Google はクロール後のレンダリング段階で JavaScript を処理できます。JavaScript の実行後にだけ現れるものは、レンダリングの成功に依存し、初期レスポンスには存在しません。このツールはその依存度を測定しますが、Google がコンテンツをいつ発見またはインデックス登録するかは予測しません。
Google は実際に JavaScript をレンダリングしますか?
はい。Google は継続的に更新される Chromium でページをレンダリングするため、クライアント側のコンテンツもインデックス登録できます。レンダリングは別の処理段階であり、リソースのブロックや JavaScript エラーによって、コンテンツがレンダリング後の HTML に現れないことがあります。Google 検索はコンテンツを読み込むためにページを操作しないので、操作を必要とするコンテンツも、利用可能にするにはレンダリング後の HTML にすでに存在する必要があります。重要なコンテンツとタグをサーバーレスポンスに含めれば、このレンダリング依存を取り除けます。
このツールでページがレンダリングされないことがあるのはなぜですか?
既定の動作: 初期 HTML が不完全に見えると範囲限定ヒューリスティックが判断した場合にだけ、ヘッドレス Chrome を実行します。初期 HTML に十分なタイトル、リンク、本文テキストがあればレンダリングを省略することがありますが、フレームワークがサーバー側で描画されていることや、JavaScript が何も追加しないことの証明にはなりません。省略された場合は、レンダリング後との同等性比較を伴わない初期 HTML 分析を提供します。
JavaScript で挿入された canonical や noindex は Google に認識されますか?
Google は初期 HTML で noindex を確認するとレンダリングを省略することがあるため、後から JavaScript でその指示を確実に削除することはできません。レンダリング後にだけ現れる noindex は使用できます。canonical は、初期 HTML に存在しない場合に JavaScript で追加でき、同じ値を設定するなら問題ありません。異なる値へ変えたり複数の値を残したりすると、競合する危険な入力になります。
Google Search Console の URL 検査ツールと同じものですか?
いいえ。また、それに代わることを目的としていません。これは高速で方向性を示す比較です。Search Console の URL 検査ツールは、検証済みプロパティについて Google 固有のクロール、インデックス登録、ライブテストの証拠を提供しますが、どちらのツールも次回のクロールで URL がどう処理されるかを保証しません。
よくある問題と修正方法
- 警告 初期HTMLのheadが予期せず早く閉じています 修正: 不正なheadマークアップを修正し、初期HTML内の1つの有効な<head>要素にメタデータが収まるようにしてください。
- エラー titleがありません 修正: ページの主題を示す、簡潔で固有の<title>を初期HTMLに1つ追加してください。
- 警告 レンダリング後にtitleが変わります 修正: クライアント側で意図的に変更する必要がない限り、サーバーの<title>とレンダリング後の<title>を同じ値にしてください。
- エラー titleがJavaScript実行後にのみ表示されます 修正: JavaScriptで挿入せず、最終的な<title>を初期HTMLに出力してください。
- 警告 メタディスクリプションがありません 修正: 内容を正確に要約するページ固有のメタディスクリプションを初期HTMLに追加してください。
- 警告 レンダリング後にメタディスクリプションが変わります 修正: クローラーが一貫した要約を受け取れるよう、初期HTMLとレンダリング後のメタディスクリプションを一致させてください。
- エラー 初期HTMLとレンダリング後のcanonicalが競合しています 修正: 優先する絶対URLを1つ選び、初期HTMLとレンダリング後のcanonicalタグをそのURLに向けてください。
- エラー JavaScriptがcanonicalを書き換えています 修正: 初期HTMLのcanonicalを1つに保ち、レンダリング後にクライアントコードで置き換えないでください。
- 警告 canonicalがレンダリング後にのみ存在します 修正: JavaScript実行後にだけ追加するのではなく、canonicalタグを初期HTMLに移してください。
- エラー JavaScriptがnoindexを削除しています 修正: インデックス登録するページでは初期サーバーレスポンスからnoindexを削除し、JavaScriptによる解除に依存しないでください。
- 警告 JavaScriptがnoindexを追加しています 修正: インデックス登録可能な状態を維持すべきページに、クライアントコードでnoindexを追加しないでください。
- エラー レンダリング後もnoindexが残っています 修正: インデックス登録するページでは、初期HTMLとレンダリング後HTMLの両方からnoindexディレクティブを削除してください。
- 警告 レンダリング後も Nofollow が残っています 修正: クローラーにページ内リンクをたどらせる場合はnofollowを削除し、必要なリンクだけに限定してください。
- 警告 hreflangがレンダリング後にのみ表示されます 修正: JavaScriptで後から追加せず、すべてのhreflang指定を初期HTMLまたはHTTPヘッダーに出力してください。
- 警告 レンダリング後にhreflangが変わります 修正: 初期HTMLとレンダリング後のhreflangセットを同一かつ相互参照にし、意図したロケールURLを指定してください。
- エラー 重要なコンテンツがレンダリング後にのみ表示されます 修正: 重要な本文が初期HTMLに存在するよう、サーバーレンダリングまたは静的生成を行ってください。
- 警告 レンダリング後に大量のコンテンツが追加されます 修正: JavaScriptで追加する重要な本文を初期HTMLに移し、クライアント側には必須でない拡張だけを残してください。
- 警告 重要なリンクがレンダリング後にのみ表示されます 修正: 重要な移動先を、初期HTML内の通常の<a href>リンクとして提供してください。
- エラー レンダリング後のリンクがクロール可能なURLではありません 修正: onclick、javascript:、またはボタンによる移動を、クロール可能な<a href> URLに置き換えてください。
- 警告 レンダリング後の画像にalt属性がありません 修正: 意味のある画像には簡潔なaltテキストを追加し、装飾画像には空のalt属性を設定してください。
- エラー robots.txtがレンダリング用リソースをブロックしています 修正: ページのレンダリングに必要なJavaScript、CSS、データリソースをGooglebotが取得できるようにしてください。
- 警告 ページ処理中に開発者向けのエラーが発生します 修正: 該当するクライアント側例外を修正し、コールドロードでも重要なコンテンツがレンダリングされることを確認してください。
- 警告 レンダリング中にリソースの取得に失敗しています 修正: レンダリング結果に必要な各リソースについて、復旧、正しい経路への修正、または不要なリクエストの削除を行ってください。
- 警告 重要なコンテンツの表示に操作が必要です 修正: クリックやスクロールを必須にせず、読み込み済みDOMに全内容を含めるか、クロール可能なURLを用意してください。
- エラー レンダリング後のページがsoft 404のように見えます 修正: 存在しないページには404/410を返すか、200 URLの薄いエラー風本文を十分な内容に置き換えてください。
- 警告 JavaScriptがページをリダイレクトしています 修正: JavaScriptリダイレクトを、最終URLへの適切なサーバー側3xxレスポンスに置き換えてください。
- 情報 構造化データがありません 修正: 構造化データが適切な場合は、ページの主要な対応エンティティについて正確なJSON-LDを追加してください。
- 警告 構造化データがレンダリング後にのみ表示されます 修正: JavaScript実行後にだけ挿入せず、検証済みのJSON-LDを初期HTMLに出力してください。
- 情報 レンダリング中にWebSocketへ依存しています 修正: 開いたWebSocketを必須にせず重要なコンテンツをレンダリングし、耐障害性のあるHTTPまたはサーバーレンダリングのフォールバックを用意してください。
- 警告 viewportメタタグがありません 修正: 初期HTMLのheadに<meta name="viewport" content="width=device-width, initial-scale=1">を追加してください。
- エラー 重要なコンテンツがクライアントレンダリングに依存しています 修正: タイトル、H1、リンク、主要コンテンツを初期HTMLでサーバーレンダリングまたは事前レンダリングしてください。
- 警告 ページがハッシュルーティングに依存しています 修正: URLフラグメントなしでサーバーが解決できるhistoryモードのパスにルーターを切り替えてください。
- 警告 title要素がHTMLのhead外にあります 修正: titleを文書のhead内に移し、空でないtitleを正確に1つだけ置いてください。
- 警告 canonical要素がHTMLのhead外にあります 修正: 意図したcanonicalリンクを文書のhead内に移し、body内のcanonical宣言を削除してください。
- 警告 初期HTMLに競合するcanonicalがあります 修正: 競合する宣言をJavaScriptで修復せず、初期HTMLにcanonical URLを1つだけ出力してください。