GPTBot、OAI-SearchBot、ChatGPT-User の違い:どれをブロックすべきか
GPTBot、OAI-SearchBot、ChatGPT-User の違い。OpenAI の各 bot の役割、それぞれをブロックした場合の代償、そして 18、39、230 のプレフィックスに対する実際の IP チェックを紹介します。

2026 年 10 月 6 日時点で、OpenAI のレンジファイルには GPTBot のプレフィックスが 18 個、OAI-SearchBot が 39 個、ChatGPT-User が 230 個掲載されていました。OpenAI は 4 つ目の bot として OAI-AdsBot も文書化していますが、これは ChatGPT の広告として提出されたページにしかアクセスしないため、ほとんどのサイトが判断すべきなのは上の 3 つです。これらを「OpenAI」という 1 つのものとして扱うルールは、守りたかったはずの学習への利用権を手放すか、誤って ChatGPT 検索から外れるかのどちらかになります。
以下では、各 bot の役割を OpenAI 自身の言葉で紹介し、それぞれをブロックした場合の代償、最もよくあるポリシー向けの robots.txt の記述、そしてそのいずれかを名乗るリクエストが本当に OpenAI から来たかを確認する方法を説明します。各レンジファイルから IP を 1 つずつ、さらになりすましを 1 つルックアップしたので、実際の API 出力で違いを確認できます。このチェックの背後にある一般的な方法は、IP、逆引き DNS、Web Bot Auth による AI クローラーの検証のガイドで解説しています。

GPTBot、OAI-SearchBot、ChatGPT-User の違い:それぞれの役割
GPTBot は学習用、OAI-SearchBot は検索用、ChatGPT-User は人のリアルタイムのリクエスト用です。区分はこれだけで、OpenAI のクローラーのドキュメントにもはっきりと「各設定は互いに独立している(Each setting is independent of the others.)」と書かれています。以下に、そのページと 2026 年 10 月 6 日に取得したレンジファイルから引用して、3 つを並べて示します。
| GPTBot | OAI-SearchBot | ChatGPT-User | |
|---|---|---|---|
| 役割(OpenAI の言葉) | 「生成 AI の基盤モデルの学習に使われる可能性のあるコンテンツをクロールするために使われる」 | 「ChatGPT の検索機能の検索結果にウェブサイトを表示するために使われる」 | 「ChatGPT と Custom GPT における特定のユーザー操作のため」 |
| 起動のきっかけ | 自動クロール | 自動クロール | ユーザーの質問または GPT Action |
| robots.txt | OpenAI によれば尊重する。拒否すると「サイトのコンテンツを学習に使うべきでないことを示す」 | OpenAI によれば尊重する。オプトアウトしたサイトは「ChatGPT 検索の回答に表示されない」 | 「robots.txt のルールが適用されない場合がある」 |
| 現在の User-Agent トークン | GPTBot/1.4 | OAI-SearchBot/1.4 | ChatGPT-User/1.0 |
| レンジファイル | openai.com/gptbot.json | openai.com/searchbot.json | openai.com/chatgpt-user.json |
| ファイル作成日 | 2026-09-22 | 2026-01-02 | 2026-09-25 |
| プレフィックス数(IPv4 / IPv6) | 18 / 0 | 39 / 0 | 230 / 0 |
以下は、2026 年 10 月 6 日に OpenAI のページに表示されていた User-Agent の完全な文字列です。
GPTBot: Mozilla/5.0 AppleWebKit/537.36 (KHTML, like Gecko); compatible; GPTBot/1.4; +https://openai.com/gptbot
OAI-SearchBot: Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/131.0.0.0 Safari/537.36; compatible; OAI-SearchBot/1.4; +https://openai.com/searchbot
ChatGPT-User: Mozilla/5.0 AppleWebKit/537.36 (KHTML, like Gecko); compatible; ChatGPT-User/1.0; +https://openai.com/bot
OpenAI は GPTBot と OAI-SearchBot の文字列を例として示し、「バージョン番号は変わる場合がある」と注記しています。ChatGPT-User の文字列は完全な文字列として掲載されています。OAI-SearchBot の文字列は Mac のデスクトップ版 Chrome のように始まるため、文字列全体ではなくトークン(GPTBot、OAI-SearchBot、ChatGPT-User)で照合してください。ログ分析に役立つ細かい点が 1 つあります。OpenAI によれば、GPTBot や OAI-SearchBot が robots.txt を取得するとき、User-Agent に robots.txt というマーカーを追加することがあります。そのため、ログにパスが記録されていなくても、そうしたリクエストを区別できます。
OpenAI のページには 4 つ目の bot、OAI-AdsBot も掲載されています。これは「ChatGPT の広告として提出されたウェブページの安全性を検証するために使われる」もので、OpenAI は「ランディングページのコンテンツを使って、ユーザーに広告を表示するのに最も適したタイミングを判断することもある」としています。広告として提出されたページにしかアクセスせず、OpenAI は収集したデータを基盤モデルの学習には使わないとしています。トークンは OAI-AdsBot/1.0 で、レンジファイル openai.com/adsbot.json は 2026 年 5 月 12 日に作成され、取得時には IPv4 プレフィックスが 2 個掲載されていました。OpenAI は OAI-AdsBot を robots.txt のタグとしては挙げていません。ページでそう名指しされているのは OAI-SearchBot と GPTBot だけです。
ChatGPT-User と GPTBot の違い:ユーザーがきっかけの取得が異なる理由
ChatGPT-User が GPTBot と異なるのは、いつアクセスするかをクロールのスケジュールではなく人が決めるからです。OpenAI のページには「ChatGPT-User はウェブの自動クロールには使われません。これらの操作はユーザーが開始するため、robots.txt のルールが適用されない場合があります」とあります。
同じ項目にある、ポリシー上重要な文がさらに 2 つあります。ChatGPT-User は「コンテンツが検索に表示されるかどうかの判断には使われない」とされ、OpenAI はサイト運営者に代わりに OAI-SearchBot を使うよう案内しています。「検索のオプトアウトと自動クロールの管理には、robots.txt で OAI-SearchBot を使ってください」。
つまり ChatGPT-User に対する Disallow の行は、せいぜい OpenAI が尊重しないかもしれないと言っている「お願い」にすぎません。ユーザーがきっかけとなる取得を本当に止める必要があるなら、ファイアウォールかアプリケーションで IP によって止めるしかありません。この文言がいつ導入されたかを示す日付入りの変更履歴を探しましたが、見つかりませんでした。ページには更新用の RSS フィードへのリンクがありますが、確認したときには空でした。そのため現在の文面を引用するにとどめ、いつ変わったかについては何も主張しません。
ChatGPT がサイトにアクセスする方法は ChatGPT-User だけではありません。OpenAI の ChatGPT Work の Cloud browser を許可リストに追加するためのヘルプ記事(URL にはまだ「chatgpt-agent」とあり、Akamai も依然として「ChatGPT Agent」という bot 名で分類しています)によれば、Cloud browser は「送信する HTTP リクエストに Web Bot Auth で署名する」とのことです。各リクエストには Signature ヘッダーと Signature-Input ヘッダー、さらに "https://chatgpt.com" に設定された Signature-Agent ヘッダーが付き、RFC 9421 に従って chatgpt.com/.well-known/http-message-signatures-directory にある鍵で検証します。このトラフィックはレンジファイルではなく署名で識別されます。署名チェックの仕組みは、ピラーガイドの Web Bot Auth のセクションで解説しています。
GPTBot、OAI-SearchBot、ChatGPT-User の IP レンジ
OpenAI は 3 つの bot の IP レンジを https://openai.com/gptbot.json、https://openai.com/searchbot.json、https://openai.com/chatgpt-user.json で公開しています。2026 年 10 月 6 日時点で、IPv4 プレフィックスはそれぞれ 18 個、39 個、230 個で、IPv6 はありませんでした。各レンジファイルは、creationTime と prefixes のリストを持つ小さな JSON ドキュメントです。以下は GPTBot ファイルの冒頭と、3 つすべてを 1 行で要約する方法です。
curl -s https://openai.com/gptbot.json | head -c 120
# {
# "creationTime": "2026-09-22T02:00:07.000000",
# "prefixes": [
# {
# "ipv4Prefix": "132.196.86.0/24"
for f in gptbot searchbot chatgpt-user; do
curl -s https://openai.com/$f.json | jq -c '[.creationTime, (.prefixes | length), .prefixes[0]]'
done
# ["2026-09-22T02:00:07.000000",18,{"ipv4Prefix":"132.196.86.0/24"}]
# ["2026-01-02T11:00:00.000000",39,{"ipv4Prefix":"104.210.140.128/28"}]
# ["2026-09-25T18:04:57.257335",230,{"ipv4Prefix":"104.208.184.192/28"}]
取得した日には、3 つの点が目立ちました。
- 3 つのレンジファイルはすべて IPv4 のみです。 どれにも
ipv6Prefixのエントリーはありませんでした。ipv4Prefixだけを解析するコードは現時点では動きますが、形式上 IPv6 も入りうるので、両方のキーを読んでください。 - 形がまったく異なります。 GPTBot は 18 個のプレフィックスで、ほとんどが
/25です。ChatGPT-User は 16 アドレスの小さな/28ブロック 229 個と、大きな/17の9.129.0.0/171 個です。手作業で管理する ChatGPT-User の許可リストは、エントリーが最も多く、間違いやすくなります。 - サンプルを取った OpenAI の 3 つの IP(ファイルごとに 1 つ)は、すべて Microsoft のネットワーク(AS8075)上にあります。 だからこそ ASN を許可リストに入れることはできません。同じネットワークには他のすべての Azure 顧客が載っており、GPTBot になりすますためにサーバーを借りる人も含まれます。
コピーしたリストは古くなります。OpenAI はこれらのレンジファイルを更新しており、3 つのうち 2 つは取得前の 2 週間以内の creationTime を持っていました。そのため、ブログ記事(この記事も含む)から貼り付けたリストは、次にファイルが変わった時点で古くなります。ファイルを取得してキャッシュし、定期的に更新してください。レンジを設定ファイルに貼り付けないでください。bot ごとの公開 CIDR レンジと IP を照合する方法を含め、プレフィックス照合そのものはピラーガイドで扱っています。この記事は OpenAI の 3 つの bot に絞ります。
GPTBot はブロックすべきか?各 bot をブロックした場合の代償
コンテンツを学習に使われたくないなら GPTBot をブロックしてください。OpenAI によれば、ChatGPT 検索では何も失いません。他の 2 つのブロックには目に見える代償があるため、包括的なルールの副作用ではなく、意図的な選択であるべきです。
| ブロックするもの | 得られるもの | 失うもの |
|---|---|---|
| GPTBot | コンテンツを学習に使わないでほしいという意思表示 | OpenAI の「各設定は独立している」によれば、ChatGPT 検索では何も失わない |
| OAI-SearchBot | ChatGPT 検索のための自動クロールがなくなる | ChatGPT 検索の回答への表示。ただし「ナビゲーション用のリンクとしては表示されることがある」 |
| ChatGPT-User(robots.txt が適用されない場合があるため IP で) | ユーザーが ChatGPT にあなたの URL について尋ねたときのページ取得がなくなる | そのユーザーはあなたのページから回答を得られず、ChatGPT がユーザーの代わりにページを読むこともできない |
両方のクローラーを許可する場合に知っておく価値のある OpenAI の一文がもう 1 つあります。「サイトが両方の bot を許可している場合、重複したクロールを避けるため、1 回のクロールの結果を両方の用途に使うことがあります」。両方を許可しても、負荷が必ずしも 2 倍になるわけではありません。
他のサイトの状況を参考までに紹介します。2025 年 5 月 21 日に公開され、2024 年 12 月までのデータを使った Ahrefs による約 1 億 4,000 万サイトの robots.txt の調査では、GPTBot が最もブロックされている AI bot で、5.89% のサイトがブロックしていました。OAI-SearchBot は 5.54%、ChatGPT-User は 5.64% のサイトがブロックしていました。その大半は包括的なルールによるもので、GPTBot を明示的に名指ししていたのは 0.5%、ChatGPT-User は 0.22%、OAI-SearchBot は 0.08% のサイトだけでした。これは現在の割合ではなく参考情報として読んでください。このデータは現在の bot の説明より前のもので、対象は robots.txt だけであり、ファイアウォールや IP によるブロックは含みません。
重要なのは 5.54% と 0.08% の差です。OAI-SearchBot をブロックしているサイトのほとんどは、それを名指ししていませんでした。ブロックは、User-agent: * と Disallow: / のような一般的なルールや、特定の bot だけを許可する許可リストから来ており、どちらも学習用の bot と一緒に検索用の bot も巻き込みます。
GPTBot をブロックして ChatGPT 検索を許可する方法
GPTBot をブロックして ChatGPT 検索を許可するには、robots.txt で GPTBot を拒否し OAI-SearchBot を許可します。トークンは OpenAI の表記どおりに書いてください。
User-agent: GPTBot
Disallow: /
User-agent: OAI-SearchBot
Allow: /
User-agent: *
Allow: /
ChatGPT-User のグループはありません。OpenAI が robots.txt は ChatGPT-User に「適用されない場合がある」としているためです。また OpenAI によれば、robots.txt の変更が検索結果に反映されるまで約 24 時間かかることがあります。
robots.txt は OpenAI が求めていることの半分にすぎません。OAI-SearchBot の項目で、OpenAI は「サイトの robots.txt ファイルで OAI-SearchBot を許可し、公開している IP レンジからのリクエストを許可すること」を推奨しています。IP の側は、気づかないうちに壊れやすいものです。サンプルを取った OAI-SearchBot のアドレスは Microsoft Azure の IP で、私たちの API は datacenter_ip としてフラグを立てます。そのため、データセンターや Azure のトラフィックをブロックまたはチャレンジする WAF ルールがあると、robots.txt が Allow でも OAI-SearchBot を締め出し、ChatGPT 検索から外れてしまうことがあります。そうしたルールを運用しているなら、searchbot.json のプレフィックスをその対象外にしてください。
リポジトリにあるファイルではなく、サーバーが実際に送っているファイルを確認してください。CDN が送信途中で変更することがあります。たとえば Cloudflare のマネージド robots.txt は、「既存の robots.txt の前にマネージド robots.txt を付加します」。そのルールは GPTBot を拒否しますが、OAI-SearchBot や ChatGPT-User には触れていないため、それ単体では上のファイルと同じ「学習はブロック、検索は許可」のポリシーになります。こうした設定はどれも自分が書いていないルールを追加するので、配信されているファイルをテストしてください。
import urllib.robotparser
p = urllib.robotparser.RobotFileParser("https://your-site.com/robots.txt")
p.read()
for bot in ["GPTBot", "OAI-SearchBot", "ChatGPT-User"]:
print(bot, p.can_fetch(bot, "/blog/"))
上のファイルに対して実行すると、Python 3.9 のパーサーは GPTBot False、OAI-SearchBot True、ChatGPT-User True と出力しました。OAI-SearchBot が False で返ってきたら、上流の何かが ChatGPT 検索をブロックしています。
robots.txt と IP による制御:robots.txt のルールはブロックではなくお願い
robots.txt のルールは誠実なクローラーに希望を伝えるものにすぎず、実際に bot を止められるのは、リクエストが届く場所での IP チェックだけです。OpenAI の本物の bot は robots.txt を読みます。User-Agent に GPTBot や ChatGPT-User を入れたスクレイパーはそれを無視し、名前を借りるのに必要なのはフラグ 1 つだけです。curl -A "ChatGPT-User/1.0" https://your-site.com/ は本物と同じ bot トークンを持っています。
User-Agent ではどちらがどちらか分からず、robots.txt でも分かりません。ファイアウォールや CDN が OpenAI の bot をレート制限や bot チャレンジの対象外にしているなら、その例外の価値は、誰が要求しているかのチェックの精度次第です。これは他のあらゆる種類の bot にも当てはまります。どの IP シグナルでどの bot を識別できるかの概要で、どのシグナルが何をチェックするかを整理しています。
制御はリクエストが届く場所で行う必要があり、2 つの事実を組み合わせる必要があります(OpenAI だけでなくあらゆる AI クローラーにこれを適用する nginx と Express のポリシーは、IP を検証してから AI クローラーをブロックするガイドにあります)。
- 主張: User-Agent がどの OpenAI のトークンを名乗っているか。
- 証明: 接続元の IP が、その同じ bot のレンジファイルに含まれているか。
証明のない主張は、OpenAI として検証されていません。攻撃として扱うのではなく、チャレンジするかレート制限してください。その理由は、ピラー記事で公開レンジ外の IP が偽物の証明ではなく判断保留にとどまる理由として説明しています。ChatGPT-User の IP は GPTBot の主張を証明しないため、各トークンはそれぞれのレンジファイルに紐付けてください。ここでは逆引き DNS は役に立ちません。各ファイルから 1 つずつ IP を選んで dig -x を実行したところ、3 つとも Microsoft の Azure DNS から NXDOMAIN が返り、正引きで確認すべきホスト名がありませんでした。OpenAI に対して機能するチェックはレンジファイルです。
リクエストが本当に OpenAI から来たかを確認する方法:本物の IP 3 つと偽物 1 つ
リクエストが OpenAI から来たと言えるのは、その IP が User-Agent の名乗る bot のレンジファイルに含まれているときです。私たちの API は、ファイルに含まれる IP には verified: true とその bot の名前を返し、私たちがチェックするどのクローラーフィードにも含まれない IP には verified: false を返します。2026 年 10 月 6 日に、OpenAI の各レンジファイルの最初のプレフィックスの最初のアドレスと、DigitalOcean のサーバー 1 台をルックアップしました。レンジが変わると結果も変わります。
| IP | 掲載ファイル | threat.crawler | ネットワークと都市 | スコア、アクション |
|---|---|---|---|---|
| 132.196.86.0 | gptbot.json | verified: true, name: GPTBot | Microsoft AS8075、Des Moines US | 0、allow |
| 104.210.140.128 | searchbot.json | verified: true, name: OAISearchBot | Microsoft AS8075、San Antonio US | 0、allow |
| 104.208.184.192 | chatgpt-user.json | verified: true, name: ChatGPTUser | Microsoft AS8075、Boydton US | 0、allow |
| 104.248.50.21 | なし | verified: false, name: none | DigitalOcean AS14061、North Bergen US | 15、allow |
API のクローラー名にはハイフンがない点に注意してください。OAI-SearchBot と ChatGPT-User ではなく、OAISearchBot と ChatGPTUser です。
OpenAI の 3 つのアドレスはすべて operator: "OpenAI"、category: "ai"、verification_method: "ip_range_list" で返ってきました。では、例を追ってみましょう。次のようなログ行を想像してください(説明用の例で、私たちのトラフィックからのものではありません)。104.248.50.21 から、ChatGPT-User/1.0 の User-Agent を持つリクエストが来たとします。以下は、その IP と本物の ChatGPT-User のアドレスを並べたもので、ライブのレスポンスから一部を抜粋しています。
[
{
"ip": "104.208.184.192",
"asn": { "asn": 8075, "org": "MICROSOFT-CORP-MSN-AS-BLOCK - Microsoft Corporation", "asn_type": "hosting" },
"detection": { "is_hosting": true, "is_vpn": false, "is_proxy": false },
"threat": {
"is_crawler": true,
"crawler": {
"verified": true,
"name": "ChatGPTUser",
"operator": "OpenAI",
"category": "ai",
"verification_method": "ip_range_list"
}
},
"scoring": {
"fraud_score": 0,
"recommended_action": "allow",
"detection_methods": ["datacenter_ip", "no_ptr_datacenter", "verified_crawler"]
}
},
{
"ip": "104.248.50.21",
"asn": { "asn": 14061, "org": "DIGITALOCEAN-ASN - DigitalOcean, LLC", "asn_type": "hosting" },
"detection": { "is_hosting": true, "is_vpn": false, "is_proxy": false },
"threat": {
"is_crawler": false,
"crawler": {
"verified": false,
"name": "none",
"operator": "none",
"category": "none",
"verification_method": "none"
}
},
"scoring": {
"fraud_score": 15,
"recommended_action": "allow",
"detection_methods": ["datacenter_ip", "no_ptr_datacenter"]
}
}
]
3 つのステップで読み解きます。
- ルックアップ。 DigitalOcean の IP は私たちがチェックするどのクローラーフィードにも含まれないため、
threat.crawler.verifiedはfalse、nameは"none"です。スコアは 15 でallowです。データセンター IP はそれだけでは悪意があるわけではないからです。 - 比較。 API が受け取るのは IP だけなので、ChatGPT-User という主張は見ていません。またレスポンスの
crawler.spoofedフィールド(上では省略)は常に false のプレースホルダーなので、リクエストが誠実かどうかは教えてくれません。両方の事実を持っているのはあなたのコードです。リクエストは OpenAI のトークンを名乗っており、検証された身元は"none"です。この不一致がなりすましです。 - 対比。
104.208.184.192はchatgpt-user.jsonに含まれているため、verified: true、name: "ChatGPTUser"で返り、verified_crawlerによってスコアは 0 まで下がります。
比較は数行で書けます。マップは各 User-Agent トークンを API のハイフンなしの名前に変換します。
const OPENAI_BOTS = { "GPTBot": "GPTBot", "OAI-SearchBot": "OAISearchBot", "ChatGPT-User": "ChatGPTUser" };
const ua = req.headers["user-agent"] ?? "";
const claimed = Object.keys(OPENAI_BOTS).find((token) => ua.includes(token));
if (claimed) {
const res = await fetch(`https://api.geoiphub.com/v1/lookup/${clientIp}`, {
headers: { "x-api-key": process.env.GEOIPHUB_KEY },
});
const { threat } = await res.json();
const isThatBot = threat.crawler.verified && threat.crawler.name === OPENAI_BOTS[claimed];
if (!isThatBot) {
// Claims an OpenAI bot, but the IP isn't in that bot's file: challenge or rate-limit it.
}
}
キーなしで試すには、curl https://api.geoiphub.com/v1/lookup/104.208.184.192 を実行するか(匿名のルックアップは 1 分あたり 30 回)、自分のログにある IP を無料の IP ルックアップツールに貼り付けてください。「未検証」に分類された IPv6 の送信元は、IPv6 を /64 プレフィックス単位でレート制限・ブロックするガイドのように、プレフィックス単位でレート制限してください。
このチェックの限界
このチェックには 3 つの限界があります。OAI-AdsBot と ChatGPT の署名付き Cloud browser のトラフィックはカバーしないこと、リクエストヘッダーは見えないこと、そして新しいプレフィックスが私たちの側で検証されるまで最大 2 日かかることです。また、なりすましのサンプルでは出力フィールドの 1 つが誤っています。
- 検証しているのは OpenAI の 4 つの bot のうち 3 つです。 GeoIPHub のクローラー検証は、10 の運営者による 19 の公式レンジフィードをチェックしています。その中には OpenAI の GPTBot、ChatGPT-User、OAI-SearchBot のファイルや、Anthropic と Perplexity が ClaudeBot と PerplexityBot のために公開しているファイルが含まれます。OAI-AdsBot は含まれないため、OpenAI 自身の方法でチェックしてください。
- 署名は検証しません。 ChatGPT Work の Cloud browser は Web Bot Auth の署名で識別され、私たちのレンジフィードはどれもそれをカバーしていません。OpenAI の鍵ディレクトリを使って自分で検証してください。OpenAI の記事によれば、Cloudflare、Akamai、HUMAN は自動で検証します。
- API が見るのは IP であり、あなたのヘッダーではありません。 アドレスが ChatGPT-User のものだとは教えてくれます。それをリクエストが名乗った User-Agent と照合するのは、上のようにあなたのコードの役目です。
- フィードは最大 2 日遅れることがあります。 私たちはクローラーのレンジファイルを毎日再取得し、ルックアップデータベースを毎日再構築しています。OpenAI の 3 つのレンジファイルのうち 2 つは、私たちの取得前の 2 週間以内に作成されたものでした。まったく新しいプレフィックスは、私たちの側で数日間検証されないことがあるため、不一致はハードブロックではなくチャレンジの理由としてください。
no_ptr_datacenterはここでは正確ですが、なりすましのサンプルでは誤っています。 OpenAI の 3 つの IP すべてで発火し、dig -xでも逆引き DNS がないことを確認しました。しかし104.248.50.21には有効な PTR レコードがあり、私たちの記録にはそれが入っていません。これは IP による Googlebot の検証と偽物の見分け方で見つけたのと同じ欠落で、バックエンドのバグとして記録済みです。クローラーの判定はこれに依存していません。
同じ「主張と証明」のチェックは、自動化された購入者がどんな bot 名でも名乗れるチェックアウトでも重要です。そのバージョンについては、チェックアウトで AI ショッピングエージェントを IP で扱う方法をご覧ください。
まずは配信されている robots.txt から始めてください。上の短い Python のチェックを実行し、意図した場合を除き OAI-SearchBot が True になることを確認します。次に、ログから GPTBot、OAI-SearchBot、ChatGPT-User を名乗るリクエストを 1 週間分抽出し、その IP を 3 つのレンジファイルと照合してください。一致しないものは OpenAI として検証されていません。チャレンジするかレート制限してください。
よくある質問
ChatGPT-User は GPTBot と同じですか?
いいえ。GPTBot は独自のスケジュールでクロールし、OpenAI のモデルの学習に使われる可能性のあるコンテンツを収集します。ChatGPT-User は ChatGPT や Custom GPT を使う人がきっかけを作ったときだけページにアクセスし、OpenAI はウェブの自動クロールには使われないとしています。IP レンジファイルも gptbot.json と chatgpt-user.json に分かれています。
robots.txt で ChatGPT-User をブロックできますか?
確実にはできません。OpenAI によれば ChatGPT-User の取得はユーザーが開始するため、「robots.txt のルールが適用されない場合がある(robots.txt rules may not apply)」とのことです。また ChatGPT-User はコンテンツが ChatGPT 検索に表示されるかどうかの判断には使われず、それを担うのは OAI-SearchBot だとしています。ユーザーがきっかけとなる取得を止める必要がある場合は、openai.com/chatgpt-user.json のレンジを使い、ファイアウォールかアプリケーションで IP によってブロックしてください。
OAI-SearchBot とは何ですか?
OAI-SearchBot は OpenAI の検索クローラーです。OpenAI によれば「ChatGPT の検索機能の検索結果にウェブサイトを表示するために使われる(used to surface websites in search results in ChatGPT's search features)」ものです。User-Agent はデスクトップ版 Chrome に似た文字列の中に OAI-SearchBot/1.4 というトークンを含み、IP レンジは openai.com/searchbot.json にあり、2026 年 10 月 6 日には 39 個の IPv4 プレフィックスが掲載されていました。OpenAI は robots.txt で許可し、公開 IP レンジからのリクエストを許可することを推奨しています。
OAI-SearchBot は robots.txt を尊重しますか?
はい。OpenAI は OAI-SearchBot と GPTBot を robots.txt のタグとして挙げており、OAI-SearchBot をオプトアウトしたサイトは ChatGPT 検索の回答に表示されないとしています。ただし、ナビゲーション用のリンクとしては表示されることがあります。
robots.txt の変更が ChatGPT 検索に反映されるまでどれくらいかかりますか?
OpenAI によれば約 24 時間です。「サイトの robots.txt が更新されてから、システムが調整されるまで約 24 時間かかることがある(it can take ~24 hours from a site's robots.txt update for our systems to adjust)」としています。
GPTBot の IP レンジはどこにありますか?
https://openai.com/gptbot.json にあります。2026 年 10 月 6 日に取得したコピーは 2026 年 9 月 22 日に作成されたもので、IPv4 プレフィックスが 18 個、IPv6 はありませんでした。OAI-SearchBot のレンジは openai.com/searchbot.json、ChatGPT-User のレンジは openai.com/chatgpt-user.json にあります。レンジは変わるため、コピーせずに定期的にファイルを取得してください。
GPTBot が Microsoft の IP から来るのはなぜですか?
私たちのサンプルではそうでした。ルックアップした GPTBot のアドレスも、OAI-SearchBot と ChatGPT-User のアドレスも、すべて Microsoft のネットワーク AS8075 上にありました。OpenAI のクローラーのページはどのネットワークからクロールするかを明記していないため、私たちはサンプルで分かったことだけを報告しています。その ASN は Microsoft クラウドの他の顧客も共有しているため、それだけでは何の証明にもなりません。代わりに IP を gptbot.json と照合してください。
GPTBot をブロックすると ChatGPT から消えますか?
OpenAI によれば、ChatGPT 検索からは消えません。ドキュメントでは各設定は独立しているとされ、OAI-SearchBot を許可して検索結果に表示されつつ、GPTBot を拒否して学習からオプトアウトする例が挙げられています。ChatGPT 検索の回答から消えるのは、OAI-SearchBot をブロックした場合です。
GeoIPHub API を支えるチーム
GeoIPHub IP インテリジェンス API とそのスキャナーを開発している GeoIPHub チームが執筆しています。下書きは AI の支援を受けて作成し、チームが編集しています。API の例は、「説明用」と明記したものを除き、本番 API に対する実際のルックアップです。


