(´・ω・`)知らんがな。最初に思った心の声。
WordPressのサイトヘルスにある日突然「サイトが検索エンジンから見えていません」と表示されるようになりました。
あれこれ調べて原因をやっと突き止める事ができたのですが、自分と同じ症状が出て困っている方がいたら救いになるかも知れないので、備忘録を兼ねてこの記事を書いています。
先に答えを言ってしまうとCloudflareの機能強化による影響だったので、Cloudflareを使っていない方には役に立たないかも知れませんので悪しからず。
まず最初に疑ったのは設定メニューの中にある「表示設定」でした。
ここには検索エンジンでの表示という項目があり、チェックボックスにチェックを入れると「検索エンジンがサイトをインデックスしないようにする」と書かれてある通り、Googleなどの検索サイトからクロールされなくなります。
怪しげなクローラーは巡回して来ると思いますが、名前を聞いた事がある検索サイトなどからは徐々に記事が消えていくようです。
しかしGoogle AnalyticsやGoogle Search Consoleを確認してみると、アクセスが減っている感じも無い状態でした。チェックボックスにチェックは入っていなかったのでこれが原因である可能性はまず無くなりました。
次に疑ったのはプラグインの更新です。
最近では自動更新に設定するよう推奨されていますが、プラグインの更新後に不具合が発生して更新前のバージョンにロールバックした、という経験を長くWordPressをお使いの方はきっと1度は体験したであろう、あるあるな話だと思います。
そのため自動更新にはせず、手動で1つずつ更新して動作確認をするのが当たり前のような感じになっています。
動作確認中に気付いたのですが、SucuriのようなAPIで接続しているプラグインにも異常が起きている事が判り、503エラーなどが出ていました。
このサイトでは51個のプラグインが動いていますが、1つずつプラグインを無効化して確認しても変化なし、全部一斉に無効化して1つずつプラグインを有効化していっても変化なし。
他に思い当たる原因が無いか少し考えたのですが何も思い浮かばず、念のためサーバー側の設定も疑って確認をしましたが全く問題が無い。
ここで完全に行き詰ってしまいました。
そんなある日、Cloudflareから届いていたメールが目に留まりました。
放置していたので関係は無いだろう・・・と思いつつ、設定を一通り確認してみようと訪れてみてビックリ!管理画面などの仕様がすっかり変わっていて日本語にも対応しているじゃないですか!
また地道に設定を変えては確認の作業を繰り返しているうちに原因がやっと判明しました。
ファイアウォール(Firewall)メニューの中にあるボット(Bots)の項目にあるボット ファイト モード(Bot Fight Mode)がオンになっていたのですが、それをオフにしたらサイトヘルスに出ていた「サイトが検索エンジンから見えていません」のメッセージが消え、SucuriなどのAPIで接続されているプラグインも正常に動作しているのを確認できました。
「既知のボットのパターンと一致するリクエストがあった場合、それらがサイトにアクセスする前に、チャレンジを実施します。この機能には JavaScript Detectionsが含まれます。」と書かれてある通り、今までは人間では無いボットからのアクセスであろうリクエストにhCaptchaの画面(下の写真)を出して「私は人間です」にチェックを入れてパズルを完成させる画面を表示させていたのですが、新たに軽量で目に見えないコードインジェクションによるJavaScript検出も含めて機能強化されていたようです。
JavaScript detections
同じファイアウォール(Firewall)メニューの一番上にある概要(Overview)を見てみると、実行された操作(Action taken)欄が見事にJSチャレンジ(JS Challenge)で埋め尽くされていてSucuriからのアクセスもしっかりと弾いておりました。
これを防ぐためにはファイアウォール(Firewall)メニューの中にあるツール(Tools)画面でIPアドレス・IPアドレスの範囲・自律システム番号(ASN)・アクセスを許可する国を設定するか、ボット ファイト モード(Bot Fight Mode)をオフにするしか回避策は無いようです。
JSチャレンジ(JS Challenge)を確認(各項目をクリックすると下に詳細が出ます)していた所、たまにGooglebotからのアクセスも弾いている事が判り、現在はオフに設定しています。IPアドレスがランダムだったりIPアドレスの範囲が分からなかったりする事が多いので設定オフがシックリくる感じがします。
Cloudflareを利用していて「サイトが検索エンジンから見えていません」と表示されている方やアクセス数が最近ちょっと伸びなくなったなとお感じの方がいたら、ぜひボット ファイト モード(Bot Fight Mode)の設定内容や概要(Overview)を確認される事を強くお勧めいたします。
放置していても強くなるのは嬉しいですが、サイト運用に支障が出るレベルだと考え物ですね。