「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つの観点で比較しました。

観点GPTBotOAI-SearchBotChatGPT-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.jsonopenai.com/searchbot.jsonopenai.com/chatgpt-user.json

この表からわかる通り、3ボットは学習データへの利用と検索結果表示への関与という2つの軸で明確に役割が分かれています。次章で、それぞれのUser-Agent文字列と識別方法を解説します。

GPTBot・OAI-SearchBot・ChatGPT-Userの役割分担全体図 自社サイトを起点に、GPTBotはモデル学習、OAI-SearchBotはChatGPT検索結果、ChatGPT-Userはユーザーへの個別回答という3つの行き先に分岐する、1対3の分岐フロー。 FLOW GPTBot・OAI-SearchBot・ChatGPT-Userの役割分担 自社サイト (起点) GPTBot モデル学習 OAI-SearchBot ChatGPT検索結果 ChatGPT-User ユーザーへの個別回答
GPTBot・OAI-SearchBot・ChatGPT-Userの役割分担

053ボットのUser-Agent文字列と公開IPアドレスの確認方法

OpenAIは各ボットのUser-Agent文字列を公式に公開しています。自社サーバーのアクセスログでボットを識別する際は、以下のトークン名を目印にします。

ボットrobots.txtのUser-agentトークン公開IPアドレスJSON
GPTBotGPTBothttps://openai.com/gptbot.json
OAI-SearchBotOAI-SearchBothttps://openai.com/searchbot.json
ChatGPT-UserChatGPT-Userhttps://openai.com/chatgpt-user.json

各JSONファイルには、creationTime(作成日時)とprefixes(IPv4アドレス範囲の配列)が格納されています。公式ドキュメントはこのIPアドレス一覧の用途を明記していません。ただしUser-Agent文字列は詐称される可能性があるため、アクセスログをIPアドレスと突き合わせて確認する運用が一般的です。

なお公式ドキュメントには、User-Agent文字列に含まれるバージョン番号(例: GPTBot/1.4)は変更される可能性があると明記されています。自社システムでUser-Agentを識別する際は、バージョン番号ではなくGPTBotOAI-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の指定だけでは完全に防げない可能性がある点に注意が必要です。

robots.txt設定3パターンと帰結の対応マトリクス 全部許可・学習だけ拒否・全部拒否の3パターンと、学習データ利用・ChatGPT Search表示の2項目の対応。全部許可は学習データ利用○表示○、学習だけ拒否は学習データ利用×表示○、全部拒否は学習データ利用×表示×。 MATRIX robots.txt設定3パターンと帰結の対応 全部許可 学習だけ拒否 全部拒否 学習データ利用 ChatGPT Search表示 × × × ○=される・表示される ×=されない・表示されない 「学習だけ拒否」はGPTBotのみDisallow・OAI-SearchBotはAllowのまま
robots.txt設定3パターンと帰結の対応

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)と照合したアクセス制限など、別の技術的対策もあわせて検討することをおすすめします。

3ボットのアクセス発生タイミングの違い GPTBot・OAI-SearchBotは事前に許可設定してから定期的な自動巡回。ChatGPT-Userはユーザーがその場で質問した瞬間に都度アクセス。OpenAIは適用されない場合がある、Perplexityは一般的に無視する、Anthropicは原則適用されると説明が異なる。 COMPARE 3ボットのアクセス発生タイミングの違い GPTBot・OAI-SearchBot型(事前巡回) 事前に許可設定 (robots.txt) 定期的な自動巡回 (複数回・反復してアクセス) ChatGPT-User型(ユーザー起点) ユーザーがChatGPTで質問 その場で該当ページへ都度アクセス (単発・1回のみ) robots.txtの効力についての3社の公式見解 OpenAI 「適用されない 場合がある」 Perplexity 「一般的に無視する」 Anthropic 「原則適用される」
3ボットのアクセス発生タイミングの違い

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時間程度かかります。設定を変更した直後は反映されていなくても、焦って再変更する必要はありません。

設定が正しく反映されたかどうかは、以下の手順で確認できます。

  1. robots.txtを編集し、対象ボットのUser-agent行を保存する
  2. 24時間程度、時間をおく
  3. 自社のアクセスログを確認し、対象ボットのUser-Agentトークンからのアクセス有無を確認する
  4. 必要に応じて、公開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)」をご覧ください。