robots.txtについて調べる機会があったのでメモ。
設定方法
robots.txtは検索エンジンのクローラーに対して、どのページがクロール可能/不可能かを設定することができます。
robots.txtで指定できる項目は以下の4種類です。
User-agent | 設定するクローラーのユーザーエージェントを指定。必須。 |
---|---|
Disallow | クロールを許可しないディレクトリやページを指定。 |
Allow | クロールを許可するディレクトリやページを指定。 |
Sitemap | sitemap.xmlのURLを指定。 |
実際にrobots.txtの記述例を見てみます。
例えば、「全てのクローラー」に対して「/mypage/」のクロールを許可しないようにする場合、以下のように指定します。
robots.txt
User-Agent: * Disallow: /mypage/
「User-Agent」に「*」を指定することで、全てのクローラーが対象になります。
特定のクローラーに対して設定したい場合、そのクローラーのユーザーエージェントを指定すればOKです。
「画像用 Googlebot(Google画像検索)」に対して「/images/」内の画像をクロールしないようにする場合、以下のように指定します。
robots.txt
User-agent: Googlebot-Image Disallow: /images/
Google のクローラについてはこちらのページを、その他のクローラーについてはこちらのページでご確認ください。
最初の例を少し変更して、「全てのクローラー」に対して「/mypage/」のクロールは許可しないが、「/mypage/privacy/」のみクロールを許可したいという場合、以下のように指定します。
robots.txt
User-Agent: * Disallow: /mypage/ Allow: /mypage/privacy/
このようにDisallowを指定した中で一部例外でクロールさせたいページがある場合、Allowを使います。
Disallowを指定していなければクローラーはクロールするので、以下のようにクロールさせたいページに対してわざわざ指定する必要はありません。
robots.txt
User-Agent: * Allow: /
ルールは複数設定することもできます。
「全てのクローラー」に対して「/mypage/」と「/search/」のクロールを許可しないようにして、「画像用 Googlebot」に対してのみ「/mypage/image/」のクロールを許可してみます。
# ルール1 User-Agent: * Disallow: /mypage/ Disallow: /search/ # ルール2 User-Agent: Googlebot-Image Allow: /mypage/image/
最後にSitemapの指定です。
「全てのクローラー」に対して「/mypage/」のクロールを許可しないようにして、合わせてsitemap.xmlのURLも指定してみます。
User-Agent: * Disallow: /mypage/ Sitemap: https://example.com/sitemap.xml
SitemapのURLは絶対パスで指定するようにしてください。
【参考サイト】
コメントが承認されるまで時間がかかります。