robots.txtとは?SEOでの役割・書き方・よくある間違いを解説

※当サイトの記事には広告・アフィリエイトリンクが含まれる場合があります。

まず結論からお伝えします。

  • robots.txtは「クロール制御」のためのファイル
  • インデックス制御はできない(noindexが必要)
  • 間違えると「重要ページを見つけてもらえない」リスクがある

ウェブサイト運営において、SEOの土台になるのは「検索エンジンに正しく見つけてもらい、正しく理解してもらうこと」です。その中で robots.txt は、クローラーに対して「どこをクロールしてよいか・控えるべきか」を伝えるための基本ファイルです。

ただし、robots.txtは便利な一方で、役割を誤解したまま設定すると逆効果になりやすいのも事実です。特に多いのが、「検索結果に出したくないからDisallowする」という誤用です。これはクロール制御とインデックス制御を混同した典型例です。

本記事では、robots.txtの基本、SEOで重要になる理由、正しい書き方、よくある間違い、実務での使い分けまでを整理して解説します。

Search Console全体の見方やインデックス診断の流れを先に整理したい方は、こちらも参考にしてください。

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で整理対象になりやすいです。ただし、絞り込みページ自体を集客用ランディングページとして使っている場合は、安易にブロックしないよう注意が必要です。

 

記述時の注意点

  1. ファイル名は必ず robots.txt
    ルートディレクトリに配置します。/sub/robots.txt のようなサブディレクトリ設置では、そのホスト全体の制御には使えません。

  2. ホスト単位で考える
    robots.txtは、配置されたプロトコル・ホスト・ポートの範囲で機能します。https://www.example.com/robots.txthttps://example.com/robots.txt は別物として扱います。

  3. 大雑把に塞ぎすぎない
    「とりあえず全部Disallow」は事故の原因です。まずは不要URLだけを絞って指定します。

  4. 検索結果から消したいページには使わない
    検索結果から外したいならnoindexや削除対応を使います。

  5. コメントで意図を残す
    # でメモを残すと、後から見直しやすくなります。

 

設定手順

  1. テキストエディタで作成する
    メモ帳やVS Code などで robots.txt を作成します。

  2. ルートディレクトリへアップロードする
    例:https://example.com/robots.txt

  3. ブラウザで公開確認する
    シークレットウィンドウなどで /robots.txt にアクセスし、ファイルが公開されているか確認します。

  4. Search Consoleで確認する
    robots.txt report や URL検査ツールで、意図したURLがブロックされているか、逆にブロックされてはいけないURLが止まっていないかを確認します。

  5. 反映後は重要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-agentAllowDisallowSitemap を案内しており、crawl-delay のような非標準ルールは前提にしない方が安全です。

 

まとめ

robots.txtは、検索エンジンのクロール範囲を整理するためのファイルです。SEOで重要なのは、「検索結果から消したいページ」と「クロールさせたくないURL」をきちんと分けて考えることです。

特に覚えておきたいのは、次の3点です。

  • robots.txtはクロール制御であり、インデックス制御ではない
  • 検索結果から外したいならnoindexを使う
  • 重要ページを誤ってDisallowしないことが最優先

robots.txtはシンプルに見えて、実務では事故が起きやすい設定のひとつです。だからこそ、最小限のルールで運用し、変更後は必ず確認することが大切です。

関連テーマもあわせて確認したい方は、以下の記事もおすすめです。

参照