AIボットが自サイトを実際にクロールしているかを追跡する方法

Dev.to / 2026/4/26

💬 オピニオンDeveloper Stack & InfrastructureSignals & Early TrendsTools & Practical UsageModels & Research

要点

  • 著者は新しく立ち上げた easerva.com ドメインについて、CloudFront の標準アクセスログ(S3に保存)を使い、理論ではなく実際にどのAI/検索ボットがクロールしているかを検証した。
  • 5日間分のログを特定のユーザーエージェントで絞り込み分析した結果、Bingbot、Googlebot、OAI-SearchBot、そして特に ClaudeBot でアクセスが確認され、一方で ChatGPT-User や Claude-User のようなライブ取得系エージェントはゼロだった。
  • ClaudeBot は5日で80件のリクエストを生成し、その全てが robots.txt と sitemap.xml を対象としており、初期の発見フェーズで積極的に探索する挙動がうかがえる(量は意外だったが、一般的にはあり得る)。
  • Bingbot は「カナリア」のように実コンテンツまで到達し、IndexNow が S3 上に存在しないURLを送信していたことで 403 エラーが発生していた不具合を見つけるきっかけになった。著者は CloudFront のエラーハンドリング(403→404)と、IndexNow の送信URLをサイトマップから導出する設計への改修で解決した。
  • この観測から、持続型インデックス系クロールは初期に discovery エンドポイントへアクセスしがちだが、ライブ取得系エージェントはユーザーの問い合わせによってリアルタイム閲覧が必要にならない限り静かだという示唆が得られる。

2週間前に新しいドメインを立ち上げたのですが、理論上ではなく実際にどのAIボットがやって来ているのかを知りたくて、CloudFront のログを見ていました。そこで、S3 のアクセスログを解析し、「ボットごと・URLごと」にヒット数をレポートする小さなトラッカーを作りました。

5日後、データはこう示しています。

設定

対象のサイトは easerva.com です。S3 + CloudFront 上の静的HTMLで、JavaScriptはゼロ。すべてのページに JSON-LD を配置し、GSC と Bing Webmaster Tools に sitemap を送信、IndexNow を統合しています。

まず CloudFront の標準ログ(無料、数分ごとに gz 圧縮されたログを S3 に書き込み)を有効にし、その後、重要なボットについて user-agent 文字列で絞り込むスクリプトを書きました。GooglebotBingbotOAI-SearchBotChatGPT-UserGPTBotPerplexityBotClaudeBotClaude-UserApplebot です。

5日間の結果

Bot                Type                        Hits   URLs   Errors
Bingbot            Search crawler                16      8        3
OAI-SearchBot      Persistent index crawler      28      2        0
ChatGPT-User       Live fetch agent               0      0        0
PerplexityBot      Persistent index crawler       0      0        0
Googlebot          Search crawler                10      4        0
ClaudeBot          Persistent index crawler      80      2        0
Claude-User        Live fetch agent               0      0        0

3つのポイント

ClaudeBot は飢えている。 5日間で80ヒット。すべて /robots.txt/sitemap.xml へのアクセスでした。コンテンツの取得(fetch)はまだありません。これは初期段階の発見(discovery)としては通常の動きです。クローラーはクロールの予算を割り当てる前にアクセス許可を確認するからです。ただ、量には驚きました。robots.txt の取得が 40 回というのは、Googlebot や Bingbot が行った回数よりも明らかに多いです。

Bingbot はカナリア(先行指標)だ。 ヒットは16回しかないのに、Claude や OpenAI と違って実際のコンテンツまで進みます。さらに私にとっては実際のバグも見つかりました。これらのヒットのうち3件は、そもそも公開していなかったURLへの 403 エラーでした。私の IndexNow のコードは、実在する S3 オブジェクトからではなく、テンプレートのパターンから URL を生成していたため、「存在しないページ」を広告していました。CloudFront は、(存在しないオブジェクトに対する S3 のデフォルトである)404 ではなく 403 を返しています(制限のかかったバケットポリシーが原因)。そこで両方直しました。403 → 404 に書き換える CloudFront のカスタムエラーレスポンスを追加し、IndexNow も送信するURLが sitemap から導出されるようにリファクタリングしました。

ライブフェッチ型エージェントは静か。 ChatGPT-UserClaude-User からのヒットはゼロでした。これは理にかなっています。これらは、ユーザーがAIにリアルタイムでの閲覧を必要とする質問をしたときにのみ発火し、新規のドメインはまだどのクエリにも関連していないためです。補足として、2025年12月時点で OpenAI のドキュメントでは、ChatGPT-User は robots.txt を尊重しないと明示的に書かれています。ユーザー主導の fetch は、人間によるプロキシ的なブラウジングとして扱われるためです。

私が行っていること

  • 永続的なクローラー(OAI-SearchBotClaudeBotPerplexityBot)はインデックスを構築します。ライブフェッチ型エージェント(ChatGPT-UserClaude-User)は要求があったときに取得します。 タイミングのパターンが違い、最適化への影響も異なります。別々に追跡してください。
  • 初期段階の「静けさ」から読みすぎない。 発見(discovery)→ robots.txt のポーリング→ sitemap の取得→ コンテンツのクロールは、新規ドメインでは複数週かかるプロセスです。robots.txt の繰り返し取得は 良い サインです。
  • Bingbot はバグを早期に表に出す ので注意してください。AIネイティブのクローラーよりも速くコンテンツURLにまで到達するためです。エラー列を見ておくと良いでしょう。

同じ追跡を AWS で設定する

  1. BucketOwnerPreferred を ownership にし、CloudFront のログ配信用 canonical user に対する ACL 権限を付与した S3 バケットを作成する
  2. CloudFront ディストリビューションで標準ログ(Standard Logging)を有効化し、バケットを指定する
  3. 約30分待って、サイトにアクセスし、.gz ファイルが表示されることを確認する
  4. ログを解析する:user-agent はタブ区切りフィールドの10、URI はフィールドの7

標準ログは無料です。Kinesis によるリアルタイムはお金がかかり、低トラフィックなら不要です。

私のトラッカーのソースは、GitHub にあります。自分で書く代わりにフォークしたい場合はこちらをどうぞ。

次に見ていくこと

robots.txt のポーリングから実際のコンテンツクロールへの移行です。ClaudeBot と OAI-SearchBot が /robots.txt だけでなく /providers/... のURLを取得し始めるタイミング。これはサイトが「発見された」段階から「インデックスされつつある」段階へ移ったサインです。30日後の追跡レポートを投稿します。

もし自分のサイトでAIボットのパターンを追跡しているなら、ぜひあなたが見ているものを教えてください。

返却形式: {"translated": "翻訳されたHTML"}