AIクローラーの設定で最初に分けるべきなのは、クロールを許可するか、検索や回答で見つけられたいか、提供元固有の学習用途を許可するかという3つの目的です。これらは同じ設定ではありません。AI関連のUser-agentを一括でDisallow: /にすると、意図せず検索での発見性まで失うことがあります。
OpenAIの現在の案内では、OAI-SearchBotとGPTBotは別の目的で扱われます。ChatGPT検索でコンテンツを発見・要約・引用されたいサイトはOAI-SearchBotをブロックしないことが案内されています。一方、学習に使用される可能性のある対象から除外したい場合はGPTBotを拒否できます。
まず目的を決める
| 目的 | robots.txtでの考え方 | 追加の制御 |
|---|---|---|
| 通常検索とAI検索の発見性を維持 | 対象の検索クローラーをブロックしない | 検索結果に出したいページはindexableにする |
| AI検索は許可し、学習用クローラーだけ拒否 | 検索用と学習用User-agentを分離 | 提供元の最新ドキュメントを確認 |
| 公開ページを検索結果から除外 | robots.txtだけに依存しない | クロールを許可してnoindexを読ませる |
| 非公開情報を保護 | robots.txtをセキュリティとして使わない | 認証・認可を使う |
RFC 9309のrobots.txtはクローラーへの指示であり、アクセス権限の仕組みではありません。DisallowしたURLでも、ルールを守らないソフトウェアからのアクセスを防ぐことはできません。
ChatGPT検索を許可しGPTBotを拒否する例
User-agent: OAI-SearchBot
Allow: /
User-agent: GPTBot
Disallow: /
User-agent: *
Allow: /
Sitemap: https://example.com/sitemap.xml
重要なのはテンプレートをそのままコピーすることではなく、目的ごとにグループを分けることです。クローラー名や方針は変更される可能性があるため、公開前には必ず提供元の最新資料を確認してください。
Disallowとnoindexは役割が違う
robots.txtのDisallowはクロール制御です。noindexは、対応する検索システムにインデックス登録をしないよう伝える指示です。ページをrobots.txtでブロックすると、クローラーがHTMLを取得できず、ページ内のnoindexを読めないことがあります。
たとえば次の組み合わせは注意が必要です。
User-agent: OAI-SearchBot
Disallow: /campaign-preview/
<meta name="robots" content="noindex">
公開ページを検索結果に出したくないだけなら、クローラーがページを取得できる状態でnoindexを返す方が目的に合います。本当に非公開にしたい情報は認証で保護してください。
AIボットの巨大なブロックリストを盲目的に使わない
AI関連User-agentの長い一覧は管理しにくく、すぐ古くなります。検索用、学習用、ユーザー操作による取得用など目的が異なるクローラーを混在させると、何をブロックしているのか説明できなくなります。
小さなルールセットにし、特殊なグループには理由をコメントで残す方が安全です。
# ChatGPT検索での発見を許可
User-agent: OAI-SearchBot
Allow: /
# 学習用途に関する方針
User-agent: GPTBot
Disallow: /
通常のサイト運用ルールと組み合わせる
AIクローラーを許可する場合でも、カート、アカウント、内部検索など低価値なアプリケーションパスを制御できます。
User-agent: OAI-SearchBot
Disallow: /account/
Disallow: /cart/
Allow: /
User-agent: GPTBot
Disallow: /
User-agent: *
Disallow: /account/
Disallow: /cart/
Allow: /
複数のルールが一致する場合は、行の上下ではなく、より具体的なパスが重要です。実際のURLをテスターで確認してください。
公開前チェック
/robots.txtが対象ホストのルートから200で取得できるか- GooglebotやBingbotの重要ページを誤ってブロックしていないか
- AIクローラー名が最新の公式ドキュメントと一致しているか
- 検索発見と学習用クローラーを必要に応じて分離しているか
noindexを読ませたいページがクロール可能か- 機密情報は認証・認可で保護しているか
- Sitemapが正しいcanonical URLを含んでいるか
- 代表URLでAllow/Disallowの判定を確認したか
robots.txtの変更は即時にすべてのクローラーへ反映されるとは限りません。公開後はライブファイル、HTTPステータス、アクセスログ、解析データを確認します。OpenAIはChatGPT検索からの参照URLにutm_source=chatgpt.comが付くと案内しているため、流入の確認にも利用できます。
長期的には、クローラーの目的ごとに方針を決め、必要最小限のルールを書き、公式資料を定期的に再確認するのが最も安全です。