robots.txtでAIクローラーをブロックする書き方と注意点

robots.txtファイルをテキストエディタで編集している画面

「AIクローラーをrobots.txtでブロックしたい」と思っても、具体的にどう書けば意図通りに動くのか、迷ったことはないでしょうか。GPTBotやClaudeBotといった個別のクローラー名は知っていても、robots.txt自体の構文ルールやユーザーエージェントの書き分け方を誤ると、ブロックしたつもりが効いていなかったり、逆に許可したいクローラーまで止めてしまったりすることがあります。

本記事では、robots.txtの基本構文から、AIクローラーを個別にブロックする際の具体的な記述例、書く際によくある間違い、設定後の確認方法までを解説します。

この記事のポイント
  • robots.txtはUser-agent・Disallow・Allowの3要素を組み合わせて書く。クローラーごとにブロックを分けて記述するのが基本
  • AllowとDisallowのルールが競合した場合は、より具体的な(文字数が長い)パスのルールが優先される
  • クローラー名は各社の仕様変更で更新されることがあり、古い記述例をそのまま使い回すと意図通りブロックできないことがある
目次

robots.txtでAIをブロックする前に知っておきたい基本

サイトのルートディレクトリに設置されたファイルのイメージ

robots.txtは、サイトのルートディレクトリ(例:https://example.com/robots.txt)に設置するテキストファイルで、クローラーに対して「どのページにアクセスしてよいか」を伝えるためのものです。Googleの公式ガイドでも、サイトの最上位ディレクトリに1つだけ設置する必要があると案内されています。サブディレクトリに置いてしまうと、クローラーはファイルを認識しません。

まず押さえておきたいのは、robots.txtはクローラー側の自主的な協力を前提とした「お願い」であり、記述したからといって100%アクセスを止められる保証はないという点です。それでも、主要なAI企業のクローラーは基本的にrobots.txtのルールを尊重すると案内しており、正しく書くこと自体には十分な意味があります。

robots.txtの基本構文|User-agent・Disallow・Allowの書き方

robots.txtは、次の3つの要素を組み合わせて記述します。

  • User-agent:ルールを適用する対象のクローラー名を指定する行
  • Disallow:アクセスを禁止するパスを指定する行
  • Allow:Disallowで禁止した範囲の中で、例外的にアクセスを許可するパスを指定する行

基本形は、User-agentの行の直後に、そのクローラーに適用したいDisallow・Allowの行を続けるという構造です。1つのUser-agentにつき1つのルールのまとまりを作り、対象のクローラーを変えるときは新しいUser-agentの行から書き直します。行の先頭に「#」を置くと、その行はコメントとして扱われクローラーには無視されるため、設定の意図をメモとして残しておくのに便利です。

サイト全体へのアクセスを禁止したい場合は、次のように書きます。

  • User-agent: クローラー名
  • Disallow: /

「Disallow: /」はサイト全体を禁止する指定です。特定のディレクトリだけを禁止したい場合は「Disallow: /members/」のようにパスを指定し、逆にDisallowの行自体を書かなければ、そのクローラーは既定どおりアクセスできます。AllowとDisallowのルールが競合した場合、Googleの公式ガイドによると、より長く具体的なパスを指定したルールが優先されます。また、パスの指定は大文字・小文字が区別される点にも注意が必要です。

主要AIクローラーを個別にブロックする記述例

複数の企業のクローラーがサイトへアクセスしている様子

AIクローラーは企業ごとに複数のユーザーエージェントを使い分けているため、「1社につき1行書けば終わり」とは限りません。例えばOpenAIは学習用のGPTBot、検索・引用用のOAI-SearchBot、ユーザー代行型のChatGPT-Userを別々に運営しています。学習用クローラーだけを拒否し、検索・引用用や代行アクセス型はそのまま許可したい場合の記述例は次の通りです。

  • User-agent: GPTBot
  • Disallow: /
  • User-agent: Google-Extended
  • Disallow: /
  • User-agent: CCBot
  • Disallow: /

ここで注意したいのが、Anthropicのクローラー名です。Anthropicは以前「anthropic-ai」という単一のユーザーエージェントで学習用クローラーを運営していましたが、現在はClaudeBot(学習用)、Claude-SearchBot(検索・引用用)、Claude-User(ユーザー代行型)という3つの役割別クローラーに移行しています。Search Engine Journalによると、この体制移行によりサイト運営者は用途ごとにより細かくアクセス許可を制御できるようになりました。古い記事や過去に作成したrobots.txtの記述例をそのまま流用すると、廃止済みの「anthropic-ai」を指定してしまい、現行のClaudeBotへの対処になっていないというケースが起こり得ます。学習用のClaudeBotのみを拒否する場合の記述は次の通りです。

  • User-agent: ClaudeBot
  • Disallow: /

このように、クローラー名は各社の仕様変更にともなって更新されることがあるため、設定前には現在有効なユーザーエージェント名を確認しておくことが欠かせません。

書く際によくある間違いと注意点

robots.txtは構文自体はシンプルですが、次のような間違いが起こりやすい部分です。

  • ファイルの設置場所の間違い:サブディレクトリに置いてしまうと認識されない。必ずドメイン直下に置く
  • 「Disallow:」の後ろにパスを書き忘れる:この場合は「何も禁止しない」という意味になり、禁止したつもりが素通りしてしまう
  • 1つのUser-agentの行に複数のクローラー名をまとめて書いてしまう:robots.txtではクローラーごとにUser-agentの行を分けて書く必要がある
  • 末尾のスラッシュの有無を混同する:「Disallow: /blog」は「/blog」で始まるすべてのパスに一致し、「Disallow: /blog/」は「/blog/」配下のみに一致するなど、意図と異なる範囲まで禁止してしまうことがある
  • 大文字・小文字の違いを軽視する:パスの大文字・小文字は区別されるため、実際のURLと表記を一致させる必要がある

あわせて、そもそも「ブロックすべきかどうか」自体を安易に決めないことも重要です。学習用クローラーをまとめて拒否する設定は書きやすい一方で、対象を広く取りすぎるとAI検索経由で自社サイトが紹介される機会まで失いかねません。書き始める前に、どのクローラーを・どの目的で・どこまで制限するのかという方針を先に固めておくことをおすすめします。

設定後の確認方法

設定後にアクセス状況を確認している画面のイメージ

robots.txtは記述してすぐに効果が反映されるとは限らず、クローラーが次回巡回するタイミングで初めて認識されます。設定後は次の方法で意図通りに動いているかを確認しましょう。

  • ブラウザで「https://自社ドメイン/robots.txt」にアクセスし、記述内容がそのまま表示されるかを確認する(構文エラーがあると意図しない結果になる)
  • Googleのクローラーに関しては、Search Consoleの設定画面からrobots.txtの内容を確認できる
  • サーバーのアクセスログでユーザーエージェント文字列を確認し、拒否したクローラーからのアクセスが実際に減っているかを一定期間追跡する

AIクローラーの多くは検索エンジンほど巡回頻度が高くないため、設定直後にログで変化を確認しづらいこともあります。数日から数週間のスパンで様子を見る前提で、焦らず確認する姿勢が大切です。

まとめ

robots.txtでAIクローラーをブロックする際は、User-agent・Disallow・Allowという基本構文を正しく理解した上で、クローラーごとにブロックを分けて記述することが欠かせません。特にAnthropicのように運営体制が変わり呼び名が更新されるケースもあるため、設定前には現行のユーザーエージェント名を確認する習慣を持ちましょう。書き方を正しく押さえることと、そもそもどこまで制限すべきかという方針を固めることの両方が揃って、初めて意図通りの設定になります。

株式会社オモイカネでは、robots.txtの設計を含むAI導入支援・マーケティング支援を行っています。自社に合った設定に迷う場合は、お気軽にご相談ください。

よかったらシェアしてね!
  • URLをコピーしました!
  • URLをコピーしました!

この記事を書いた人

目次