111サイトがGPTBotを拒否、35件は検索用に触れず
Trancoの上位1,000ドメインのrobots.txt 545件(2026-10-06取得)を、学習用と回答用のAIトークンに分けて集計しました。それぞれの拒否の数と、実際のファイルにあった誤り(使われていない旧トークン、*のルールを黙って外す名前付きグループなど)。
上位1,000サイトのうち111件が、robots.txtでGPTBotを全面的に拒否しています。その111件のうち51件はOAI-SearchBotを全面的には拒否しておらず、51件のうち35件はOAI-SearchBotに一度も触れていません。GPTBotはOpenAIの学習用クローラーです。OAI-SearchBotは、ページがChatGPTの検索に出られるかどうかを決めるほうです。つまりOpenAIに「ノー」と言ったサイトの3分の1は、学習にだけノーと言っていて、そのほとんどはたぶん意図してそう決めたわけではありません。ファイルからはわかりません。誰にもわからない、というのがこの記事の主題です。
以下、各AIトークンが実際に何を制御しているか、2026-10-06時点の上位1,000サイトの数字、実際のファイルで見つけた誤り、そして意図どおりのポリシーを書く方法の順に書きます。
先に限界
- robots.txtはお願いです。 何もブロックしません。無視するクローラーはページを取得します。それに、サーバーやCDNが何をしているかについては何も言いません。以前の測定では、小規模事業者のサイト79件のうち19件が、多くは自分のrobots.txtに反して、少なくとも1つのAIクローラーをサーバーで拒否していました。以下はすべてファイルの話で、ボットが実際に取得できるかどうかの話ではありません。
- リスト: Trancoのリスト56WKN、2026-10-05生成、上位1,000件。llms.txtの集計と同じリスト、同じ到達可能な集合で、1,000ドメインのうちHTTPSに応答したのは742件です。残りはほとんどがWebサイトを持たないインフラ用のホスト名です。
- いつ、どうやって: 2026-10-06の09:59〜10:00 UTCに、ドメインごとに
https://<domain>/robots.txtを1回GETしました。日本の回線1本から、デスクトップChromeのUser-Agentで、リダイレクトは追っています。User-Agentによって別のrobots.txtを渡すサーバーもありえますが、それは試していません。1回のスナップショットなので、ファイルは変わりますし、AIの部分はほかより頻繁に変わります。 - 判定: RFC 9309のルールです。ボットは自分を名指ししたグループを使い、名指しのグループがない場合にだけ
User-agent: *に戻ります。空行は無視します。以下の「全面拒否」は/と深いパスの両方で拒否されていること、「部分拒否」は/は許可されているが少なくとも1つのDisallowが適用されることを指します。
742件のうち、545件がrobots.txtのファイルを返しました。144件はファイルがなく(76件が404など、68件が200でHTMLページを返し、パーサーはこれをルールのないファイルとして読みます)、53件は読めませんでした。45件が401か403、8件が5xx、202、429です。RFC 9309では4xxは「制限なし」、5xxは「すべて拒否とみなす」ですが、私は53件すべてを不明として数えています。
各トークンが制御しているもの
robots.txtで一番間違えられているのがここなので、各社自身のページ(2026-10-06に確認)から整理します。
| トークン | 運営 | 拒否すると何が起きるか |
|---|---|---|
GPTBot |
OpenAI | モデル学習のためのクローリングからのオプトアウト |
OAI-SearchBot |
OpenAI | ChatGPTの検索結果からのオプトアウト。OpenAI: “Each setting is independent of the others” |
ChatGPT-User |
OpenAI | ユーザーの操作で起きるアクセス。OpenAIはrobots.txtのルールが"may not apply"としている |
ClaudeBot |
Anthropic | 学習のためのクローリングからのオプトアウト |
Claude-SearchBot, Claude-User |
Anthropic | 検索品質のためのアクセスと、ユーザーの依頼によるアクセス |
anthropic-ai |
(Anthropic、旧) | Anthropicの現在のクローラーのページには載っていない。載っているのは上の3つだけ |
PerplexityBot |
Perplexity | Perplexityの検索インデックスからのオプトアウト。Perplexityはモデル学習には使わないとしている |
Perplexity-User |
Perplexity | ユーザーの操作による取得。Perplexityは、robots.txtのルールを"generally ignores"としている |
Google-Extended |
クローラーではない。Googleがすでにクロールしたコンテンツを、Geminiの学習に使ってよいかを制御する。Google: “does not impact a site’s inclusion in Google Search” | |
Applebot-Extended |
Apple | これもクローラーではない。Applebotが取得したものの学習利用を制御する。そうしたページも"can still be included in search results" |
CCBot |
Common Crawl | 多くの学習データセットの元になる、オープンなクロールからのオプトアウト |
Bytespider |
ByteDance | 学習用クローラー |
出典: OpenAI、Anthropic、Perplexity、Google、Apple、Common Crawl、RFC 9309。
効いてくるのは、学習用トークン(GPTBot、ClaudeBot、Google-Extended、Applebot-Extended、CCBot、Bytespider)と回答・検索用トークン(OAI-SearchBot、Claude-SearchBot、PerplexityBot)の区別です。学習用トークンを拒否しても、その会社の回答から外れるわけではありません。検索用トークンを拒否すると外れます。少なくとも、外れるよう求めることになります。ユーザーの操作で動くエージェントは、ほとんどがそもそもrobots.txtを読みません。
数字
n = 545件のrobots.txt、2026-10-06。
| トークン | 全面拒否 | うち名指し | うち*経由 |
部分拒否 | 許可 |
|---|---|---|---|---|---|
| Bytespider | 123 | 88 | 35 | 350 | 72 |
| CCBot | 121 | 88 | 33 | 348 | 76 |
| GPTBot | 111 | 83 | 28 | 351 | 83 |
| ClaudeBot | 109 | 78 | 31 | 353 | 83 |
| Google-Extended | 97 | 68 | 29 | 365 | 83 |
| PerplexityBot | 90 | 61 | 29 | 373 | 82 |
| Applebot-Extended | 90 | 57 | 33 | 380 | 75 |
| anthropic-ai | 84 | 47 | 37 | 385 | 76 |
| OAI-SearchBot | 61 | 35 | 26 | 400 | 84 |
この表から読み取れること。
- 「部分拒否」はほとんどノイズです。 GPTBotでは351件のうち322件が
*グループ由来で、Disallow: /searchや/cartのような、全クローラーに適用される普通のルールです。こうしたサイトにはAIのポリシーはありません。robots.txtがあるだけです。 - 「
*経由」もAIのポリシーではありません。 49ファイルは*グループにDisallow: /を持っています。全員を止める広告やCDNのホスト名もあれば、大手プラットフォームの許可リスト型(facebook.com、x.com、reddit.com、netflix.com、yelp.com)もあります。全員を止めてから、入れる相手を名指しする形です。そうしたファイルが名指ししていないボットにとっては、「*経由」も決定ではあります。ただしAIについての決定ではありません。 - 545ファイルのうち169件(31%)が、9つのトークンのどれかを名指ししています。 何らかのAIポリシーを書いているサイトの実数はこれです。
- OAI-SearchBotが拒否されている数は、GPTBotのおよそ半分です(61対111)。その一部は選択です。一部はそうではないことが、次の節でわかります。
上位100では55ドメインがファイルを返し、そのうち13件がGPTBotを全面拒否しています。amazon.com、x.com、pinterest.com、tiktok.com、yahoo.com、baidu.comなどです。9つのトークンすべてを全面拒否しているファイルは40件。私がまとめた4つの学習用トークン(GPTBot、Google-Extended、Applebot-Extended、CCBot)をすべて拒否し、OAI-SearchBotとPerplexityBotの両方を開けているのは13件でした。「何にも学習させないが、回答には私のページを使ってよい」という、すっきりしたポリシーです。思っていたより少ない数でした。
実際のファイルにあった誤り
学習を止めて、たぶんうっかり回答を開けている
GPTBotを全面拒否している111サイトのうち51件は、OAI-SearchBotを全面拒否していません。
- 16件はOAI-SearchBotを名指ししたうえで開けています。 yahoo.com、ebay.com、reuters.com、bloomberg.com、airbnb.com、forbes.com、tripadvisor.com、figma.comなど。これは決定で、筋も通っています。
- 35件は一度も触れていません。 medium.com、nature.com、apnews.com、techcrunch.com、latimes.com、webmd.com、goodreads.com、pixiv.netなど。OAI-SearchBotは各サイトの
*グループに落ち、そこでは拒否されません。それが望みなのかもしれません。ただ、GPTBotとOAI-SearchBotはどちらもOpenAIのもので、よく並べて紹介されます。片方を名指しで止めて、もう片方に触れていないサイトは、おそらく2つ目については決めていません。
逆のケースが1件ありました。facebook.comはファイルの最後をUser-agent: * / Disallow: /で締め、許可するボットを名指ししています。GPTBotはパスのルール付きで名指しされていますが、OAI-SearchBotは名指しされていないので、全部止めるグループに入ります。結果は、学習用クローラーは一部入れて、検索用クローラーは締め出し。ファイルが許可リスト型なら、書き忘れたトークンはすべて拒否になります。
もう誰も送ってこないトークンを止めている
4ファイルがanthropic-aiを全面拒否し、ClaudeBotには一度も触れていません。chatgpt.com、espn.com、repubblica.it、elmundo.esです。ClaudeBotは各サイトの*グループに戻り、一部しか制限されません。意図が「Anthropicの学習はお断り」なら、Anthropicが現在載せているクローラーについて、ファイルはそう言っていません。
ボットを名指しすると*グループが置き換わる
一番驚いたのはこれです。あるグループがGPTBotを名指しした時点で、GPTBotは*グループを完全に無視します。全員に対してDisallowしたものは、もうGPTBotには適用されません。
23サイトがGPTBotに全面拒否ではない専用のグループを与えていて、そのグループには*グループにあるDisallowのルールが欠けています。hp.comはUser-agent: GPTBot / Allow: /を持ち、これによって*グループの170のパス(注文状況のページ、サイト内検索、ログインフォーム、/api/)がGPTBotには適用されなくなっています。外れているパスは、vimeo.comで325、kleinanzeigen.deで215、cisco.comで175、wordpress.orgで4(/wp-admin/を含む)。OAI-SearchBot(28サイト)とPerplexityBot(25サイト)でも同じ形です。
それを望んでいる運営者もいるかもしれません。ただ、*のルールの大半は、クローラーをカートや検索のページに入れないためにあります。AIクローラーだけをそこに入れたいと考えた人がいるとは思えません。名指しのグループを足すなら、*のルールもそこにコピーしてください。
どのクローラーにも一致しないトークン
6ファイルに、9つのトークンのどれかを惜しくも外したUser-agentの値がありました。
- lemonde.fr:
User-agent: CCBo(その前に正しいCCBotのグループもあるので実害なし) - usatoday.com:
User-agent: Claude。Anthropicのクローラーで、これをトークンとして送るものはありません - linktr.ee:
User-agent: GoogleとContent-Signalの行。GoogleのトークンはGooglebotとGoogle-Extendedです - bestbuy.com:
GPTBot-Web、nbcnews.com:ByteSpider Desktop、bloomberg.com:Bytespider-Image
一致の判定はプロダクトトークン全体で行われ、大文字小文字は区別しません。ClaudeはClaudeBotに一致しません。これらの行は何もしていません。
グループの途中の空行
58ファイルが、User-agentの行とそのルールの間に空行を入れています。chatgpt.comは*で、hp.comは名指ししているすべてのAIトークンでそうしています。RFC 9309は空行を無視するので、準拠したパーサーは作者の意図どおりに読みます。1994年の古い慣習では空行でレコードが終わるので、それに沿って書かれたパーサーなら、そうしたルールは誰のものでもないと見なします。今もその読み方をするクローラーがあるかは試していません。空行を消すのにコストはかかりません。
どのグループよりも上にあるルール
sophos.comは、ファイル冒頭のUser-agent: *の行をコメントアウトし、その下のAllow: /を、最初の本物のグループより上に残しています。どのUser-agent行よりも前にあるルールはどのグループにも属さず、誰にも適用されません。今回はAllowなので害はありませんが、同じ編集をDisallowにしていたら、そのルールは黙って消えます。
自分のポリシーを決める
2つの問いに、別々に答えます。
- 自分のコンテンツをモデルの学習に使ってよいか。 GPTBot、ClaudeBot、Google-Extended、Applebot-Extended、CCBot、Bytespiderについて決めます。Google-Extendedを拒否してもGoogle検索からは外れませんし、Applebot-Extendedを拒否してもAppleの検索からは外れません。
- AI検索に引用され、リンクされてよいか。 OAI-SearchBot、Claude-SearchBot、PerplexityBotについて決めます。これらを拒否すると、それぞれの回答から外れます。少なくとも、外れるよう求めることになります。
ユーザーの操作で動くエージェント(ChatGPT-User、Claude-User、Perplexity-User)は3つ目の別物で、各社自身の説明では、robots.txtはほとんど効きません。止める必要があるなら、それはrobots.txtの1行ではなく、サーバーのルールの仕事です。
「学習はお断り、回答はどうぞ」を、名指しのグループが*のルールを落とさないように繰り返して書くと、こうなります。
User-agent: GPTBot
User-agent: ClaudeBot
User-agent: Google-Extended
User-agent: Applebot-Extended
User-agent: CCBot
User-agent: Bytespider
Disallow: /
User-agent: OAI-SearchBot
User-agent: Claude-SearchBot
User-agent: PerplexityBot
Disallow: /cart
Disallow: /search
User-agent: *
Disallow: /cart
Disallow: /search
User-agentの行が続くと、1つのグループになります。決めたトークンは、決定が「許可」であってもすべて名指ししてください。次にファイルを編集する人が、決めた結果だと読み取れるように。
そのうえで、各クローラーにサーバーが実際に何を返しているかを確かめてください。robots.txtはお願いにすぎず、CDNのルールが、ファイルで許可したボットを拒否したり、拒否したボットを通したりします。
生データ(ドメインごとに1行のJSON、取得したすべてのrobots.txt、プローブと分析のスクリプト)は上の日付のまま保管しています。ドメインごとの表が必要な方はご連絡ください。
ツールで確かめる場合
無料のAIクローラーチェックは、GPTBot、ClaudeBot、PerplexityBotについて、robots.txtが許可しているかどうかと、サーバーが実際に返すステータスを並べて表示します。
1サイトを人の手で一通り見てほしい場合は、同じページの9,800円のミニ診断で、クローラーのアクセスと機械可読性を確認します。ボットごとのrobots.txt、サーバーの応答、構造化データ、サイトマップ、llms.txtです。AIエンジンには質問を送らないので、回答に出てくるかどうかはわかりません。わかるのは、AIがサイトを読めるかどうかです。