AIエージェントは実際にどのようにWebをブラウズするのか
前提を疑う
ほとんどのWebサイト最適化は、訪問者がHTTP経由でページを取得し、ヘッダーを見て、リダイレクトをたどり、HTMLをレンダリングするという前提に立っています。AIエージェントはこれらの前提を一つ残らず崩します。
ChatGPT
ChatGPTのブラウジングツールはHTTP経由でページをライブで取得しますが、モデルは生のレスポンスを一切見ません:
- テキスト抽出のみ — HTMLは約4,096トークンのプレーンテキストに削減されてからモデルに渡されます
- ヘッダーなし — モデルはContent-Type、ステータスコード、リダイレクトを把握しません
- SearchGPTの中間処理 — メインモデルにコンテンツが届く前に、二次モデルがプロンプトインジェクションをチェックします
- Agent Mode はChromeのUA(
Chrome/138.0.0.0)を装い、User-AgentではなくRFC 9421の暗号署名で識別します
これが意味すること: コンテンツネゴシエーションは内部的に動作しますが(ツールレイヤーが処理します)、モデルは抽出されたテキストのみを見ます。クリーンで構造化されたテキストを配信すれば、コンテンツはChatGPTにとってより有用になります。
Perplexity
Perplexityは多段階の取得パイプラインを使用しています:
- ステルスクローラー —
PerplexityBotではなく、汎用ChromeのUAとIPローテーションで1日300〜600万件のリクエストを送信 - ハイブリッドランキング — 関連するパッセージを見つけるためのBM25キーワードマッチング + ベクトル類似度
- アトミックスパン取得 — ページ全体ではなく、特定のテキストスパンを抽出
- 独自インデックス — Web検索結果と並行して独自のクロール済みインデックスを保持
これが意味すること: PerplexityBot 向けの robots.txt ルールは、彼らのステルスクローラーを止められない場合があります。明確な見出しを持つ構造化されたコンテンツは、彼らのスパン抽出が正しいパッセージを見つけるのに役立ちます。
Gemini
Geminiの最も一般的なブラウジングモードは、あなたのサーバーに一切到達しません:
- インデックスベース —
url_contextはライブHTTPではなく、Googleの内部インデックスから読み取ります。テスト時、サーバーログにリクエストは現れませんでした - スクリーンショットベース — Project Marinerは必要なタスクではページを視覚的にレンダリングします
- markdownを拒否 — Gemini CLIは初期テストで
Accept: text/markdownレスポンスを拒否しました
これが意味すること: GeminiがあなたのサイトをみるためにはGooglebotでインデックスされている必要があります。HTMLに <link rel="alternate" href="/llms.txt"> を追加すれば、Googleがllms.txtの関係をインデックスすることが保証されます。JSON-LDの構造化データもインデックスパイプラインで生き残ります。
何をすべきか
| アクション | 効果のある対象 |
|---|---|
クリーンなmarkdownで llms.txt を配信 | ChatGPT、Perplexity |
<link rel="alternate" href="/llms.txt"> を追加 | Gemini(Googleインデックス経由) |
| JSON-LD構造化データを追加 | Gemini(Googleインデックス経由) |
robots.txtで Google-Extended をブロックしない | Gemini |
| ボット認証にRFC 9421署名を使用 | ChatGPT Agent Modeの検証 |
| 明確な見出しを持つ構造化コンテンツを配信 | Perplexityのスパン抽出 |
詳細情報
- Dejan.ai: Google's URL Context Tool
- Dejan.ai: AI Mode Is Not Live Web
- Cloudflare: Perplexity Stealth Crawlers
- SeatGeek: Chasing Signature