AIクローラーのJS実行 実態調査:5億フェッチの現実
AIクローラーは本当にJavaScriptを実行しないのか ── 5億フェッチの実測データを読む
「進化して実行できるようになった」は本当か
前の記事で、AIクローラーがJavaScriptを実行しないためSPAの本文が読まれないリスクを論じた。これに対して、しばしばこう反論される。「AIクローラーも進化していて、必要に応じてヘッドレスブラウザでJSを実行する能力を段階的に備えてきている」と。
直感的にはもっともらしい。GoogleがJSレンダリングを成熟させたように、AI各社も追随するはずだ、と。だが、この直感は2026年時点の実測データと一致するのか。本記事では、推測ではなく公開された大規模データに基づいてこの問いを検証する。
最大規模の実測:VercelとMERJの調査
この問いに最も信頼できる答えを出しているのが、VercelとMERJによる調査だ。彼らはVercelのネットワークを通じて、主要AIクローラーの実際の挙動を大規模にモニタリングした。
サンプル規模が桁違いに大きい。VercelとMERJは5億回を超えるGPTBotのフェッチを追跡し、JavaScript実行の証拠がゼロだったことを発見した。
これは「ほとんど実行しない」ではない。文字通りゼロだ。
さらに興味深い挙動も明らかになっている。GPTBotはJavaScriptファイルを約11.5%の頻度でダウンロードするが、それを実行はしない。ClaudeはJSファイルのフェッチに23.8%を費やすが、これはトレーニングデータ収集のためであり、レンダリングのためではない。
つまり「JSファイルをダウンロードしている」という観測を「実行している」と誤解してはいけない。ダウンロードと実行は別物だ。ファイルを取得してはいるが、それをブラウザエンジンで走らせて画面を描画する処理は行っていない。
一社の問題ではない
これがOpenAIだけの話なら、まだ「OpenAIが遅れている」で済む。だが実態はそうではない。
23の主要AIクローラーを分析した別の調査では、69%がJavaScriptをまったく実行できないことがわかった。そして主要なものに限れば、状況はさらに明確だ。2026年6月時点で、主要AIクローラー(GPTBot、OAI-SearchBot、ChatGPT-User、ClaudeBot、Claude-SearchBot、PerplexityBot、Meta-ExternalAgent、Bytespider)はいずれもJavaScriptをレンダリングしない。
レンダリングするのは事実上Googlebotだけで、Bingが部分的なJavaScriptサポートを持つにとどまる。それ以外のクローラーは生の初期HTMLだけを見て次に進む。
唯一の例外:Google Gemini
正確を期すために、例外を明記しておく。唯一意味のある例外はGoogle Geminiで、GooglebotのWeb Rendering Serviceのインフラを利用するため、JavaScriptを実行できる。ただし、タイミング、リソースのブロック、レンダリングキューの遅延といった、Googlebot自体に当てはまる注意点がそのまま適用される。
ここで重要なのは、Geminiの貢献度だ。GeminiはVercelのAIリファラルのうち3.52%しか占めておらず、トラフィックの大半は静的HTMLを必要とするプラットフォームから来ている。例外は存在するが、量的にはごく一部にすぎない。
なぜ実行しないのか:コストの問題
技術的には実行できるはずなのに、なぜしないのか。答えはコストとスケールにある。
ヘッドレスChromiumによる完全なJavaScriptレンダリングは、クロールするページごとに相当な計算リソースを必要とする。Googleはレンダリングがコアインフラに組み込まれているため、これを負担できる。一方、GPTBotやClaudeBot、PerplexityBotのようなAIクローラーは、大量のテキストを高速に取り込むことに最適化されている。ヘッドレスブラウザによるレンダリングはクロール速度を10〜100倍遅くする。これはクローラー運営者にとっても、クロールされるサーバーにとってもスケールしない。
GoogleがWeb Rendering Serviceを運用できるのは、長年かけて検索インフラとして巨大なヘッドレスChromium群を構築してきたからだ。AI企業はモデルのトレーニングと推論インフラに投資を集中させており、Webレンダリングには投資してこなかった。これは技術的な能力の問題というより、何にリソースを割くかという戦略の問題だ。
Googleの成功は転用できない
ここで陥りやすい誤解を一つ潰しておく。「GoogleがJSを問題なく扱えるようになったのだから、JS依存でも大丈夫」という推論だ。
Googleは2026年3月にJavaScript SEOの警告を取り下げた。これはGooglebotのレンダリングが成熟したためだ。しかしその事実はGoogleにのみ当てはまり、AI検索全般でクライアントサイドレンダリングを許可するゴーサインではない。
GoogleのJSレンダリングの進歩は、他のAIクローラーには一切転用されない。Googlebotで上手くいく構成が、GPTBotやClaudeBotでも上手くいくとは限らない。むしろ、上で見た通り、ほとんどのケースで上手くいかない。
二重の可視性問題
この状況が生むのが「split visibility(分裂した可視性)」と呼ばれる問題だ。あなたのSPAはGoogleで1位にランクしながら、同時にすべてのAI検索システムから完全に空白に見えることがありうる。
Google向けのSEOは完璧なのに、ChatGPTやClaude、Perplexityからは中身が存在しないように見える。多くの技術チームがこの分裂に気づいていない。Googleでの順位が良好だと、AI検索でも見えていると思い込んでしまうからだ。
実務的な確認方法は単純だ。ページ上で右クリックして「ページのソースを表示」を選ぶ。本文やプロダクト情報、FAQが生のHTMLに現れていれば、サーバーレンダリングされておりAIクローラーから見える。空のdivとscriptタグだけが見えるなら、クライアントサイドレンダリングであり、AIクローラーには何も見えていない。
トレーニング用と取得用は別物
調査が明らかにしたもう一つの重要な区別がある。GPTBot、ClaudeBotとその同等物はトレーニング用クローラーであり、OAI-SearchBot、Claude-SearchBot、ChatGPT-Userは取得(retrieval)用クローラーである。これらは独立して制御可能だ。ほとんどのチームはこの選択を意図的に行っていない。
トレーニング用はモデルの学習データを集めるため、取得用はユーザーの質問にリアルタイムで答えるために動く。後者はAI検索での「いま引用されるか」に直結する。両者を区別せずrobots.txtで一括ブロックしたり、逆に無防備に開放したりしているサイトは多い。この区別は技術設定とビジネス戦略の両面で意味を持つ。
まとめ
- 「AIクローラーも進化してJSを実行できるようになってきた」という見方は、2026年の実測データと一致しない
- VercelとMERJの5億フェッチ超の調査で、GPTBotのJavaScript実行はゼロだった
- JSファイルをダウンロードすること(11.5%)と実行することは別物。ダウンロードはするが実行しない
- 主要AIクローラー(GPTBot、ClaudeBot、PerplexityBot、Bytespider、Meta-ExternalAgent等)はいずれもJSを実行しない
- 唯一の例外はGemini(Googlebotインフラを利用)だが、AIリファラルの3.52%にとどまる
- 理由はコスト。ヘッドレスレンダリングはクロール速度を10〜100倍遅くし、スケールしない
- GoogleのJSレンダリングの成熟は他のAIクローラーに転用されない
- 結果として、Googleで1位でもAI検索では完全に不可視という「分裂した可視性」が生じる
前の記事で「AIクローラーの多くはJavaScriptを実行しない」と書いたが、最新の大規模データはこれをより強い形で裏づけた。「多くは」ではなく「主要なものはいずれも」であり、しかもその証拠は5億フェッチという桁外れのサンプルに基づく。JS依存度の問題は、楽観論で片付けられるものではない。
本記事の数値はVercel/MERJおよび関連調査の公開データに基づく(2025〜2026年)。AIクローラーの挙動は変化しうるため、各社の最新の公式ドキュメントも併せて確認されたい。