googlebotだけ非表示にする条件分岐方法(ワードプレス・サーバー負荷軽減)
doudonn 更新日:
スパムのbotはnginxや.htaccessで拒否するので問題ありませんが、
一番負荷をかけてくるGoogleは拒否できない。
そのため、PHPファイルの中で判別して条件分岐するのが良い。
1、googlebotを判断する関数
次のコードをfunction.phpに書きます。
function is_search_engine_bot(){
$useragents = array(
'googlebot',
'bingbot',
'Yandex',
'DuckDuckBot'
);
$pattern = '/'.implode('|', $useragents).'/i';
return preg_match($pattern, $_SERVER['HTTP_USER_AGENT']);
}
ついでにbing・yandex・DuckDuckGoも登録。
ただユーザーエージェントで判断するだけのシンプルなものです。
いくらでも追加可能。
2、googlebotの条件分岐方法
<?php
if(is_search_engine_bot()) {
//googlebotに表示にするコード
}else{
//googlebot以外に表示するコード
}
?>
//「!」をつけると否定文になります。
//この使い方の方が多いと思う。
<?php
if(!is_search_engine_bot()) {
//googlebot以外に表示するコード
}
?>
ユーザーエージェント指定の文字が含んでいなかったら、というif文です。
モバイルの振り分けのやつとほぼ同じやり方。
非表示にすると良いものとしては、アナリティクスやスライドショーなどのJavaScriptです。
API系も全部botは非表示にすると良い。
ページ数が多く更新頻度の高い大規模サイトの場合、
googlebot先生を特別待遇することも重要になってきます。
これだけでサーバー負荷がだいぶ違ってくるので、是非やってみてください。