III-A2 GPTBot・OAI-SearchBotを理解する
OpenAI系クローラーの役割の違いと制御時の注意点
このレッスンの狙い:GPTBotとOAI-SearchBotの違いを踏まえて制御方針を決められる
最終更新: 2026-07-23
この記事の要点
- GPTBotとOAI-SearchBotの違いを踏まえて制御方針を決められる
- OpenAIは役割ごとに3つのボットを使い分けている
- GPTBotを拒否してもOAI-SearchBotは別扱いにできる
OpenAIは、学習用と検索用でクローラーを明確に分けて運用しています。このレッスンでは、GPTBotとOAI-SearchBot、それにユーザー代行のChatGPT-Userを整理し、「学習には使われたくないが検索では紹介されたい」というよくある要望をrobots.txtでどう実現するかを押さえます。この3つの役割の違いさえ押さえてしまえば、自社の制御方針はほぼ自動的に決まります。
OpenAIは役割ごとに3つのボットを使い分けている
OpenAIが運用するクローラーは、モデルの事前学習データを集めるGPTBot(通信時にプログラムが自己申告する識別文字列=User-AgentはGPTBot/1.4)、ChatGPT検索の回答・引用のために参照インデックスを作るOAI-SearchBot(User-AgentはOAI-SearchBot/1.4)、そしてユーザーが対話中に「このURLを見て」と指示した時だけその場でページを取得するChatGPT-User(User-AgentはChatGPT-User/1.0)の3種類です(出典: OpenAI公式ドキュメント, 2026年)。III-A1で整理した「学習・検索索引・ユーザー代行」の3分類が、そのままOpenAIの中に体現されている形です。
GPTBotを拒否してもOAI-SearchBotは別扱いにできる
この3つは独立してrobots.txtで制御できるため、GPTBotだけを拒否してOAI-SearchBotは許可する、という組み合わせが可能です。GPTBotを拒否すると将来のモデル学習データから除外されますが、既存の回答内容には影響しません。一方OAI-SearchBotを拒否すると、ChatGPT検索の回答・引用に表示されなくなります(ナビゲーションリンクとしては残る場合があります)。「学習には使われたくないが、検索では紹介されたい」という要望は、この2つを別々に設定することで実現できます。
ChatGPT-Userだけは「宣言通りに動くか」に注意
ここで注意したいのがChatGPT-Userです。OpenAI自身のドキュメントは、ユーザー起動のアクセスであるためChatGPT-Userには「robots.txtが適用されない場合がある」と明記しています(出典: OpenAI公式ドキュメント, 2026年)。つまりrobots.txtに書いても、ユーザーがChatGPTに「このページを見て」と指示すれば読みに来る可能性がある、というグレーゾーンです。この姿勢は次のIII-A3で扱うAnthropicの姿勢と対照的なので、比べながら読むと理解が深まります。
robots.txtの書き方となりすまし対策
3つのボットを個別に指定する場合、書き方は次のようになります。
User-agent: GPTBot
Disallow: /
User-agent: OAI-SearchBot
Allow: /OpenAIは3ボットそれぞれの専用IPアドレス範囲を公開JSON(gptbot.json・searchbot.json・chatgpt-user.json)で提供しており、アクセス元IPをこのJSONと照合すれば「本物のOpenAIのボットか」をなりすまし対策として検証できます(出典: OpenAI公式ドキュメント, 2026年)。
数字で見るGPTBotの実態
GPTBotはJavaScriptファイル自体は取得するものの、リクエストの中でJSファイル取得が占める割合は11.50%にとどまり、実行してDOMを構築するところまではしません(出典: Vercelブログ「The Rise of the AI Crawler」, 2026年)。料金表やFAQがクライアントサイドレンダリングに依存している場合の対処法は編III-Dで扱います。またクロール1回に対して人間の来訪が1件返る比率(クロール:リファラル比率)は約1,276:1という報告もあり(出典: Cloudflare Radar, 2026年)、学習用クローラーを許可しても直接的な訪問増加には直結しにくい実態がうかがえます。
実践ステップ
- ログでGPTBot・OAI-SearchBot・ChatGPT-Userそれぞれのアクセス有無を確認する
- 「学習データに使われたいか」「検索に載りたいか」を自社の方針として言語化する
- 方針に沿ってrobots.txtにUser-agentごとの記述を追加する
- アクセスが不審に多い場合は公開IP JSONと照合し、なりすましでないか確認する
- ChatGPT-Userについては「書いても完全には防げない場合がある」前提で運用する
- 半年後を目安に方針とアクセス状況を再点検する予定を入れる
まとめ
OpenAIのクローラーは学習・検索・ユーザー代行の3つに完全に分かれており、それぞれ別の判断が必要です。GPTBotとOAI-SearchBotは明確にrobots.txtで制御できますが、ChatGPT-Userだけは宣言と実態にグレーゾーンが残ります。一括りに「OpenAIをブロックする」という発想ではなく、どの目的のボットかを見極めてから設定するのが実務の正解です。同じ3分類構造がAnthropicにも存在するのか、III-A3で確かめてみましょう。
このレッスンはテキストとスライドで学べます。スライドは上のビューアからご覧ください。
確認テスト
選択肢をクリックすると、その場で正誤と解説が表示されます。
Q1. GPTBotを拒否しても、OAI-SearchBotだけを許可することはrobots.txt上可能である。
3つのボットは独立してrobots.txtで制御できるため、GPTBotのみ拒否しOAI-SearchBotを許可する組み合わせが可能です。
Q2. OpenAIがChatGPT-Userについて公式ドキュメントで明記していることは何か。
ユーザー起動のアクセスであるため、OpenAI自身がrobots.txtが適用されない場合があると明記しています。
Q3. OpenAIが「本物のOpenAIのボットか」を検証する手段として公開しているものは何か。
OpenAIは3ボットそれぞれの専用IPアドレス範囲を公開JSONで提供しています。
このレッスンのFAQ
Q. GPTBotとOAI-SearchBotは同じボットですか?
いいえ。GPTBotはモデル学習用、OAI-SearchBotはChatGPT検索の回答・引用用の索引データ収集を担う別のボットです。
Q. GPTBotを拒否すると、ChatGPTの既存の回答内容も変わりますか?
いいえ。GPTBotを拒否すると将来のモデル学習データから除外されますが、既存の回答内容には影響しません。
Q. ChatGPT-Userはrobots.txtに書けば確実に防げますか?
確実ではありません。ユーザー起動のアクセスのため、OpenAI自身がrobots.txtが適用されない場合があると明記しています。