本記事では、Vercel社とMERJ社が主要AIクローラーの実際のアクセスログを解析した技術レポート(第三者による調査)と、Google公式ドキュメントの内容をもとに、どのAIクローラーがJavaScriptを実行し、どれが実行しないのかを整理します。AIO(AI Optimization=生成AIに引用・参照されるための情報設計)の観点で、なぜこの違いがサイトの見え方に影響するのかを解説します。
目次
1. 「表示されているのにAIには見えない」が起きる理由2. GPTBot・ClaudeBotはJavaScriptを「取得」するが「実行」しない
3. Googleだけがレンダリングする、という非対称
4. 自社サイトの見え方を確認する方法
5. 対策チェックリスト
6. よくある質問
1. 「表示されているのにAIには見えない」が起きる理由
近年多くのコーポレートサイトやサービスサイトが、React・Vueといった技術で作られたSPA(シングルページアプリケーション=ページ遷移のたびにサーバーへ新しいHTMLを取りに行かず、JavaScriptが画面の中身を書き換えて表示する作り方のWebアプリ)として構築されています。この方式では、サーバーが最初に返すHTMLファイルには`
`のような空の入れ物しか書かれておらず、実際の文章・価格表・FAQの中身は、ブラウザがJavaScriptを実行した後に画面上へ組み立てられます。この仕組みはCSR(クライアントサイドレンダリング=コンテンツの組み立てをサーバー側ではなく、閲覧者のブラウザ側で行う方式)と呼ばれます。人間の閲覧者やGoogle検索のクローラーはJavaScriptを実行できるため、この方式でも最終的な中身を読み取れます。しかし、後述するAIクローラーの多くはJavaScriptを実行せず、サーバーが最初に返す「空の入れ物」の状態のHTMLしか受け取っていません。結果として、会社概要・料金表・FAQのような重要な情報がCSRで組み立てられている場合、その内容はAIの回答の根拠として一切使われない可能性があります。
2. GPTBot・ClaudeBotはJavaScriptを「取得」するが「実行」しない
Webサイトのインフラを提供するVercel社と、SEO分析を行うMERJ社が共同で実施した大規模なアクセスログ解析では、GPTBot(OpenAIのクローラー)のリクエストのうち11.50%がJavaScriptファイルを取得していたものの、そのJavaScriptが実際に実行された形跡は見つかりませんでした。Claude(Anthropicのクローラー)についても、リクエストの23.84%がJavaScriptファイルを取得していましたが、同様に実行はされていなかったと報告されています。この調査はVercel社が自社ブログで公開した第三者による技術検証であり、Vercel社・Anthropic社が公式に「実行しない仕様」と宣言したものではない点に留意が必要ですが、実際のアクセスログに基づく観察結果として提示されています。
「クロールされている=読めている」と考える
サーバーログにGPTBotのアクセスがあるので、ページの中身は正しくAIに伝わっているはずだと考えてしまいがちです。
「取得」と「実行」を分けて考える
GPTBotがアクセスしていても、JavaScriptで組み立てている部分の中身までは読み取れていない可能性があります。
アクセスログにクローラーの訪問記録が残っていても、それは「取りに来た」という事実を示すだけで、「中身まで理解した」ことの証明にはなりません。この違いを見落としたまま「クロールはされているから大丈夫」と判断してしまう例が多く見られます。サーバーへのアクセス状況の確認方法自体は、AIクローラーのアクセスログ確認に関する記事で解説しています。
3. Googleだけがレンダリングする、という非対称
この問題をさらにわかりにくくしているのが、検索エンジン最大手であるGoogleの挙動です。Google公式ドキュメント(Google Search Central)によれば、Googlebot(Google検索のクローラー)は、常に最新版に自動更新されるChromium(Google Chromeの基盤となっているオープンソースのブラウザエンジン)を使ってページを実際にレンダリング(JavaScriptを実行して画面の中身を組み立てる処理)し、その結果をもとにインデックス(検索対象としての登録)を行っています。
| クローラー | 提供元 | JavaScriptの実行 |
|---|---|---|
| Googlebot | 実行する(evergreen Chromiumでレンダリング) | |
| GPTBot | OpenAI | 実行しない(Vercel×MERJ調査・取得率11.50%) |
| ClaudeBot | Anthropic | 実行しない(Vercel×MERJ調査・取得率23.84%) |
| PerplexityBot | Perplexity | 実行しない(同調査で確認) |
つまり「Googleの検索結果には表示されているのに、ChatGPTやClaudeに聞くと自社が出てこない」という現象が起きた場合、原因の1つとしてサイトのレンダリング方式の違いが考えられます。GoogleはJavaScript実行後の完成した中身まで見ているのに対し、それ以外の主要AIクローラーはJavaScript実行前の状態しか見ていない、という非対称な構造があるためです。
4. 自社サイトの見え方を確認する方法
自社サイトがAIクローラーにどう見えているかは、ブラウザの「ページのソースを表示」機能や、curlコマンド(サーバーへ直接リクエストを送り、返ってきたHTMLをそのまま確認できるコマンド)で確認できます。ブラウザの開発者ツールで見える「要素」の内容はJavaScript実行後の状態であり、AIクローラーが実際に受け取る内容とは異なります。確認すべきは、JavaScript実行前の「生のHTML」に何が書かれているかです。
このコマンドを実行した結果、会社概要や記事本文などの主要な文章がそのままテキストとして出力されれば、AIクローラーにも同じ内容が届いています。反対に、空の入れ物のタグしか出力されない場合は、CSRによってAIクローラーから中身が見えていない可能性が高いといえます。
5. 対策チェックリスト
- 主要な文章はサーバー側で組み立てて返す:SSR(サーバーサイドレンダリング=サーバー側でJavaScriptを実行し、完成したHTMLを返す方式)やSSG(静的サイト生成=あらかじめHTMLファイルを生成しておく方式)を使い、JavaScript実行前のHTMLに主要な文章を含める
- curlで自社ページの生HTMLを確認する:ブラウザの見た目ではなく、サーバーが最初に返すHTMLの中身を定期的にチェックする
- 会社概要・料金・FAQのような重要情報を優先する:サイト全体をSSR化できない場合も、AIに引用させたいページから優先的に対応する
- アクセスログの「取得」を「理解された」と誤解しない:GPTBot等の訪問記録があっても、JavaScript実行前の内容しか伝わっていない可能性を踏まえて確認する
- Googleでの見え方だけで安心しない:Google検索での表示順位が良くても、他のAIクローラーには内容が届いていない場合がある
6. よくある質問
Q. サイト全体をSSR(サーバーサイドレンダリング)に作り直す必要がありますか。
A. 必ずしもサイト全体を作り直す必要はありません。AIに引用させたい会社概要・サービス説明・FAQ等のページから優先的に、JavaScript実行前のHTMLに主要な文章が含まれる状態にすることが現実的な対応です。
Q. Googlebotが実行できるなら、他のAIクローラーもいずれ対応するのではないでしょうか。
A. その可能性はありますが、本記事で紹介した調査時点では、OpenAI・Anthropic・PerplexityのクローラーはJavaScriptを取得のみ行い実行していないことが確認されています。将来的に変わる可能性がある事項として、最新の公式情報を都度確認することをおすすめします。
Q. WordPressのような従来型のCMSで作られたサイトも対象になりますか。
A. WordPressの標準的なテーマは多くの場合サーバー側でHTMLを組み立てて返すため、この問題の影響を受けにくい構成です。ただし、一部のセクションだけJavaScriptで後から描画するプラグインやテーマを使っている場合は、そのセクションだけAIクローラーに見えていない可能性があるため、本記事の確認方法で個別にチェックすることをおすすめします。
AIO/LLMO診断を相談する



