JavaScriptは検索エンジンに読まれないのか|実測して確かめた

JavaScriptは検索エンジンに読まれないのか|実測して確かめた

※この記事にはプロモーションが含まれています

JavaScriptを多用した3Dのホームページを提案すると、必ずこう言われます。

「かっこいいけど、JavaScriptで動くから検索に読まれないんでしょう?」

この心配には、正しい部分と、そうでない部分があります

僕は3Dホームページの型を自分で作って、JavaScriptを切った状態と動かした状態で、読めるテキストの量を実測しました。この記事では、その数字を出しながら「実際には何がどこまで読まれるのか」を書きます。

先に結論を言うと、読まれるかどうかは3Dかどうかで決まりません。文章をどこに置いたかで決まります。そして測ってみたら、心配されているのとは別のところに課題がありました。

目次

AIクローラーはJavaScriptを実行しない

GoogleはJavaScriptを実行するがAIクローラーは最初のHTMLしか読まない比較図

まず、心配の出どころを確認します。

3Dのサイトは、WebGLという仕組みで画面を描きます。これはJavaScriptで動きます。だから「JavaScriptが読まれないなら、中身が伝わらないのでは」という不安が出てくる。

そしてこの不安の前提は、事実として正しいです。

2026年6月時点で、主要なAIクローラーはいずれもJavaScriptを実行しません。GPTBot、OAI-SearchBot、ChatGPT-User、ClaudeBot、Claude-SearchBot、PerplexityBot、Meta-ExternalAgent、Bytespider。どれも1回のHTTPリクエストでサーバーが返したHTMLを読み、それで終わりです。描画は待ちません。

Googleだけが例外で、JavaScriptを実行してページを描画したうえで評価します。

だから「Googleには載るのにChatGPTには出てこない」という現象が起きます。原因のほとんどは、中身をJavaScriptで後から差し込む作りにあります。

ここまでは、心配している人が正しい。

それでも実測すると、ほぼ差が出なかった

JS有効と無効で読めるテキスト量を比較した棒グラフ。4つの型すべてでほぼ同じ

では3Dサイトはどうなのか。自分で作った型で実測しました。

JavaScriptを切った状態と、動かした状態で、読めるテキストの量を比べます。

生HTMLJS無効で読めるJS有効で読める
word(言葉が主役)520字491字497字
object(物が主役)596字563字569字
world(場所が主役)529字504字504字
symbol(象徴が主役)498字465字471字

JavaScriptを実行してもしなくても、読める量はほとんど同じです。差は数十字。その正体は「Loading」といった読み込み中の表示だけでした。

なぜこうなるのか

設計が理由です。

この型では、文言を必ずHTMLに実テキストとして置いています。JavaScriptはそれを読み取って3Dの画面に焼き付けるだけ。文章そのものはHTMLの中に最初からある。

言い方を変えると、3Dは見せ方であって、内容の置き場所ではないということです。

だからJavaScriptが動かない相手にも、文章は最初のHTMLで届きます。読めなくなるのは演出だけ。演出はもともと読むものではないので、実害がありません。

ここを崩すと、一発で終わります

逆に言えば、文言をJavaScriptの中に持たせた瞬間、この性質は全部失われます

よくあるのはこういう作りです。

// これをやると、AIには何も見えなくなる
const lines = ["私たちの理念は", "お客様第一です"];
lines.forEach(t => draw3DText(t));

文章がJavaScriptの配列の中にあります。HTMLには何も書かれていません。この状態だと、AIクローラーが受け取るHTMLは空っぽです。

同じことが、文字を画像にしたときや、3Dのテクスチャに焼き込んだときにも起きます。見た目には文字が出ていても、機械には読めていない。

僕が作った型では、この事故を防ぐために検品プログラムが「HTMLの中に文章ブロックが1つもなければ不合格」と判定するようにしてあります。人の注意力に任せると、いつか必ずやるからです。

読まれるかどうかとは、別の課題がある

3Dサイトの本当の弱点は文字量500字前後と転送量919KBの2つ

JavaScriptで読めなくなるわけではない。ではこの型に課題がないのかというと、そうではありません。測ってみると、読み取り以前のところに2つありました。

課題実測値なぜ効くか
文字量が絶対的に少ない500字前後技術に関係なく、この分量では検索で戦えない
転送量が重い919KB(うち three.js が687KB)表示速度・モバイル回線

課題1:500字では、そもそも土俵に乗らない

これが最大の問題です。

3Dのページは、画面いっぱいに演出を見せる構造上、文章が少なくなります。実測で500字前後。一方、検索で上位に来るページは数千字あることが珍しくありません。

3Dだからではなく、500字だから土俵に乗らない。同じ500字なら、普通のHTMLで作っても結果は変わりません。

課題2:three.jsだけで687KB

3Dを動かすライブラリ(three.js)が687KBあります。ページ全体で919KB。

これは表示速度に直接効きます。特にスマートフォンの回線では、この重さが体感差になります。

3つのモードで、どこまで捨てるかを決める

design・balanced・searchの3モード比較。生HTML文字数は596字・1017字・988字

この2つに対処するために、僕は3つのモードを用意しました。何を諦めるかを最初に決めるという考え方です。

designbalanced(既定)search
読み物セクションなしありあり
3Dの読み込み即時後回し後回し
舞台の長さ320vh320vh150vh
生HTMLの文字数(実測)596字1,017字988字
想定する流入SNS・広告・直リンクブランド名+一部の語検索を主軸に
向いている案件LP・周年・キャンペーンブランドサイト本体検索流入が要る会社

design ── 検索を捨てる

演出の制約をゼロにする代わりに、検索を諦めます。

流入経路が別にある案件でだけ選ぶモードです。広告を出すLP、周年サイト、展示の告知。検索で人を集める必要がないなら、ここまで振り切れます。

balanced ── 舞台の下に読み物を置く

既定はこれです。3Dの舞台はそのまま残し、その下に1,500〜3,000字の読み物を置きます。

実測で生HTMLが1,017字まで増えました。500字と1,000字では、検索で戦える土俵がまったく違います

狙いは「ブランド名で確実に1位を取り、事業に関わる語でも拾われる」ところです。

search ── 3Dは入口の一撃だけ

3Dをファーストビューの1画面に絞り、残りは普通のページにします。舞台は150vhまで縮める。

下層ページやブログと組み合わせる前提のモードです。演出は最初の印象づけだけに使う。

「後回し」で表示速度を稼ぐ

読み込み順序の修正前後。本文とthree.jsの順序が入れ替わる

転送量の問題には、読み込む順番で対処します。

three.jsを最初に読ませず、本文とCSSが表示されたあと、舞台が視界に入ってから読むようにする。実測はこうなりました。

本文が出るまでthree.jsの読み込み開始
修正前252ms237ms(本文より先)
修正後224ms251ms(本文より後)

順序が入れ替わっているのが要点です。修正前は、687KBの読み込みが本文表示を待たせていました。

ここは正直に書いておきます。この数字は自分のパソコン上での計測なので、差が小さく出ています。実際の回線やスマートフォンでは、本文が丸ごと687KBぶん待たされるかどうかの差になります。実回線での数字は、まだ取れていません。

もう1つ注意点があります。総転送量は減りません。919KBのままです。減るのは待たされる時間であって、通信量ではない。

検索エンジンに残るのは、演出ではない

構造化データの4要素。WebSite・Organization・WebPage・FAQPage

最後に、設計の話をします。

3Dの演出は、検索エンジンにとっては存在しないのと同じです。どれだけ手をかけても、機械が読むのは文章と構造化データだけ。

だから読み物と構造化データが、唯一の手がかりになります

構造化データでは、次の4つを出しておきます。

  • WebSite ── サイトそのものの情報
  • Organization ── 屋号・所在地・SNS。AIが引用するときの手がかりになります
  • WebPage ── そのページの情報
  • FAQPage ── よくある質問

FAQについては1つ注意があります。構造化データに書く文言は、本文のFAQと一字一句同じにしてください。違うと規約違反になります。

公開前に確認する5つ

公開前チェックリスト5項目。生HTMLに本文が入っているかが最重要

実務で毎回見ているものを挙げます。

  1. 生のHTMLに本文が入っているか(ブラウザで「ページのソースを表示」して確認すれば十分です)
  2. FAQの文言が、本文と構造化データで一致しているか
  3. サンプルのまま残っている住所やURLがないか
  4. 検索避けの設定を外したか(入口ページだけは外さない)
  5. 読み物が1,500字を超えているか

1つめが一番大事です。ソースを表示して文章が見えなければ、AIにも見えていません。これだけは公開前に必ず見てください。

まとめ

3Dサイトと検索の結論3点

この記事の核心は3点です。

  1. AIクローラーがJavaScriptを実行しないのは事実。ただし文言をHTMLに実テキストで置いていれば、3Dでも読める量は変わらない(実測で差は数十字)
  2. 読み取りとは別に、文字量の薄さ(500字前後)と転送量の重さ(919KB)という課題がある。3Dだから薄いのではなく、演出に画面を使うぶん文章が減る
  3. 対処は「どこまで捨てるか」を先に決めること。読み物を足せば1,017字まで増える

3Dホームページの相談を受けると、たいてい「JavaScriptだから読まれないのでは」から話が始まります。でも実際に測ってみると、心配されている場所は問題ではなくて、誰も気にしていなかった文字量のほうが効いていました

数字を取るまで、僕もそう思っていませんでした。感覚で判断していたら、たぶん逆の対策をしていたと思います。

ここは正直に書いておきます。3Dホームページは、検索流入を主軸にしたい会社には向きません。文章量が構造的に少なくなるからです。それでも選ぶなら、読み物を必ず足すこと。演出だけのページを作って「検索に載らない」と嘆くのは、順番が違います。

自分のサイトが今どう見えているのか、まず確かめたい方へ。URLを入れるだけで、AI検索への対応度を8つの軸で採点するツールを配っています。公式LINEに登録して「AIO」と送ってください。

https://online.zoroya.co.jp/line/open/0RvI2YIDwo6D?mtid=215Go3drIXpK

出典

  • 実測値(生HTML文字数・JS有無での比較・FCP計測)はすべて自社の3Dホームページ生成ツールの出力を2026-07-27に計測したもの
  • AIクローラーのJavaScript実行可否:SearchOptimo「Do AI Crawlers Render JavaScript? GPTBot, ClaudeBot, and Perplexity in 2026」/Lantern「AI Crawlers Do Not Render JavaScript」/AI-Ready Check「AI Crawler Comparison 2026」(いずれも2026年)
  • Googlebotのレンダリング挙動:Google Search Central 公式ドキュメント
「良いな」と思ったらシェアしてください!損はさせません
  • URLをコピーしました!
  • URLをコピーしました!
目次