AIクローラーはIPで判定するな—User-Agentを使うべき理由
サーバーログにAIクローラーらしきアクセスが来ている。でも、それが本当にAIクローラーなのか、どうやって確かめればいいのか。IPアドレスを調べてみたけれど、毎回違うIPから来ていて判断できない——そんな経験はないでしょうか。
結論から言うと、AIクローラーの判定にIPアドレスだけを使うのは構造的に無理があります。AIクローラーはクラウド基盤を使って動いているため、アクセスのたびにIPが変わるケースが珍しくありません。
実際に観測ラボのログでも、ChatGPT-UserはAzureの異なるIPから毎回アクセスしてきており、IPで追いかけると永遠に捕まえられない状態でした。
AIクローラーを正しく識別するための主軸は、User-Agent(UA)です。この記事では、IPだけで判定しようとすると何が起きるのか、なぜUAを主軸にした設計が正解なのかを、実測データをもとに解説します。
この記事でわかること|📖:約5分
- AIクローラーのIPアドレスが毎回変わる理由
- IPだけで判定しようとすると起きる3つの問題
- User-Agentを主軸にした判定が正解である理由
- 実際のサーバーログでAIクローラーを識別する方法
User-Agentとは何か
ウェブサイトにアクセスするとき、ブラウザやクローラーは必ず「自分が何者か」をサーバーに伝えています。この自己紹介の文字列がUser-Agent(UA)です。
たとえば、ChromeブラウザでウェブサイトにアクセスするときのUAはこんな文字列になっています。
Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/120.0.0.0 Safari/537.36
AIクローラーも同じように、アクセスのたびにUAをサーバーに送ってきます。GPTBotであれば以下のような文字列です。
Mozilla/5.0 AppleWebKit/537.36 (KHTML, like Gecko; compatible; GPTBot/1.0; +https://openai.com/gptbot)
主要なAIクローラーは、OpenAIやAnthropicといった運営会社が公式ドキュメントでUA文字列を公開しています。「このUAが来たらうちのクローラーです」と名乗り出ている形です。つまりUAを見れば、どの会社のAIクローラーかを識別できます。
IPアドレスだけで判定しようとすると何が起きるか
「このIPからのアクセスはAIクローラーだ」と判断しようとすると、すぐに壁にぶつかります。理由は、AIクローラーが使うIPアドレスは固定されていないからです。
毎回違うIPから来るChatGPT-User
観測ラボのサーバーログで実際に確認したところ、ChatGPT-UserはAzureのIPアドレスから来ているものの、アクセスのたびに異なるIPを使っていました。以下は実際のログの一部です。

ChatGPT-Userの仕組みや実測データの詳細はこちらの記事で詳しく解説しています。
同じUser-Agent文字列「ChatGPT-User」でも、アクセスごとにIPが変わっています。仮にIPアドレスでフィルタリングしようとすると、新しいIPが来るたびにリストを更新し続けなければなりません。
IPで判定しようとすると起きる3つの問題
IPだけに頼った判定には、構造的な問題が3つあります。
1. IPレンジの変化に追従し続ける必要がある
AIクローラーはAWSやAzure、GCPといったクラウド基盤を使って動いています。クラウド事業者のIPレンジは定期的に変わるため、今日有効なIPリストが来月には古くなっている、ということが頻繁に起きます。
2. 無関係なトラフィックを巻き込む
AzureやAWSのIPレンジには、AIクローラー以外の正規サービスや一般ユーザーも混在しています。IPレンジをまとめてブロックすると、本来通したいアクセスまで遮断してしまうリスクがあります。
3. CDN環境ではIPが見えないことがある
CDNを経由したアクセスでは、元のIPがマスクされて見えないケースがあります。UAであればCDN経由でもログに残るため、判定ロジックをそのまま適用できます。
UAすら持たないAIフェッチという存在
「UAを見ればAIクローラーを識別できる」——実はそれが通用しないケースがあります。
2026年3月25日、AI観測ラボのサーバーログに興味深いアクセスが残りました。Sakana AIが提供するAIチャットサービス「Sakana Chat」にサイトURLを渡してフェッチを依頼したところ、12時19分ごろにトップページへのアクセスが確認できました。
そのアクセスのUAはこうです。
Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/120.0.0.0 Safari/537.36

「SakanaBot」でも「Sakana-Chat」でもありません。一般的なChromeブラウザとまったく同じUA文字列です。IPアドレスは34.34.226.62——GCP(Google Cloud Platform)のIPでした。
Sakana Chatは外部の検索APIを使ってWebページをフェッチしている可能性が高く、独自のUAを持っていない状態です。つまりUAだけを見ていると、AIチャットがフェッチしたのか、普通のChromeユーザーが来たのか、ログ上では区別できません。
それでもUAを主軸にすべき理由
Sakana Chatのような「UAを持たないAIフェッチ」の存在を知ると、「UAでの判定も完璧ではないのでは」と感じるかもしれません。それは正しい認識です。ただ、だからといってIPに戻るのは誤った判断です。
整理すると、現状の選択肢はこうなります。
IPで判定する場合
GPTBotやChatGPT-Userのように、クラウド基盤のIPを毎回変えてくるAIクローラーは、IPだけでは永遠に追いかけられません。正規のサービスやユーザーを誤って巻き込むリスクもあります。メンテナンスコストが高い割に、識別精度は低いままです。
UAで判定する場合
GPTBot・OAI-SearchBot・ClaudeBot・Applebotなど、主要なAIクローラーはすべて独自のUA文字列を公式に公開しています。UAを見るだけで、どの会社のどのクローラーかを正確に識別できます。Sakana Chatのような例外はありますが、識別できるクローラーの範囲はIPよりはるかに広いです。
つまり「UAでも完全には識別できない」は事実ですが、「IPよりUAのほうが構造的に優れている」もまた事実です。識別できないケースをゼロにすることよりも、識別できるクローラーを確実に捕捉する仕組みを整えることが現実的な設計です。
具体的には、サーバーログのUA列に対して以下のようなキーワードでフィルタリングするのが基本になります。
GPTBot
OAI-SearchBot
ChatGPT-User
ClaudeBot
Claude-SearchBot
Applebot
bingbot
Googlebot
診断ツールにタグを1行設置するだけで、UAベースのクローラー判定を自動化できます。サーバーログを自分でパースする手間なく、どのAIクローラーが何回来たかを可視化できます。
まとめ
AIクローラーの判定をIPアドレスに頼るのは、構造的に無理があります。クラウド基盤を使うAIクローラーはアクセスのたびにIPが変わり、追いかけ続けることはできません。
今回の実測データで確認できたことをまとめます。
ChatGPT-UserはAzureのIPレンジ(172.204.x.x)から来るものの、アクセスごとに末尾が変わっていました。IPリストで管理しようとすると、永遠に更新し続けなければなりません。
Sakana Chatはそもそも独自UAを持っておらず、素のChromeと区別がつかない状態でフェッチしてきました。UAでも識別できないケースが存在するという実例です。
一方でGPTBot・OAI-SearchBot・ClaudeBot・Applebotなど主要なAIクローラーは、公式にUA文字列を公開しています。UAを主軸にした判定設計であれば、これらを確実に捕捉できます。
AIクローラーの許可・拒否設定についてはrobots.txt実例つきの解説記事も参考にしてください。
完全な識別は難しくても、識別できるクローラーを確実に把握する仕組みを整えること——それがAI時代のサーバーログ活用の第一歩です。
あなたのサイトは、
AIに見えていますか?
URLを入力するだけで30秒。8項目を自動診断し、優先度別の改善プランを提示します。完全無料・登録不要。