PR-167 どのAIクローラーが実際に自社サイトへ来ているのか、アクセスログを見たことがない——サーバーログからAIクローラーのアクセスを解析する方法
こんな悩みはありませんか?
robots.txtでGPTBotやPerplexityBotを許可する設定にはしたものの、実際にそれらのクローラーが自社サイトへ来ているのかどうかを、サーバーのアクセスログで確認したことがない——という状態はよくあります。「許可している」ことと「実際に来ている」ことは別の話で、確認するにはアクセスログという普段あまり開かないデータに向き合う必要があります。
この記事でできるようになること
サーバーアクセスログの該当期間分から、主要なAIクローラー(GPTBot・ClaudeBot・PerplexityBot)のアクセス件数・アクセス先ページ・日別の推移を集計できるようになります。
使うプロンプト
入力に必要な素材
- サーバーアクセスログの該当期間分の抜粋(生ログの一部、またはCSVに列抽出したもの。列例: アクセス日時, IPアドレス, User-Agent, リクエストURL, ステータスコード)
- ※IPアドレスは個人情報として扱われる可能性があるため、貼り付け前に必ずマスキングまたは除外してください
あなたはサーバーアクセスログの解析担当です。集計ミスは監査で必ず突合される前提で、正確な件数集計と検算結果の提示を最優先に、以下のログデータをもとにAIクローラーのアクセス状況を集計してください。
# 事前確認
ログデータが空欄の場合は集計を進めず、貼り付けを依頼してください。列の並びが「アクセス日時・User-Agent・リクエストURL・ステータスコード」と異なる場合は、実際の列構成を確認してから集計に進んでください。IPアドレスがマスキングされずに含まれている場合は、集計を進める前に「マスキングされていないようです」と一言指摘してください。
# ログデータ
【アクセスログの抜粋、またはCSV(アクセス日時・User-Agent・リクエストURL・ステータスコードの列)を貼り付け。IPアドレスは事前にマスキング済みのものを使用】
# 集計してほしいこと
1. User-Agentに「GPTBot」「ClaudeBot」「PerplexityBot」のいずれかの文字列を含む行を抽出し、それぞれの件数を集計する
2. 上記3種類のいずれにも当てはまらない行の件数(未分類件数)を集計する
3. ボットごとに、アクセス先URLの上位(件数の多い順)を一覧化する(同数の場合は取得順)
4. 日付ごとのアクセス件数の推移を、ボット別に表で示す
5. ステータスコード(200・404・403等)の内訳をボットごとに示す
6. 貼り付けられたログに含まれていない日付・URLを推測で補完しないでください
# 検算のために必ず出力してほしいこと
- 貼り付けたログの総行数
- 「GPTBot」「ClaudeBot」「PerplexityBot」の合計件数
- 未分類件数
- 上記2つを足すと総行数と一致するかどうかの確認結果
一致しない場合は、その旨を明記し、原因の推測(表記ゆれ・複数ボットの重複マッチ等)を添えてください。
# 出力形式
- User-Agent別集計表(件数・割合)
- ボット別アクセス先URL上位一覧
- 日別推移表
- ステータスコード内訳表
- 検算結果(総行数と分類済み+未分類の合計が一致するか)実行手順
- サーバーのアクセスログから対象期間を抽出する。IPアドレスは事前にマスキングまたは除外しておく
- ログの形式(生ログのまま貼るか、列抽出したCSVにするか)を決める
- プロンプトの【】へ貼り付けて実行する
- AIが出した「分類済み件数の合計+未分類件数」が、貼り付けた元データの行数と一致するか、自分でも行数カウント(テキストエディタの行数表示やwcコマンド等)で検算する
- 一致しない場合は、期間を区切って分割実行するか、人力で数えて確認する
- 曜日別・ページ別の傾向を見て、robots.txtの設定見直しが必要かを検討する
結果の読み解き方
- あるボットのアクセスが件数として記録されていても、それが実際に生成AIの回答へ反映されているとは限りません。クロールされたことと、学習・引用されたことは別の現象です。
- 逆に、特定のボットのアクセスがまったく見当たらない場合は、robots.txtで意図せずブロックしている可能性があります。設定を見直す材料にしてください。
- ログの保存期間はサーバー・CDNの設定によって異なり、古いログがすでに削除されている場合があります。
注意点
- サーバーログにはアクセス元のIPアドレスが含まれ、個人情報として扱われる可能性があります。分析前に必ずIPアドレスをマスキングまたは除外し、個人を特定できる情報をAIに渡さないようにしてください。
- User-Agent文字列は詐称されることがあります。件数をそのまま鵜呑みにせず、疑わしい動きがあれば別途の確認手段(IPレンジの確認等、本記事の範囲外)も検討してください。
- ログの量が多い場合、一度にAIへ渡せる分量には限界があります。期間を区切って分割実行し、それぞれで検算を行ってください。
関連レッスン・関連パターン
確認テスト
選択肢をクリックすると、その場で正誤と解説が表示されます。
Q1. この記事のプロンプトでは、貼り付けたログの総行数と、GPTBot・ClaudeBot・PerplexityBotの合計件数+未分類件数が一致するかどうかの検算を必ず出力させる設計になっている。
本文の通り、総行数・3種の合計件数・未分類件数・両者の一致確認を必ず出力させる検算項目として指定されています。
Q2. サーバーアクセスログを解析用にAIへ渡す前に必ず行うべき処理はどれか
アクセスログには個人情報として扱われる可能性のあるIPアドレスが含まれるため、事前にマスキングまたは除外する必要があります。
Q3. あるボットのアクセスがログに記録されていることは何を意味するか
あるボットのアクセスが記録されていても、実際に生成AIの回答へ反映されたとは限らず、クロールされたことと学習・引用されたことは別の現象です。
よくある質問
Q. サーバーアクセスログを扱う前に注意すべきことは何ですか?
アクセスログにはアクセス元のIPアドレスが含まれ、個人情報として扱われる可能性があるため、分析前に必ずマスキングまたは除外する必要があります。
Q. 検算のためにプロンプトへ必ず出力させるべき項目は何ですか?
貼り付けたログの総行数、GPTBot・ClaudeBot・PerplexityBotの合計件数、未分類件数、そしてそれらを足すと総行数と一致するかどうかの確認結果です。
Q. 特定のボットのアクセスがまったく見当たらない場合、何を疑うべきですか?
robots.txtで意図せずそのボットをブロックしている可能性があるため、設定を見直す材料にすべきとされています。