AIクローラー向けrobots.txt:何を許可し、何をブロックするか
気にかけるAIクローラーごとに、専用のUser-agentグループを用意します。引用されたい場合はOAI-SearchBot、Claude-SearchBot、PerplexityBotなどの検索クローラーを許可し、GPTBot、ClaudeBot、Google-Extended、Applebot-Extendedなどの学習用トークンについては別に判断します。名前を指定したグループは、そのクローラーにとって*のグループに置き換わります。
robots.txtは1994年にさかのぼるプレーンテキストのファイルで、2022年に正式な標準であるRFC 9309になりました。多くのAIベンダーが自社のクローラーはこれに従うと表明しており、検索用と学習用のトークンを別々に公開しているところもあります。そのため、ルールの意味を正しく理解していれば、AIに関する方針を示す最も手軽な場所がrobots.txtです。
このページの内容
AIクローラーはどのrobots.txtトークンを使う?
以下は、各ベンダーが公開しているトークンです。RFC 9309では、照合は大文字と小文字を区別しません。
- OpenAI:
OAI-SearchBot(ChatGPT検索)、GPTBot(学習)、ChatGPT-User(ユーザーが依頼した訪問。OpenAIはrobots.txtが適用されない場合があるとしています)。 - Anthropic:
Claude-SearchBot(検索)、ClaudeBot(学習)、Claude-User(ユーザーが依頼した訪問)。 - Perplexity:
PerplexityBot(検索)、Perplexity-User(ユーザーが依頼した訪問。Perplexityは通常robots.txtを無視するとしています)。 - Google:
Googlebot(検索。AI機能を含む)とGoogle-Extended。後者は独自のクローラーを持たないトークンで、Geminiの学習とグラウンディングでの利用を制御します。 - Apple:
Applebot(Spotlight、Siri、Safariの検索)とApplebot-Extended。後者はクロールを行わず、Appleの基盤モデルの学習への利用を制御します。 - Meta:
meta-externalagent(学習と製品のインデックス)とmeta-webindexer(Meta AI検索)。 - Common Crawl:
CCBot。Common Crawlが無料で公開しているウェブデータのアーカイブを構築します。
AI向けrobots.txtの良い例とは?
次の例は、AI検索とユーザーによる取得は許可し、主な学習用トークンはオプトアウトし、1つの非公開エリアはすべてに対して閉じています。
User-agent: OAI-SearchBot
User-agent: Claude-SearchBot
User-agent: PerplexityBot
User-agent: ChatGPT-User
User-agent: Claude-User
Allow: /
Disallow: /account/
User-agent: GPTBot
User-agent: ClaudeBot
User-agent: Google-Extended
User-agent: Applebot-Extended
User-agent: meta-externalagent
User-agent: CCBot
Disallow: /
User-agent: *
Allow: /
Disallow: /account/
Sitemap: https://example.com/sitemap.xml
連続する複数のUser-agent行は1つのグループを構成し、その下のルールはそれらのクローラーすべてに適用されます。コンテンツを学習に使われてもよい場合は、2つ目のグループを外すだけです。Google-ExtendedをブロックしてもGoogle検索には影響しません。Googleは、検索への掲載には影響せず、ランキングのシグナルでもないと述べています。同様に、Appleも、Applebot-Extendedを禁止したページでも検索結果に表示される可能性があるとしています。
クローラーはどのルールが自分に適用されるかをどう決める?
RFC 9309はこれを厳密に定めており、細部を知ると、意外な挙動の大半が説明できます。
- クローラーは、
User-agentが自分の製品トークンと(大文字と小文字を区別せず)一致するグループを探します。複数のグループが一致する場合は、それらのルールが1つにまとめられます。 - 一致するグループがない場合にだけ、クローラーは
User-agent: *のグループに従います。名前を指定したグループは、*から何も引き継ぎません。 - グループ内では、パスが最も長く一致するルールが優先されます。
/blog/postに対しては、Allow: /blog/がDisallow: /に勝ちます。 AllowとDisallowが同じ長さで一致した場合は、Allowを使うべきとされています。- パス内の
*は任意の文字列に一致し、$は末尾を表すため、Disallow: /*.pdf$はすべてのPDFが対象になります。
robots.txtでよくある間違いは?
- 名前を指定したグループが
*から引き継ぐと思い込むこと。OAI-SearchBotのグループにAllow: /だけを書くと、*で禁止したパスも含め、すべてのパスが開放されます。 - robots.txtのURLがHTMLページを返していること。多くは、ステータス200で返される404ページです。クローラーはその中に有効なルールを見つけられません。
- robots.txtがサーバーエラーを返すこと。RFC 9309では、その場合クローラーはサイト全体が禁止されているとみなす必要があります。404は別で、制限がないという意味になります。
- 学習をブロックするつもりで検索用のトークンをブロックすること。たとえば、モデルの学習を避けるために
PerplexityBotやClaude-SearchBotを禁止してしまうケースです。 - ユーザーが依頼した取得を止めるためにrobots.txtに頼ること。OpenAIもPerplexityも、自社のユーザーエージェントはrobots.txtに従わない場合があると述べています。
- サブドメインを忘れること。ホストごとに独自のrobots.txtがあります。Anthropicのドキュメントも、サブドメインごとにルールを追加するよう注意を促しています。
許可と禁止以外の、AIの利用方針も示せる?
Cloudflareは、robots.txtにContent-Signalの行を追加する提案をしており、3つのシグナルがあります。search(検索インデックスの構築と、リンクや短い抜粋の表示)、ai-input(AIの回答のためのコンテンツのリアルタイム利用)、ai-train(モデルの学習やファインチューニング)です。Cloudflareのマネージドrobots.txtで追加することもできます。
User-agent: *
Content-Signal: search=yes, ai-input=yes, ai-train=no
Allow: /
robots.txtにあるほかのものと同様、これらは希望の表明であり、技術的な制御ではありません。Cloudflare自身も、robots.txtの遵守は任意であると述べています。この行は必須ではなく、入れても害はありませんが、前述のクローラーごとのグループの代わりにはなりません。
変更の反映にはどれくらいかかり、どう確認する?
RFC 9309では、クローラーはキャッシュしたrobots.txtを24時間を超えて使うべきではないとされており、OpenAIとPerplexityも、変更の反映に1日ほどかかる場合があると述べています。また、robots.txtはアクセス制御ではないことも忘れないでください。ルールで許可していても、ファイアウォールがクローラーをブロックすることがあります。
AISeeWhyは、テストするクローラーごとにRFC 9309に沿ってrobots.txtを解析し、アクセスできないファイルやHTMLとして返されているファイルを指摘します。さらに、ルールとサーバーの動作が食い違っている箇所を示し、変更のための差分をそのまま使える形で提示します。
よくある質問
GPTBotやClaudeBotをブロックすると、AIの回答での表示に影響する?
直接の影響はありません。どちらのベンダーも、検索には別の検索クローラー(OAI-SearchBotとClaude-SearchBot)を使っています。学習用クローラーをブロックするかどうかは、方針の選択です。
Google-ExtendedでAI Overviewsを止められる?
止められません。GoogleはAI機能がGooglebotと、nosnippetやnoindexなどの通常の検索コントロールを使うと述べています。Google-ExtendedはGeminiの学習と、ほかのGoogle製品でのグラウンディングを対象としており、検索には影響しません。
AIクローラーはCrawl-delayに対応している?
Crawl-delayはRFC 9309に含まれていません。Anthropicは非標準の拡張として対応していると述べています。ほかのベンダーについては、各社のドキュメントで確認してください。
robots.txtはどこに置く必要がある?
各ホストのルートです。たとえばhttps://example.com/robots.txtです。サブフォルダ内のファイルは無視され、サブドメインごとに専用のファイルが必要です。
参考資料
- RFC 9309:Robots Exclusion Protocol
- OpenAI:OpenAIクローラーの概要
- Google:主要なクローラー(Google-Extendedを含む)
- Apple:Applebotについて
- Cloudflare:マネージドrobots.txtとContent Signals