content/article-ai-crawler-block.md
Workspace snapshot · 09/04 13:33
「AIに学習させたくない」でrobots.txtを貼ると、AI検索からも消えることがある
顧客から「うちのサイト、AIに学習させたくないんだけど」と言われることが増えました。 検索すると「AIボットをブロックするrobots.txt」がいくつも出てきます。貼れば終わり、に見えます。
ただ、その設定は「学習を断る」だけでなく「AI検索の結果に出ない」も同時に切っていることがあります。 そして検索結果から消えたことは、画面のどこにも出ません。
この記事は、その仕組みと、いま自分のサイトがどうなっているかの確認方法をまとめたものです。
OpenAIは、検索表示用と学習用のクローラーを分けている
OpenAI公式のクローラー説明に、4つのUser-agentが載っています。
| User-agent | 用途 |
|---|---|
OAI-SearchBot | ChatGPTの検索機能に表示されるためのクロール |
GPTBot | 生成AIモデルの学習用のクロール |
ChatGPT-User | ユーザーがChatGPTで質問したときの取得(ユーザー操作起点) |
OAI-AdsBot | 広告用。学習には使われない |
そして同じページに、こう書かれています。
each setting is independent of the others
それぞれ独立した設定です。 つまり「学習は断りたいが、AI検索には出たい」は成立します。
ところが、出回っているブロック用robots.txtの多くは、GPTBot と一緒に OAI-SearchBot も
Disallow に入れています。学習を断ったつもりで、ChatGPTの検索結果から自分を外している
状態になりえます。
Perplexityも同じ構造。しかも検索用は学習に使われない
Perplexity公式によると、
PerplexityBot— Perplexityの検索結果に表示されるためのクローラー。 AI foundation models の学習には使われないPerplexity-User— ユーザーの質問に答えるためのページ訪問。 "generally ignores robots.txt rules"
ここが重要で、PerplexityBot はそもそも学習に使われていません。
学習を断る目的でこれを塞ぐと、得るものが無いまま検索結果から消えることになります。
Anthropicは3つに分かれている
Anthropic公式では、
ClaudeBot— 学習に寄与しうるコンテンツの収集Claude-SearchBot— 検索結果の品質向上Claude-User— ユーザーの質問に応じた取得
やはり学習用と検索用が別です。ClaudeBot だけを止めるという選択ができます。
ユーザー操作起点のものは、robots.txtが効かない場合がある
ChatGPT-User / Perplexity-User / Claude-User は、いずれもユーザーの操作で動きます。
各社ともrobots.txtが適用されない場合があると説明しています
(Perplexityは "generally ignores robots.txt rules" と明記)。
robots.txtに書いたからといって、そのとおり止まるとは限りません。ここは期待しすぎないほうがいいです。
確認できなかったこと
Google-Extended の用途は、この記事では確認できていません。
Google検索セントラルのクローラー概要ページに記載が見つからず、個別ページを取得したら404でした。
広く使われているトークンですが、分類は未確認のままにしておきます。
で、自分のサイトはどうなっているのか
robots.txtを開いて、Disallow されているUser-agentを、この表と突き合わせてください。
User-agent: GPTBot
Disallow: /
User-agent: OAI-SearchBot ← ここが入っていると、ChatGPTの検索結果に出ません
Disallow: /
学習だけ断りたいなら、検索用は許可したままにできます。
# 学習は断る
User-agent: GPTBot
Disallow: /
User-agent: ClaudeBot
Disallow: /
# 検索表示は許可する(何も書かなければ許可)
念のため書いておくと、学習を断ること自体は正当な選択です。 この記事は「断るな」と言っているのではなく、「両方に効いていますが、それは意図どおりですか」 とだけ聞いています。
コマンドで一覧にする
一件ずつ突き合わせるのが面倒なので、robots.txtを読んで 学習用と検索用に分けた表を出すだけのCLIを書きました。読み取り専用で、外部パッケージ不要です。
| クローラー | 提供元 | 用途 | robots.txt |
|--------------------|-----------|------------------|-----------|
| OAI-SearchBot | OpenAI | AI検索への表示 | **拒否** |
| GPTBot | OpenAI | モデルの学習 | **拒否** |
| PerplexityBot | Perplexity| AI検索への表示 | 許可 |
学習用と検索用の両方を拒否しています。この2つは独立した設定です。 学習だけ断りたい場合、検索用は許可したままにできます
llms.txt を置きながら検索用クローラーを拒否している場合だけ、ERRORにしています。
AIに読ませる案内を出しながら締め出しているのは、宣言と設定が矛盾しているためです。
(llms.txt は提案であり、正式な標準ではありません。無くても問題ありません。)
この記事について
PENGIN Tools(Web制作の面倒な作業を、小さなツールでなくすツールボックス)の一部として書きました。 設計・実装・文章はAIエージェントが担当しています。
各社の用途の分類は、上にリンクした公式ドキュメントを実際に取得して確認したものだけを載せ、
確認できなかった Google-Extended は未確認と書いてあります。
robots.txtの記述を読んだ話であって、実際にAIがあなたのサイトを何と説明するかは、これでは分かりません。