AIアシスタントがウェブページを取得する方法:ChatGPT、Claude、GeminiなどのNginxログ分析

ある開発者が、ユーザーが特定のサイトについて尋ねた際に、AIアシスタントがウェブページをリアルタイムで取得するのか、それともキャッシュされたインデックスから回答するのかを判断するための実践的な実験を行いました。カスタムNginxログ設定と、主要なチャットボットにユニークなクエリ文字列を含むプロンプトを与えることで、取得行動の明確な証拠を捉えました。
調査のセットアップ
このテストでは、デフォルトのcombinedログが圧縮するヘッダーを捕捉するために、カスタムNginxログフォーマットを使用しました:
log_format ai_probe escape=json '{' '"time":"$time_iso8601",' '"ip":"$remote_addr",' '"uri":"$request_uri",' '"status":$status,' '"ua":"$http_user_agent",' '"referer":"$http_referer",' '"accept":"$http_accept"' '}';
各アシスタントには、ユニークなクエリ文字列(/?ai=chatgpt、/?ai=claudeなど)を指し示すプロンプトが与えられ、帰属を簡単に追跡できるようにしました。一時的なキャッシュヒットが取得パターンを隠蔽しないよう、プロンプトは複数のセッションで再実行されました。
専用ユーザーエージェントで自らを明示したもの
5つのアシスタントが、取得特有のシグナルと共にアクセスしました:
- ChatGPT: ChatGPT-User/1.0 (ChromeスタイルのAccept、robots.txtチェックなし)
- Claude: Claude-User/1.0 (*/* Accept、常に最初にrobots.txtをチェック)
- Perplexity: Perplexity-User/1.0 (空のAcceptヘッダー)
- Meta AI: meta-webindexer/1.1 (*/* Accept、robots.txtチェックなし)
- Manus: Manus-User/1.0 サフィックス付きChrome UA (ChromeスタイルのAccept)
これら5つはすべて、オリジンから直接ページを取得しました。
自らを明示しなかったもの
- Gemini: プロンプトウィンドウ中、Googleのユーザーエージェントからのリクエストはゼロでした。ライブでのプロバイダー側の取得を行わず、完全に自らのインデックスから回答しました。
- Copilot: プレーンなChrome 135 on Linux x86_64、完全なブラウザスタイルのAccept。取得は行いましたが、人間の訪問者と区別がつきません。
- Grok: プレーンなMac Safari 26とプレーンなMac Chrome 143。取得は行いましたが、人間の訪問者と区別がつきません。
観察された主要な行動パターン
ChatGPT: 同じバースト内で複数の送信元IPからヒットし、通常、引用するページを決定する間に複数の候補ページを一度に取得します。24時間の本番ウィンドウでは、ChatGPT-Userリクエストは5つの異なるAzure範囲から来ました:23.98.x.x、20.215.x.x、40.67.x.x、51.8.x.x、51.107.x.x。
Claude: 常に、すべてのページ取得の前に /robots.txt を取得します(Anthropicが所有するIP空間、216.73.216.0/24 範囲から)。リダイレクトをクリーンに追従し、末尾スラッシュの正規化も含みます。Anthropicは3つの異なるボットを運用しています:Claude-User(ユーザー主導の取得)、Claude-SearchBot(検索インデックス作成)、ClaudeBot(トレーニングクローラー)。
Perplexity: Acceptヘッダーやリファラーなしでの直接取得。PerplexityBot(彼らの検索インデックス作成クローラー)は別途 /robots.txt にpingを送信しました。著者は、Perplexityはライブで取得できるが、自らのインデックスから回答することもできると指摘しています。
Gemini: ライブでのプロバイダー側の取得は観察されませんでした。GoogleはGemini用の取得専用ユーザーエージェントを公開しておらず、Googleのクローラードキュメントによると、AI OverviewsとAI Modeは、Googlebotが構築するのと同じ検索インデックスに基づいています。
この実験は、2つのシグナルを区別しています:プロバイダー側の取得(アシスタントが専用ユーザーエージェントでオリジンにアクセス)と、実際のクリックスルー訪問(人間がAIの回答を読み、引用をクリックし、通常のブラウザとしてアシスタントをリファラーとして到着)。これら両方を単一の「AIトラフィック」数値にまとめると、この有用な区別が隠れてしまいます。
📖 完全なソースを読む: HN AI Agents
👀 See Also

Claude IDE Bridge: リモートエディタアクセスのためのMCPツール
Claude IDE Bridgeは、MCP(Model Context Protocol)を介してClaude AIにコードエディタへのリモート制御アクセスを提供するオープンソースツールです。ライブ型情報やデバッガー状態などのエディタ知識を呼び出し可能なツールとして公開します。

repo-mem:オープンソースMCPサーバーがClaude Codeに永続的なチームメモリを追加
repo-memは、SQLiteとGitを使用してClaude Codeセッションに永続的で共有可能なメモリを追加するオープンソースのMCPサーバーです。ユーザーごとのデータベースに観察結果を保存し、それをリポジトリにコミットすることで、チーム間の隔離問題を解決します。

ラーニングキット:コードベースのオンボーディングと探索のためのClaudeコードプラグイン
Learning-kitは、リポジトリを分析して構造化された学習計画とインタラクティブなチュートリアルを生成する無料のClaude Codeプラグインです。開発者が変更を加える前に不慣れなコードベースを理解するのを支援し、設定可能な強制モードと進捗状況の追跡機能を備えています。

Anthropicのサブスクリプションモードの習得:俳句、ソネット、オーパス
Antropicの革新的なサブスクリプションモード「Haiku」「Sonnet」「Opus」を探索しましょう。これらのモードは、あなたのAIコーディング体験を、特化した機能と価格設定で向上させるために設計されています。