Akata Works

フルスタックなクリエイターになる・・つもりの二年目Webエンジニアのブログ

コンテンツ単位でボットからのアクセスを無視する

自身のサイトに訪れたユーザのアクセス情報をイベント単位で取得し、レポートを作成したり、Mixpanelを使用するとき、
クローラなどのボットが凄まじいノイズっぷりを発揮し、
レポートがメチャクチャになります。

サイト単位やページ単位でボットのアクセスをスルーする場合は、"robots.txt"ファイルを作成すればOKですが、検索結果から消滅されると困ります。

"robots.txt"については参考URLを参照してください。


そこで別の手段として、さらに細かいコンテンツ単位で指定する場合や、
"robots.txt"ファイルを無視するボット対策として、
ユーザエージェントで判断する方法があります。

例えばGooglebotの場合は、ユーザエージェントに"Googlebot"が含まれるため、 以下のコードで簡単にスルーできます。

if !request.env["HTTP_USER_AGENT"].match("Googlebot")
  # TODO:
end

同様の方法で"libwww"も簡単にスルーできたりします。

ちなみにGoogleアナリティクスには、ロボットをフィルタリングするための設定があるようですね。

参考URL