robots.txtとは、検索エンジンなどのクローラーに対して「このURLはクロールしてよい」「このURLはクロールしないでほしい」と伝えるためのテキストファイルです。SEOでは重要な設定ですが、robots.txtは「検索結果に出さないための設定」ではありません。クロール制御とインデックス制御を混同しないことが大切です。
30秒でわかる結論
- robots.txtはクローラーのアクセス範囲を制御するファイル
- 通常はサイト直下の「/robots.txt」に置く
- Disallowで特定パスのクロールを制限できる
- robots.txtでブロックしても、そのURLが検索結果から必ず消えるわけではない
- 検索結果へ出したくないページはnoindexなど別の方法を使う
- CSS・JavaScriptなど表示に必要なファイルをむやみにブロックしない
- 初心者は必要な理由がない限り、WordPress標準設定を大きく変更しない
robots.txtとは?
robots.txtは、検索エンジンなどの自動クローラーへ、サイト内のどのURLをクロールしてよいかを伝えるテキストファイルです。
Googleも、robots.txtを「クローラーがサイトのどの部分へアクセスできるかを示すルールファイル」として案内しています。
配置場所
「https://example.com/robots.txt」のように、サイトのルート直下へ配置します。
ここで伝えたいポイント
robots.txtは「検索順位を上げるファイル」ではなく、「クロールの交通整理をするファイル」です。
robots.txtで何ができる?
主に、検索エンジンのクローラーへアクセスしてほしくないURLやディレクトリを伝えられます。
| できること | 例 |
|---|---|
| 特定ディレクトリをブロック | /admin/ をクロールさせない |
| 特定URLをブロック | /search/ などを対象にする |
| クローラー別に設定 | Googlebotなど個別指定 |
| サイトマップを案内 | Sitemap行でXMLサイトマップURLを示す |
基本の書き方
基本例
User-agent: * Disallow: /private/
この例では、すべてのクローラーに対して「/private/」配下をクロールしないよう伝えています。
| 記述 | 意味 |
|---|---|
| User-agent | 対象クローラー |
| Disallow | クロールを拒否するパス |
| Allow | クロールを許可するパス |
| Sitemap | XMLサイトマップの場所 |
すべてクロール許可する場合
例
User-agent: * Disallow:
Disallowの後ろを空にすると、特にクロール禁止パスを指定しない形になります。
初心者はこれでOK
公開サイトで特別な理由がなければ、まず「必要なページをクロール可能な状態にする」ことを優先してください。
サイト全体をブロックする書き方
全体ブロック例
User-agent: * Disallow: /
公開サイトでは特に注意
この設定はサイト全体のクロールを止めます。公開中サイトで誤って設定すると、検索エンジンが内容を取得できなくなるため、安易に使わないでください。
robots.txtで「検索結果から削除」はできない
ここは特に重要です。robots.txtはクロールを制御するためのもので、インデックス削除を保証する仕組みではありません。
Googleは、robots.txtでクロールをブロックしていても、外部リンクなどからURLを認識した場合、そのURLが検索結果へ表示される可能性があると案内しています。
クロールとインデックスは別
robots.txt = クロール制御
noindex = インデックス制御
検索結果へ出したくないならnoindexを使う
検索結果へ表示させたくないページでは、robots.txtではなくnoindexを使うのが基本です。
考え方
検索結果へ表示させない目的では、robots.txtではなく、ページ側のインデックス制御を使います。実際の設定方法はCMSやSEOプラグインによって異なるため、対象ページだけに適用されているか確認してください。
robots.txtでブロックするとnoindexを読めないことがある
検索エンジンがページをクロールできなければ、ページ内のnoindex指定を確認できない場合があります。「検索結果から消したいからrobots.txtでブロック」は避けてください。
robots.txtとnoindexの違い
| 設定 | 主な目的 | 検索結果からの除外 |
|---|---|---|
| robots.txt | クロール制御 | 保証しない |
| noindex | インデックス制御 | 対象 |
| 削除ツール | 検索結果から一時的に非表示 | 一時対応 |
WordPressのrobots.txtはどうなる?
WordPressでは、実ファイルのrobots.txtを置いていなくても、環境によって仮想的なrobots.txtを出力できます。
ブラウザで「https://自分のドメイン/robots.txt」へアクセスして、現在の内容を確認できます。
まず確認すること
robots.txtを編集する前に、現在何が出力されているかを確認します。テーマやSEOプラグイン、サーバー側設定で内容が変わっている場合があります。
管理画面をDisallowすれば安全?
いいえ。robots.txtはセキュリティ対策ではありません。
robots.txt自体は公開ファイルなので、ブロックしているパスは誰でも確認できます。
秘密URLを書かない
「見られたくない管理画面URL」「非公開ファイルの場所」などをrobots.txtへ書けば隠せる、という考え方は誤りです。アクセス制御は認証・権限・サーバー設定で行ってください。
CSSやJavaScriptをブロックしない
Googleはページをレンダリングして内容を理解するため、表示に必要なCSSやJavaScriptへアクセスできる状態が望ましいです。
よくある失敗
「/wp-content/」全体をDisallowした結果、テーマCSSやJavaScript、画像までクロールできなくなり、検索エンジンがページを正しくレンダリングできなくなるケースがあります。
初心者はこれでOK
WordPressのフォルダを一括で広くブロックするより、クロールさせる必要がないURLだけを限定して指定してください。
どんなURLをブロックする?
サイトによっては、検索価値が低く、無限に増えるURLなどをクロール制御することがあります。
大量の検索結果URLが生成されるサイトでは、クロール制御を検討します。
未来・過去の日付URLが無限に生成される場合、クロール浪費を防ぐため制御します。
同内容の並び替え・絞り込みURLが大量発生する場合は設計を見直します。
検索流入を狙う公開記事は原則クロール可能にします。
クロールバジェットとの関係
大規模サイトでは、検索エンジンが限られた時間の中でどこをクロールするかも重要です。
具体例
実質100ページしか必要ないサイトで、絞り込みやカレンダーによって10万URLが生成されると、不要URLのクロールへ時間を使う可能性があります。
必要100URL ÷ 発生10万URL = 0.1%
このようなサイトでは、URL設計やrobots.txtを使って不要なクロールを減らす価値があります。
小規模サイトは気にしすぎなくてよい
数十〜数百ページ程度の一般的な会社サイト・ブログなら、クロールバジェット対策のために複雑なrobots.txtを書く必要は通常ありません。
Sitemap行は書くべき?
robots.txtにはXMLサイトマップのURLを記載できます。
例
Sitemap: https://example.com/sitemap.xml
Google Search Consoleからサイトマップを送信する方法もあるため必須ではありませんが、クローラーへ場所を伝える補助として使えます。
robots.txtを変更するときのチェックリスト
変更前チェック
- 検索流入を狙うページまでブロックしていないか
- CSS・JavaScriptを広くブロックしていないか
- noindexの代わりに使っていないか
- 秘密URLを隠す目的で使っていないか
- 記述するパスが本当に大量クロールの原因か
- XMLサイトマップURLが正しいか
- 変更前のrobots.txtを保存したか
変更後はどう確認する?
想定した内容が表示されるか確認します。
検索対象ページを誤って含めていないか確認します。
クロール・インデックス関連の問題が出ていないか確認します。
重要記事・固定ページがクロール可能な状態か見直します。
初心者がやりがちな失敗
| 失敗 | 問題 |
|---|---|
| Disallow: / を公開サイトへ設定 | サイト全体をクロール不可にする |
| noindex代わりに使う | 検索結果から消える保証がない |
| /wp-content/を全ブロック | CSS・JS・画像取得を妨げる可能性 |
| 秘密URLを書く | robots.txt自体が公開されている |
| 意味なく大量ルールを書く | 管理と検証が複雑になる |
robots.txtを触るか判断するフロー
はい → 基本は現状のままでよい
はい → クロール制御を検討
はい → robots.txtではなくnoindex等を検討
はい → 認証・アクセス制御を使う
いいえ → Search Consoleと実URLで確認
教科書判定:小規模サイトはむやみにrobots.txtを編集しない
検索対象ページはクロール可能にし、不要URLが大量発生するときだけ制御する
一般的な会社サイト・店舗サイト・WordPressブログなら、複雑なrobots.txt設定は不要です。検索結果へ出したい記事・固定ページはクロール可能な状態にし、内部検索や無限カレンダーなど不要URLが大量に発生するときだけ、robots.txtによる制御を検討してください。
よくある質問
Q.robots.txtでページを検索結果から消せますか?
保証できません。robots.txtはクロール制御用です。検索結果から除外したい場合はnoindexなど別の方法を使います。
Q.robots.txtがなくてもSEOに問題ありませんか?
小規模サイトでは、特別にクロールを制御する必要がなければ問題にならない場合があります。WordPressでは仮想robots.txtが出力されることもあります。
Q.wp-adminはDisallowしたほうがいいですか?
WordPress環境では管理画面周辺をクロール対象外にする設定が使われることがあります。ただし、セキュリティ目的ではなくクロール整理として考えてください。
Q.robots.txtにサイトマップを書く必要がありますか?
必須ではありませんが、Sitemap行でXMLサイトマップURLを案内できます。Search Consoleから送信する方法もあります。
Q.robots.txtを間違えたらどうなりますか?
重要ページのクロールを止める可能性があります。変更前の内容を保存し、公開後はrobots.txt本体とSearch Consoleを確認してください。
まとめ
この記事の結論
- robots.txtはクローラーのアクセス範囲を制御する
- 通常はドメイン直下へ配置する
- Disallowはクロール禁止を伝える
- 検索結果からの削除には使わない
- noindexとは目的が違う
- CSS・JavaScriptをむやみにブロックしない
- 小規模サイトは必要な理由があるときだけ編集する
robots.txtはSEOで重要なファイルですが、複雑にすればよいわけではありません。初心者は「検索結果に出したいページはクロール可能にする」「不要URLが大量に発生したときだけ制御する」という基準で判断してください。
次に読むなら
robots.txtの役割が分かったら、「XMLサイトマップとは?」を確認すると、クロール制御とURL発見の違いを整理しやすくなります。