AIクローラー向け robots.txt レシピ
AI企業のクローラーは、robots.txt をどこまで守るかが会社ごとに異なります。効かせるには、会社ごとのクローラー名を知り、個別に書く必要があります。学習用の収集だけを止める、検索での表示は残す、収集の速度を落とす、名前が公開されているクローラーをすべて止める。カードをクリックすると、robots.txt に貼り付ける行がコピーされます。各カードには、その会社の文書が何を守ると書いているかを一行ずつ添えました。カード上部のバーは User-agent グループ 1 つが 1 マスで、止めるグループは赤、許可するグループは緑、速度だけを落とすグループは黄色です。
OpenAI は学習用の収集を GPTBot に任せています。ChatGPT 検索での表示を担う OAI-SearchBot には、この行は効きません。
User-agent: GPTBot
Disallow: /OpenAI の文書には、この 2 つの名前は robots.txt で別々に許可も拒否もできると書かれています。検索側の変更は反映まで約 24 時間かかります。
User-agent: GPTBot
Disallow: /
User-agent: OAI-SearchBot
Allow: /ChatGPT 検索での表示を担う OAI-SearchBot だけを止めます。OpenAI の文書によると、変更してから反映まで約 24 時間かかります。
User-agent: OAI-SearchBot
Disallow: /Anthropic は、ClaudeBot が標準ではない Crawl-delay 拡張に対応していると説明し、例としてこの値(1)を挙げています。
User-agent: ClaudeBot
Crawl-delay: 1Crawl-delay は標準ではない拡張なので、対応を明らかにしている ClaudeBot のグループにだけ置きます。残りの 2 つのグループは、OpenAI が別々に扱えると書いている名前です。
User-agent: GPTBot
Disallow: /
User-agent: OAI-SearchBot
Allow: /
User-agent: ClaudeBot
Crawl-delay: 1Anthropic は、ClaudeBot が robots.txt に従うと説明しています。
User-agent: ClaudeBot
Disallow: /ChatGPT のユーザーが質問したことでページが開かれる訪問です。OpenAI の文書には、ユーザーが始めた動作のため robots.txt のルールが適用されない場合があると書かれています。
User-agent: ChatGPT-User
Disallow: /4 つのうち ChatGPT-User には、ルールが適用されない場合があります。ブロックの効果というより、サイトの意思を公に残す意味合いが大きい設定です。
User-agent: GPTBot
Disallow: /
User-agent: OAI-SearchBot
Disallow: /
User-agent: ChatGPT-User
Disallow: /
User-agent: ClaudeBot
Disallow: /よくある質問
- robots.txt で止めれば収集は止まりますか?
- このファイルのルールを定めた標準(RFC 9309、2022 年 9 月)は、robots.txt はクローラーに遵守を求めるルールにすぎず、アクセス権限を決める仕組みではないと明記しています。ルールを守る会社でも、対象範囲はそれぞれ異なります。
- User-Agent が GPTBot なら本当に OpenAI ですか?
- 名前(User-Agent)は誰でもまねできます。OpenAI は GPTBot、OAI-SearchBot、ChatGPT-User それぞれの IP アドレス範囲を JSON ファイルで公開しています。接続元のアドレスをこのリストと照合すれば、名前だけを借りたリクエストを見分けられます。
- Google のエージェントはどう確かめますか?
- Google は自社エージェントの一部のリクエストに Web Bot Auth 方式の署名を付け、公開鍵リストの URL を案内しています。サーバーや CDN でこの署名を確かめれば、本物の Google のエージェントかどうかを見分けられます。Google は、すべてのリクエストに署名が付くわけではないとも書いています。
- robots.txt で防げない訪問はどうしますか?
- エージェントが人の指示を受けて訪れる場合は、robots.txt だけでは除外できません。IP アドレス範囲の照合やリクエスト署名も、すでに自分の身元を明かしている会社にしか通用しません。そこで、検索、フィルターの組み合わせ、大きなファイルのダウンロードのように 1 回のリクエストでサーバーが多くの処理をする場所に、リクエスト回数の上限をかけます。User-Agent と接続元アドレス、リクエストのパスを記録していなければ、問題が起きても誰が何をしたのかをたどれません。