これ、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