最近?でもないけど、ずいぶん前からちょっと不思議に思ってたことがあります。
なにかというと、Movable Type には、検索機能が付いているわけなのですが、それの検索回数が凄まじいことになっているのです。
MT の管理画面から、ログを見て検索履歴を確認することができます。
大体、1000/day というのは普通で、日によっては 2000 近くなることも。
要するに、訪問者よりも、検索回数が多いとか...あり得ないでしょう。
これは、サーバーに負荷をかけてくれる原因にもなるし、対処せねば...
と思いながらも、かなり放置していたのですが、
こちらの記事を読んで、ちゃんと調べてみようということに。
もしかしたら、本当に "検索スパム" というものが存在する可能性も...
(まあ、何となく察しはついていたんですが。)
原因究明...
ってことで、検索履歴のログを解析してみます。
とりあえず、こんなに大量に検索してくる接続元はどこなのか、調べてみましょう。
ログから、IP だけを取り出して、nslookup してみます。
nslookup < search_ip | grep name > search_ip.out
sort -i search_ip.out | uniq -c | sort -r
上記のようなコマンドを流してあげると、検索元のドメインが回数順に並んでくれます。
ああ、Windows に流しても意味ないでw
では、結果を見てみましょう。
検索回数 Top5!!
- 63 83.73.249.66.in-addr.arpa name = crawl-66-249-73-83.googlebot.com.
- 50 215.78.30.72.in-addr.arpa name = llf531348.crawl.yahoo.net.
- 13 157.37.195.67.in-addr.arpa name = llf320058.crawl.yahoo.net.
- 8 185.211.55.65.in-addr.arpa name = msnbot-65-55-211-185.search.msn.com.
- 7 218.18.6.74.in-addr.arpa name = llf520140.crawl.yahoo.net.
(事情により、上位 5 位まで)
どうも、大半は検索エンジンの bot からのものだったようです。
実に予想通り。面白くはない。
google, yahoo, msn と各社がんばっておりますw
対策を考えてみる...
正直、MT の検索結果まで、検索エンジンにクロールしてくれる必要はまったくありません。
少なくとも、僕は必要性を感じていません。
サーバーの負担になるだけですので、排除しましょう。
早い話が、googlebot や yahoo のクローラーからのアクセスを遮断できればいいのですが。
こういう時に便利なのが、robots.txt です。
まあ、robots.txt が何かは勝手に調べるとして、以下のように記述すればいいかと思います。
User-Agent: *
Disallow: /mt/mt-search.cgi
Allow: /
あとは、数日待つことで、各社の bot が消え去るはずです。
僕のところでは、100/day 程度まで検索回数が少なくなりました。
もし、同じ現象に遭遇している方は、ぜひお試しあれ。
勝手にクロールしていくのも、ほどほどにしてほしいなぁと。


コメントする