エージェント向けrobots.txt
robots.txtがAIエージェントを制御する仕組み
robots.txt(RFC 9309)は自発的遵守のプロトコルです。あなたがルールを公開し、行儀の良いクローラーがそれに従うことを選びます。プロトコル自体には強制力がありません — だからこそ、どのAIボットがルールを守るかを知ることは、ルールを書くことと同じくらい重要です。
主要なAIベンダーはそれぞれ役割の異なる複数のボットを運用しており、robots.txtは各User-agentトークンを別々の宛先として扱います。クローラーは自分のトークンに一致する最も具体的なグループに従い、他のトークン宛のグループを無視します。したがって、1つのボットをブロックしても兄弟ボットには何の影響もありません。トークンは3つの階層に分かれます:
- 学習クローラー(GPTBot、ClaudeBot、meta-externalagent)はモデル学習のためにコンテンツを収集します。ブロックすると将来のモデルからコンテンツが除外されます — ライブの回答や検索引用には影響しません。
- 検索インデックスクローラー(OAI-SearchBot、Claude-SearchBot、PerplexityBot)はAIアシスタントが引用するインデックスを構築します。これらを許可することで、ChatGPT・Claude・Perplexityの回答であなたのページが取得・引用可能になります。
- ユーザー起点フェッチャー(ChatGPT-User、Claude-User、Perplexity-User、Google-Agent)は、人間がアシスタントにそのページについて尋ねた瞬間にライブで取得します。ほとんどのベンダーはこの階層がrobots.txtを無視しうると明言しています — 理由は、クローラーではなく人間がその特定のページを要求したから。(文書化された例外もあります — AnthropicのClaude-UserとMistralのMistralAI-Userはrobots.txtを尊重すると明言しています。)
実務上の帰結: User-agent: GPTBot + Disallow: /はOpenAIの学習からの除外にはなりますが、ChatGPT検索からの削除(それはOAI-SearchBot)にも、ライブのユーザーフェッチの停止(それはChatGPT-User)にもなりません。挙動ごとに専用のグループが必要です。
現行のAIクローラートークン
| トークン | 運用者 | 階層 | robots.txtを尊重? |
|---|---|---|---|
| GPTBot | OpenAI | 学習 | はい |
| OAI-SearchBot | OpenAI | 検索インデックス | はい — OpenAIは許可を推奨 |
| ChatGPT-User | OpenAI | ユーザーフェッチ | 「ルールが適用されない場合があります」(OpenAIの表現) |
| ClaudeBot | Anthropic | 学習 | はい |
| Claude-SearchBot | Anthropic | 検索インデックス | はい |
| Claude-User | Anthropic | ユーザーフェッチ | はい — 文書化された例外 |
| PerplexityBot | Perplexity | 検索インデックス | はい |
| Perplexity-User | Perplexity | ユーザーフェッチ | 「一般的に無視します」(Perplexityの表現) |
| Google-Extended | 学習ポリシートークン | トークンのみ — Googlebotが読み取り、専用クローラーは存在しない | |
| Google-Agent | ユーザーフェッチ | 一般的に無視 | |
| meta-externalagent | Meta | 学習 | はい |
古いリストには今もanthropic-aiやclaude-webが載っていますが、Anthropicはもうこれらのトークンでクロールしていません。現行クローラーは上記の3つです。表の各トークンには、正確なUA文字列・robots.txtスニペット・IPレンジ検証を載せた個別ページがAIエージェントUser-Agentリファレンスにあります。
エージェントを明示的に歓迎する
明示的なAllowグループはシグナルであり、無意味な記述ではありません。デフォルトはすでに「許可」ですが、エージェントのトークンを名指しすることは、クロール運用者(およびAgentGradeのようなスキャナー)に対して、アクセスが見落としではなく意思決定であることを伝えます。
User-agent: GPTBot
Allow: /
User-agent: OAI-SearchBot
Allow: /
User-agent: ClaudeBot
Allow: /
User-agent: Claude-SearchBot
Allow: /
User-agent: PerplexityBot
Allow: /
Sitemap: https://example.com/sitemap.xml
Sitemap:ディレクティブはエージェントにとっても重要です — クローラーがすべてのリンクを辿らずに正規のページ一覧を見つける手段だからです。
学習からは除外し、引用可能なままにする
最も一般的な中間ポジション: モデル学習からは除外しつつ、AI検索では引用可能なままにします。
# 学習クローラーをブロック
User-agent: GPTBot
Disallow: /
User-agent: ClaudeBot
Disallow: /
User-agent: meta-externalagent
Disallow: /
User-agent: Google-Extended
Disallow: /
# それ以外(検索インデクサー、ユーザーフェッチャー)はデフォルトで許可のまま
すべてをブロックする — その代償
すべてのAIトークンを拒否すると、AI検索インデックスからサイトが見えなくなり、アシスタントはあなたを引用できなくなります。それでもユーザー起点フェッチャーを確実に止めることはできません — この階層の大半は設計上robots.txtを無視します。確実なブロックにはサーバー側の制御が必要です: ベンダーが公開するIPレンジによるフィルタリングか、WAFルールです。各ボットの検証エンドポイントは/agentsページに掲載されています。
よくある質問
GPTBotをブロックするとChatGPTから私のサイトが消えますか?
いいえ。GPTBotは学習データの収集だけを行います。ChatGPT検索の引用はOAI-SearchBotのインデックスから、ライブのページ訪問はChatGPT-Userから来ます — それらのトークンもブロックしない限り両方とも機能し続けます(そしてChatGPT-Userはブロックを無視する場合があります)。
AIエージェントは本当にrobots.txtを尊重しますか?
階層によります。OpenAI・Anthropic・Perplexity・Google・Metaの学習クローラーと検索クローラーは尊重すると文書化しています。ユーザー起点フェッチャーの大半は尊重しないと文書化しています(Claude-UserとMistralAI-Userが明記された例外です)。robots.txtは公開された希望であり、アクセス制御ではありません。
Google-Extendedはログに現れるクローラーですか?
いいえ。Google-Extendedは通常のGooglebotが読み取るrobots.txtのポリシートークンです。拒否するとGoogle Searchに影響を与えずに、Geminiの学習とグラウンディングからコンテンツが除外されます。Google-Extendedというuser-agentを名乗るリクエストは存在しません。
サイトはAIクローラーを許可すべきですか、ブロックすべきですか?
これは2つの別々の事柄に関するビジネス判断です: 学習(あなたのコンテンツが将来のモデルを改善する)と可視性(アシスタントがあなたを引用・推薦する)。多くのサイトは今、学習トークンをブロックし検索トークンを許可しています — 上記の「学習からは除外し、引用可能なまま」パターンです。
仕様の成熟度
確立された標準。 robots.txtはRFC 9309で仕様化されています。AI固有のトークンは各ベンダーが定義・文書化しており、頻繁に変わるためUser-Agentリファレンスをボットごとに最新に保っています。
さらに学ぶ
- RFC 9309 — robots.txtの仕様
- AIエージェントのUser-Agent: リファレンス一覧 — ボットごとのUA文字列、robots.txtの挙動、IP検証
関連
- llms.txt — 加算的なカウンターパート: robots.txtはエージェントが何を取得してよいかを伝え、llms.txtはどこから始めるべきかを伝えます
- AIエージェントは実際どのようにウェブを閲覧するのか