45式::雑記
45式::雑記は、日々の事を記してないから日記ではなく雑記です。

robots.txtにおけるAllowとDisallowとSitemapの優先順位

コメント
0件
トラックバック
0件

検索エンジンなどのクローラを良き導くための指針ファイル、それが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]

トラックバックはまだありません。

カテゴリ
アーカイブ
ヘルプ
Feed

フィードとは