
まず結論からお伝えします。
- robots.txtは「クロール制御」のためのファイル
- インデックス制御はできない(noindexが必要)
- 間違えると「重要ページを見つけてもらえない」リスクがある
ウェブサイト運営において、SEOの土台になるのは「検索エンジンに正しく見つけてもらい、正しく理解してもらうこと」です。その中で robots.txt は、クローラーに対して「どこをクロールしてよいか・控えるべきか」を伝えるための基本ファイルです。
ただし、robots.txtは便利な一方で、役割を誤解したまま設定すると逆効果になりやすいのも事実です。特に多いのが、「検索結果に出したくないからDisallowする」という誤用です。これはクロール制御とインデックス制御を混同した典型例です。
本記事では、robots.txtの基本、SEOで重要になる理由、正しい書き方、よくある間違い、実務での使い分けまでを整理して解説します。
Search Console全体の見方やインデックス診断の流れを先に整理したい方は、こちらも参考にしてください。
- robots.txtとは?
- robots.txtとnoindexの違い
- robots.txtがSEOで重要になる理由
- robots.txtの基本ルール
- 記述時の注意点
- 設定手順
- よくある間違いと対策
- 実務での判断基準
- robots.txtに関するよくある質問
- まとめ
- 参照
robots.txtとは?
robots.txtは、サイトのルートディレクトリに置くテキストファイルで、検索エンジンのクローラーに対して 「このURL群はクロールしてよい」「ここはクロールしなくてよい」と伝えるためのものです。
たとえば、管理画面、サイト内検索結果、絞り込みURL、並び替えURLなど、検索流入の入口として重要ではないURLまで無制限にクロールされると、重要ページの発見や再クロールの効率が落ちることがあります。そうしたときにrobots.txtを使ってクロール範囲を整理します。
一方で、robots.txtは「検索結果から消す」ための仕組みではありません。検索結果に出したくないページには、原則として <meta name="robots" content="noindex"> などの noindex 指示を使います。
robots.txtでできること
-
クロール制御:不要URLや低優先URLへのクロールを抑える
-
クロール効率の整理:重要ページにクロールが向きやすい状態を作る
-
サイトマップの場所を伝える:XMLサイトマップのURLを記載できる
robots.txtでできないこと
-
インデックス除外:検索結果に出さない指示はできない
-
情報の秘匿:URLを知っていればアクセスできるため、機密情報保護には不向き
-
すべてのクローラーを完全に制御:クローラーによって解釈が異なる場合がある
robots.txtとnoindexの違い
SEO実務で最も重要なのが、この違いの理解です。
| 項目 | robots.txt | noindex |
|---|---|---|
| 役割 | クロール制御 | インデックス制御 |
| 検索結果に出さない | 不可 | 可 |
| クローラーがページ内容を読む | 読まない | 読む |
| 向いている用途 | 絞り込みURL、管理画面、低優先URLの整理 | 検索結果に出したくないページの除外 |
検索結果に出したくないなら、まずnoindexを検討する。
これが基本です。
よくある失敗は、noindexしたいページをrobots.txtで先にブロックしてしまうことです。この状態だとクローラーはページを取得できないため、ページ内のnoindexを読み取れません。結果として、意図どおりに除外されないことがあります。
noindexの詳しい使い分けは、こちらの記事もあわせて確認してみてください。
robots.txtがSEOで重要になる理由
1. 不要URLのクロールを抑えやすい
大規模サイトやECサイトでは、絞り込み・並び替え・検索結果・セッション付きURLなど、価値の薄いURLが大量に生まれやすいです。これらにクローラーが多く回ると、重要なカテゴリページや商品ページ、記事ページのクロール効率が下がることがあります。
robots.txtで不要URL群を整理しておくと、クロール対象の優先順位が整いやすくなるため、実務上の管理がしやすくなります。
2. 技術的な事故を防ぎやすい
検索結果に出すべきでない管理系ページや一時ページが放置されると、インデックスやレポート確認が煩雑になります。robots.txtは、こうしたURLを 「そもそもクロールさせない」方向で整理できるため、運用事故の予防にも役立ちます。
3. サイトマップの場所を伝えられる
robots.txtにはXMLサイトマップのURLも記載できます。これにより、クローラーへサイト構造を伝える補助になります。特に、ページ数が多いサイトや更新頻度が高いサイトでは、サイトマップとrobots.txtをあわせて整備しておくと管理しやすくなります。
robots.txtの基本ルール
robots.txtで主に使うのは、以下の4つです。
-
User-agent:どのクローラー向けのルールかを指定
-
Disallow:クロールさせないURLパスを指定
-
Allow:Disallowの中でも例外的に許可したいURLパスを指定
-
Sitemap:XMLサイトマップのURLを指定
基本の書き方
User-agent: *
Disallow: /admin/
Sitemap: https://example.com/sitemap.xml
この例では、すべてのクローラーに対して /admin/ 配下のクロールを禁止し、サイトマップの場所を伝えています。
WordPressでよくある例
User-agent: *
Disallow: /wp-admin/
Allow: /wp-admin/admin-ajax.php
Sitemap: https://example.com/sitemap.xml
WordPressでは、管理画面全体はクロール不要でも、admin-ajax.php は機能上必要になるケースがあります。そのため、まとめて遮断するのではなく、必要な例外を残すことが重要です。
ECサイトでよくある例
User-agent: *
Disallow: /search/
Disallow: /*?sort=
Disallow: /*?filter=
Sitemap: https://example.com/sitemap.xml
サイト内検索結果や並び替え・絞り込みURLは、クロール対象として優先度が低いことが多いため、robots.txtで整理対象になりやすいです。ただし、絞り込みページ自体を集客用ランディングページとして使っている場合は、安易にブロックしないよう注意が必要です。
記述時の注意点
-
ファイル名は必ず robots.txt
ルートディレクトリに配置します。/sub/robots.txtのようなサブディレクトリ設置では、そのホスト全体の制御には使えません。 -
ホスト単位で考える
robots.txtは、配置されたプロトコル・ホスト・ポートの範囲で機能します。https://www.example.com/robots.txtとhttps://example.com/robots.txtは別物として扱います。 -
大雑把に塞ぎすぎない
「とりあえず全部Disallow」は事故の原因です。まずは不要URLだけを絞って指定します。 -
検索結果から消したいページには使わない
検索結果から外したいならnoindexや削除対応を使います。 -
コメントで意図を残す
#でメモを残すと、後から見直しやすくなります。
設定手順
-
テキストエディタで作成する
メモ帳やVS Code などでrobots.txtを作成します。 -
ルートディレクトリへアップロードする
例:https://example.com/robots.txt -
ブラウザで公開確認する
シークレットウィンドウなどで/robots.txtにアクセスし、ファイルが公開されているか確認します。 -
Search Consoleで確認する
robots.txt report や URL検査ツールで、意図したURLがブロックされているか、逆にブロックされてはいけないURLが止まっていないかを確認します。 -
反映後は重要URLのクロール状況を見る
主要ページが「robots.txt によりブロックされました」になっていないかを確認します。
よくある間違いと対策
1. サイト全体をブロックしてしまう
User-agent: *
Disallow: /
これは全ページをクロール禁止にする設定です。テスト環境の設定が本番に残ったときに起きやすい事故です。
対策: 本番公開前に Disallow: / が残っていないか必ず確認する。
2. noindexしたいページをDisallowしてしまう
これは非常に多いミスです。noindexを読んでもらうには、まずクローラーがページを取得できる必要があります。
対策: 検索結果から外したいページは、robots.txtで塞がずに、ページ側でnoindexを返す。
3. 重要ページ配下をまとめて塞いでしまう
たとえばカテゴリ配下に記事や商品ページがあるのに、親ディレクトリごとDisallowしてしまうケースです。これにより、重要ページのクロールまで止まることがあります。
対策: ディレクトリ単位ではなく、不要URL群だけを狙って制御する。
4. テスト環境と本番環境を混同する
開発中は全遮断でも、本番公開時には解除が必要です。移行や公開のタイミングでrobots.txtを見落とすと、サイト全体のクロールに影響します。
対策: 公開チェックリストに「robots.txt確認」を必ず入れる。
5. robots.txtだけで安全性を担保しようとする
robots.txtは「見に来るな」というお願いであり、認証ではありません。機密ページや顧客情報、会員ページの保護には向きません。
対策: 機密情報はログイン制限、IP制限、Basic認証など別手段で守る。
実務での判断基準
迷ったときは、次の基準で切り分けると判断しやすくなります。
-
検索結果に出したいページ → robots.txtでブロックしない
-
検索結果に出したくないページ → noindexを検討する
-
そもそもクロール不要なURL群 → robots.txtを検討する
-
見られてはいけない情報 → 認証・アクセス制限を使う
「クロール制御」と「インデックス制御」と「アクセス制御」は別物と考えると、設定ミスがかなり減ります。
robots.txtに関するよくある質問
robots.txtで検索順位は上がりますか?
robots.txt自体が直接順位を上げるわけではありません。ただし、不要URLのクロールを整理し、重要ページの発見や再クロールを妨げにくくすることで、間接的にSEO運用を安定させる効果は期待できます。
robots.txtでブロックすればインデックスも止まりますか?
止まりません。URL単体が外部リンクなどから見つかれば、ページ本文を読めなくてもURLだけが検索結果に出ることがあります。インデックス除外にはnoindexを使います。
Search Consoleで何を確認すればよいですか?
主要ページが「robots.txt によりブロックされました」になっていないか、URL検査ツールでクロール可否がどう出ているかを確認します。新しく設定したあとほど、主要ページの挙動確認が重要です。
crawl-delayは使えますか?
Google向けには基本的に考えなくて大丈夫です。Googleは robots.txt の主要フィールドとして User-agent、Allow、Disallow、Sitemap を案内しており、crawl-delay のような非標準ルールは前提にしない方が安全です。
まとめ
robots.txtは、検索エンジンのクロール範囲を整理するためのファイルです。SEOで重要なのは、「検索結果から消したいページ」と「クロールさせたくないURL」をきちんと分けて考えることです。
特に覚えておきたいのは、次の3点です。
- robots.txtはクロール制御であり、インデックス制御ではない
- 検索結果から外したいならnoindexを使う
- 重要ページを誤ってDisallowしないことが最優先
robots.txtはシンプルに見えて、実務では事故が起きやすい設定のひとつです。だからこそ、最小限のルールで運用し、変更後は必ず確認することが大切です。
関連テーマもあわせて確認したい方は、以下の記事もおすすめです。
参照
- Google Search Central:Introduction to robots.txt
- Google for Developers:How Google interprets the robots.txt specification
- Google for Developers:How to write and submit a robots.txt file
- Google Search Central:Block Search indexing with noindex
- Google Search Central Blog:Upcoming deprecation of Crawl Rate Limiter Tool in Search Console