AIクローラーログを読む:GPTBotが実際にリクエストするもの
AIクローラーはサーバーログに非常に読みやすいパターンを残す。ボットをどうセグメント化するか、各ボットの取得パターンが何を意味するか、そしてGEOツールに触れる前に答える価値のある2つの問い。

多くのGEOのアドバイスはコンテンツから始まります。しかし私たちは、ログから始めるべきだと考えています。なぜなら、あなたのサーバーはすでにAI可視性に関する最も安価なデータセットを保持しているからです。それは、どのアシスタントボットがどのページを、どれくらいの頻度で、どのような順序で取得したかのタイムスタンプ付き記録です。これを読むことで、どのダッシュボードも答えられない2つの問いに答えることができます — 誰かのAIは実際に私たちを読んでいるのか、そして 彼らは何を取得する価値があると考えているのか。
これは私たちのAIクローラーガイドの実践的な続編です。登場人物は同じ。今回は、彼らがハンドシェイクの後に何をするのかを見ていきます。
まず: ボットをセグメント化する。さもなければデータはノイズになる
よくある間違いは、「AIトラフィック」を1つのバケツとして扱うことです。ボットの挙動はまったく似ておらず、混ぜ合わせると意味のない平均値が生まれます。
- トレーニングクローラー —
GPTBot、ClaudeBot、anthropic-ai、Google-Extended、CCBot— 着実かつ広範囲にクロールします。彼らの取得は今日の回答ではなく、将来のモデルの重みに供給されます。 - 検索クローラー —
OAI-SearchBot、PerplexityBot— 検索に裏付けられた回答が引用するインデックスを構築します。今週 新しいページに注目してほしいのは、まさにこれらのボットです。 - ユーザー起動型フェッチャー —
ChatGPT-User、Claude-User、Perplexity-User— 特定のユーザーの会話がそのページを必要としたときにのみ取得します。ここでのヒットはすべて領収書です。実在の人物が まさに今 あなたについて尋ねたということです。
コマンド
任意のアクセスログ(nginx/Caddy形式で動作します)に対して、まず最初のパス:
# All AI crawler hits in the current log, newest last
grep -E "GPTBot|OAI-SearchBot|ChatGPT-User|ClaudeBot|anthropic-ai|PerplexityBot|Perplexity-User|Google-Extended" access.log \
| awk '{print $NF}' | sort | uniq -c | sort -rn# All AI crawler hits in the current log, newest last
grep -E "GPTBot|OAI-SearchBot|ChatGPT-User|ClaudeBot|anthropic-ai|PerplexityBot|Perplexity-User|Google-Extended" access.log \
| awk '{print $NF}' | sort | uniq -c | sort -rnこれで生のボリュームランキングが得られます。興味深い切り口はボット × パスです:
# Which pages each bot fetches
grep "GPTBot" access.log | awk '{print $7}' | sort | uniq -c | sort -rn | head -20# Which pages each bot fetches
grep "GPTBot" access.log | awk '{print $7}' | sort | uniq -c | sort -rn | head -20注目すべき2つのパターンがあります。トレーニングクローラーが /robots.txt を取得し、その後広範囲に均等にページを取得するのはインデックス化です。検索クローラーが /、サイトマップ、そして特定のページの 狭いセット を取得するのは関連性を追っているのであり、無視するページは引用可能とは見なしていないページです。
診断する価値のある3つのパターン
1. 検索ボットがまったく現れない。 OAI-SearchBot や PerplexityBot のヒットが1か月間ゼロの場合、よくある原因は、古いテンプレートからコピーしたrobots.txtの許可リスト(彼らが該当する汎用パターンを拒否している)か、ほとんど変化しないサイト(検索インデックスは静的サイトをスキップする)です。修正はrobots.txtとllms.txtの作業に加え、目に見える更新のケイデンスです。
2. 何もしていない日にユーザー起動型のヒットが急増する。 ChatGPT-User と Perplexity-User は、生きたユーザーの会話がそのページを必要としたときにのみ取得します。あなた側で何も公開していないのにバーストが起きる場合、通常は誰かがあなたの製品を共有または議論したことを意味します — アナリティクスダッシュボードがそのようにラベル付けしないコミュニティトラフィックです。同じ日にリファラーをgrepする価値があります。
3. トレーニングクローラーがプライベートページを取得している。 GPTBot が /dashboard や /settings にヒットしているなら、あなたのrobots.txtはあなたが思っていることを書いていません — User-agent 行のタイポがグループ全体を黙って無効化します。私たちのrobots.txtテンプレートは、引用に関連するページを開いたままにしつつ、プライベートパスをブロックし続けます。
2つの正直な注意点
User-agent文字列は主張であり、身元ではありません。 誰でも User-agent: GPTBot でcurlできます。カウント目的ではこれで問題ありませんが、「競合他社が私のサイト全体をスクレイピングしたか」という偏執的な懸念については、結論を出す前に主要プロバイダーが文書化している方法(対応しているものについては逆引きDNS)で所有権を検証してください。
ボリュームはKPIではありません。 トレーニングクローラーが4,000ページを取得したということは、あなたが将来のモデルの食事に含まれていることを示しています。家賃を払う数字は、コンバージョンするページにおける ユーザー起動型および検索 の取得数です — それが今日の取得が明日の訪問者になり得るパイプラインの部分です。
2つの問い
セグメント化を一度実行し、これらに答えれば、GEOサブスクリプションを購入したほとんどのサイトよりも多くを知ることになります:
- 検索に裏付けられたボットは、公開から数日以内に私の新しいページを取得しているか? そうでなければ、引用可能な回答を供給するインデックスはあなたの存在を知りません。
- 検索ボットが決して取得しないページはどれか? それらのページは、コンテンツがどれほど良くても、アシスタントには見えません。
どちらの修正も地味です — robots.txtの修正、内部リンク、更新のケイデンス — だからこそ、何よりもまずログを読む価値があるのです。