PR

クロール頻度を調整する robots.txt

筆者の複数のサイトを運営する上で経験した”クローラーアタック”といえばGoogle なのだが、どうやら今さらながら新手に遭遇したようだ。情報を調べてみると、あまり行儀がよろしくないと名高いクローラらしい。

これまでrobots.txt といえばアクセスされたくないディレクトリを記載するくらいにしか(主にアクセスカウンタなどcgi 関連)使っていなかったので、クロール頻度の調整ができるか調べてみたので以下にメモする。

sitemap を記載できることやアクセスアップのために積極的に活用するなどの使い道もあるようだった。同時に、記載を間違えた場合の体験談もあり、注意も必要のようだ。

何れにしても、robots.txt を受け入れてくれるかどうかはクローラ次第だが。

スポンサードリンク

User-agent

ユーザエージェントは、どの検索エンジンのロボット(bot)に向けて書いているのかを表す。

User-agent: Googlebot

ユーザエージェント一覧

  • Google : Googlebot
  • Google 画像検索: Googlebot-Image
  • Google モバイル: Googlebot-Mobile
  • Yahoo: Slurp
  • MSN(Bing): msnbot
  • Baidu(百度、バイドゥ): Baiduspider
  • Ask: Teoma
  • Naver: Yeti
  • Cuil: Twiceler
  • Dotbot: DotBot

→ BaiduのクローラーのUser-Agent (UA)

すべてのbot に向け

User-agent: *

Disallow

Disallow は、クロールやインデックスを拒否するディレクトリを記載する。ただし、robots.txt は誰でも見ることができるため、隠したいディレクトリを公表することにもつながると警告する文献もある。その場合は.htaccess でアクセスを制限したり認証をしたりする対策が有効かもしれない。

Disallow: /cgi-bin/

Crawl-delay

Crawl-delay は、クロール速度調整。ただし、Google はGoogle Webmaster Tool (GWT)で調整する。

→ Yahoo!だけは単位が分

sitemap

Sitemap: http://sample.com/sitemap.xml

検索エンジンに知らせるためにrobots.txtに正しいサイトマップのurlが書き込んであれば、それを検知した検索エンジンが追加された記事をクロールしてインデックスしてくれる(「robots.txtのsitemap.xmlの書き間違えに注意 – ウォッチングnicemeets」より引用)

複数記載

複数記載する場合はどうしたらよいか。

→ 複数入れるには空白行を挟むこと

コメント

robots.txt 内でコメントを記載する場合はどうするか。

行頭に「#」を付ける。

# sitemap

サンプル

#
# sitemap
#
# 2011.03.11
#

User-agent: *
Sitemap: http://www.example.com/sitemap.xml

#
# no access
#

User-agent: *
Disallow: /cgi/

#
# baidu
#
# 2011.03.11
#

User-agent: Baiduspider
crawl-delay: 60

User-agent: BaiduImagespider
crawl-delay: 60

※これが正しいかどうかは不明

参考文献

コメント