WordPress で偽の Googlebot を見分けてブロックするには?
執筆:Eureka Studio · 更新日
要点
WordPress サイトに来る本物の Googlebot は、Google が公開している IP 範囲からアクセスします。それ以外の場所からその名前を名乗るものは偽物なので、ブロックしてかまいません。その他の悪質なボットには、IP ごとに 1 分あたりのリクエスト予算を設け、検索や 404 のような負荷の高いリクエストほど多くを消費させます。予算を超えた IP には短時間の 429 を返し、チェックアウトは常に通します。
手順
1手順 1
アクセスの中から偽物を見つける
Googlebot はほとんどのサイトでブロックされないため、多くのボットが Googlebot を名乗ります。名前は自由に真似できますが、IP アドレスは真似できません。Google と Bing の公式リストを読み込んだうえで、Hushfort はそれ以外のアドレスから来た「Googlebot」を偽の検索ボットとして記録します。
2手順 2
負荷保護を監視モードで有効にする
Hushfort で「負荷保護」を開いて有効にします。モードは最初「記録のみ — 監視モード (開始時に推奨)」になっており、上限に達するはずだった IP を記録するだけで、誰もブロックしません。「偽の検索ボット」はオンのままにしておきます。

3手順 3
リクエストを公平に値付けする予算を設定する
各 IP には「IP ごとの 1 分あたりの予算」(デフォルトは 120 ポイント) が割り当てられます。ページ表示は 1、検索は 5、XML-RPC 呼び出しは 10 ポイントで、404 は 4 ポイントが加算されます。チェックアウトと決済のコールバックは消費ゼロです。
4手順 4
予算を超えた IP は少しだけ待たされる
「保護」モードでは、予算を使い切った IP に「ブロック時間」(デフォルトは 10 分) のあいだ 429「リクエストが多すぎます」ページが表示されます。確認済みの検索ボットは対象外で、チェックアウトも引き続き機能します。
5手順 5
ログを確認してから「保護」に切り替える
監視モードで数日間動かしたら、「最近のブロック」を確認します。実際の訪問者が含まれていなければ、モードを「保護 — 予算を超えた IP を 429 で止める」にして保存します。

なぜ重要なのか
アクセスが重い日が、いつも人気の証とは限りません。人間とは比べものにならない勢いでサイトを巡回するボットがいます。検索ボックスにでたらめな単語を次々と打ち込んだり、存在しないファイルを何百も探ったり、誰もブロックしないように Googlebot を装ったり。こうしたリクエストはどれもページキャッシュを素通りし、WordPress とデータベースに実際の処理をさせます。
共用サーバーなら、ページの表示が遅くなり、CPU 制限に引っかかり、ときにはアカウントが停止されることもあります。ストアなら、ボットが検索を繰り返しているあいだ、本物のお客様が待たされることになります。
ポイントは、負荷の高いリクエストと軽いリクエストを区別することです。「1 分あたりのリクエスト数」で数えると、キャッシュされたページの表示とキャッシュされない検索が同じ扱いになります。負荷に応じて値付けすれば、本物の訪問者には寛大に、ボットにしか生まれないパターンには厳しく対応できます。
よくある間違い
- ユーザーエージェントでブロックする。 誰でも Googlebot を名乗れるうえ、名前でブロックすると本物までブロックしてしまいます。IP で確認しましょう。
- すべてに同じ上限を使う。 一律の「1 分あたりのリクエスト数」ルールでは、検索の大量アクセスを見逃すか、素早く閲覧しているお客様を引っかけるかのどちらかです。リクエストは負荷で値付けしましょう。
- チェックアウトをブロックする。 決済のコールバックやチェックアウトを止めかねない回数制限は、実際の売上を失わせます。これらは常に対象外にしておきましょう。
- 長時間のブロック。 共有 IP を 1 日ブロックすると、オフィス全体やモバイル回線全体を締め出すことがあります。ボットのリズムを崩すには、短い休止で十分です。
- ネットワーク規模の大量アクセスをプラグインで止めようとする。 サーバーの回線を埋め尽くすほどのトラフィックは、WordPress まで届きません。それは CDN の仕事です。
プラグインを使わない方法
Googlebot を手動で確認する。 アクセスログにある不審な IP について:
host 66.249.66.1
# 1.66.249.66.in-addr.arpa domain name pointer crawl-66-249-66-1.googlebot.com.
host crawl-66-249-66-1.googlebot.com
# crawl-66-249-66-1.googlebot.com has address 66.249.66.1
正引き・逆引きの両方が一致し、googlebot.com または google.com で終わる必要があります。Google はクローラーの IP 範囲を JSON ファイルとしても公開しているので、それと照合することもできます。
サーバーで回数を制限する。 Nginx なら IP ごとのリクエスト数に上限を設けられます:
# in the http block
limit_req_zone $binary_remote_addr zone=perip:10m rate=60r/m;
# in the server block
location / {
limit_req zone=perip burst=20 nodelay;
limit_req_status 429;
try_files $uri $uri/ /index.php?$args;
}
サーバーのルールは高速ですが、WordPress のことを知りません。チェックアウトと検索を区別できず、多くのホスティングプランでは与えられない root 権限が必要で、Google の IP リストを手作業で維持するのも手間です。ルールを書ける CDN のファイアウォールがあるなら、それも良い選択肢です。
うまくいかないときは
- 本物の訪問者に 429 が表示された。 ログでその IP を調べます。オフィスや自分が使っているツールなら、許可リストに追加しましょう。1 分あたりの予算を引き上げることも検討してください。
- Search Console でクロールエラーが報告される。 本物の Google クローラーは対象外なので、そのエラーが Hushfort 以外のサーバーや CDN のルールによるものでないか確認してください。
- それでもサイトが圧倒されている。 どのプラグインにも手に負えない規模の大量アクセスかもしれません。CDN の攻撃対策モードをオンにしてください。Hushfort の緊急モードなら、あなた自身の API キーを使って Cloudflare の「Under Attack」モードに切り替え、終わったら元に戻すこともできます。
Hushfort なら
負荷保護は、無料の WordPress セキュリティプラグイン Hushfort Security に追加する有料アドオン Hushfort Pro の機能です。
Hushfort の負荷保護レイヤーは、各 IP にデフォルトで 1 分あたり 120 ポイントの予算を割り当てます。ページ表示は 1、admin-ajax の GET は 1・POST は 2、REST の GET は 2・POST は 3、カートに追加は 3、検索は 5、その他の POST は 5、XML-RPC は 10 ポイントで、404 は 4 ポイントが加算されます。チェックアウト、決済のコールバック、WP-Cron、wp-admin の画面は消費ゼロです。
- 予算を超えた IP には短時間の 429 を返し、10 分間休止させます。
- 公式リストにない IP からその名前を名乗る偽の Googlebot や Bingbot はブロックします。確認済みの検索ボットは対象外です。外部への通信は、Google と Bing が公開しているクローラーの IP リストの取得だけです。
- 緊急モードでは、あなた自身の API キーで Cloudflare の「Under Attack」モードに切り替えられます。
- 最初は監視モードで動作します。
私たち自身のテストでは、予算を超えた IP でもチェックアウトは完了し、それ以外のリクエストには 429 が返されました。
よくある質問
Googlebot のアクセスが本物かどうかはどうすればわかりますか?
偽の Googlebot をブロックすると SEO に悪影響がありますか?
ステータス 429 とは何ですか?
プラグインで DDoS 攻撃を止められますか?
なぜ検索と 404 は多くのポイントを消費するのですか?
関連するハウツー
WordPress のスパム登録(偽ユーザー登録)を止めるには?
WordPress と WooCommerce のスパム登録対策。IP ごと・サイト全体の 1 時間あたりの上限とハニーポットで偽ユーザー登録を止めます。
手順を読むWordPress で使っていない不要なプラグインを見つけるには?
WordPress の不要なプラグインを見つける方法。各ページで読み込むコードを確認し、停止してから削除する元に戻せる 2 段階で整理します。
手順を読むxmlrpc.php とは何ですか? WordPress で無効化するには?
xmlrpc.php とは何か、WordPress で安全に無効化する方法を解説。ログインを隠しても残る入口を閉じ、ピンバックを残す方法も紹介します。
手順を読む


