robots.txt 書き方

robots.txt 書き方|全ブロック事故を防ぐ基本

公開日:2026-08-15

robots.txt の書き方は「あと2行」で基本完了

robots.txt は、検索エンジンのクローラーに対して「どのURLをクロールさせないか」を指示するテキストファイルです。書き方の基本は、User-agent: * と Disallow: /パス の2つのディレクティブを記述するだけ。この2つを正しく使うことで、全ブロック事故を防ぎながら必要なページだけを制御できます。まずは結論として、全サイトをブロックする Disallow: / を書かないことが最重要です。

robots.txt の基本構文:2つのディレクティブだけで書ける

robots.txt は、ルートディレクトリ直下(例:https://example.com/robots.txt)に置くテキストファイルです。Google 公式ドキュメントでは、ファイルサイズは 500KB まで と定められ、超えた場合はクローラーが読み込まない可能性があります。基本構文は次のとおりです。

  • User-agent: *(すべてのクローラーに適用)
  • Disallow: /wp-admin/(特定パスをブロック)
  • Allow: /public/(ブロック内で一部許可)
  • Sitemap: https://example.com/sitemap.xml(XMLサイトマップの場所)

Disallow の値は、URL のパス部分との前方一致で判断されます。例えば Disallow: /private/ は /private/ 以下をすべてブロックします。一方、空の Disallow 行は「すべて許可」を意味します。

最低限のサンプルと注意点

WordPress サイトでは、管理画面やインクルードフォルダをブロックするのが一般的です。すべてのクローラーに適用する場合は、User-agent: * を最初に書きます。複数の User-agent を書く場合、最も具体的な一致が優先されます。

  • User-agent: *
  • Disallow: /wp-admin/
  • Disallow: /private/
  • Sitemap: https://example.com/sitemap.xml

ファイル名は必ず小文字の robots.txt とし、ルート直下以外に置いても無効です。また、Google は標準的なディレクティブのみ解釈し、Crawl-delay などは無視します。

noindex との違い:クロール制御とインデックス制御は別物

robots.txt と noindex は混同されがちですが、目的が異なります。robots.txt は クロールの可否 を制御し、noindex は インデックスの可否 を制御します。robots.txt でブロックされた URL はクローラーがページを取得しないため、HTML 内の noindex メタタグを確認できません。その結果、ページがインデックスに残る可能性があります。Google 公式ドキュメントでも「robots.txt でブロックされていても、他のページからのリンクがあればインデックスされることがある」と明記されています。

使い分けの判断基準

  • クロール自体を止めたい(サーバー負荷軽減、機密情報への直接アクセス制御)→ robots.txt
  • 検索結果から除外したい → noindex
  • 両方必要な場合もあるが、インデックス削除が目的なら noindex を優先

具体例として、ログインページを robots.txt でブロックしても、そのページへのリンクがサイト内に残っていると、検索結果に「このページに関する情報はありません」というスニペットなしで表示されることがあります。

やりがちな事故:全ブロックとその他のミス

最も深刻なミスは、Disallow: / を記述してサイト全体をブロックしてしまうことです。これは開発環境から本番環境へ移行する際や、サイトリニューアル時に誤って残してしまうケースが多く、検索流入が激減します。過去には大手サイトで robots.txt の誤設定により検索流入が 85% 減少 した事例も報じられています。

その他のよくあるミスとして、以下が挙げられます。

  • 行末に全角スペースや不要な改行を入れる
  • Disallow のパスに正規表現を使う(robots.txt は正規表現非対応)
  • 大文字小文字を混在させる(パスはケースセンシティブ)
  • /admin と /administrator を取り違える
  • robots.txt をルート以外のサブディレクトリに置く
  • ローカル環境の記述をそのまま公開する

国内向けSEOでは、Google のクローラーに加えて JP SEO Bot の挙動も意識すると良いでしょう。Yahoo! JAPAN は Google の検索技術を利用していますが、独自クローラーのアクセスを適切に制御する必要がある場合があります。

安全な robots.txt のテストと運用フロー

公開前に必ずテストを行い、意図したパスだけがブロックされているか確認します。Google Search Console の robots.txt テスターを使えば、特定の URL がブロックされるかどうかをシミュレーションできます。

  • 旧バージョンとの差分を確認する
  • Search Console で robots.txt をテストし、重要なページがブロックされていないか確認する
  • URL 検査ツールで、主要ページが「クロール可」になっているか確認する
  • 変更後は Google に再クロールをリクエストする

また、robots.txt の変更履歴をバージョン管理し、インデックスカバレッジの急変を監視することをおすすめします。ファイルサイズが 500KB を超えないようにし、不要なディレクティブは削除してシンプルに保ちます。

まとめ

robots.txt の書き方は、User-agent と Disallow の2つを正しく使うことが基本です。最も危険な Disallow: / を書かないこと、noindex との違いを理解して使い分けることが、検索流入を守る鍵です。公開前には必ずテストし、定期的に設定を見直しましょう。

著者:Han Guo
JP SEO Bot 開発者・enki 代表

JP SEO Bot の開発者。本ブログの記事は、JP SEO Bot を実際に運用して得た検証データと、自サイト(enkiseojp.com)での実践結果に基づいて執筆しています。

キーワードを入れるだけで、AI が記事を書く。

JP SEO Bot は登録不要。ブラウザを開いて、最初の SEO 記事を AI に書かせてみてください。

無料で試す →

よくある質問

robots.txt の基本的な書き方は?

ルート直下に robots.txt を置き、User-agent: * と Disallow: /パス の2行を記述します。例として Disallow: /wp-admin/ と書くと、そのパス以下がクロール対象外になります。

robots.txt と noindex の違いは?

robots.txt はクロールの可否、noindex はインデックスの可否を制御します。robots.txt でブロックしても noindex は確認されず、ページがインデックスに残る可能性があるため、検索結果から除外したい場合は noindex を使います。

robots.txt で全てをブロックするとどうなる?

Disallow: / を記述するとサイト全体がクロールされなくなり、検索流入が大幅に減少します。開発環境の設定を本番に残さないよう注意が必要です。

robots.txt の変更はいつ反映される?

Google が次回クロールした際に反映されます。Search Console で再クロールをリクエストすると早まりますが、反映まで数日かかる場合があります。

WordPress で robots.txt を設定する方法は?

プラグイン(Yoast SEO など)を使うか、FTP でルート直下に robots.txt をアップロードします。テーマの functions.php に直接書く方法もありますが、プラグインの利用が簡単です。