ワードプレスには、現在の環境状態の改善を提案する機能があります。
サイトヘルスチェックと呼ばれる機能です。
ところが、たいてい何かしらの改善点をいつも指摘され続けます。
毎回ワードプレスの管理画面を開くと、サイトヘルスチェックの指摘項目が目に入ります。
さすがに気になったので、改善を実践してみました。
現象はこのような感じです。
致命的な問題1件と、おすすめ改善(軽微な問題)が3件表示されています。
まずは、致命的な問題を改善してみることにしました。
「バックグラウンド更新が想定どおりに動作していません」
プラグインは wp_version_check()
を無効化してアップデートを防ぎました。
ちょっと問題のイメージが付きにくい内容ですが、まずはググって調べました。
今回のケースでは以下のことを試しましたが改善しませんでした
同様のケースをググって調べてみると、様々な要因があるみたく、主だった以下の対策をしてみましたが、今回のケースでは改善はしませんでした。
- プラグインOFF→全OFFでも改善せず
- テーマ変更→テーマ変更しても改善せず
- function.phpの文法改善→文末の不要改行を削除してみましたが改善せず
同じエラーでも、原因は多岐にわたるようです。
さらに調べてみると、サーバー側の要因で発生することもあることがわかりました
ワードプレス本体側の改善で一向に改善せず、もしかして本体とは別の外部要因ではないかと思いました。
さらにググって調べると、サーバーのファイヤーウォールで当該のエラーが発生することが書かれていました。
そういえば以前、ワードプレスが異常に重たくなったことがあり、その時もサーバーのファイヤーウォールオフで改善しました。
実はこの後しばらくたってから、ファイヤーウォールをONにしても重くならなくなったため、ファイヤーウォールをONにしていました。
さくらサーバーのWAF設定OFFでエラーが消えました
早速サーバーのWAF設定をOFFにしてみたところ、サイトヘルスチェックの致命的エラーが消えました。
ついでに他のエラーも消えました。
結果的に以下の3つのエラーが消えました。
- バックグラウンド更新が想定通りに動作していません
- 予約したイベントが遅れています
- REST APIで予期しない結果が発生しました。
思ったよりもサーバーファイヤーウォールの影響を受けていました。
残るエラーは「永続的なオブジェクトキャッシュがは有効かされていません」のみとなりました。
こちらについても対処をしました。
続的なオブジェクトキャッシュはプラグイン導入だけで改善
この改善は簡単にできました。
キャッシュするプラグインを導入するだけです。
導入するプラグインは「Redis Object Cache」です。
インストールして、有効化します。
注意点は、セッティングから一度キャッシュクリアを実行する必要があります。
(これをしないと、サイトヘルスチェックのエラーが外れません)
サイトヘルスチェックを見てみると、無事全ての項目が改善されました。
後日談:サーバーのファイヤーウォールについては再びONにしました
今回の主な原因は、サーバーのファイヤーウォールの影響でした。
ファイヤーウォールをOFFにすると確かにエラーは外れました。
ただ、今回の改善点はエラーが発生していてもWPはそれなりに動作しており不都合はありませんでした。
ならば、ファイヤーウォールONのほうが良いのではないかと思いました。
この判断は、状況や人により分かれる部分かと思います。
私の考えは「不都合がなければファイヤーウォールON」なので、さくらサーバーのWAF設定を再びONにしました。