ブログ · SEO

Robots.txt:仕組み、記述例、テスト方法

robots.txtはクローラーが取得できるURLを決めるファイルで、1行の誤りがサイト全体を隠してしまうこともあります。GoogleとRFC 9309がファイルをどう解釈するか、ステータスコードごとの挙動、コピーして使える例、robots.txtとnoindexの落とし穴、robots.txtチェッカーが報告する問題の直し方を解説します。

Searvia · 2026/10/24 · 読了目安:4分

開館前に、ギャラリーの入口で真鍮製の支柱の間にロープを掛ける博物館の係員

要点: robots.txtは /robots.txt に置くプレーンテキストのファイルで、クローラーが取得してよいURLを伝えます。ルールは User-agent ごとにグループ化され、クローラーは自分を指名したグループを使い、該当がなければ * のグループを使います。そして、一致するパスが最も長い Allow または Disallow が優先されます。制御するのはクロールであってインデックスではありません。Googleのインデックスから除外したい場合は noindex を使います。404は「すべてクロールしてよい」、5xxは「停止」を意味します。被害の多くは、ステージングサイトから残ってしまった Disallow: / という1行が原因です。

robots.txtは多くのサイトで最も短いファイルですが、影響範囲は最も大きいファイルです。User-agent: * の下にある Disallow: / が1行あるだけで、Google、Bing、Apple、そしてあらゆるAI検索クローラーからサイト全体が見えなくなります。スラッシュの付け忘れ、誤ったグループに書いたルール、ファイル自体のサーバーエラーでも同様の被害が出かねませんが、表から見えるサイトには何の異常も現れません。

このガイドでは、RFC 9309とGoogleの仕様に基づくクローラーのファイルの読み方、コピーして使える例、無料のrobots.txtチェッカーによるファイルのテスト方法、そして報告されるすべての問題の修正方法を解説します。

robots.txtにできること、できないこと

Googleの概要ドキュメントははっきり述べています。robots.txtファイルは「サイト上でクローラーがアクセスできるURLを検索エンジンのクローラーに伝える」ものであり、主な役割はクローラーのトラフィック管理です。これは「ウェブページをGoogleに表示させないための仕組みではありません」。disallowされたURLでも、「ウェブ上の他の場所からリンクされていれば」インデックスされる可能性があり、その場合は通常、説明文なしで表示されます。

同じ情報源から、さらに3つの制限があります。

構文

robots.txtはグループの一覧です。各グループは1行以上の User-agent で始まり、その後に Allow と Disallow のルールが続きます。Sitemap 行はどこにでも置けます。

# Comments start with a hash
User-agent: Googlebot
User-agent: Bingbot
Disallow: /cart/
Disallow: /search
Allow: /search/help

User-agent: *
Disallow: /admin/

Sitemap: https://www.example.com/sitemap.xml
フィールドGoogleの対応役割
user-agent対応グループの適用対象クローラーを指定。* はそれ以外すべて
disallow対応クローラーが取得すべきでないパスのプレフィックス。空の場合は何も禁止しない
allow対応クローラーが取得してよいパスのプレフィックス。例外の指定に使う
sitemap対応サイトマップの絶対URL。特定のグループには紐づかない
crawl-delay非対応Googleは無視。AnthropicなどほかのクローラーAIは読み取る
noindex などその他非対応無視される

フィールド名は大文字と小文字を区別しませんが、パスは区別します。そのため Disallow: /Admin/ は /admin/ をブロックしません。特殊文字は2つ使えます。* は任意の文字列に一致し、$ はURLの末尾を表します。Disallow: /*.pdf$ は .pdf で終わるすべてのURLをブロックし、Disallow: /*? はクエリ文字列を含むすべてのURLをブロックします。

クローラーに適用されるグループ

最も間違えやすいルールです。Googleによれば「特定のクローラーに有効なグループは1つだけ」で、最も具体的に一致するユーザーエージェントのグループが選ばれます。同じエージェントを指名するグループどうしは統合されますが、指名されたグループが * のグループと結合されることはありません。RFC 9309も同様で、クローラーはプロダクトトークンを大文字小文字を区別せずに照合し、一致するグループを結合し、「一致するグループが存在しない場合」にのみ * に戻ります。

つまり上のファイルでは、Googlebotは自分のグループだけに従います。* のグループは適用されないため、/admin/ をクロールできます。全員に適用したいルールは、指名した各グループに繰り返し記述してください。

クローラー固有の注意点が2つあります。Googleの Googlebot トークンは検索、Discover、画像、動画、ニュースを対象とし、Googlebot-Image のようなより限定的なトークンで1つのプロダクトだけを制御できます(Googleの一般的なクローラー)。またAppleは、robots.txtにApplebotの記載がなくGooglebotの記載がある場合、ApplebotはGooglebotの指示に従うとしています(About Applebot)。

どのルールが優先されるか

グループ内では、最も具体的なルール、つまり一致するパスが最も長いルールが適用されます。AllowとDisallowが同じ長さで一致した場合は、制限の緩いAllowが優先されます。ファイル内の順序は関係ありません。

ルールURL結果
Disallow: /shop/ と Allow: /shop/sale//shop/sale/boots許可(一致が長い)
Disallow: / と Allow: /$/許可。ほかのURLはすべてブロック
Disallow: /*.php と Allow: /index.php/index.php許可
Disallow: /page/pages/aboutブロック(プレフィックス一致)
Disallow:(空)すべて許可

ステータスコードですべてが変わる

クローラーは何よりも先に /robots.txt をリクエストするため、そのHTTPステータスは内容と同じくらい重要です。Googleの仕様とRFC 9309によると、次のとおりです。

robots.txtの応答Googleの挙動RFC 9309
2xx返されたファイルをそのまま処理ルールを使用
3xx最低5ホップまで追跡し、その後は404として扱う。meta refreshやJavaScriptは追跡しない最低5回のリダイレクトを追跡
429を除く4xxrobots.txtが存在しないものとして扱う。制限なしあらゆるリソースにアクセスしてよい
429、5xx、タイムアウト再試行しながら12時間クロールを停止し、その後は最後に取得できた正常なコピーを最大30日間使用。なければ制限なしとみなす完全なdisallowとみなさなければならない

実務上の結論として、robots.txtが404でも害はありませんが、ファイルに500や503を返すファイアウォールやサーバーがあると、サイト全体のクロールが止まる可能性があります。またGoogleは、クロール頻度を制限するために401や403を使わないよう注意しています。

さらに2つの制限があります。Googleはファイルを最大24時間キャッシュするため、変更はすぐには反映されません。また500 KiBを超える内容は無視します。ファイルはUTF-8である必要があります。

robots.txtとnoindexの違い

Googleのnoindexドキュメントは落とし穴を説明しています。robots.txtでページをブロックすると、クローラーはそのページの noindex ルールを見ることができず、ページが検索結果に表示され続けることがあります。目的に応じて適切な手段が変わります。

目的使うもの
ページを検索結果に出さないnoindex メタタグまたは X-Robots-Tag: noindex ヘッダー(クロールは許可したまま)
無限に生成されるフィルターやサイト内検索へのクローラーの無駄なリクエストを止めるrobots.txtの Disallow
非公開コンテンツを非公開に保つ認証。robots.txtは公開されており、誰でも読める
すでにインデックスされたページを削除するnoindex または404/410にして、Googleに再クロールさせる

コピーして使えるrobots.txtの例

すべて許可してサイトマップを記載する(小規模サイトの多くに適したファイル):

User-agent: *
Disallow:

Sitemap: https://www.example.com/sitemap.xml

典型的なオンラインショップ:

User-agent: *
Disallow: /cart/
Disallow: /checkout/
Disallow: /account/
Disallow: /*?sort=
Disallow: /*?filter=

Sitemap: https://www.example.com/sitemap.xml

ステージングサイト(ステージングサイトにのみ使い、パスワード保護も併用してください):

User-agent: *
Disallow: /

AI検索は許可し、AI学習はブロックする:

User-agent: OAI-SearchBot
User-agent: Claude-SearchBot
User-agent: PerplexityBot
Allow: /

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

User-agent: *
Disallow: /admin/

Sitemap: https://www.example.com/sitemap.xml

Google-Extended をブロックしてもGoogle検索には影響しません。Googleは、これが「サイトのGoogle検索への掲載には影響せず、ランキングシグナルとしても使われない」としています。AI概要とAIモードはGooglebotで動作します(AI機能とウェブサイト)。OpenAIは、OAI-SearchBotをオプトアウトするとChatGPTの検索回答に表示されなくなるとしているため、そうしたい場合以外はブロックしないでください(OpenAI crawlers)。すべてのAIトークンについてはAIクローラーガイドで解説しています。

ページの表示に必要なCSS、JavaScript、画像はブロックしないでください。Googleは、ページが「損失によって大きな影響を受けない」のであれば重要でないリソースをブロックしてもよいとしていますが、コンテンツやレイアウトを担うファイルをブロックすると、Googleがページを理解できなくなります。

Searviaのrobots.txtチェッカーの仕組み

robots.txtチェッカーは、ウェブサイトSEOチェッカーと同じエンジンで動作します。ドメインまたはページのアドレスを入力すると、そのページ(ドメインだけを入力した場合はホームページ)と周辺のサイトファイルを読み込み、約20秒で38項目のチェックを実行し、このツールの対象である4つのチェックを最初に表示します。それぞれの内容は次のとおりです。

robots.txt(優先度:中)。 チェッカーはページを最終的なアドレスまで追跡し、同じホストの /robots.txt をリダイレクトを追いながらリクエストします。ステータスコードは上の表と同じ基準で判断します。404などの4xxはファイルなし、5xx、429、応答なしはファイルに到達できない状態、HTMLページを返す200は有効なrobots.txtではない、という扱いです。ファイルはRFC 9309の記述どおりに解析します。対象は、User-agent グループ(複数行で1組のルールを共有可)、重複グループの統合、* へのフォールバック、* と $ のワイルドカードを使った Allow と Disallow、コメント、一致が最長のルールを優先し同長ならAllowを優先する判定、そして Sitemap 行です。そのうえで、Googlebotがホームページのパス / を取得できるか、内部ページを入力した場合はそのページのパスも取得できるかを確認します。

AIクローラーのアクセス(優先度:高)。 同じパーサーを10個のクローラートークンに対して実行します。OAI-SearchBot、ChatGPT-User、PerplexityBot、Claude-SearchBot、Claude-User、Googlebot、Bingbot(AI検索として分類)と、GPTBot、ClaudeBot、CCBot(AI学習として分類)です。さらに、クローラーではないためAI学習のオプトアウトトークンとして分類されるGoogle-ExtendedとApplebot-Extendedも対象です。またGPTBotを名乗るリクエストを1回送り、ファイアウォールが401、403、429、503で拒否しないかも確認します。このリクエストはOpenAIのアドレスから送られるものではないため、拒否されても証拠ではなく警告として扱います。検索トークンのいずれかがブロックされている場合、またはrobots.txtに到達できない場合は不合格となります。ブロックされた学習トークンは一覧表示されますが、サイト側の選択として扱われます。

XMLサイトマップ(優先度:中)。 robots.txt内のすべての Sitemap: 行を試し、続いて /sitemap.xml と /sitemap_index.xml を試します(最大4アドレス)。<urlset> または <sitemapindex> を含む200を最初に返したものを合格とし、URL数を表示します。

インデックス許可(優先度:高)。 ページ内の robots または googlebot メタタグと、X-Robots-Tag レスポンスヘッダーに noindex がないかを調べます。どちらか一方でもあれば、robots.txtの内容にかかわらずページが検索結果に出なくなるため、不合格となります。

テストしないもの

結果の読み方

メッセージ意味優先度
robots.txt is present and lets search engines in.ファイルが存在し、Googlebotが / をクロールできるなし
robots.txt blocks Google from the whole site.Googlebotのグループまたは * が / をdisallowしている今日中に修正
robots.txt blocks Google from this page.Googlebotのグループまたは * が入力したページをdisallowしている今日中に修正
robots.txt answers with status N. / robots.txt could not be reached.5xxまたは429、あるいは応答なし。Googleがクロールを一時停止する今日中に修正
robots.txt returns an HTML page instead of crawl rules./robots.txt でステータス200のウェブページが返されている今週中
No robots.txt file was found, so crawlers may visit every page.404またはその他の4xx任意
robots.txt blocks N AI search crawlers.検索用またはユーザー取得用のAIトークンがページを読めないAIによる引用を望むなら修正
No XML sitemap was found in robots.txt or at /sitemap.xml.通常の場所にサイトマップがない今週中
A noindex meta tag blocks indexing. / An X-Robots-Tag header blocks indexing.ページが検索から除外するよう求めている今日中に修正

レポートでは、38項目すべてについて優先度で重み付け(高10、中5、低2、警告は半分)したA+からFの評価、「最初に修正すべき項目」リスト、共有用リンクが提供されます。各チェックについて、監査済みサイトのうち合格した割合も表示されます。

チェッカーが報告するすべての問題の直し方

robots.txtがGoogleにサイト全体をブロックしている

robots.txtが存在しない、到達できない、またはHTMLページである

メッセージでどのケースかは分かります。ステータスコードは次のコマンドで確認してください。

curl -I https://yourdomain.com/robots.txt

robots.txtがAI検索クローラーをブロックしている

ブロックされた各トークンが使っているグループ(専用のグループまたは *)を特定し、トークンごとにポリシーを決めます。ChatGPT、Claude、Perplexityの回答で引用されたいなら、OAI-SearchBot、Claude-SearchBot、PerplexityBot を許可してください。学習用トークンは、希望するなら別途ブロックします。指名したグループは * のルールを継承しないことに注意してください。ファイアウォールのテストで警告が出ていた場合、修正すべきはrobots.txtではなくCDNまたはWAFの設定です。AIクローラーガイドを参照してください。

XMLサイトマップが見つからない

noindexタグまたはX-Robots-Tagヘッダーがインデックスをブロックしている

具体例(架空)

以下は実データではなく、架空の例です。架空のクリニックであるOakridge Dentalがサイトをリニューアルし、2週間以内にGoogleからのトラフィックの大半を失いました。robots.txtチェッカーの報告は次のとおりです。

チェック結果
robots.txt不合格:「robots.txt blocks Google from the whole site.」
AIクローラーのアクセス不合格:「robots.txt blocks 7 AI search crawlers.」
XMLサイトマップ合格:サイトマップインデックスを検出
インデックス許可合格

ファイルには User-agent: * と Disallow: / だけが書かれており、デプロイスクリプトがステージングサーバーからコピーしたものでした。修正には10分かかりました。チームはファイルを「すべて許可」の例にサイトマップ行を加えたものに置き換え、robots.txtをステージングの同期対象から除外し、Search Consoleで再クロールをリクエストし、チェッカーを再実行して合格しました。このファイルはBingbotとAI検索クローラーもブロックしていたため、同じ修正でBing、Copilot、AI回答への掲載資格も回復しました。

15分でできるrobots.txtチェックリスト

Searviaでできること

無料のrobots.txtチェッカーは、Googlebot、そのほか9つのAIおよび検索クローラー、2つのAI学習オプトアウトトークンに対してファイルをテストし、サイトマップを見つけ、noindexのシグナルまで、共有可能な1つのレポートにまとめて確認します。サイトのそれ以外の部分については、Searviaアカウントのサイト監査が検索エンジンと同じ方法でページをクロールし、robots.txtを尊重しながら、サイトマップ内のnoindexページ、壊れたページ、リダイレクトを毎週指摘します。そのため、不適切なデプロイもトラフィックが落ちてからではなく、数日以内に見つけられます。Search Consoleを連携すれば、監査と並べて「robots.txtによってブロックされました」やインデックス登録の推移を確認できます。完全なチェックリストの中でrobots.txtがどこに位置づくかは、テクニカルSEO監査ガイドをご覧ください。

よくあるご質問

robots.txtとは何ですか?
robots.txtは、ホストのルート(例:https://www.example.com/robots.txt)に置くプレーンテキストのファイルで、クローラーが取得してよいURLを伝えます。RFC 9309、つまりRobots Exclusion Protocolで定義されています。ルールはGooglebotやGPTBotなどのユーザーエージェントごとにグループ化され、URLパスを指定した Allow 行と Disallow 行を使います。行儀のよいクローラーは従いますが、アクセス制御ではありません。
robots.txtでページをGoogleに表示させないようにできますか?
できません。Googleは、robots.txtはウェブページをGoogleに表示させないための仕組みではないとしています。disallowされたURLでも、ほかのページからリンクされていればインデックスされることがあり、通常は説明文なしで表示されます。検索結果に出したくない場合は、クロールを許可したうえで noindex メタタグまたは X-Robots-Tag ヘッダーを追加するか、ページをパスワードで保護してください。
サイトにrobots.txtがないとどうなりますか?
/robots.txt が404またはその他の4xx(429を除く)を返す場合、GoogleとRFC 9309は制限がないものとして扱うため、サイト全体がクロールされる可能性があります。多くのサイトでは問題ありません。5xxエラーやタイムアウトは話が別です。Googleは12時間クロールを停止し、その後は最後にキャッシュしたコピーに頼ります。RFC 9309は、クローラーは完全なdisallowとみなさなければならないと定めています。
Googleはrobots.txtのcrawl-delayやnoindexに対応していますか?
いいえ。Googleがrobots.txtで対応するフィールドは user-agent、allow、disallow、sitemap の4つだけです。crawl-delayやそのほかの行は無視されます。crawl-delayを読み取るクローラーもあり、たとえばAnthropicは自社のボットが対応しているとしています。Googleのインデックスからページを除外するには、代わりに noindex メタタグまたは X-Robots-Tag ヘッダーを使ってください。
robots.txtファイルはどうやってテストしますか?
robots.txtチェッカーを実行して、ファイルが存在するか、GooglebotやAIクローラーをサイトからブロックしていないか、サイトマップが記載されているかを確認します。そのうえで、Google Search Consoleのrobots.txtレポートでGoogleが取得したファイルや解析上の問題を確認し、URL検査ツールで特定のURLがブロックされていないかを確認してください。

ソース

  1. RFC 9309: Robots Exclusion Protocol – IETF
  2. How Google interprets the robots.txt specification – Google Search Central
  3. Introduction to robots.txt – Google Search Central
  4. Block Search indexing with noindex – Google Search Central
  5. robots.txt report – Search Console Help
  6. Google's common crawlers – Google Search Central
  7. About Applebot – Apple Support
  8. Overview of OpenAI Crawlers – OpenAI
  9. Does Anthropic crawl data from the web, and how can site owners block the crawler? – Claude Help Center
  10. Build and submit a sitemap – Google Search Central
  11. AI features and your website – Google Search Central

続きを読む