robots.txtの書き方と設定方法|必要なページを止めない確認手順

サイトの紙模型と、クロールする範囲を考える分岐と二つの門

こんにちは。バナナデスクです。

下書き用のページをクロールさせないつもりで、robots.txtへDisallow: /drafts/と書いたとします。では、末尾にスラッシュのない/draftsも同じ指定に含まれるでしょうか。

Googleのルール解釈では、この二つは同じではありません。robots.txtを直すときは、止めたいURL一つだけでなく、似たURLと公開したいURLも並べて確認すると、指定の広すぎ・狭すぎに気づけます。この記事では6つの架空URLと3つの設定例で、その違いを整理します。

robots.txtは、クロールの制御に使う

robots.txtは、ルールに対応するクローラーへ、サイトのどの範囲を取得してよいか伝えるファイルです。検索結果から必ずURLを消す指定でも、他人の閲覧を防ぐ認証機能でもありません。Googleのrobots.txt入門も、クロールの管理と検索結果への掲載を区別しています。

非公開にしたい顧客資料なら、ログインやアクセス権限などで守る方法を使います。検索へ掲載したくない公開ページでnoindexを使う場合も、クローラーがその指示を読める必要があります。robots.txtで取得を止めたうえで、ページ内のnoindexも必ず読まれると考えないでください。

適用されるホストと、現在の出力を確認する

例で扱う場所はhttps://example.com/robots.txtです。https://docs.example.com/は別のホストなので、このファイルの判定をそのまま当てはめません。Googleのrobots.txtの解釈資料は、適用範囲をホスト・プロトコル・ポートごとに説明しています。

WordPressなどでは、管理機能やプラグイン、サーバーが出力している場合があります。新しいファイルを作る前に、公開されているrobots.txtと、その出力を管理している場所を確認します。複数の場所を同時に変更すると、どの指定が実際に返っているか分かりにくくなるためです。

編集時には、別の自作WordPress Playground環境でrobots.txtが200で返り、管理領域のDisallow、例外のAllow、サイトマップの場所が含まれていることを確認しました。これは出力の読み取り例であり、今回の架空設定を本番へ投入した結果や、Googleが実際にクロールした記録ではありません。

3種類の設定を、同じURLへ当てはめる

以下は違いを学ぶための設定です。「drafts」という名前を付ければ公開してよい、という意味ではありません。実際の非公開資料をこの方法だけで守らないでください。

A:/drafts/から始まる範囲を止める

User-agent: *
Disallow: /drafts/

この例では/drafts/noteは対象ですが、/draftsは最後のスラッシュがないため一致しません。パスの大文字・小文字も区別するため、/Drafts/noteもこのルールとは一致しません。

B:末尾まで/draftsに一致するURLを止める

User-agent: *
Disallow: /drafts$

末尾を表す$を使った例です。今回の6URLでは/draftsだけが対象で、配下の/drafts/noteは止まりません。「そのページだけ」と「配下も含む」の取り違えに注意します。

Disallowのパス/drafts/は配下を対象とし、/drafts$は末尾まで一致するURLを対象にする違い
架空設定の説明。検索結果からの削除やアクセス認証を実現する指定ではありません。

C:配下を止め、具体的な公開範囲を例外にする

User-agent: *
Disallow: /drafts/
Allow: /drafts/public-note

この例では/drafts/public-noteに、より具体的なAllowが一致します。Allowはこのページだけの完全一致ではなく、その文字列で始まる範囲にも当たり得るため、実際に同じ接頭辞のURLがないかも調べます。今回の表にないURLまで検査済みという意味ではありません。

6URLの判定表

「許可」は、このファイルのルールでクロールを拒否していないという意味です。サーバーが200を返すことや検索へ登録されることまで示しません。「別のホスト」は、このファイルでは判定対象外です。

架空URL A B C
example.com/ 許可 許可 許可
example.com/drafts/note 拒否 許可 拒否
example.com/drafts 許可 拒否 許可
example.com/Drafts/note 許可 許可 許可
example.com/drafts/public-note 拒否 許可 許可
docs.example.com/drafts/note 別のホスト 別のホスト 別のホスト

Googleの資料に照らして期待する結果を先に表へし、今回使う文字列の前方一致、末尾一致、長い一致を優先する処理を小さな確認コードで再計算しました。18組の判定が表と一致しました。このコードは教材の範囲に絞ったもので、公式パーサーの実行やGooglebotの訪問を観測した結果ではありません。日本語URL、複数のUser-agent群、ワイルドカードなどを網羅する汎用テストツールとして扱わないでください。

保存した後は、ファイルそのものを取得して確認する

  1. 変更前の本文と、その出力を管理する場所を控えます。
  2. 止めたいURLと、許可を維持したい代表URLの両方を一覧にします。
  3. 管理する場所を一つに絞って変更し、対象ホストの/robots.txtを再取得します。
  4. 入力欄に保存された文字と、公開側で実際に返る文字が一致するか確認します。
  5. 必要な本文や画像、表示に必要なファイルまで止めていないかを点検します。

Googleの作成手順も、ファイルをサイトへ配置して利用できる状態にするところまで説明しています。管理画面の保存ボタンを押したことだけで、対象URLに意図した出力があるとは決めないようにします。

robots.txtは、行を増やすほどSEOに有利になるものではありません。公開したいページを止めず、意図した範囲だけを指定するために使います。まず現在の出力と対象URLを並べ、似た文字列を一つずつ確認するところから始めてください。