サイトのルート直下に置く「robots.txt」というファイルの存在を知っていても、何をどう書けばよいのか分からないまま放置している、あるいは制作会社に任せたきり中身を見たことがない、という事業者さまは多いのではないでしょうか。robots.txtは書き方を誤ると、サイト全体が検索結果から見えなくなるほどの影響を及ぼすこともあるファイルです。この記事では、robots.txtの役割と基本の書き方、そしてやってしまいがちな失敗を解説します。

robots.txtとは

robots.txtは、検索エンジンのクローラー(サイトを巡回してページ情報を収集するプログラム)に対して、「サイト内のどこを読み取ってよいか」を指示するテキストファイルです。サイトのルート直下(例:https://example.com/robots.txt)に設置し、多くの検索エンジンはクロールを始める前にこのファイルを確認します。

robots.txtの役割(インデックス拒否ではない点に注意)

robots.txtで重要なのは、これが「クロールの制御」であって「検索結果への表示(インデックス)の制御」ではない、という点です。

  • Disallowで指定したページ:クローラーによる読み取り(クロール)をブロックします。ただし、他のページや外部から当該URLへのリンクが張られていると、ページの中身を読み取っていなくても、URLの存在だけを認識して検索結果に表示されてしまうことがあります。
  • 検索結果に表示させたくない場合:該当ページにnoindexタグ(メタタグ)を設置するのが正しい方法です。ただし、robots.txtでクロールをブロックしているページにnoindexを設置しても、クローラーがページを読み取れないため指示が伝わらず、意図と異なる結果になることがあります。

「クロールさせない」ことと「検索結果に出さない」ことは似ているようで別の話、という点を押さえておくと設定ミスを防ぎやすくなります。

基本の書き方

robots.txtは以下のような要素で構成されます。

User-agent: *
Disallow: /admin/
Disallow: /cart/
Allow: /admin/public/

Sitemap: https://example.com/sitemap.xml
  • User-agent:指示の対象となるクローラーを指定します。*はすべてのクローラーを意味します。特定のクローラーだけに指示を出したい場合は、Googlebotのように名称を指定します。
  • Disallow:クロールを許可しないパス(ディレクトリやページ)を指定します。空欄(Disallow:のみ)にすると「制限なし」を意味します。
  • Allow:Disallowで指定した範囲の中で、例外的にクロールを許可したいパスを指定します。
  • Sitemap:サイトマップ(サイト内のURL一覧)のURLを記載します。検索エンジンがサイト構造を把握する助けになります。サイトマップ自体の作り方はサイトマップ(sitemap.xml)の作り方で解説しています。

これらを組み合わせて、クロールしてほしくない管理画面や検索結果ページ、カート内のページなどを指定していくのが基本の使い方です。

やりがちな失敗

全ページをブロックしてしまう事故

User-agent: *
Disallow: /

この記述は「サイト全体のクロールを禁止する」という意味になります。開発中のテスト環境で使っていた設定を、そのまま本番サイトへ移行してしまい、公開後もサイト全体がクロールされなくなる、という事故が実際に起きています。サイト移転やリニューアルの直後は特に注意が必要です。

noindex目的でrobots.txtを使ってしまう

前述のとおり、検索結果から除外したいだけであればnoindexタグを使うべきところを、robots.txtのDisallowで済ませようとするケースです。この場合、外部リンクなどをきっかけにURLだけが検索結果に表示されてしまうことがあり、狙った結果になりません。

サイトマップURLの記載漏れ

必須ではありませんが、Sitemap行を書いておくとクローラーがサイト構造を把握しやすくなります。サイトマップを作成したのにrobots.txtへの記載を忘れているケースは少なくありません。

大文字・小文字やパスの誤り

ディレクトリ名の大文字・小文字を間違える、末尾のスラッシュの有無を誤るなど、指定したつもりのパスがずれてしまい、意図した範囲がブロックできていないことがあります。

設定後の確認方法

設定後は、Google Search Consoleの「設定」内にあるrobots.txtの確認機能で、現在の内容とGoogleがどう解釈しているかを確認できます。意図しないエラーやブロックが出ていないかは定期的にチェックしておきたいところです。クロールやインデックスに関する通知が来た際の切り分け方はSearch Consoleのエラー通知の判断基準も参考にしてください。

よくある質問

Q. robots.txtを設置しないとどうなりますか?

A. robots.txtが存在しない場合、多くのクローラーは「制限なし=サイト全体をクロールしてよい」と解釈します。必須のファイルではありませんが、管理画面やカートなど読み取ってほしくない範囲がある場合は設置しておくとよいでしょう。

Q. robots.txtを編集したら、すぐに検索結果に反映されますか?

A. robots.txt自体の変更はクローラーが次に訪れた際に読み取られますが、それに伴う検索結果側の変化には数日〜数週間かかることがあります。即時反映されるものではありません。

Q. WordPressでrobots.txtはどう設定しますか?

A. WordPressは標準で仮想的なrobots.txtを自動生成します。SEOプラグイン(Yoast SEOなど)の管理画面から内容を編集できるほか、サーバー上に実ファイルとしてrobots.txtを設置すればそちらが優先されます。

Q. Disallowで指定したページが検索結果に表示されてしまいます。なぜですか?

A. Disallowはクロールを止めるだけで、インデックスを直接止める指示ではないためです。外部からリンクされているとURLだけが認識され、表示されることがあります。表示させたくない場合は、クロールを許可したうえでnoindexタグを設置する方法に切り替える必要があります。

まとめ

  • robots.txtは検索エンジンのクローラーに対する「クロールの可否」を指示するファイル
  • クロール制御であり、検索結果への表示(インデックス)を直接止めるものではない
  • User-agent・Disallow・Allow・Sitemapの組み合わせで記述する
  • Disallow: /によるサイト全体ブロックの事故、noindex目的での誤用、サイトマップURLの記載漏れに注意する
  • 設定後はSearch Consoleでrobots.txtの内容とGoogleの解釈を確認する

robots.txtは一見単純なファイルですが、書き方を誤るとサイト全体の評価に関わります。Web GearのWebザイルでは、robots.txtやサイトマップなどクロール・SEOまわりの設定・管理を代行しています。「今のrobots.txtが正しいか確認してほしい」という段階からご相談いただけます。