筆者の複数のサイトを運営する上で経験した”クローラーアタック”といえば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)で調整する。
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
※これが正しいかどうかは不明
参考文献
- robots.txtの設定・書き方、アクセス禁止・制限、ロボット・クローラー – Google、Yahoo、Bing、Baidu、Naver、Cuil、DotBot
- できるだけ検索ロボットから避けるために|1bit::memo
- Baidu.jp が運用するクローラーについて
- Baiduspider – Wikipedia
- 検索エンジンのクローラーの巡回頻度をコントロール – ウォッチングnicemeets
コメント