AIクローラとrobots.txt: 閉じた扉と開いた扉の横に GOAT君 が立ち、学習と検索を名前で分けると示すアイキャッチ(出典: Anthropic)
学習と検索を名前で分ける

GPTBot と Google-Extended の行は書いた。次は Claude、Perplexity、Common Crawl をどうするか。ここで手が止まるのは、名前の数と役割の分け方が会社ごとに違うからです。

Anthropic のクローラの説明ページは「the three robots that Anthropic uses」として 3 つの名前を挙げています。Perplexity のクローラの説明ページが robots.txt 用に挙げる名前は 2 つです。Common Crawl の CCBot のページが挙げるのは CCBot の 1 つです。

書くのはどれも robots.txt の User-agent 行と、その下の Disallow / Allow 行です。違うのは、どの名前を止めると何が起きるかです。

3社がrobots.txtで名乗るuser agentと用途

3 社のページを並べると、名前と用途は次のとおりです。ここでは robots.txt でサイト全体を止める(Disallow: /)場合に絞ります。

提供元 user agent 何に使われるか robots.txt で止めた場合
Anthropic ClaudeBot 生成 AI モデルの学習に使われうるコンテンツの収集 今後のコンテンツを学習用データから外す意思表示になる
Anthropic Claude-SearchBot 検索結果の質を上げるための巡回 検索のための索引に入らず、検索結果での見え方が下がりうる
Anthropic Claude-User 利用者の質問に応じたページの取得 利用者の質問への応答で取得されず、見え方が下がりうる
Perplexity PerplexityBot Perplexity の検索結果での表示とリンク 検索結果に出るには許可が勧められている
Perplexity Perplexity-User 利用者の質問に応じたページの取得 robots.txt の規則は原則として無視される
Common Crawl CCBot 誰でも分析できる公開のクロールデータの収集 サイトのクロールが止まる

Anthropicは学習・検索・ユーザー起点を3つの名前に分けている

学習を担当するのは ClaudeBot です。止めたときの扱いを、原文は「When a site restricts ClaudeBot access, it signals that the site's future materials should be excluded from our AI model training datasets.」と書いています。対象は「future materials」で、これから先のコンテンツについての意思表示です。

残り 2 つは回答や検索の側です。Claude-User について原文は「Disabling Claude-User on your site prevents our system from retrieving your content in response to a user query, which may reduce your site's visibility for user-directed web search.」と書いています。Claude-SearchBot も同じ形で「which may reduce your site's visibility and accuracy in user search results」と書いています。

3 つとも robots.txt に従うと書かれています。原文は「Anthropic’s Bots respect “do not crawl” signals by honoring industry standard directives in robots.txt.」です。

Perplexityの2つの名前はどちらも基盤モデルの学習用ではない

PerplexityBot は検索の側です。原文は「PerplexityBot is designed to surface and link websites in search results on Perplexity.」と書き、続けて「It is not used to crawl content for AI foundation models.」と書いています。

Perplexity-User は、利用者が質問したときにページを見に行く名前です。こちらも「It is not used for web crawling or to collect content for training AI foundation models.」と書かれています。

2 つの名前のどちらにも、AI の基盤モデルの学習には使わないという記述があります。Perplexity については、基盤モデルの学習を断るために robots.txt で止める名前を、このページは挙げていません。

Common CrawlはCCBotの1つで、集めたデータは公開される

CCBot は自分を「CCBot/2.0 (https://commoncrawl.org/faq/)」と名乗ります。[Common Crawl の FAQ](https://commoncrawl.org/faq) は、組織の目的を「providing a copy of the Internet to Internet researchers, companies and individuals at no cost for the purpose of research and analysis」と書いています。研究者だけでなく企業や個人にも、無償で渡すデータです。

CCBot のページと FAQ の範囲では、生成 AI の学習に使われるとは書かれていません。この点について、約 1 億 4,000 万サイトの robots.txt を集計した Ahrefs の調査記事は「Common Crawl data is likely used as a data source for most LLMs.」と書いています。「likely」のとおり推測の形の記述です。

AIクローラとrobots.txt: Anthropic・Perplexity・Common Crawl の名前を学習・検索・ユーザー起点の取得に分けて並べた比較(出典: Anthropic / Perplexity / Common Crawl)
3社の名前と用途の対応

「学習は断る・回答には載る」を3社でどう書くか

Anthropic のページは ClaudeBot を例に、Common Crawl のページは CCBot を例に、User-agent 行に名前を書いてその下に Disallow: / を置く 2 行を挙げています。

User-agent: ClaudeBot
Disallow: /

Anthropicは ClaudeBot のグループだけを書く

学習だけを断るなら、ClaudeBot のグループに Disallow: / を書き、Claude-SearchBot と Claude-User のグループは書きません。RFC 9309 は「If no group matches the product token and there is no group with a user-agent line with the "*" value, or no groups are present at all, no rules apply.」と定めています。名前のグループも * のグループも無ければ、規則は何も当たりません。

Anthropic は、サブドメインごとに同じ行を置くよう求めています。原文は「Please do this for every subdomain that you wish to opt out from.」です。

Perplexityは基盤モデルの学習を断る名前を挙げていない

前の節のとおり、Perplexity の 2 つの名前はどちらも AI の基盤モデルの学習用ではないと書かれています。検索に出たいなら、PerplexityBot は許可のまま残します。原文も「we recommend allowing PerplexityBot in your site’s robots.txt file」と書いています。許可を明示するなら次の形です。

User-agent: PerplexityBot
Allow: /
AIクローラとrobots.txt: Perplexity の学習を断るつもりで PerplexityBot を止めた GOAT君 が、検索に出なくなったと気づく 4 コマ(出典: Perplexity)
PerplexityBotは基盤モデルの学習用ではない

Common Crawlは公開データに入れたくなければCCBotを止める

公開データに自社のページを入れたくないなら、CCBot のグループに Disallow: / を書きます。Common Crawl のページは「To prevent Common Crawl from crawling your website, include the following in your robots.txt:」として次の 2 行を挙げています。

User-agent: CCBot
Disallow: /

FAQ は、この 2 行を書いたあとについて「We will periodically continue to check if the robots.txt file has been updated.」と書き、続けて「You may also wish to be added to our opt-out registry.」と案内しています。robots.txt とは別に、除外の登録簿という窓口もあります。

止めるほどではないが負荷を抑えたいなら、Crawl-delay という手もあります。FAQ は「We obey the Crawl-delay parameter for robots.txt.」と書いています。Anthropic のページも「we support the non-standard Crawl-delay extension to robots.txt」と書いています。

ただし Crawl-delay は RFC 9309 が定める行ではありません。規格は「Crawlers MAY interpret other records that are not part of the robots.txt protocol」とだけ書いており、解釈するかはクローラ次第です。

3社をまとめた記述例

学習は断り、検索には残し、公開データにも入れない場合は次の形になります。OpenAI の 4 つの名前はChatGPTに載せて学習は断るrobots.txtの書き方、Google-Extended はGoogle-ExtendedとAI Overviewsの関係で扱っています。

User-agent: ClaudeBot
Disallow: /

User-agent: PerplexityBot
Allow: /

User-agent: CCBot
Disallow: /

OpenAIやGoogleと同じ書き方で効くか

効きます。3 社のページが示す書き方は、OpenAI や Google の行と同じ User-agent 行のグループです。Common Crawl の FAQ は、CCBot の取得の説明で RFC 9309 を名指ししています。規格の RFC 9309 には、つまずきやすい点が 3 つあります。

名前の大文字小文字は区別されない

規格は「Crawlers MUST use case-insensitive matching to find the group that matches the product token and then obey the rules of the group.」と定めています。ClaudeBot を claudebot と書いても同じグループとして読まれます。

名指しのグループがあると*のグループは読まれない

規格は「If no matching group exists, crawlers MUST obey the group with a user-agent line with the "*" value, if present.」と定めています。* のグループが使われるのは、その名前に一致するグループが 1 つも無いときだけです。

つまり、次の robots.txt では /admin/ の禁止が PerplexityBot に効きません。

User-agent: *
Disallow: /admin/

User-agent: PerplexityBot
Allow: /

PerplexityBot は自分の名前のグループを見つけた時点で * のグループを読まなくなります。* に書いた制限を残したいなら、同じ行を PerplexityBot のグループにも書き写します。

逆に * のグループで Disallow: / を書いているサイトでは、Claude-SearchBot と Claude-User もそこに従います。学習だけを断るつもりなら、この 2 つの名前のグループを足して許可を明示します。

robots.txtはサブドメインごとに置く

規格は「The rules MUST be accessible in a file named "/robots.txt" (all lowercase) in the top-level path of the service.」と定めています。www.example.com に置いた robots.txt は shop.example.com の規則になりません。Anthropic がサブドメインごとに置くよう求めているのも、この置き場所の規則と合っています。

robots.txtが効かない・効きにくい場面

robots.txt は意思を伝える仕組みです。規格は「These rules are not a form of access authorization.」と書いています。3 社のページにも、効き方の限界が書かれています。

Perplexity-Userは原則としてrobots.txtを無視する

Perplexity-User の行には「Since a user requested the fetch, this fetcher generally ignores robots.txt rules.」と書かれています。利用者が質問したときの取得は、robots.txt の規則が原則として当たりません。

Anthropic の Claude-User は事情が違います。原文は「Claude-User allows site owners to control which sites can be accessed through these user-initiated requests.」と書いています。同じユーザー起点の取得でも、robots.txt の扱いは会社ごとに違います。

IPで塞ぐとrobots.txtが読めなくなる

Anthropic は IP アドレスでの遮断について「Alternate methods like blocking IP address(es) from which Anthropic Bots operates may not work correctly or persistently guarantee an opt-out, as doing so impedes our ability to read your robots.txt file.」と書いています。IP で塞ぐと Anthropic の側が robots.txt を読めなくなり、止めたいという意思が確実には伝わりません。

robots.txt の取得そのものが失敗したときの扱いも、規格は応答の種類で分けています。サーバやネットワークのエラーで取れないときは「the crawler MUST assume complete disallow」で、全面拒否として扱われます。ただしその状態が 30 日のように長く続くと、規格は「crawlers MAY assume that the robots.txt file is unavailable」として、無いものと見なすことも認めています。400 番台のように robots.txt が無いと読める応答なら「the crawler MAY access any resources on the server」で、制限が無いものとして扱われえます。

CDN やファイアウォールでの一括遮断の得失はAIクローラをCDNで止めるときの得失で扱っています。

CCBotを名乗る偽物はログで見分ける

Common Crawl のページは「Please note that we are aware of crawlers falsely identifying themselves as CCBot.」と書いています。アクセスログに CCBot の名前があっても、本物とは限りません。

見分け方として、CCBot は専用の IP 範囲から逆引き DNS つきで動いていると書かれています(IPv6 は逆引き DNS に未対応)。原文の例では、host 18.97.14.84 の結果が 18-97-14-84.crawl.commoncrawl.org を指し、その名前を引き直すと同じ IP に戻ります。この往復が一致すれば本物と確かめられます。

Anthropic と Perplexity は IP アドレスの一覧を JSON で公開しています。Anthropic は「If a crawler has a source IP address on this list, it indicates that the crawler is coming from Anthropic.」と書いています。Perplexity は WAF で許可するときの設定として「combine both User-Agent string matching and IP address verification」を勧めています。

古い名前のまま止めていないか確かめる

robots.txt を書き直す前に、いま書いてある名前が 3 社の現行のページと合っているかを見ます。Ahrefs の調査(2025 年 5 月公開)が数えた、名前を名指しして止めているサイトの割合は次のとおりです。

user agent Ahrefs の表の運営者 名指しで止めているサイトの割合
CCBot Common Crawl 0.49%
ClaudeBot Anthropic 0.28%
anthropic-ai Anthropic 0.27%
Claude-Web Anthropic 0.2%
PerplexityBot Perplexity 0.15%
AIクローラとrobots.txt: CCBot・ClaudeBot・anthropic-ai・Claude-Web・PerplexityBot を名指しで止めているサイトの割合(出典: Ahrefs)
名指しで止めているサイトの割合

Anthropicの現行ページに無い名前が多く書かれている

この表で Anthropic の運営とされている anthropic-ai と Claude-Web は、Anthropic の現行のページが挙げる 3 つ(ClaudeBot・Claude-User・Claude-SearchBot)に入っていません。それでも Ahrefs の表で名指しで止めているサイトの割合は、anthropic-ai が 0.27%、Claude-Web が 0.2% で、ClaudeBot の 0.28% と同じ水準です。

規格上、クローラは自分の名前に一致するグループを探します。規格の照合の規則どおりなら、anthropic-ai のグループしか無い robots.txt には ClaudeBot に一致するグループがありません。その場合 ClaudeBot は * のグループに従い、それも無ければ規則は当たりません。

反映は24時間を目安に確かめる

Perplexity は「it may take up to 24 hours for our systems to reflect changes」と書いています。規格も「Crawlers SHOULD NOT use the cached version for more than 24 hours, unless the robots.txt file is unreachable.」と定めています。Common Crawl の FAQ は「We will periodically continue to check if the robots.txt file has been updated.」と書いています。書き換えた直後のログで判断せず、1 日おいてから見ます。

書き足す前の点検リスト

DigitalGOAT編集部の推奨は、robots.txt を触る前に次の 4 項目を確かめることです。

  • 現行の robots.txt をそのまま保存する(戻せる状態を作る)
  • 既存の User-agent グループを一覧にし、足す行がどのグループに入るかを確かめる
  • Disallow: / の対象が意図した名前だけかを確かめる
  • 反映後に、検索用のクロールが止まっていないかを確かめる

Anthropic のページには「You can be notified of substantial changes to this article by clicking here and completing the form」とあり、大きな変更の通知を受け取る登録フォームが置かれています。

まとめ:止める名前と残す名前を先に決める

Anthropic は学習・検索・ユーザー起点を 3 つの名前に分けています。Perplexity の 2 つの名前はどちらも AI の基盤モデルの学習用ではないと書かれており、Common Crawl の名前は CCBot の 1 つです。

学習を断るなら ClaudeBot を止め、Perplexity の検索に出たいなら PerplexityBot は許可のまま残し、公開データに入れたくなければ CCBot を止めます。書いた行は RFC 9309 の規則で読まれるので、* のグループとの関係とサブドメインを確かめます。

次は実際に行を書き足し、1 日おいてアクセスログの名前と IP で反映を確かめる段階です。