「AIクローラーのrobots.txt設定、これで合っていますか?」と迷うWeb担当者の方は少なくありません。OpenAIは「GPTBot」「OAI-SearchBot」「ChatGPT-User」という役割の異なる3つのボットを公開しています。本記事は、この3種のUser-Agent文字列とrobots.txtでの制御方法を公式仕様から徹底比較します。さらに、学習拒否と検索表示維持を両立させる実装パターンまで解説します。
01この記事でわかること
- GPTBot・OAI-SearchBot・ChatGPT-Userの役割の違い(比較表つき)
- 3ボットのUser-Agent文字列と公開IPアドレスの確認方法
- robots.txtのパターン別実装例(全部許可/学習だけ拒否/全部拒否)
- ChatGPT-Userだけrobots.txtの扱いが異なる理由
02結論サマリー
GPTBot・OAI-SearchBot・ChatGPT-Userは、名前が似ていても役割が異なる別々のボットです。GPTBotはモデル学習用のデータ収集、OAI-SearchBotはChatGPT Searchの検索結果表示を担います。ChatGPT-Userは、ユーザーの質問への都度アクセスを担っています。
3つはrobots.txt上で独立して制御でき、学習データとしての利用だけを拒否しながら検索結果への表示は維持する、という設定も可能です。ただしChatGPT-Userは「ユーザーの操作によって発生するアクセス」です。そのためrobots.txtのルールが適用されない場合があるとOpenAIは説明しています。この違いを理解しないままrobots.txtを設計すると、意図せず検索表示の機会を失ったり、逆に防ぎたいアクセスを防げなかったりする可能性があります。
03GPTBot・OAI-SearchBot・ChatGPT-Userとは(基礎定義)
引用されやすい定義文GPTBot・OAI-SearchBot・ChatGPT-Userは、学習・検索・個別アクセス用の別ボットです。
OpenAIは、自社サービスに関連する複数のボットをWeb担当者向けに公式ドキュメントで公開しています。このうちサイト運営に直接関わるのが、次の3種です。モデル学習用の「GPTBot」、ChatGPT Search表示用の「OAI-SearchBot」、ユーザー操作時にアクセスする「ChatGPT-User」です。このほか、広告関連の「OAI-AdsBot」も公開されていますが、本記事では比較の対象外とします。
3ボットは名称が似ているため混同されがちですが、robots.txt設計においては別々に扱うべき存在です。次章で、5つの観点から違いを比較します。
04GPTBot・OAI-SearchBot・ChatGPT-Userの違い|5つの観点で比較
GPTBot・OAI-SearchBot・ChatGPT-Userは、名称は似ていますが役割が異なります。OpenAI公式ドキュメントの記載にもとづき、5つの観点で比較しました。
| 観点 | GPTBot | OAI-SearchBot | ChatGPT-User |
|---|---|---|---|
| 用途 | 生成AI基盤モデルの学習用データ収集 | ChatGPT Searchの検索結果に表示するための巡回 | ユーザーの質問・カスタムGPT利用時の都度アクセス |
| 学習データへの利用 | される | されない | されない |
| 検索結果表示への関与 | 直接関与しない | 表示の可否を左右する | 直接関与しない |
| robots.txtの遵守 | 遵守する(Disallowが有効) | 遵守する(Disallowが有効・反映まで最大24時間) | 「ユーザー操作起点のため適用されない場合がある」と公式に明記 |
| 制御方法 | robots.txtのUser-agent行で個別指定 | robots.txtのUser-agent行で個別指定 | robots.txtでの保証はなし。公開IPレンジでの制御が代替手段 |
| 公開IPアドレス一覧 | openai.com/gptbot.json | openai.com/searchbot.json | openai.com/chatgpt-user.json |
この表からわかる通り、3ボットは学習データへの利用と検索結果表示への関与という2つの軸で明確に役割が分かれています。次章で、それぞれのUser-Agent文字列と識別方法を解説します。
053ボットのUser-Agent文字列と公開IPアドレスの確認方法
OpenAIは各ボットのUser-Agent文字列を公式に公開しています。自社サーバーのアクセスログでボットを識別する際は、以下のトークン名を目印にします。
| ボット | robots.txtのUser-agentトークン | 公開IPアドレスJSON |
|---|---|---|
| GPTBot | GPTBot | https://openai.com/gptbot.json |
| OAI-SearchBot | OAI-SearchBot | https://openai.com/searchbot.json |
| ChatGPT-User | ChatGPT-User | https://openai.com/chatgpt-user.json |
各JSONファイルには、creationTime(作成日時)とprefixes(IPv4アドレス範囲の配列)が格納されています。公式ドキュメントはこのIPアドレス一覧の用途を明記していません。ただしUser-Agent文字列は詐称される可能性があるため、アクセスログをIPアドレスと突き合わせて確認する運用が一般的です。
なお公式ドキュメントには、User-Agent文字列に含まれるバージョン番号(例: GPTBot/1.4)は変更される可能性があると明記されています。自社システムでUser-Agentを識別する際は、バージョン番号ではなくGPTBotやOAI-SearchBotといったボット名の部分で判定することをおすすめします。
06robots.txtのパターン別設定例|全部許可・学習拒否・全部拒否
GPTBotとOAI-SearchBotはrobots.txt上で独立して設定できます。OpenAIは、OAI-SearchBotを許可しながらGPTBotだけを拒否する、といった組み合わせが可能だとしています。ここでは3つの代表的なパターンと、それぞれの帰結を整理します。
パターン1: 全部許可
User-agent: GPTBot
Allow: /
User-agent: OAI-SearchBot
Allow: /
User-agent: ChatGPT-User
Allow: /
帰結: コンテンツがモデルの学習データとして利用される可能性があります。ChatGPT Searchの検索結果にも表示され、ユーザーがChatGPT上でURLを尋ねた際のアクセスも許可されます。robots.txtに何も記述しない場合も、クロールは許可された状態として扱われる点に注意してください。
パターン2: 学習だけ拒否
User-agent: GPTBot
Disallow: /
User-agent: OAI-SearchBot
Allow: /
User-agent: ChatGPT-User
Allow: /
帰結: モデルの学習データとしては利用されなくなります。一方でChatGPT Searchの検索結果への表示は維持され、ユーザーが個別にURLを尋ねた際のアクセスも許可されたままです。学習データとしての利用を避けつつ検索経由の露出は維持したい場合に、実務でよく使われる設定です。
パターン3: 全部拒否
User-agent: GPTBot
Disallow: /
User-agent: OAI-SearchBot
Disallow: /
User-agent: ChatGPT-User
Disallow: /
帰結: モデルの学習データに使われず、ChatGPT Searchの検索結果にも表示されなくなります。ただしChatGPT-Userについては、次章で解説する通り、robots.txtの指定だけでは完全に防げない可能性がある点に注意が必要です。
07ChatGPT-Userだけrobots.txtが「適用されない場合がある」理由
3ボットのうち、ChatGPT-Userだけはrobots.txtの扱いが異なります。OpenAI公式ドキュメントは、ChatGPT-Userはユーザー操作起点のアクセスのためrobots.txtが適用されない場合があると説明しています。
原文は"Because these actions are initiated by a user, robots.txt rules may not apply."です。
GPTBotとOAI-SearchBotは、事前に許可されたページを自動的に巡回する「クローラー」です。一方ChatGPT-Userは、ユーザーがChatGPT上で質問した瞬間に該当ページへ都度アクセスする仕組みです。たとえば、ユーザーが特定のURLの内容を尋ねると、その瞬間だけそのページへアクセスします。ブラウザで人間が直接URLを開く動作に近く、自動巡回ではありません。
そのためOpenAIは、ChatGPT-Userのアクセスを、robots.txtのDisallow指定だけで確実に防げるとは説明していません。特定ページへのアクセス自体を防ぎたい場合は、robots.txtだけでは不十分な可能性があります。公開IPアドレス一覧(chatgpt-user.json)と照合したアクセス制限など、別の技術的対策もあわせて検討することをおすすめします。
08学習拒否と検索表示を両立させる設定のポイント
多くのWeb担当者にとって現実的な選択は、パターン2(学習だけ拒否)です。モデルの学習データとしての利用を避けながら、ChatGPT Search経由での露出は維持できるためです。
GPTBotとOAI-SearchBotの設定は独立しています。片方をDisallowにしても、もう片方の設定には影響しません。この独立性を理解せずに「AIボットは全部拒否」と一括りにDisallowすると、意図せずChatGPT Searchでの表示機会も失う可能性があります。
自社の方針は、次の表で整理できます。
| 学習データ利用 | 検索表示 | 該当パターン |
|---|---|---|
| 避けたい | 維持したい | パターン2(学習だけ拒否) |
| 避けなくてよい | 維持したい | パターン1(全部許可) |
| 避けたい | 維持しなくてよい | パターン3(全部拒否) |
なお、この判断は一度決めたら終わりではありません。自社のAI活用方針や、ChatGPT Search経由の流入実績を踏まえて、定期的に見直すことをおすすめします。
09robots.txt反映までの時間と設定確認の手順
robots.txtを更新してから、OpenAIのシステムに反映されるまで最大24時間程度かかります。設定を変更した直後は反映されていなくても、焦って再変更する必要はありません。
設定が正しく反映されたかどうかは、以下の手順で確認できます。
- robots.txtを編集し、対象ボットのUser-agent行を保存する
- 24時間程度、時間をおく
- 自社のアクセスログを確認し、対象ボットのUser-Agentトークンからのアクセス有無を確認する
- 必要に応じて、公開IPアドレスJSON(
gptbot.json等)とアクセス元IPを突き合わせ、なりすましでないかを確認する
なお、OpenAIの公式ドキュメントは随時更新されており、更新情報はRSSフィードで購読できます。ボットの仕様は今後変わる可能性があるため、robots.txtを設計した担当者は、定期的に公式ドキュメントを確認することをおすすめします。
10チェックリスト
- GPTBot・OAI-SearchBot・ChatGPT-Userの役割の違いを理解している
- robots.txtでGPTBotとOAI-SearchBotを個別に制御する設定になっている
- 「AIボットは全部拒否」のように一括りにDisallowしていないか確認した
- ChatGPT-Userはrobots.txtだけで完全に制御できるとは限らない点を理解している
- robots.txt変更後、反映まで最大24時間程度かかることを踏まえて確認している
- 自社のアクセスログとUser-Agentトークンを突き合わせる方法を把握している
11よくある失敗
robots.txtでAIボットを制御する際、以下のような失敗が見られます。
「AI」とつくボットを一括りにDisallowしてしまう。GPTBotだけを拒否したつもりが、OAI-SearchBotも一緒にDisallowしてしまうケースがあります。この場合、意図せずChatGPT Searchでの表示機会を失います。ボットごとにUser-agent行を分けて設定することが重要です。
ChatGPT-Userへの対応をrobots.txtだけで完結させようとする。ChatGPT-Userはユーザー操作起点のアクセスであり、robots.txtのルールが適用されない場合があるとOpenAIは説明しています。特定ページへのアクセス自体を防ぎたい場合は、robots.txt以外の対策もあわせて検討する必要があります。
設定変更直後に「反映されていない」と判断してしまう。robots.txtの更新は、OpenAI側のシステムに反映されるまで最大24時間程度かかります。変更直後にアクセスログで確認しても、古い設定のままの挙動に見える場合があります。
12FAQ
Q. GPTBotを拒否すると、ChatGPT Searchにも表示されなくなりますか?
いいえ。GPTBotとOAI-SearchBotの設定は独立しています。GPTBotだけをDisallowにしても、OAI-SearchBotを許可していればChatGPT Searchでの表示は維持されます。
Q. ChatGPT-Userはrobots.txtで完全にブロックできますか?
確実にブロックできるとは限りません。OpenAIは、ChatGPT-Userはユーザー操作によって発生するアクセスのため、robots.txtのルールが適用されない場合があると説明しています。
Q. robots.txtに何も記述しない場合、3ボットはどう扱われますか?
明示的な指定がない場合、一般的にクロールは許可された状態として扱われます。学習データとしての利用を避けたい場合は、GPTBotを明示的にDisallowする必要があります。
Q. OAI-SearchBotとChatGPT-Userは、どちらもrobots.txtを見ますか?
OAI-SearchBotは自動巡回のクローラーであり、robots.txtを遵守します。一方ChatGPT-Userはユーザー操作起点のアクセスのため、robots.txtが適用されない場合がある点が異なります。
Q. robots.txtの設定はどのくらいの頻度で見直すべきですか?
一律の頻度は定まっていません。OpenAIの公式ドキュメントが更新された際や、自社のAI活用方針が変わった際に見直すことをおすすめします。
13まとめ
GPTBot・OAI-SearchBot・ChatGPT-Userは、名称が似ていても役割が異なるボットです。GPTBotはモデル学習用、OAI-SearchBotはChatGPT Search表示用、ChatGPT-Userはユーザー操作時のアクセス用です。この3系統で覚えると整理しやすくなります。
robots.txtでは、GPTBotとOAI-SearchBotを個別に制御できます。学習データとしての利用を避けながら検索表示は維持する、という設定も可能です。一方でChatGPT-Userは、ユーザー操作起点のアクセスであるためrobots.txtのルールが適用されない場合がある点に注意が必要です。
まずは自社のrobots.txtを開き、3ボットそれぞれの設定が意図した通りになっているか、本記事のチェックリストで確認することをおすすめします。
14この分野を体系的に学ぶ
この記事は徹底ガイド記事です。robots.txt設計を基礎から体系的に学びたい方は、AI検索最適化講座「テクニカル編: AIクローラー制御(III-A)」をご覧ください。