robots.txtのルールを書き、何がブロックされるかを正確に確認
このrobots.txt作成ツールは、ユーザーエージェントのグループとAllow/Disallowルールからファイルを組み立て、サイトマップを追加し、AI学習用クローラーのブロックや標準的なWordPress用ファイルといった定番の設定をワンクリックで適用します。テスターは肝心な疑問に答えます。このURLはこのクローラーに許可されているのか、そしてどの行がそれを決めているのか。RFC 9309とGoogleが公開している動作(最も具体的なユーザーエージェントのグループ、最長一致のパス、同じ長さならAllowが優先、ワイルドカードの*と$)に従い、入力中にミスを指摘します。すべてブラウザー内で動作します。
robots.txtを作成してテストする方法
- 1プリセット(すべて許可、AIクローラーをブロック、WordPress、SEOツールをブロック、すべてブロック)から始めるか、グループを直接編集します。
- 2各グループに対象のユーザーエージェント(
*はすべてのクローラー)を並べ、/admin/や/*.pdf$のようなDisallowとAllowのパスを追加します。 - 3XMLサイトマップの絶対URLを追加し、出力の下の警告を確認してから、
robots.txtをコピーまたはダウンロードします。 - 4テストに切り替え、クローラー名と1行に1つずつURLを入力すると、判定結果と、それを決めたルールとグループが表示されます。公開中のrobots.txtを貼り付けて監査することもできます。
- 5ファイルをホストのルートにアップロードし、
https://yourdomain.com/robots.txtで配信されるようにします。
robots.txtの仕組み
行儀のよいクローラーはサイトをクロールする前に、ホストのルートから/robots.txtを取得し、自分宛てのルールを探します。ファイルはグループの並びで、1行以上のUser-agentの後にAllowとDisallowのルールが続きます。Sitemap行はグループの外にあり、すべてのクローラーに適用されます。
robots.txtはプロトコル・ホスト・ポートごとに別々です。https://example.com/robots.txtのルールはhttps://shop.example.comやhttp://example.comには適用されません。ファイルがない(404)場合はすべてクロール可能とみなされ、サーバーエラーの場合はGoogleがサイトのクロールを一時停止します。
一致判定のルール(詳細)
- グループの選択
- クローラーは、自分を最も具体的に指定しているユーザーエージェントのグループ(大文字・小文字は区別しない)にだけ従います。Googlebot-ImageはGooglebot-Imageのグループがあればそれを、なければGooglebotのグループを、それもなければ*を使います。同じエージェントを指定するグループは統合されます。*グループのルールは、名前付きグループには追加されません。
- 最長一致が優先
- グループ内では、URLパスと一致する文字数が最も多いルールが判定を決めます。Disallow: /shopとAllow: /shop/saleがあれば、/shop/sale/shoesは許可されます。
- 同じ長さならAllow
- AllowとDisallowのルールが同じ長さで一致した場合、URLは許可されます。
- *と$
- *は任意の文字列に一致し、末尾の$はパターンをURLの末尾に固定します。Disallow: /*.pdf$は/files/report.pdfをブロックしますが、/report.pdf?download=1はブロックしません。
- パスは前方一致
- Disallow: /adminは/admin、/admin/、/administratorをブロックします。フォルダーだけをブロックするには末尾にスラッシュを付けます。ルールはパスとクエリ文字列に対して、大文字・小文字を区別して照合されます。
- 空のDisallow
- パスのないDisallow:はすべてを許可します。何もブロックしないグループを書くときの慣例的な書き方です。
AIクローラーをブロックする
AI企業は、サイト運営者がオプトアウトできるようクローラーのユーザーエージェントを公開しています。AIクローラーをブロックプリセットは、GPTBot、ChatGPT-User、OAI-SearchBot(OpenAI)、ClaudeBot、Claude-User、Claude-SearchBot、anthropic-ai(Anthropic)、Google-Extended(Geminiの学習)、Applebot-Extended、CCBot(Common Crawl)、PerplexityBot、Bytespider(ByteDance)、meta-externalagent(Meta)、Amazonbotなどを拒否し、通常の検索エンジンは引き続きクロールできるようにします。
Google-ExtendedとApplebot-Extendedは独立したクローラーではなく制御用のトークンです。これらをブロックすると、Google検索やApplebotの検索用クロールには影響を与えずに、コンテンツをGeminiやApple Intelligenceの学習から除外できます。なお、OAI-SearchBotやClaude-SearchBotのような検索関連のボットは、AI検索の回答での引用に使われます。そこに表示されたい場合はリストから外してください。従うかどうかは任意なので、robots.txtを無視するクローラーにはサーバーやファイアウォールのルールで対処しましょう。
robots.txtにできないこと
robots.txtが制御するのはクロールであり、インデックスではありません。拒否したURLでも、他のページからリンクされていれば、説明文なしでGoogleの検索結果に表示されることがあります。ページを検索結果から外したいなら、クロールを許可したうえでrobotsメタタグのnoindexかX-Robots-Tagヘッダーを追加してください。Googleは2019年以降、robots.txtのNoindex:行を無視しています。タグはメタタグ生成ツールで作成できます。
非公開エリアを隠すためにrobots.txtを使ってはいけません。このファイルは公開されていて、見つけられたくないパスをまさに列挙することになります。そうした場所は認証で守りましょう。また、ページの表示に必要なCSSやJavaScriptファイルをブロックしないでください。Googleが訪問者と同じようにページを見られなくなります。
Crawl-delay、Hostなどのディレクティブ
Crawl-delayは、リクエストの間に指定した秒数だけ待つようクローラーに求めます。BingとYandexは従いますが、Googleは無視し、サーバーの応答に応じてクロール頻度を自動調整します。Hostは優先ミラーを示すYandex専用のディレクティブで、現在は廃止されています。Googleが読み込むのはrobots.txtの先頭500 KiBまでです。
絶対URLを書いたSitemap:行を1つ以上使って、クローラーにXMLサイトマップの場所を伝えましょう。この行はファイル内のどこに置いてもかまいません。サイトマップ自体はサイトマップ作成ツールで作れます。
よくある質問
- robots.txtはどこに置けばよいですか?
- ホストのルートに置き、https://example.com/robots.txtで配信されるようにします。サブフォルダーに置いたrobots.txtは無視され、サブドメインごとに個別のファイルが必要です。
- すべてのクローラーをブロックするには?
- User-agent: *の後にDisallow: /と書きます。robots.txtに従うクローラーはページの取得をやめますが、すでに知られているURLはしばらく検索結果に残ることがあります。
- GPTBotなどのAIクローラーをブロックするには?
- GPTBot、ClaudeBot、CCBot、Google-Extended、PerplexityBotなどのユーザーエージェントを並べたグループを追加し、Disallow: /を指定します。「AIクローラーをブロック」プリセットはこのグループを自動で書き、検索エンジンは許可したままにします。
- DisallowでページはGoogleから削除されますか?
- いいえ。クロールは止まりますが、URLはリンク経由でインデックスされることがあります。検索結果から外すには、クロール可能なページにnoindexメタタグを付けるか、Search Consoleで削除してください。
- AllowとDisallowの両方に一致したら、どちらが優先されますか?
- パスが長いほうです。同じ長さならAllowが優先されます。テスターでは、各URLをどの行が判定したかを確認できます。
- robots.txtは大文字と小文字を区別しますか?
- ディレクティブ名とユーザーエージェントの値は区別しませんが、パスは区別します。Disallow: /Adminでは/adminはブロックされません。ファイル名も小文字のrobots.txtでなければなりません。
- GoogleはCrawl-delayに対応していますか?
- いいえ。GoogleはCrawl-delayを無視し、サーバーの応答状況からクロール頻度を決めます。BingとYandexは従います。
- robots.txtはどこかにアップロードされますか?
- いいえ。作成、解析、テストはすべてブラウザー内で行われます。