robots.txtとsitemap.xmlの書き方。クロールさせるページを指定する方法
robots.txtとsitemap.xmlの役割の違いと書き方をGoogle公式ドキュメントに沿って解説。クロール制御の手順とやらなくていい作業を整理します。
結論
robots.txtはクロールの可否を指示するファイルで、sitemap.xmlはクロールしてほしいページをGoogleに知らせるファイルです。 この2つは役割が違い、混同すると設定を間違えます。 検索結果から隠すつもりでrobots.txtにDisallowを書く、という作業は今日やめるべきです。 隠したいなら robots.txt ではなく noindex を使い、サイトマップには公開して検索結果に出したいページだけを入れます。
robots.txtとsitemap.xmlは何が違うのか
robots.txtはサイトのルート直下に置くテキストファイルで、クローラー(検索エンジンがページを巡回して取得するプログラム)がどのURLにアクセスしてよいかを指示します。 サイトマップは、サイト内のページや動画などのファイルの情報と、ファイル同士の関係をまとめたファイルです。 robots.txtは「入ってよい場所」を区切るための門番で、サイトマップは「ここに大事な部屋がある」と示す案内図に当たります。
Google公式ドキュメントは、robots.txtについて次のように明記しています。
「it is not a mechanism for keeping a web page out of Google」
ページをGoogle検索結果から外す仕組みではない、という意味です。 robots.txtでブロックしたページでも、他サイトからリンクされていればURLだけ検索結果に出ることがあります。 その場合、スニペット(検索結果に表示される説明文)は付かないとドキュメントに書かれています。 完全に検索結果から消したいなら、robots.txtではなく noindex か、パスワード保護を使う必要があります。
Figure
robots.txtとsitemap.xmlの役割
robots.txt
クロールの可否を指示
- クローラーのアクセスを制限する
- サーバー負荷を抑える
- 検索結果から隠す仕組みではない
sitemap.xml
クロールしてほしい場所を知らせる
- 重要なページの一覧を渡す
- 更新日時などの情報を添える
- 掲載を保証するものではない
この違いを押さえておくと、次の手順で迷わなくなります。 ウェブページについては、どちらも「検索結果に出すかどうか」を直接決めるファイルではない点が共通しています。
手順
Figure
robots.txtとsitemap.xmlを整える流れ
- 1
robots.txtの有無を確認
ルート直下(例: example.com/robots.txt)にアクセスする
- 2
ブロック対象を洗い出す
サーバー負荷の原因や重複ページ、管理画面などを特定する
- 3
Disallowを書く
ブロックしたいパスだけを指定し、検索結果から隠す目的には使わない
- 4
サイトが必要とする規模か判断
ページ数とリンク構造から、サイトマップの要否を決める
- 5
サイトマップを作成し送信
重要なページのURLをまとめ、Search Consoleなどから知らせる
1. robots.txtの有無を確認する
ブラウザで「ドメイン/robots.txt」にアクセスし、ファイルが存在するか確認します。 CMS(WordPressやWixなど)を使っている場合、直接ファイルを編集できないことがあります。 その場合は検索設定の画面や、ページの公開範囲を変更する機能を探す必要があるとドキュメントに記載があります。
2. ブロック対象を洗い出す
robots.txtで制御する対象は、Webページ・メディアファイル・リソースファイルの3種類に分かれます。 Webページは、サーバーがGoogleのクローラーからのリクエストで過負荷になりそうな場合や、重要度の低い似たページのクロールを避けたい場合に使います。 画像・動画・音声などのメディアファイルは、検索結果への表示自体を防ぐ目的でも使えます。 CSSやJavaScriptなどのリソースファイルは、それを読み込まなくてもページの表示に大きな影響がない場合だけブロックします。 リソースをブロックした結果、Googleがページを正しく理解できなくなる場合はブロックしてはいけないと明記されています。
3. Disallowを書く
ブロックしたいパスを指定する際、検索結果から消したいという目的でDisallowを使わないようにします。 検索結果から隠したいページは、robots.txtではなく noindex タグかパスワード保護で対応します。 この使い分けを誤ると、ブロックしたつもりのページのURLが説明文なしで検索結果に出ることがあります。
「A page that's disallowed in robots.txt can still be indexed if linked to from other sites.」
他サイトからリンクされているページは、robots.txtでブロックしていてもインデックスされる可能性がある、という内容です。 ブロックは「クロールの可否」を決めるだけで、「インデックス(検索エンジンの検索結果に載る状態)の可否」までは決めません。 robots.txtのルールは、各クローラーがそれぞれ解釈するものであり、すべての検索エンジンが同じようにルールに従うとは限らない点にも注意が必要です。
4. サイトが必要とする規模か判断する
サイトマップを作る前に、自サイトの規模とリンク構造を確認します。 ドキュメントは、サイトが「小規模」であり内部リンクが整っている場合、サイトマップが無くても問題ないと述べています。 小規模の目安はおよそ500ページ以下、ただし検索結果に出したいと考えているページだけをこの数に含めます。
Figure
サイトマップの要否を分ける基準
500ページ以下
サイトマップが無くても問題ないとされる目安
検索結果に出したいページのみを数える
この数字は「このページ数を超えたら必須」という確定の線引きではありません。 内部リンクが薄い構造なら、500ページ未満でもサイトマップを作る理由になります。
5. サイトマップを作成し送信する
サイトの規模が大きい場合、サイトが新しく外部リンクが少ない場合、動画・画像を多く含む場合、Googleニュースに掲載される場合は、サイトマップが必要になるかもしれないとされています。 また公式ドキュメントは、ほとんどの場合はサイトマップがあるとサイトにとってプラスになるとも述べています。 CMSを使っている場合、すでにサイトマップが用意されていることが多く、何もしなくてよいケースもあります。 サイトマップを新規に作る場合は、重要なページのURLと更新日時などの情報をまとめ、Search Consoleから送信する流れになります。 Google Search Consoleの使い方を押さえておくと、送信後の状態確認がしやすくなります。
やること/やらなくていいこと
Figure
robots.txtとsitemap.xmlで扱う作業の線引き
やること
- robots.txtは主にサーバー負荷や重要でないページのクロールを抑える目的で使う
- 検索結果から隠したいページにはnoindexを使う
- 内部リンクが整った小規模サイトはサイトマップを後回しにしてよい
やらなくていいこと
- 検索結果から消す目的でrobots.txtにDisallowを書く作業
- 内部リンクが十分な小規模サイトで無理にサイトマップを量産する作業
ウェブページに対するrobots.txtは「隠す」ためのファイルではなく、主に「負荷を抑える」ためのファイルです。 この区別を忘れると、検索結果から消したいページがURLだけ残る状態になります。 内部リンクで十分にたどり着ける小規模サイトなら、サイトマップ作成にかける工数を他の作業へ回した方が効果的です。
具体例1: ECサイトの場合
例えば、商品点数が数千点あるECサイトを想定します。 カラー違い・サイズ違いのURLが大量に自動生成され、サーバーのアクセスログにクロールの偏りが出ているとします。 この場合、robots.txtでカート(「/cart/」)やサイト内検索結果(「/search/?」)のような、検索結果に出す必要のないURLをDisallowに指定し、クロールの的を絞ります。 一方で商品ページ自体は検索結果に出したいので、サイトマップには商品ページのURLと更新日時を入れて送信します。 ページ数が500を超える規模なら、サイトマップは「後回しでよい作業」ではなく優先度の高い作業になります。
具体例2: 店舗集客サイトの場合
例えば、店舗が1つだけの美容室サイトを想定します。 ページ数がトップ・メニュー・スタッフ紹介・アクセスの4ページ程度で、すべてメニューバーからリンクされているとします。 このようなサイトはドキュメントが示す「小規模」かつ「内部リンクが整っている」条件に当てはまります。 サイトマップを作らずとも、Googlebot(Googleの検索用クローラー)がメニューをたどって全ページを発見できる見込みが高く、サイトマップ作成は優先度の低い作業になります。
robots.txtについても、予約フォームの確認画面など重複する内容のページがなければ、特別なDisallow設定は不要です。 サイト規模が小さいうちは、robots.txtとsitemap.xmlのどちらも「触らなくてよい」状態が正解になることがあります。
よくある質問
robots.txtを設置すれば検索結果からページを消せますか
消せません。robots.txtはクロールの可否を指示するだけで、他サイトからのリンクがあればURLが検索結果に残ることがあります。 検索結果から確実に外したい場合は、noindexタグの設置かパスワード保護を使う必要があります。
サイトマップを送信すれば必ずインデックスされますか
保証されません。サイトマップはGoogleがページを発見しやすくするための情報であり、掲載を保証する仕組みではないとドキュメントに明記されています。 送信後も、個別ページの状態はSearch Consoleのレポートで確認する必要があります。
robots.txtの書式はクローラーごとに同じですか
同じとは限りません。Googlebotをはじめとする行儀のよいクローラーはrobots.txtの指示に従いますが、クローラーごとに構文の解釈が異なる場合があり、指示に従わないクローラーもあります。 AI関連のクローラーを個別に制御したい場合は、AIクローラーとrobots.txtで User-agent ごとの書き分け方を確認してください。
Sources · 一次情報
この記事は一次情報をもとに作成し、公開前に自動検査を通しています。作成の手順と訂正の方針は運営者情報に記載しています。
Share
XでポストはてなブックマークLINEで送る