ClaudeBotをブロックするrobots.txtの書き方 — 3つのボットの使い分け
AnthropicはClaudeBot・Claude-User・Claude-SearchBotの3つを使い分けています。学習・ユーザー取得・検索のどれを止めるかで、robots.txtの書き方と起きる変化が変わります。
Anthropicがウェブから情報を集めるボットは3つあります。ClaudeBot、Claude-User、Claude-SearchBotです。サイトの管理者は、robots.txtにボット名ごとの指示を書くことで、どれを受け入れてどれを断るかを選べます。
学習に使われたくないだけなら、ClaudeBotだけを止めれば足ります。3つを一括で止めると、Claudeの回答や検索結果にサイトが出にくくなる可能性があります。この記事は、止める対象の選び方と、書き方、つまずきやすい点をまとめます。
3つのボットは何を集めに来るのか
ヘルプセンターの記事は、3つのボットを用途ごとに分けて説明しています。
Anthropicの3つのボット
ClaudeBot
モデルの有用性と安全性を高めるため、学習に使われる可能性があるウェブコンテンツを集めます。
Claude-User
Claudeのユーザーが質問したとき、その依頼に応じてウェブサイトにアクセスします。
Claude-SearchBot
検索結果の品質を高めるため、ウェブ上の内容を解析します。回答の関連性と正確さが目的です。
アクセスが起きるきっかけも違います。利用者の質問に応じて動くのはClaude-Userだけで、ClaudeBotとClaude-SearchBotは利用者の操作と関係なく巡回します。
止めると何が変わるか
ヘルプセンターは、ボットごとに「無効にしたときに起きること」を書き分けています。ここが使い分けの判断材料です。
| ボット | 止めたときの説明 | 狙い |
|---|---|---|
| ClaudeBot | 止めたときの説明サイトの今後の素材が、モデルの学習データセットから除外される | 狙い学習への利用を避ける |
| Claude-User | 止めたときの説明利用者の質問に応じてコンテンツを取得できなくなり、ユーザー指示の検索でサイトが見えにくくなる可能性がある | 狙いユーザー依頼でのアクセスを断る |
| Claude-SearchBot | 止めたときの説明検索最適化のためのインデックス化が止まり、検索結果での可視性と正確さが下がる可能性がある | 狙い検索用の収集を断る |
ClaudeBotの説明にあるのは「今後の」素材の除外です。ヘルプセンターの記事には、収集済みのデータを取り消す手続きは載っていません。過去の分が気になるときは、ヘルプセンター記事の末尾にある連絡先に、サイトのドメインを含むメールで問い合わせます。
一方、Claude-UserとClaude-SearchBotは「可視性が下がる可能性がある」という書き方です。学習とは別の軸で、Claudeの回答にサイトが現れるかどうかに関わります。Claudeが検索をどう使うかはClaude Web検索の使い方で触れています。
robots.txtの書き方
指示はサイトの最上位ディレクトリに置いたrobots.txtに書きます。サブドメインがあるなら、オプトアウトしたいサブドメインごとに同じ設定が必要です。
学習だけを止める
ClaudeBotだけをサイト全体で断る最小の形です。ヘルプセンターの例と同じ書き方です。
User-agent: ClaudeBot
Disallow: /Claude-UserとClaude-SearchBotには何も書いていないので、この2つには制限がかかりません。「学習は避けたいがClaudeの回答には出たい」サイトの設定は、この1組だけで済みます。逆に、検索用だけを断ってほかは許すといった組み合わせも、止めたいボットだけを書けば成立します。
3つをすべて止める
ボットごとにUser-agentの行を分けて並べます。次の例は、User-agentとDisallowの組をボットの数だけ書く標準的な形に沿った書き方で、出典の例を3つ分に展開したものです。
User-agent: ClaudeBot
Disallow: /
User-agent: Claude-User
Disallow: /
User-agent: Claude-SearchBot
Disallow: /特定のディレクトリだけ止める
サイト全体ではなく一部だけ断るなら、Disallowにパスを書きます。Allowを併用すると、止める範囲の中に例外を作れます。
User-agent: ClaudeBot
Disallow: /members/
Allow: /members/public/RFC 9309(robots.txtの標準仕様)は、AllowとDisallowが両方当てはまるときは、パスが長い(より具体的な)ほうを使うと定めています。上の例なら、/members/public/の下は許可され、/members/のそれ以外は止まります。パスの照合は大文字小文字を区別するのが原則なので、/Members/と/members/は別物として扱われます。
グループの照合で気をつけること
同じファイルにUser-agent: *のグループとボット名のグループを並べるときは、照合の順序を知っておくと混乱しません。RFC 9309は次のように定めています。
- ボット名の照合は大文字小文字を区別しない。
claudebotとClaudeBotは同じグループに当たる - 自分の名前に当たるグループがあれば、そのグループの規則だけに従う。
*のグループは使われない - 名前に当たるグループがなく、
*のグループがあるときだけ、*の規則に従う - どちらも無い、またはグループの中に当てはまる規則が無ければ、そのURLは許可される。
/robots.txt自体も常に許可される扱いで、Disallow: /を書いても読めなくなりません - 同じボット名のグループが複数あるときは、規則が1つのグループに統合される。ファイルの途中で同じ名前を書き足しても、前の規則は消えない
たとえば*で/private/を止め、ClaudeBotのグループに別の規則を書くと、ClaudeBotは/private/の止め方を*から引き継ぎません。ClaudeBotにも/private/を断らせたいなら、ClaudeBotのグループにも同じ行を書く必要があります。
取得の頻度を抑える
完全に止めずに負荷だけ下げたいときは、Crawl-delayが使えます。
User-agent: ClaudeBot
Crawl-delay: 1Crawl-delayはrobots.txtの非標準の拡張です。Anthropicは、同じドメインへのクロール速度に配慮し、Crawl-delayを適切な範囲で尊重するとしています。ただし、すべてのクローラーが解釈する指示ではありません。数値の単位や効き方はヘルプセンターの例以上には説明がないので、アクセスログを見ながら調整する前提です。
設定したあとに確認すること
robots.txtが公開URLで読めるかは、手元から確かめられます。
curl -s https://example.com/robots.txt \
| grep -n -i -A1 "claude"サブドメインがあるなら、それぞれのホストで同じ確認をします。www.example.comに書いてもblog.example.comには効きません。
アクセスログで本物のボットかを確かめる
公開できていても、実際にボットが従っているかはアクセスログで確かめられます。User-AgentにClaudeBotなどの名前が入ったリクエストを抜き出し、設定の反映後にも続いていないかを見ます。
grep -i -E "ClaudeBot|Claude-User|Claude-SearchBot" access.log \
| awk '{print $1, $4, $7}' | tail -20User-Agentの文字列は誰でも名乗れるため、名前だけでは本物とは限りません。ヘルプセンターの記事は、ボットの接続元IPの一覧を案内していて、送信元がその一覧にあれば、Anthropicから来たクローラーだと示されます。ログに出た接続元のIPを、その一覧と突き合わせると、名乗りだけの別のクローラーと区別できます。
なお、IPの一覧は個別の記事ではなくヘルプセンターの記事からのリンク先にあります。ブロックの手段として使うものではなく、確認用の資料です。
つまずきやすい点
IPアドレスでのブロックは勧められていない
ヘルプセンターは、ボットの接続元IPをブロックする方法を「正しく、または継続して機能しない場合がある」としています。理由は、IPで弾くとAnthropicのボットがrobots.txtを読めなくなるためです。オプトアウトはrobots.txtの変更で行う、という整理です。
robots.txtを守る前提のボットである
Anthropicのボットは、robots.txtの「クロールしない」という指示を守るとしています。CAPTCHAのような回避防止の仕組みを破ろうともしない、とも書いています。ただし、これはボットの側の方針で、サイト側の設定がrobots.txt以外の手段で担保されるわけではありません。
3つを区別せずに止めると、検索側の可視性も落ちる
学習を避けたい気持ちから、ボットを丸ごと止めてしまうことがあります。しかしClaude-UserとClaude-SearchBotの説明には、可視性が下がる可能性が明記されています。止める前に、そのサイトがClaudeの回答に出ることに価値があるかを考えると、設定が決めやすくなります。
APIのWeb Fetchでもrobots.txtが関わる
Claude APIのWeb Fetchツールにはurl_not_allowedというエラーがあり、原因の例としてプライベートアドレスなどと並んでrobots.txtが挙げられています。つまり、robots.txtでアクセスを断っているページは、Anthropic側の制限としてツール経由の取得でも弾かれる場合があります。このエラーがどのボット名の設定に対応するかは、ツールのドキュメントに記載がありません。ツールの仕様はWeb Fetchツールのキャッシュ回避の記事も参考になります。
目的別の設定早見表
| サイト運営者の関心 | ClaudeBot | Claude-User | Claude-SearchBot |
|---|---|---|---|
| 学習に使われたくないが、Claudeの回答には出たい | ClaudeBot止める | Claude-User許可 | Claude-SearchBot許可 |
| Claudeの検索結果に出さないが、ユーザーの依頼取得は許す | ClaudeBot任意 | Claude-User許可 | Claude-SearchBot止める |
| Claude経由の取得を一切避けたい | ClaudeBot止める | Claude-User止める | Claude-SearchBot止める |
| 負荷だけ下げたい | ClaudeBotCrawl-delayで調整 | Claude-User同左 | Claude-SearchBot同左 |
学習への利用が著作権法上どう扱われるかや、robots.txtが法的判断でどう位置づけられるかは、著作権法30条の4とClaudeのAI学習に詳しくあります。Claudeを使わない人の個人データがどう扱われるかは、Non-User Privacy Policyの解説が扱っています。
よくある質問
設定の不具合や、ボットの誤動作はどこに伝えるのか
ヘルプセンターの記事に連絡先があります。確認のため、対象のドメインを含むメールアドレスから連絡するよう求められています。そうでないと報告の真偽を確かめにくいためです。
変更内容の通知を受け取れるか
ヘルプセンターの記事は、重要な変更があったときに通知を受け取るための購読フォームを案内しています。記事末尾の「Subscribe to updates」から登録できます。