ジャーナル

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 クローラーではない。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つの問いに、別々に答えます。

  1. 自分のコンテンツをモデルの学習に使ってよいか。 GPTBot、ClaudeBot、Google-Extended、Applebot-Extended、CCBot、Bytespiderについて決めます。Google-Extendedを拒否してもGoogle検索からは外れませんし、Applebot-Extendedを拒否してもAppleの検索からは外れません。
  2. 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がサイトを読めるかどうかです。