Web系のこととかー。

Yahoo Overtureでリスティング広告を入稿すると、サイトが存在するか・内容が適切かどうかをチェックするためにクローラーが巡回してきます。このクローラー、入稿したキーワード分だけアクセスをしてくるので、大量にキーワードを登録すると、それだけの数のアクセスが来ることになります。つまり、1万キーワード入稿すると、1万回クローラーが来ます。しかも1秒間に数十アクセスのスピードで。

これだけアクセスが来ると、貧弱なサーバでは捌ききれずロードアベレージが上がって、最終的にはサーバが落ちることもあります。本来アクセスして欲しいユーザが、広告審査のためにアクセスできなくなったら、これは本末転倒…。というわけで、Overtureクローラーを弾きましょうというお話です。

Overtureのクローラー回避

クローラーについて

Yahooのヘルプページを見ると

スポンサードサーチのクローラーのIPアドレスは以下のとおりです。

124.108.66.79
124.108.66.80
124.108.66.81
124.108.66.82
124.108.66.83
124.108.66.84
124.108.66.231
124.108.66.232
124.108.66.233
124.108.66.234
124.108.66.241
124.108.67.241

※IPアドレスは予告なく変更される可能性があります。
※ユーザーエージェント情報は非公開です。
※広告審査の公正性を図るため、クローラーの頻度や仕様に関しましては開示しておりません。

スポンサードサーチのクローラーについて

とあり、ユーザーエージェントを非公開にしています。が、実際にアクセスしてきているログを見ると

  • Mozilla/5.0 (compatible; Yahoo!-AdCrawler; http://help.yahoo.com/yahoo_adcrawler)
  • Mozilla/4.0 (compatible; MSIE 5.01; Windows NT 5.0) RPT-HTTPClient/0.3-3E”

この2つがYahooから来ていることが分かります。他にもあるかもしれません。なお、上記で公開しているクローラーのIPアドレス以外からも来ているので、もしかしたらヘルプページの情報が古いのかも知れません。(なおRPT-HTTPClientはYahooOverture専用のものではなく、他のサービスでも利用されているHTTPパッケージです)

(*)インタレストマッチのクローラーは別途あります。インタレストマッチのクローラーについてを参照してください。

実際に回避する方法

RewriteEngine On

RewriteCond %{HTTP_USER_AGENT} Yahoo!-AdCrawler [OR]
RewriteCond %{HTTP_USER_AGENT} RPT-HTTPClient
RewriteRule ^.*$ yahoo_overture.html [L]

色々と試しましたが、これが現状ベターかなと思います。

完全にアクセスを拒否するのではなく、Overture用に静的なHTMLを用意しておき、そこへmod_rewriteを使ってリダイレクトするという方法です。

ただ、このクローラー…本当に中身を見ているかどうかは疑問です。中身からっぽのHTMLを返したり、アクセス自体を拒否しても広告の審査が通っている現状。調べてもあんまり情報出てこないし、実際どうなっているんだろうか謎です。

§336 · 4月 15, 2011 · 技術その他 · · [Print]

Leave a Reply