これ、503返す前にもう一度アクセスログを見た方がいいと思う。
[を] Perl、PHPでGooglebotを一定の確率ではじく「Googleのクローラ(Googlebot)のアクセス数が多すぎてサーバに 負荷がかかりすぎる問題」に悩まされています。
たとえば、/foo.cgiへのアクセスが多いとする。この場合、単に/foo.cgiではなく、/foo.cgi?query=fooや/foo.cgi?query=barにbotたちは来ていないだろうか。それが結果としてアクセスを増やしていないだろうか。
この場合なら、対処はむしろ503を返すのではなく、CGIのEntry Pointへの301を返すことなのではないか。こんな感じで。
my $q = CGI->new();
# ...
if ( $ENV{HTTP_USER_AGENT} =~ /googlebot/i && $q->param ) {
print $q->redirect(
-status => 301,
-uri => $ENV{SCRIPT_NAME}
);
exit;
}
404 Blog Not Found:http://www.amazon.co.jp/ の「二枚舌」に学ぶ究極のSEOデフォルトではリダイレクトなしだが、botのみリダイレクトするホワイトリスト方式である。ホワイトリスト、というよりbotにちなんで「メタルリスト方式」とでも呼ぼうか。
というのをこちらにも応用するのである。これなら、CGIのEntry Pointは確実にクロールされ、しかしクエリーが入ったURIはEntry Pointの方に集約される。上記ではCGIのEntry PointはQueryなしでアクセスした場合のURIだが、これは任意のURIでOKだ。
Dan the Bot Tamer
このブログにコメントするにはログインが必要です。
さんログアウト
この記事には許可ユーザしかコメントができません。