III-D1 AIボットとJavaScriptレンダリング問題
JavaScriptで描画するサイトがAIクローラーに正しく読まれないリスク
このレッスンの狙い:JSレンダリング問題が自社サイトにあるかを判断できる
最終更新: 2026-07-23
この記事の要点
- JSレンダリング問題が自社サイトにあるかを判断できる
- Googleには見えて、AIには見えないという断絶
- 「JSファイルは取れるが実行しない」という中間地点
「Googleでは順調にインデックスされているのに、ChatGPTに聞いても自社サイトの名前が一切出てこない」。この違和感の正体は、多くの場合AIクローラーがJavaScript(JS)を実行しないという、地味だが決定的な技術仕様に行き着きます。仕組みの見当がついたら、あとは自社サイトが実際にこの穴にはまっていないかを、自分の目で確かめるだけです。
Googleには見えて、AIには見えないという断絶
まず前提として、AIクローラー(GPTBot・ClaudeBot・PerplexityBotなど。詳しい分類は編III-A参照)は、サーバーから最初に返ってくるHTML(初期HTML)しか読みません。JavaScriptを実行してDOM(画面に表示される最終的なHTML構造)を組み立てる処理は行わない、というのが2026年時点での実態です。料金表やFAQの回答文、事例の本文などをReactやVue等でクライアントサイドレンダリング(ブラウザ側でJSを実行して画面を作る方式)しているサイトは、人間の目にもGoogleの目にも正常に表示されていて、AIの目には空白のページとして扱われている可能性があります。
「JSファイルは取れるが実行しない」という中間地点
誤解しやすいのが「AIクローラーはJSに一切触れない」という思い込みです。実際には、GPTBotのリクエストの11.50%、Claudeのリクエストの23.84%がJSファイル自体の取得に使われています(出典: Vercelブログ「The Rise of the AI Crawler」, 2026年)。つまりJSファイルは取りに行くが、実行してDOMを組み立てるところまではしていないというのが正確な理解です。対照的にGooglebotはヘッドレスブラウザ(画面を持たないブラウザ)でJSを実行してからインデックスするとされ、Apple Intelligence等に連なるAppleBotもレンダリングを行うと報告されています。
なぜAIクローラーはレンダリングを省略するのか
理由は単純にコストです。ヘッドレスブラウザでのフルレンダリングは1ページあたりの計算コストが高く、テキストを大量かつ高速に収集したいAIクローラーの目的には不向きです。レンダリングを行うとクロール速度が10〜100倍程度低下するとされ(出典: Vercelブログ「The Rise of the AI Crawler」, 2026年)、Web全体を相手にするAI企業にとってはスケールしません。要するに、AI企業側が「手を抜いている」のではなく、大量収集という目的に合わせた合理的な選択として初期HTMLのみの取得を選んでいる、と捉えるのが実態に近い見方です。
自社サイトのJS依存を自分で確認する方法
エンジニアでなくても、自社サイトがこの問題を抱えているかは簡易チェックできます。もっとも手軽なのは、ブラウザで対象ページを開き右クリックから「ページのソースを表示」を選び、実際に見えている文言(料金・FAQの回答本文など)がそのソースの中に文字として存在するかをCtrl+Fで検索する方法です。より厳密には、curlコマンドで同じURLを取得し同様に確認します。
curl -s "https://example.com/pricing/" | grep -o "円"ブラウザでは料金が表示されているのに、この結果が空(何もヒットしない)であれば、そのページの核心コンテンツはJS依存でAIクローラーには見えていない可能性が高いと判断できます。
実践ステップ
- 自社サイトの中で「引用してほしい」重要ページ(料金・FAQ・事例・会社概要)を3〜5枚リストアップする
- 各ページをブラウザで開き、右クリック→「ページのソースを表示」で初期HTMLを確認する
- 表示されている核心的な文言をCtrl+Fでソース内検索し、文字として存在するか確認する
- 存在しない場合はcurlコマンドで同じURLを取得し、同様に文言を検索する
- React・Vue・Next.js等のSPA構成になっていないか技術担当に確認する
- JS依存が疑われるページを優先度順(料金・事例・FAQの順)にリスト化する
- リストは次のIII-D2で対応策を検討する際の材料としてそのまま保存しておく
まとめ
AIクローラーがJavaScriptを実行せず初期HTMLしか読まないという制約は、SEO対策が万全でもAIOでは通用しない典型例です。GPTBot・ClaudeBot・PerplexityBotはレンダリングを省略し、GooglebotやAppleBotはレンダリングを行うという非対称性を正しく理解しておくことが出発点になります。今回紹介したソース確認・curl確認の2手順は、専門知識がなくても今日から実行できる範囲です。ここで洗い出した「JS依存が疑わしいページ」一覧こそが、III-D2で検討するSSR・SSGによる改善の対象そのものになります。
このレッスンはテキストとスライドで学べます。スライドは上のビューアからご覧ください。
確認テスト
選択肢をクリックすると、その場で正誤と解説が表示されます。
Q1. AIクローラー(GPTBot・ClaudeBot・PerplexityBotなど)は、サーバーから返る初期HTMLだけでなく、JavaScriptを実行してDOMを組み立てた最終的な画面まで読み取る。
AIクローラーはサーバーから最初に返ってくる初期HTMLしか読まず、JavaScriptを実行してDOMを組み立てる処理は行いません。
Q2. GPTBotとClaudeのリクエストのうち、JSファイル自体を取得している割合はそれぞれ何%か。
GPTBotは11.50%、Claudeは23.84%がJSファイル自体の取得に使われていると報告されています。
Q3. AIクローラーがレンダリング(JS実行)を省略する主な理由は何とされているか。
ヘッドレスブラウザでのフルレンダリングは計算コストが高く、大量収集という目的にはスケールしないためとされています。
このレッスンのFAQ
Q. JSファイルを取得しているAIクローラーは、そのJSを実行して画面を組み立てていますか?
実行していません。JSファイルは取りに行きますが、実行してDOMを組み立てる処理は行っていないというのが実態です。
Q. 自社サイトがJS依存かどうかを確認する簡単な方法はありますか?
ブラウザの「ページのソースを表示」や、curlコマンドで取得したHTMLに、表示されている文言が文字として存在するか確認する方法があります。
Q. GooglebotもAIクローラーと同じようにJSを実行しませんか?
異なります。GooglebotはヘッドレスブラウザでJSを実行してからインデックスするとされ、AppleBotもレンダリングを行うと報告されています。