PHPでクローラー(crawler)の判定を行なう
PCサイト、SPサイトを作成したWEBサイトにおいて
クローラからのリクエストかどうかを判定する必要があったので
方法をまとめました。
<?php //クローラー判定 function isClawler($clawler=false){ $ua = $_SERVER['HTTP_USER_AGENT']; $crawler_arr = array( "Googlebot" // google ,"Baiduspider" // Baidu ,"bingbot" // Bing ,"Yeti" // NHN ,"NaverBot" // NaverBot ,"Yahoo" // Yahoo ,"Tumblr" // Tumblr ,"livedoor" // livedoor ); foreach ($crawler_arr as $value) { if (stripos($ua, $value) !== false) { return true; } } return false; } ?>
クローラー判定の配列には、主要なものを指定していますので
必要によって追加をするということになるかと思います。
後は「stripos」でそれぞれのチェックを行なうという流れです。
正規表現でチェックしても良かったのですが
ベンチマークをそれぞれ調べてみると
ループで回すほうがよかったので
上記の処理にしました。