IT技術ブログ

AIクローラーのrobots.txt設定例。GPTBot・ClaudeBot と Google-Extended・PerplexityBotを学習用と検索用に分けて書き、Cloudflare側の設定まで確かめる

AIクローラーをrobots.txtで扱う設定例です。GPTBot・ClaudeBot と Google-Extended・PerplexityBotを学習用と検索用に分けて書く方法と、Cloudflare側のAIボット設定の確かめ方まで。

この記事の結論:AIクローラーを robots.txt で扱うときは、各社の読み取りを「学習用」「検索用」「利用者の依頼でその場で読みに来るもの」の3つに分け、止めたいものの名前だけを User-agent に書きます。AIの学習だけを断るなら、止めるのは GPTBot・ClaudeBot と Google-Extended に代表される学習用で、Googlebot・Claude-SearchBot・OAI-SearchBot、さらに PerplexityBot は止めません。書くときは、名前を指定したグループには User-agent: * の規則が引き継がれない点に気をつけます。そして、Cloudflare のようなCDNを通しているサイトは、robots.txt とは別にCDN側のAIボット設定で読み取りが止まっていないかを必ず確かめます。2026年9月15日以降に追加したドメインは、広告を出すページで学習用とエージェント用が既定でブロックされるためです。

この記事は、会社のサイトの robots.txt を書き換える担当者と開発者に向けた設定の記録です。止めるべきかどうかの考え方ではなく、実際に何をどう書き、どこで確かめるかを扱います。設定例の一つは、このブログ(Astro で静的なHTMLを作り、Cloudflare の配信基盤(Pages)で公開)で今使っているものです。各社の仕様は、末尾に挙げた公式の説明と照らし合わせました(確認は2026年10月3日)。

AIクローラーは学習用・検索用・利用者の依頼用の3つに分けて書く

AIの提供会社の多くは、目的ごとに読み取りのプログラム(クローラー)の名前を分けています。robots.txt では名前ごとに許可と拒否を書けるので、まず名前を目的で仕分けます。

提供会社 学習用 検索用 利用者の依頼で読みに来るもの
OpenAI GPTBot OAI-SearchBot(答えの検索) ChatGPT-User(操作した人が起点なので、robots.txt の規則が効かないこともあるという説明)
Anthropic ClaudeBot Claude-SearchBot(答えの検索) Claude-User(3つとも robots.txt の指示を守るとAnthropicは書いている)
Perplexity 基盤モデルの学習目的の収集はしないと公式に記載 PerplexityBot(答えの検索) Perplexity-User(依頼に応じた取得のため、robots.txt はおおむね無視される)
Google Google-Extended(独立した製品トークン。読み取り自体は既存のGoogleのクローラーが行う) Googlebot ―

表の右の列は、利用者がAIに「このページを読んで」と頼んだときなどに、その場でページを取りに来るものです。OpenAI と Perplexity はこの種類に robots.txt が効かない場合を認めており、robots.txt だけで確実に止められる種類ではありません。

Google-Extended は、Googlebot と別の名前で読みに来るわけではありません。Googlebot などが読んだ内容を、Gemini の今後のモデルの学習と、Gemini アプリ・Vertex AI の回答の根拠づけ(グラウンディング)に使ってよいかを伝えるための名前です。Googleは、Google-Extended の指定が Google検索への掲載や順位に影響しないと明記しています。

設定例1:学習用だけを断り、検索用と利用者の依頼は通す

AIの答えに自社が出る道は残しつつ、学習への利用だけを断る書き方です。

robots.txt(学習用だけ拒否)txt
# 学習用:拒否
User-agent: GPTBot
User-agent: ClaudeBot
User-agent: Google-Extended
Disallow: /

# それ以外(検索用・利用者の依頼用を含む):管理画面以外を許可
User-agent: *
Disallow: /admin/

Sitemap: https://www.example.co.jp/sitemap.xml

User-agent の行を続けて並べると、その下の規則は並べた全部の名前に効きます。名前の大文字と小文字は区別されません。

名前を指定したグループには、User-agent: * の規則が足されない

ここがいちばん間違えやすい所です。Googleの robots.txt の仕様では、1つのクローラーが従うグループは1つだけで、自分の名前に最も具体的に一致するグループを選びます。上の例で、もし学習用を拒否せず次のように書くと、GPTBot は Disallow: /admin/ を読みません。

意図と違う書き方の例txt
User-agent: GPTBot
Allow: /

User-agent: *
Disallow: /admin/

GPTBot には自分の名前のグループがあるので、User-agent: * のグループは見ません。名前を指定したグループを作るときは、全体に効かせたい Disallow をそのグループにも書き直します。同じ名前のグループが複数あると、Google のクローラーはそれらの規則をまとめて扱います。

検索用まで一緒に止めていないかを見る

「AI」を含む名前をまとめて拒否する書き方を、ほかのサイトの例から写すと、PerplexityBot や Claude-SearchBot、OAI-SearchBot まで紛れ込んでいる例があります。Claude-SearchBot については、拒否すると検索の結果での見え方や正確さが落ちうるとAnthropicが書いており、OpenAI も検索用の名前を拒否すれば ChatGPT 内の検索結果には載らないという立場です。学習用の行に検索用の名前が混じっていないかを、表と1つずつ照らします。

設定例2:すべて許可する(このブログの設定)

このブログは、AIの答えでの紹介を優先して、どのクローラーも止めていません。Astro では public/robots.txt に置いたファイルが、そのまま書き出し先のルートに配られます。

public/robots.txt(このブログ)txt
User-agent: *
Allow: /

Sitemap: https://www.yamayamabloglink.com/sitemap-index.xml

Sitemap は、正式なホストに決めた www 付きの絶対URLで書いています。www なしのホストで robots.txt を取りに来たアクセスも、Pages の関数(ミドルウェア)が www の同じパスへ 301 で送るので、どちらのホストで読まれても同じ中身が返ります。robots.txt はホストごとのファイルなので、ホスト名を寄せたサイトでは、寄せる前のホストで何が返るかも確かめておきます。

すべて許可するだけなら、robots.txt を置かないのと結果は同じです。それでも置いているのは、サイトマップの場所を伝えるためです。

設定例3:AIに読ませたくないページがある場合

一部のページだけをAIの読み取りから外したいときは、そのパスだけを学習用のグループに書きます。

一部のパスだけ学習用から外す例txt
User-agent: GPTBot
User-agent: ClaudeBot
User-agent: Google-Extended
Disallow: /members/
Disallow: /admin/

User-agent: *
Disallow: /admin/

ただし robots.txt は誰でも読めるファイルで、書いたパスは公開されます。また、読み取りを断る「お願い」であって、アクセスを止める仕組みではありません。人に見られて困るページは、robots.txt に頼らず、ログインなどで閲覧そのものを制限します。

robots.txtより先に、CDN側のAIボット設定を確かめる

Cloudflare などのCDNを通しているサイトは、robots.txt を正しく書いても、CDN の設定が別に読み取りを断っている場合があります。robots.txt は相手に従ってもらう約束ですが、CDN のブロックはリクエストそのものを断るため、こちらが優先して効きます。

Cloudflare では、AIのボットを3つの分類で扱います。

分類 Cloudflare の説明の要旨 選べる扱い
Search(答えの検索) あとで質問に答えるために内容を索引するクローラー 許可/全ページでブロック/広告を出すページだけブロック
Agent(エージェント) 人の代わりにその場で動く読み取り。チャットの取得やブラウザ操作など 同上
Training(学習) モデルの学習や調整のために内容を取るクローラー 同上

Cloudflare の変更履歴によると、2026年9月15日からは新しく追加したドメインの既定が変わり、学習用とエージェント用は「広告を出すページだけブロック」、検索用は許可になりました。検索と学習の両方に使うボットは、学習用のブロックの対象に入ります。これまでの「Block AI bots」の設定は、同じ日に廃止予定とされています。

このブログのドメインを Cloudflare に加えたのは2026年10月2日で、記事に広告を出しているので、まさにこの既定が当てはまる条件でした。追加の作業のときに、検索・エージェント・学習の3つとも「許可」にしてあることを確かめ、作業手順書に記録しています。

管理された robots.txt が足されていないか

この CDN には、AIクローラー向けの robots.txt を自動で用意する設定(managed robots.txt)もあります。有効にすると、元の robots.txt の前に Cloudflare の記述が足され、GPTBot・ClaudeBot と Google-Extended を含む学習用への Disallow と、利用の範囲を示す Content-Signal の行が入ります。元のファイルが無い場合は、Cloudflare が一から作ります。

リポジトリの robots.txt だけを見ていると、この追加に気づけません。公開中のURLを取得して、手元のファイルと比べます。

書き換えたあとに確かめる手順

  1. 公開中の robots.txt を取得して、手元と比べる。 CDN が行を足していないかを比べます
sh
curl -s https://www.example.co.jp/robots.txt
curl -sI https://example.co.jp/robots.txt   # 寄せる前のホストが 301 で正式なホストへ向くか
  1. Google 側の記録を、設定画面の robots.txt レポートで開く。 Google が最後に取得した robots.txt と、取得の成否を確かめられます
  2. CDN の管理画面で、AIボットの扱いを見る。 Cloudflare なら、セキュリティの設定の中にある AI ボットの方針で、3つの分類それぞれの扱いを確かめます
  3. 1日置いてから結果を見る。 Google は robots.txt を通常24時間までキャッシュし、OpenAI も OAI-SearchBot への反映に約24時間かかることがあるとしています

クローラーの名前を -A で名乗ってページを取得する確認も手軽ですが、名乗っているだけなので、IPアドレスで判定するブロックは再現できません。各社は本物のクローラーのIPアドレスの一覧を公開しているので(3社とも、下に挙げた各社の説明のページから辿れます)、サーバーのログで判定するときはそちらと照らします。

迷ったときの決め方

目的から逆に決めると、設定は次のどれかになります。

目的 robots.txt CDN のAIボット設定
AIの答えに出ることを優先する すべて許可(または置かない) 3分類とも許可
答えには出たいが、学習には使わせたくない 学習用の名前だけ拒否 学習は止めてよいが、検索は許可。検索と学習を兼ねるボットが学習側で止まる点は承知しておく
AIとの関わりを最小にしたい 学習用・検索用とも拒否(Googlebot は止めない) 3分類ともブロック

どの目的を選んでも、Googlebot を拒否した時点でふつうの検索からも外れるので、そこは分けて考えます。読み取りを許可したあと、AIからの訪問がどれだけ来ているかは、GA4でAI検索からの訪問を数える設定で記録しています。

robots.txt の方針を決め、AIの答えで社名がどう扱われているかまで追う作業は、自社の会社サイトでも続けてきました。ほかの会社のサイトを見る際も、株式会社bundlyzeでは robots.txt と CDN の設定を合わせて確かめており、その点検はSEO・LLMO対策の支援で受け付けています。

参照した各社の公式ページ(2026年10月3日時点の内容)

よくある質問

GPTBotだけ拒否すれば、ChatGPTの検索の答えには今までどおり出ますか?

OpenAIの説明では、検索の答えに表示するための読み取りは OAI-SearchBot が担い、GPTBot とは別に扱われます。GPTBot だけを断っても、検索担当の OAI-SearchBot を通している限り検索の答えへの表示には響かない、という整理です。ただし、CDNのAIボット設定で検索と学習を兼ねるボットまで止めていると、robots.txt とは別のところで読み取りが止まります。

Google-Extendedを拒否すると、AI Overviewsに出なくなりますか?

Google-Extended は Gemini の学習と回答の根拠づけ(グラウンディング)に使ってよいかを伝えるための名前で、Google検索への掲載や順位には影響しないと、Googleのクローラーの説明にあります。検索のAI機能は通常の検索の仕組みの上で動くため、Googlebot を止めない限り、検索側の扱いは変わりません。

robots.txtを書き換えたら、どれくらいで反映されますか?

Googleによると robots.txt は通常24時間までキャッシュされます。OpenAIも、OAI-SearchBot について robots.txt の変更が仕組みに反映されるまで約24時間かかることがあると書いています。書き換えた直後に結果が変わらなくても、1日ほど置いてから確かめます。