スパム対策のために行った設定を間違えた結果、Googlebot を BAN してしまった話となります。
このブログは個人で運用しており、アクセス数も特段気にしていないのですが、前回の記事の更新後、アクセスが少ないような気がしており原因を確認してみました。
状況確認
Google Search Console を確認してみると衝撃の事実が・・・
※具体的な数字は隠しています
なんということでしょう。
一月中旬から急に Google 検索パフォーマンスが低下しているではありませんか。
サーバー側の切り分け
何らかの原因で Google から BAN された可能性があるため、切り分けしてみます。
このブログは1月は30日のみ記事を更新しています。
更新をしない日も、下記の影響も受けている可能性はあります。
- WordPress の自動アップデート機能により更新
- ConoHa VPS で稼働しているため、VPS 側のメンテナンス
- VPS 内のパッケージアップデート(dnf update)
ただ、30日にブログ記事を正常に更新できているので、そういったサーバー側のエラーの可能性は低そうです。
原因の判明
このブログはセキュリティ向上のため、ConoHa VPS の間に、Cloudflare の CDN を挟んでいます。
Cloudflare の監査ログを確認したところ、原因が判明しました。
変更前
(http.host eq \"oyasu.info\" and http.request.method eq \"POST\" and ip.geoip.country ne \"JP\" or (cf.client.bot))
変更後
(http.host eq \"oyasu.info\" and http.request.method eq \"POST\" and ip.geoip.country ne \"JP\")
設定の経緯
ブログが載っていない oyasu.info の方で、旧来の伝統的な CGI 形式の掲示板を公開しています。
スパム対策として、日本以外の IP アドレスからの掲示板投稿(POST)を制限していましたが、日本の IP アドレスからもスパム投稿があったため、スパムボットによる投稿を制限するために設定を入れました。
ただ、”or (cf.client.bot)” が最優先され、Googlebot を含む全ての Bot を BAN することになってしまいました。
暫定対策
「日本以外のアクセス」か「Bot」の POST を制限したいので、()の位置を調整しました。
(http.host eq \"oyasu.info\" and http.request.method eq \"POST\" and (ip.geoip.country ne \"JP\" or cf.client.bot))
根本対策
公式ドキュメントを確認したところ「cf.client.bot」は、Googlebot や Bingbot などのサーチエンジンの Bot を制限するものであり、スパムボットを制限するものではないようです。
したがって、この設定は元に戻した上で、日本の IP アドレスからのスパムコメントは、掲示板 CGI 側の IP 制限機能で個別対応することにしました。
まとめ
Cloudflare で間違えて Googlebot をブロックした設定をロールバックすることで Google Search Console の結果も戻ったことを確認しました。
今後は、このウェブサイトのアクセスや検索結果などをチェックしていきたいです。