コンテンツに移動
Silktideヘルプ

JavaScriptなしのコンテンツ

Silktideは、ページのテキストがブラウザーでJavaScriptによって組み立てられるのではなく、サーバーが送信するHTMLに含まれているかをチェックします。ほとんどのAIクローラーはJavaScriptを実行しないため、JavaScriptに依存するコンテンツはAIクローラーから見えません。

GPTBot(ChatGPT)、ClaudeBot、PerplexityBot、CCBotなどのほとんどのは、サーバーが返す生のを、送信されたまま正確に読み取ります。は実行しません。ページのコンテンツがブラウザーで構築される場合、これらのクローラーが受け取るのは空の殻だけです。理解したり、引用したり、出典として示したりできるテキストはありません。

重要な理由

従来の検索エンジンでは、この問題はおおむね解決されています。Googleはインデックス登録の前にJavaScriptをレンダリングします。しかし、回答エンジンはそうではありません。JavaScriptだけで構成されたページはGoogleで高く評価されても、ユーザーの質問に直接答えるAIシステムからは完全に見えなくなる可能性があります。

これはページ全体の配信に関する問題であるため、他のあらゆる回答エンジン最適化をひそかに無効にします。クローラーが受け取れないコンテンツでは、、鮮度、権威性のシグナルも役に立ちません。また、スクリプトが失敗したりブロックされたりした場合の人間の訪問者にも影響し、ページの最初の意味のある描画も遅くなります。

修正方法

修正するには、コンテンツをサーバーからHTMLとして配信します。通常は個々のページを編集するのではなく、ページのレンダリング方法を変更します。

  1. サーバーサイドレンダリング(SSR) - Next.jsやNuxtなどのフレームワークを使うと、各ページをサーバー上でレンダリングできます。これにより、最初のレスポンスに完全なコンテンツが含まれ、その後JavaScriptで機能を拡張できます。
  2. 静的サイト生成 - 公開時にページをプレーンなHTMLとしてあらかじめ生成します。訪問者ごとに変化しないコンテンツに適しています。
  3. プリレンダリング - フレームワークを変更できない場合は、プリレンダリングサービスやビルドステップを使って、レンダリング済みのHTMLスナップショットをクローラーに配信できます。

開発チームに、使用している技術スタックに適した方法を確認してください。3つの方法はいずれも、JavaScriptなしでもコンテンツが維持されるページを生成します。

Silktideによるテスト方法

  1. クロール中に生の(JavaScript実行前の)HTMLが取得された、インデックス登録可能なHTMLページのみをテストします。生のHTMLを利用できない場合(たとえば、ページのクロール時にリソースのダウンロードが無効になっていた場合)、このチェックは適用対象外です。
  2. 完全にレンダリングされたページから、ナビゲーション、ヘッダー、フッターを除外して、意味のある本文テキストを抽出します。レンダリング後のコンテンツが約300文字未満のページはスキップします。見落とすほど重要な内容がないためです。
  3. 同じ方法で、生のHTMLから意味のある本文テキストを抽出します。<noscript>内のテキストも数えます。レンダリングを行わないクローラーもこのテキストを受け取るためです。
  4. 生のテキストがレンダリング後のテキストの10%未満で、かつ絶対量でもごく少ない場合(約150文字未満)のみ警告します。JavaScriptで機能を拡張しているだけのページではなく、本当に空の殻となっているページを検出します。

比較は抽出したテキストの長さのみに基づくため、どの言語でも同じように動作します。

トラブルシューティング

ページでJavaScriptを使っているのにフラグが付かない

これは想定された動作です。メインコンテンツをHTMLとして配信し、JavaScriptを拡張機能(メニュー、ウィジェット、パーソナライズなど)に使用しているページは、このチェックに合格します。サーバーのレスポンスにコンテンツがほぼまったく含まれていないページだけがフラグの対象になります。

チェックが適用対象外と表示される

比較を行うには、クロール時に取得された生のサーバーレスポンスがSilktideに必要です。ウェブサイトのリソースのダウンロードが無効になっている場合、この情報を利用できません。ダウンロードを有効にして再スキャンしてください。

詳細情報

最終更新

このページは役に立ちましたか?