OAI-SearchBot・GPTBot・ChatGPT-Userは、いずれもOpenAIに関連するUser-Agentですが、用途とrobots.txtで扱える範囲は同じではありません。一律に許可・拒否すると、「ChatGPT検索には載せたいが、モデルのトレーニング用途は分けたい」といったサイト方針を反映しにくくなります。
結論として、ChatGPT検索での発見・引用・リンク表示の機会を確保したい場合はOAI-SearchBotを、将来の生成AI基盤モデルのトレーニングに使われる可能性があるクロールを分けたい場合はGPTBotを個別に検討します。ChatGPT-Userは、ChatGPT利用者の操作をきっかけにページへアクセスするためのUser-Agentであり、通常の自動クロールとは性質が異なります。
この記事では、3つの役割、サイト方針別の判断、robots.txtの設定例、WAF・CDNとの使い分けを整理します。設定前に、公開コンテンツの扱いと、本来公開してはいけない情報の保護を切り分けることが重要です。
まず結論:3つのボットは目的別に設定する
OAI-SearchBot・GPTBot・ChatGPT-Userを区別する基準は、「ChatGPT検索」「モデル改善に関係するクロール」「ユーザー依頼による個別ページ取得」のどれに関係するかです。検索向けの許可とトレーニング向けの拒否は両立できます。
| User-Agent | 主な役割 | 主な判断 |
|---|---|---|
| OAI-SearchBot | ChatGPT検索でWebサイトを表示するためのクロール | ChatGPT検索での発見・引用・リンク表示の対象にしたいか |
| GPTBot | 生成AI基盤モデルの改善・安全性向上に利用され得るコンテンツのクロール | 公開コンテンツを将来のトレーニング候補から外したいか |
| ChatGPT-User | ChatGPTまたはCustom GPTでのユーザー操作に伴うページアクセス | ChatGPT経由の個別URL参照を、インフラ面も含めてどう扱うか |
OpenAIの案内では、OAI-SearchBotとGPTBotの扱いは独立しています。たとえば、OAI-SearchBotを許可してChatGPT検索での掲載機会を残しながら、GPTBotは拒否して生成AI基盤モデルのトレーニングに関係するクロールを避ける方針を選べます。一方、ChatGPT-Userはユーザーのアクションを起点とするアクセスであり、自動的なWeb全体のクロールには使われません。
出典:OpenAI Developers「Overview of OpenAI Crawlers」
サイト方針別:許可・拒否の判断早見表
最適な設定は、AI経由で見つけられる機会、トレーニング利用への考え方、ChatGPT利用者による個別ページ参照の許容範囲によって決まります。ボット名ではなく公開方針から決めると、過剰なブロックを避けられます。
| サイト方針 | OAI-SearchBot | GPTBot | ChatGPT-User |
|---|---|---|---|
| ChatGPT検索で見つけてもらいたい | 許可を検討 | 別途判断 | 別途判断 |
| 検索表示は許容し、トレーニング候補からは外したい | 許可を検討 | 拒否を検討 | 別途判断 |
| ChatGPT検索での掲載を望まない | 拒否を検討 | 別途判断 | 別途判断 |
| ChatGPT経由のURL参照・分析を制限したい | 別途判断 | 別途判断 | WAF・認証などを含めて検討 |
| 会員限定・顧客情報・管理画面を守りたい | 認証・認可で保護 | 認証・認可で保護 | 認証・認可で保護 |
ChatGPT検索での掲載機会を重視する場合
ChatGPTの検索回答に自社サイトが引用・リンクされる機会を確保したい場合は、OAI-SearchBotをブロックしない方針を検討します。OpenAIは、ChatGPT検索の対象にするためにOAI-SearchBotのクロールを許可し、必要に応じて公開されているIPアドレスからのアクセスをホストやCDNで許可するよう案内しています。
ただし、OAI-SearchBotを許可しても、検索結果への掲載、引用、表示順位は保証されません。許可はクロールされ得る状態にするための要件の一つであり、実際の表示は回答との関連性やコンテンツの有用性など複数の要素に左右されます。
出典:OpenAI Help Center「Searching the web with ChatGPT」
モデルのトレーニング用途を分けたい場合
GPTBotは、OpenAIの生成AI基盤モデルをより有用かつ安全にするため、トレーニングに使われる可能性があるコンテンツをクロールするUser-Agentです。GPTBotを拒否しても、OAI-SearchBotまで自動的に拒否されません。
自社の公開記事をChatGPT検索で発見されることは許容しつつ、将来のモデル学習候補として扱われることは望まない場合は、GPTBotだけをrobots.txtで拒否する選択肢があります。OpenAIは、将来のトレーニングから除外したいサイトやページではGPTBotを許可しないよう案内しています。
出典:OpenAI Developers「Overview of OpenAI Crawlers」
出典:OpenAI Help Center「パブリッシャーと開発者 – FAQ」
ChatGPTからの個別URL参照を考える場合
ChatGPT-Userは、ChatGPTまたはCustom GPTのユーザーが質問したときに、必要に応じてWebページへアクセスするためのUser-Agentです。たとえば、利用者が特定URLの内容の要約や分析を依頼した場面で、そのページの取得に使われることがあります。
ChatGPT-Userは自動的にWeb全体を巡回する用途ではありません。またOpenAIは、この種のユーザー起点のアクセスではrobots.txtルールが適用されない場合があると案内しています。したがって、robots.txtだけで完全なアクセス遮断はできません。
会員限定ページ、顧客専用資料、社内ポータル、管理画面を守る目的では、ログイン認証、権限管理、ネットワーク制限、WAFルールなどで公開範囲そのものを制御してください。
出典:OpenAI Developers「Overview of OpenAI Crawlers」
robots.txtの設定例
robots.txtではUser-Agentごとにクロール方針を記述できます。以下は基本例です。既存のrobots.txt、SEOプラグイン、CDNやサーバー設定と競合する可能性があるため、追加前に公開中のrobots.txtを必ず確認してください。
3つのUser-Agentを明示的に許可する例
3つのUser-Agentにサイト全体へのクロール方針を明示する場合は、次のように記述します。包括的な拒否ルールが存在しないサイトでは、専用の許可記述を置かなくてもよい場合がありますが、設定意図を明確にしたいときには使えます。
User-agent: OAI-SearchBot
Allow: /
User-agent: GPTBot
Allow: /
User-agent: ChatGPT-User
Allow: /
この例は3つのUser-Agentに対するサイト側の方針を示すものです。ChatGPT-Userについては、ユーザー起点のアクセスでありrobots.txtの適用可否が場面により異なり得るため、アクセス許可を保証する設定ではない点に注意してください。
GPTBotだけを拒否する例
ChatGPT検索での発見機会を残しつつ、生成AI基盤モデルのトレーニングに関係するクロールを拒否したい場合は、GPTBotだけを指定します。検索露出とトレーニング利用を分けたい方針向けです。
User-agent: GPTBot
Disallow: /
この記述はGPTBotだけを対象にします。OAI-SearchBotを別途拒否していなければ、ChatGPT検索向けのクロール可否は別に扱われます。なおOpenAIは、同じクロール結果が複数の用途で利用される場合があると案内しているため、アクセスログの回数だけから用途を断定しないことが大切です。
出典:OpenAI Developers「Overview of OpenAI Crawlers」
OAI-SearchBotだけを拒否する例
ChatGPTの検索回答における要約、スニペット、検索結果の表示対象にしたくない場合は、OAI-SearchBotを拒否します。
User-agent: OAI-SearchBot
Disallow: /
OpenAIの案内では、OAI-SearchBotをオプトアウトしたサイトはChatGPTの検索回答には表示されないとされています。ただし、外部検索プロバイダーや他ページの情報を通じてURLが把握され、関連性があると判断された場合には、リンクとページタイトルのみが表示される可能性も案内されています。掲載を避けたいページがある場合、robots.txtだけに依存せず、そもそもの公開可否や認証の必要性を見直してください。
出典:OpenAI Developers「Overview of OpenAI Crawlers」
出典:OpenAI Help Center「パブリッシャーと開発者 – FAQ」
ChatGPT-Userに拒否方針を示す例
ChatGPT経由で利用者が個別URLを参照・分析する際のアクセスについて、拒否方針を示す場合の記述例です。
User-agent: ChatGPT-User
Disallow: /
ただし、この記述でChatGPT-Userによるアクセスが完全に止まるとはいえません。OpenAIは、ChatGPT-Userによるユーザー起点のアクセスではrobots.txtルールが適用されない場合があると説明しています。アクセス自体を許可しないページには、認証、適切なHTTPステータス、WAF・CDNのアクセス制御を優先してください。
出典:OpenAI Developers「Overview of OpenAI Crawlers」
robots.txtを変更するときの注意点
robots.txtは正規クローラーに方針を伝える有効な手段ですが、機密情報を守るアクセス制御ではありません。WordPressではSEOプラグイン、CDN、サーバー設定がrobots.txtを出力または書き換えることもあるため、編集画面ではなく実際の配信内容で確認する必要があります。
機密情報の保護には認証・認可を使う
robots.txtはクローラーに対するルールを示すプロトコルであり、認証や認可の仕組みではありません。URLを知る第三者の閲覧や、ルールに従わないボットのアクセスまで防ぐものではありません。個人情報、契約情報、会員限定コンテンツ、管理画面、開発環境の保護には利用できません。
非公開にすべき情報は、ログイン認証、権限管理、IP制限、VPN、サーバー設定、WAFなどで保護してください。robots.txtに非公開URLのパスを記載すると、そのパスの存在を知らせることにもなり得ます。
出典:RFC Editor「RFC 9309: Robots Exclusion Protocol」
設置場所・既存ルール・反映状況を確認する
robots.txtは原則としてドメインのルートにある「/robots.txt」で配信します。たとえば、https://example.com/robots.txt のようなURLです。サブディレクトリに置いたrobots.txtは、通常、そのドメイン全体のrobots.txtとして扱われません。
同じUser-Agentに対する複数ルール、「User-agent: *」による包括ルール、SEOプラグインが出力する設定を確認してください。robots.txtにはパスの具体性などに基づく解釈ルールがあります。変更後はブラウザやcurlで実際のURLを開き、HTTP 200で意図した最新内容が返るか、CDNキャッシュが残っていないかを確認しましょう。
OpenAIは、検索用途ではrobots.txt更新後のシステム側の調整におよそ24時間かかる場合があると案内しています。変更直後のアクセスログや検索結果だけで設定失敗と結論づけず、時間を置いて確認してください。
出典:RFC Editor「RFC 9309: Robots Exclusion Protocol」
出典:OpenAI Developers「Overview of OpenAI Crawlers」
CDN・WAFとrobots.txtの使い分け
robots.txtはクローラーに方針を伝える仕組みで、CDN・WAFはHTTPリクエストを技術的に制御する仕組みです。方針の通知はrobots.txt、通信の制御はWAF・CDNと整理すると判断しやすくなります。
| 手段 | 主な目的 | 向いている場面 |
|---|---|---|
| robots.txt | 正規クローラーへクロール方針を示す | 検索向けとトレーニング向けのクロールを分けたい |
| CDN・WAF | HTTPリクエストの許可・拒否・レート制限 | 過剰アクセス、なりすまし、ボット対策をしたい |
| 認証・認可 | 非公開情報へのアクセスそのものを制限 | 会員向け、顧客向け、社内向け、管理画面 |
OAI-SearchBotを許可する方針でも、WAFやCDNが自動アクセスを一律に403エラーで拒否していれば実際にはクロールされません。OpenAIは、robots.txtだけでなく、WAF、CDN、CAPTCHA、JavaScriptチャレンジ、認証、レート制限など、複数の保護レイヤーを確認するよう案内しています。
User-Agent文字列だけを条件に無条件許可する運用には注意が必要です。User-Agentはリクエストヘッダー上の申告であり、第三者が同じ文字列を名乗ることもできます。WAFで例外を設ける際は、OpenAIが公開するIPアドレス情報や、CDN事業者の検証済みボット機能を組み合わせて判定してください。
出典:OpenAI Help Center「Advertiser Guidance for Allowing OpenAI Web Crawlers」
正規のOpenAIボットか確認する方法
アクセスログにOAI-SearchBot、GPTBot、ChatGPT-Userと記録されていても、その表示だけでは正規のOpenAIボットと断定できません。User-Agent単独で許可判定を完結させないことが大切です。
OpenAIは各ボットに関する公開IPアドレス情報を案内しています。アクセスを検証・許可する必要がある場合は、ログ上の送信元IPとUser-Agentを確認し、CDN・WAFが対応している場合は検証済みボットの判定も利用してください。
- アクセスログで対象User-Agentと送信元IPアドレスを確認する
- OpenAIが公開する対象ボットのIPアドレス情報と照合する
- CDN・WAFの検証済みボット機能があれば、その判定も確認する
- 想定外の大量アクセスでは、HTTPステータス、レート制限、WAFイベントも併せて調べる
- IPアドレス情報は更新され得るため、過去のログだけを根拠に恒久許可しない
OpenAIの公式ドキュメントではIPアドレス情報が公開されています。DNS逆引きだけで正規性を判定する具体的な手順は、少なくとも当該ドキュメントでは案内されていません。独自の検証ロジックを急いで作るより、公式IPリスト、利用中のCDN・WAFの機能、組織のセキュリティ運用基準に沿って判断するほうが安全です。
出典:OpenAI Developers「Overview of OpenAI Crawlers」
出典:OpenAI Help Center「Advertiser Guidance for Allowing OpenAI Web Crawlers」
まとめ:検索・トレーニング・個別アクセスを分けて考える
OAI-SearchBotはChatGPT検索、GPTBotは生成AI基盤モデルのトレーニングに使われる可能性があるクロール、ChatGPT-Userはユーザーの依頼に伴う個別ページアクセスに関係します。3つを同じAIボットとして一括処理しないことが、適切な設定の出発点です。
ChatGPT検索で見つけてもらいたいならOAI-SearchBotを許可する方向で検討し、モデル改善への利用を分けたいならGPTBotを個別に拒否します。ChatGPT-Userはrobots.txtだけで完全に制御できるとは限らないため、アクセスそのものを制限したい場合はWAF・CDN・認証を組み合わせてください。
設定変更前には、公開中のrobots.txt、SEOプラグインやCDNによる出力、WAFのブロックログ、対象ページの公開範囲を確認しましょう。OpenAIのボット仕様やIPアドレス情報は更新され得るため、実装時と定期的な見直し時には公式ドキュメントの最新内容を確認することが重要です。