robots.txtにおけるAllowとDisallowとSitemapの優先順位
検索エンジンなどのクローラを良き導くための指針ファイル、それがrobots.txtです。
その書き方の詳細は検索するなりrobotstxt.orgを見てください。
数あるrobots.txtの説明で気になったのは、AllowとDisallowの優先順位です。
どうやら当たり前すぎて説明されていないようです。
記述例の効果は、Googleウェブマスターツールでテストしました。
なのでこれから説明する動作はGooglebotだけにしか通用しない可能性があります。
優先順位を説明する前に、記述順序について説明します。
記述順序による効果の違いはなし
User-agentが一行目であれば、それ以降の記述順序による効果の違いはありません。
なので以下はどちらも同じ効果になります。
User-agent: *
Sitemap: http://www.example.com/sitemap.xml
Disallow: /bakemono
Allow: /bakemono/gatari
User-agent: *
Sitemap: http://www.example.com/sitemap.xml
Allow: /bakemono/gatari
Disallow: /bakemono
そして、ここからが本題です。
Sitemapの優先順位
サイトマップファイルの場所を記述するSitemap:
ですが、これはAllow:
とDisallow:
より優先度は低いです。
例えば、以下の場合ではクローラはサイトマップファイルへアクセスできません。
User-agent: *
Sitemap: http://www.example.com/sitemap.xml
Disallow: /
User-agent: *
Sitemap: http://www.example.com/sitemap.xml
Disallow: *.xml$
全体をアクセス拒否する場合は少ないでしょうが、拡張子のみでアクセス拒否する場合はご注意ください。
これは実体験によるものです。
この記述で、Googlebotは見事にアクセスできなくなってました。
AllowとDisallowの記述が同じ場合
Allow:
とDIsallow:
の記述が異なる場合では、長い記述の方が優先されます。
これはAllow:
とDIsallow:
が前方一致で機能するからです。
では、記述が同じ場合はどうでしょうか。
Allow:
とDIsallow:
の記述が同じ場合ではAllow:
が優先されます。
User-agent: *
Disallow: /
Allow: /
解説
当たり前の事ですが、機能しないのなら書く必要はありません。
上記の例ならDisallow: /
は必要ありません。
User-agent: *
Allow: /
アクセスを制限していない状況ではAllow:
も必要ありません。
User-agent: *
アクセスの不可避もないのにUser-agent:
を記述する必要はありませんね。
そして何もなくなった。
コメント[0]
コメント投稿フォーム
コメントを投稿するにはJavaScirptが必要です。ブラウザのJavaScriptを有効にしてください。
トラックバック[0]
トラックバックはまだありません。
コメントはまだありません。