PR

【WordPress】「永続オブシェクトキャッシュの使用」勧告の対処法

WordPressの管理画面のサイトヘルスステータスで、「永続オブジェクトキャッシュを使用してください」と表示されました。推奨項目であって、「パフォーマンスやユーザー体験の改良など、サイトにとっては有益と思われるものの、致命的な問題ほど高い優先順位ではない項目です。」ということなので、そのままでもよさそうですが、気になりましたので、ググッてプラグインをインストールして対処しましたのでメモしておきます。WordPress V6.1から永続オブジェクトキャッシュの使用が推奨となったようです。

[ 改定履歴 ]

2022.11.23
2次不具合が発生した為、インストールしていたプラグインを削除して、元の状態に戻しました。
(但し、サイトステータスは「永続オブジェクトキャッシュ」のメッセージは非表示としました)

2022.11.08
プラグイン(Redis Object Cache)をインストールして、解決しました。

スポンサーリンク

現象

WordPress V6.1にバージョンアップして、サイトヘルスステータスに勧告が表示されていたので確認すると、「停止中のテーマを削除してください」と「永続オブジェクトキャッシュを使用してください」の2つのおすすめ改善項目となっていました。

サイトヘルスの表示(WordPress)

前者は、バージョンアップするといつも表示されます(テーマはcocoonを使っています)ので、使っていないテーマを削除するだけですが、後者の方は初めて見る勧告です。

スポンサーリンク

原因

エラーではないので、「原因」という表現は正しくありません。「改善」というのが正しい表現となりますが、永続オブジェクトキャッシュは、サイトのデータベースの効率を上げ、その結果、WordPress がサイトのコンテンツや設定を迅速に取得できるようになるため、読み込み時間を短縮できるということです。

永続オブジェクトキャッシュの説明(WordPress)

そして、レンタルサーバーの会社へ、永続オブジェクトキャッシュのインストール等を依頼すればプラグインをすすめてくれるはずとの事です。

対処

記載されているRedis Object Cacheというプラグインをインストールします。

Redis Object Cacheのインストール

プラグインの選択

プラグインの選択(WordPress)

インストール

「今すぐインストール」をクリックして、「有効化」をクリックします。

プラグインのインストール(WordPress)

設定

設定画面が表示されますので、「Enable Object Cache」をクリックします。

プラグインの設定(WordPress)

文字が反転して、「Disable Object Cache」となれば完了です。

結果

サイトヘルスのステータスが消えました。

サイトヘルスの表示(WordPress)

その後(二次不具合発生)

現象

Redis Object Cacheのインストールして、サイトステータスは消えて「すばらしい」と表示されていたのですが、1日から2日位経って以降は、いつまで経っても「まだ情報がありません」と表示されたままの状態が直りません。

サイトステータスの状態

サイトヘルス画面にアクセスすると、常に「予約したイベントの実行に失敗しました」と表示されます。

サイトヘルスステータス

どうもRedis Object Cacheのステータスが「Not connected」のまま変わらないことに原因があるようです。

RedisObjectCacheのステータス

原因

WordPressにプラグインとしてRedis Object Cacheをインストールしましたが、Redis Object CacheのStatusは「Not connected」のままとなっていると思います。これはWordPressをインストールしているサーバ(今回はXserver)でRedisが起動されていないことが原因です。つまり、XserverへRedisをインストールして起動することが必要なのです。

では、インストールすれば良いのですが、これがとても難しいことなのです。
通常、レンタルサーバーではユーザーにroot権限はありませんので、簡単にはインストールできません。ソースコードからインストールしてコンパイルするという方法をとらなければならず、とても知識のない者にはできません。

結果、インストールしたRedis Object Cacheは、削除することとしました。

対策

Redis Object Cacheのインストールして、「永続オブジェクトキャッシュ」の表示はなくなったものの、新たな現象が発生するのではあまり意味はありません。ならば、プラグインはインストールせずに、「永続オブジェクトキャッシュ」が表示されたままの方が良いように思います。

Redis Object Cacheを削除(止める)すると
Redis Object Cacheの停止

Cocoonのフォーラムで、「永続オブジェクトキャッシュ」に関する記事があがっていて、プラグインをインストールしても違うエラーが発生したという事例や、xserverに問い合わせをするも「サポート対象外」との回答だったという対策の事例が掲載されていました。
その中で、「永続オブジェクトキャッシュを使用してください」という表示自体を停止する方法が記載されていましたので、これを実施することとしました。
つまり、プラグインを削除すると、元の「永続オブジェクトキャッシュを使用してください」というメッセージ勧告が表示されますので、このメッセージ表示を止めるのです。

cocoonフォーラムで、表示を消す方法を公開して頂きましたAkiraさん、ありがとうございました。また、cocoonフォーラムの皆さん、わいひらさん、ありがとうございました。

add_filter( 'site_status_should_suggest_persistent_object_cache', '__return_false' );

Cocoonフォーラム

Cocoonフォーラム

私は、以下のようにfunction.phpに追記しました。

//--------------------------------------------------
//オブジェクトキャッシュのチェックを無効にする。
//--------------------------------------------------
function disable_object_cache_check( $tests ) {
    unset( $tests['direct']['persistent_object_cache'] );
    return $tests;
}
add_filter( 'site_status_tests', 'disable_object_cache_check' );
//--------------------------------------------------
//ページキャッシュのチェックを無効にする。2022.12.27
//--------------------------------------------------
function disable_full_page_cache_check( $tests ) {
    unset( $tests['async']['page_cache'] );
    return $tests;
}
add_filter( 'site_status_tests', 'disable_full_page_cache_check' );

結果

メッセージは消えて、二次不具合も解消しました。

解消したサイトヘルス

コメント

  1. ショーン より:

    初めまして。個人自営業のサイトをWord Pressを用いて運営しているものです。

    今回のWord Press 6.1のアップデートでは、Event Organizerとの相性が悪く四苦八苦しました。結論としては、元のバージョンにダウングレードする事で解決しました。

    今後もし Event Organizer が修正され6.1にも対応できるようになった場合には、改めてWord Pressも最新バージョンにしようと思っております。

    当時、直し方を調べる過程で私も Redis Object Cache をインストールし、永続オブジェクトキャッシュのエラーを解決しましたが・・・、ここで質問です。

    Redis Object Cacheのインストール後、管理画面での動きがそこそこ重く感じたのですが、この現象は私の環境固有の物なのでしょうか。他の方も仕様でこうなるものでしょうか。

    いずれ Word Press を最新バージョンにした際、Redis Object Cache を再インストールして永続オブジェクトキャッシュのエラー表示を消す予定なのですが、もしも管理画面が重かったのがプラグインの影響であれば、見送ろうか迷っております。

    • gungii より:

      プログ記事をご覧頂き、ありがとうございます。Redis Object Cacheをインストール後の管理画面の動きですが、重く感じることは特にありませんでした。また、サイト自体の動きもPageSpeedInsightで計測しても、遅かったり重かったりはありませんでした。