クローラーフィルタ

ブログを含めウェブサイトを公開している人にとってはGooglebot, Yahoo! Slurp, Bingbotあたりは是非とも来て欲しいクローラー/ボット/スパイダーかも。逆に来て欲しくないのは有名ドコロではYetibot(旧NaverBot), Baiduspider, YandexBotあたりでしょうか。
来て欲しいんだけど来て欲しくないという矛盾を抱える場合もある。与えられているサーバのリソースが制限される場合など、下手に集中して来られるとクローラーのアクセスだけでいっぱいいっぱい、格安レンタルサーバによっては契約を切られるかも。

取り敢えず、歓迎しないクローラーはアクセスを拒否で。

robots.txt

クローラーを制御できるという利点がある。制御の為の決まり事はあるのだが、紳士協定的なものなのでクローラーがそれを守らないという致命的な問題が。

robots.txtの基本的な書き方はこちら (Wiki: Robots Exclusion Standard)
拡張規格についてはこちら (ただし、どのクローラーで使えるか不明)

Crawler特徴
Baiduspider極めて質が悪いrobots.txtは恐らく無駄
Bingbotクセが強い Crawl-delayは目論見通りに効かない
GooglebotDisallowは効くが他は無視?
msnbotBingbotに移行という話は何処にいったのかMSに問い詰めたい
Yahoo! SlurpRobots Exclusion Standard
YandexBot露のクローラー 情報少なく不明
Crawl-delayは秒数指定で効果あり
Yeti極めて質が悪いrobots.txtは恐らく無駄

.htaccess

IPアドレスやUser Agent情報などを使って比較的簡単に効果的に処理できる。

CrawlerUser Agent
BaiduspiderBaiduspider+(+http://www.baidu.com/search/spider.htm)
Baiduspider+(+http://www.baidu.com/search/spider_jp.html)
Baiduspider+(+http://www.baidu.jp/spider/)
BaiduImagespider(+http://www.baidu.jp/spider/)
DoCoMo/2.0 P05A(c100;TB;W24H15) (compatible; BaiduMobaider/1.0; +http://www.baidu.jp/spider/)
DoCoMo/1.0/D506i/c20/TB/W20H10 (compatible; BaiduMobaider/1.0; +http://www.baidu.jp/spider/)
KDDI-CA3A UP.Browser/6.2.0.13.2 (GUI) MMP/2.0 (compatible; BaiduMobaider/1.0;+http://www.baidu.jp/spider/)
SoftBank/1.0/912SH/SHJ002/SN001111111111000 Browser/NetFront/3.4 Profile/MIDP-2.0 (compatible; BaiduMobaider/1.0;+http://www.baidu.jp/spider/)
BingbotMozilla/5.0 (compatible; bingbot/2.0; +http://www.bing.com/bingbot.htm)
GooglebotMozilla/5.0 (compatible; Googlebot/2.1; +http://www.google.com/bot.html)
Googlebot-Image/1.0
SAMSUNG-SGH-E250/1.0 Profile/MIDP-2.0 Configuration/CLDC-1.1 UP.Browser/6.2.3.3.c.1.101 (GUI) MMP/2.0 (compatible; Googlebot-Mobile/2.1; +http://www.google.com/bot.html)
DoCoMo/2.0 N905i(c100;TB;W24H16) (compatible; Googlebot-Mobile/2.1; +http://www.google.com/bot.html)
Mozilla/5.0 (iPhone; CPU iPhone OS 6_0 like Mac OS X) AppleWebKit/536.26 (KHTML, like Gecko) Version/6.0 Mobile/10A5376e Safari/8536.25 (compatible; Googlebot/2.1; +http://www.google.com/bot.html)
AdsBot-Google (+http://www.google.com/adsbot.html)
Feedfetcher-Google; (+http://www.google.com/feedfetcher.html; 可変)
msnbotmsnbot/2.0b (+http://search.msn.com/msnbot.htm)
msnbot-media/1.1 (+http://search.msn.com/msnbot.htm)
Yahoo! SlurpMozilla/5.0 (compatible; Yahoo! Slurp; http://help.yahoo.com/help/us/ysearch/slurp)
YandexBotMozilla/5.0 (compatible; YandexBot/3.0; +http://yandex.com/bots)
Mozilla/5.0 (compatible; YandexImages/3.0; +http://yandex.com/bots)
Mozilla/5.0 (compatible; YandexVideo/3.0; +http://yandex.com/bots)
Mozilla/5.0 (compatible; YandexMedia/3.0; +http://yandex.com/bots)
YetiYeti/1.0 (NHN Corp.; http://help.naver.com/robots/)
Yeti/1.0 (+http://help.naver.com/robots/)

行儀の悪いクローラーは普通のブラウザのUser Agentを出したり、他所の会社のクローラーのUser Agentを出したりすることがあるので必ずしもUser Agentで全てを弾けるとは限らない。

パケットフィルタ

基本的にIPアドレスで制限を行う。クローラーのアクセス許可はあまりこの方法に頼らない方が良いが、鎖国フィルタと合わせて使うと良い場合もある。例えば日本以外のアクセスを遮断した場合、GooglebotやYahoo! Slurp,msnbotなどを追加でアクセス許可に含めることでそれらのクローラーの巡回を受け入れる。そうでなければ日本国外からのクローラーは全て弾かれてしまう。
使い方は鎖国フィルタを参照。

Crawlerフィルタ最終更新
Baiduspiderpf_table_baidu.txt2014/06/01
Bingbotpf_table_msnbot.txt2014/05/28
Googlebotpf_table_google.txt2014/05/28
msnbotpf_table_msnbot.txt2014/06/01
Yahoo! Slurppf_table_yahoo.txt2014/06/01
YandexBotpf_table_yandex.txt2014/06/01
Yetipf_table_yeti.txt2014/05/28

おまけ:   Linode.com   pf_table_linode.txt     2015/06/02
こちらはクローラーではなく迷惑さんたち。Linode.com自体は真面目な目的で使う人も多いのでしょうがスパムの温床なので。アメリカと日本のLinode.comで調べられる範囲でリスト化しています。もっとあればお知らせ下さい。

BaiduspiderはChina Telecom(220.181.0.0/16)やChina Unicom(123.112.0.0/12)などのキャリアからも来ているが、上のフィルタでは実際にBaiduによって使われているそれぞれ/24以下だけを含めている。今後益々増えるようなら/16や/12などでこれらのキャリアを丸ごとフィルタして気分スッキリにしたいかも。

なお、これらのクローラーのIPアドレスは検索サイトの会社から正式に発表されたものではなく、趣味でログ等を基に収集しているので一部不足している場合、既に使われなくなっている、間違っている、etc..があっても無保証。ただし、IPの逆引きなども行って比較的丁寧に集めてはいるつもり。更新は手動で行っているので不定期。
情報ある場合はお知らせいただければと。

関連記事: