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 文字列で絞り込むスクリプトを書きました。Googlebot、Bingbot、OAI-SearchBot、ChatGPT-User、GPTBot、PerplexityBot、ClaudeBot、Claude-User、Applebot です。
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-User や Claude-User からのヒットはゼロでした。これは理にかなっています。これらは、ユーザーがAIにリアルタイムでの閲覧を必要とする質問をしたときにのみ発火し、新規のドメインはまだどのクエリにも関連していないためです。補足として、2025年12月時点で OpenAI のドキュメントでは、ChatGPT-User は robots.txt を尊重しないと明示的に書かれています。ユーザー主導の fetch は、人間によるプロキシ的なブラウジングとして扱われるためです。
私が行っていること
-
永続的なクローラー(
OAI-SearchBot、ClaudeBot、PerplexityBot)はインデックスを構築します。ライブフェッチ型エージェント(ChatGPT-User、Claude-User)は要求があったときに取得します。 タイミングのパターンが違い、最適化への影響も異なります。別々に追跡してください。 - 初期段階の「静けさ」から読みすぎない。 発見(discovery)→ robots.txt のポーリング→ sitemap の取得→ コンテンツのクロールは、新規ドメインでは複数週かかるプロセスです。robots.txt の繰り返し取得は 良い サインです。
- Bingbot はバグを早期に表に出す ので注意してください。AIネイティブのクローラーよりも速くコンテンツURLにまで到達するためです。エラー列を見ておくと良いでしょう。
同じ追跡を AWS で設定する
BucketOwnerPreferredを ownership にし、CloudFront のログ配信用 canonical user に対する ACL 権限を付与した S3 バケットを作成する- CloudFront ディストリビューションで標準ログ(Standard Logging)を有効化し、バケットを指定する
- 約30分待って、サイトにアクセスし、
.gzファイルが表示されることを確認する - ログを解析する:user-agent はタブ区切りフィールドの10、URI はフィールドの7
標準ログは無料です。Kinesis によるリアルタイムはお金がかかり、低トラフィックなら不要です。
私のトラッカーのソースは、GitHub にあります。自分で書く代わりにフォークしたい場合はこちらをどうぞ。
次に見ていくこと
robots.txt のポーリングから実際のコンテンツクロールへの移行です。ClaudeBot と OAI-SearchBot が /robots.txt だけでなく /providers/... のURLを取得し始めるタイミング。これはサイトが「発見された」段階から「インデックスされつつある」段階へ移ったサインです。30日後の追跡レポートを投稿します。
もし自分のサイトでAIボットのパターンを追跡しているなら、ぜひあなたが見ているものを教えてください。
返却形式: {"translated": "翻訳されたHTML"}


