[WordPress]サイトヘルスの警告について

サーバー:さくらレンタルサーバー
WordPressバージョン:6.1.1

「サイトに重大な問題があります」

つい最近まで、ダッシュ―ボードのサイトヘルスステータスは常に「良好」だったはずなのに、「改善が必要」となっていて、「サイトに重大な問題があります」とまで表示されている。

放置しようかとも思いましたが、「できるだけ早く対処する必要があります。」とあるので、軽い気持ちで対応しようと思ったら、思いがけずにハマったので、対応した内容を記しておきます。

警告内容を確認

サイトヘルスステータスの「サイトヘルス画面」のリンクをクリックして、表示してみます。(メニューの[ツール]→[サイトヘルス]でも同じ画面が表示されます)

上部に「結果を読み込み中…」となっている場合は少し待ちます。

致命的な問題はパフォーマンスの問題の様です。(「致命的」かなぁ…?)

他の4件は「おすすめ」の様ですが、出来る限り対応しておきます。

個別の改善

とりあえず簡単に改善できそうなものから対応していきます。

停止中のプラグインを削除してください【セキュリティ】

詳細確認

該当の警告をクリックして詳細を確認してみます。

対応方法

書いてある内容は、「停止したままプラグインを放置していると悪意のある人から攻撃を受けるからいらないなら削除した方がいいよ」という事なので、下記の対応をします。

  • 使うプラグインなら「有効化」しておく
  • 使わないなら「削除」する。(後で使う事になったら、再度インストールすればいい)

プラグイン一覧のページへ移動して、停止中のプラグインを「有効化」もしくは「削除」します。

結果

サイトヘルス画面を見てみます。

おすすめの改善が「3件」になっていて、プラグインの警告はなくなっていますので、対応はあっていたようです。

停止中のテーマを削除してください【セキュリティ】

詳細確認

該当の警告をクリックして詳細を確認してみます。

プラグインと同じで「使っていないテーマは削除してください」というものですね…(では大事な事が抜けている事に後で気づきました…

よくよくその前の文章を読んでみると…

サイトには WordPress のデフォルトテーマ Twenty Twenty-Three と現在有効なテーマ Simplicity1.9.3 を除いて2個の停止中のテーマがあります

となっており、「停止中のテーマ」と言うのは、デフォルトテーマと現在有効なテーマ以外の物なので、現在有効なテーマ以外を全て削除してしまうのは間違った対応となります。

※テーマ名はそれぞれの環境で異なります。

対応方法

テーマ一覧のページへ移動して、デフォルトテーマと現在有効なテーマ以外で使用していないテーマを削除します。

未使用のテーマのアイコンをクリックして、詳細を表示して右下の「削除」をクリックして削除します。

自分(当サイト)の場合は、以下の様に2つのテーマが残ります。

結果

サイトヘルス画面を見てみます。

テーマの警告が無くなり、おすすめの改善が「2件」になりました。

(補足)デフォルトテーマまで消してしまった場合

間違えてデフォルトテーマも消してしまうと(最初の自分がそうでした)、サイトヘルス画面に新しい警告が表示されます…。

デフォルトテーマは現在何か問題があった時に利用されるものだからインストールが必要との事。

「デフォルトテーマって何?」っとなりますが、「https://ja.wordpress.org/support/article/using-themes/」で確認すると、「Twnty Twenty-XXXX」という名前のテーマ(WordPressをインストールするとついてくるテーマ)です。バージョンによってXXXXの部分は変わるようです。

テーマ管理ページから「新規追加」を押して、「テーマを追加」ページを表示し、「twenty twenty」で検索します。

「Twenty Twenty -XXXX」も複数ありますが、一つをクリックして詳細を表示すると、以下の様にWordPressのどのバージョンで導入されたかが記載されているので、自分のWordPressバージョンにあったものをインストールすればOKです。

Authorizationヘッダーがありません【セキュリティ】

詳細確認

警告文だけではよく分かりません…。該当の警告をクリックして詳細を確認してみます。

「Authorizationヘッダー」なるものがないと困る事があるみたいですが、自分には何のことやらちんぷんかんぷん(死語)です…。

とりあえず、下部の「パーマリンクをフラッシュする」をクリックしてみますが、パーマリンクの設定画面が開くだけで、「フラッシュする」様なボタンもなく「変更を保存」を押しても何も変わりません…。

ネットで調べても「PHPのバージョンを変えれば良い」とか「PHPのモジュール版にすれば良い」とかの情報がありましたが、自分の場合、PHPのバージョンではなさそうです…。

対応方法(たぶん大丈夫)

どうしてそうなっているのかは分かりませんが、以下の様に「パーマリンク構造」を「基本」以外にすれば良い様です。(自分は投稿名を含めた場合URLに日本語が入るのが嫌なので、カスタム構造で「%post_id%」を利用するようにしました。)

「変更を保存」ボタンを押して、変更を反映させます。

結果

サイトヘルス画面を見てみます。

Authorizationヘッダの警告はなくなり、おすすめの改善は1件になりました。

自分としては「なんじゃそりゃ」、「『基本』って一体何?」と言う思いですが、ここを深堀しても自分には重要ではないので、これで良しとします…。

ページキャッシュが検出されず、サーバーのレスポンスが遅くなっています【パフォーマンス】

詳細確認

「お前のページは遅いぞ!」と言われているのは何となくわかりますが、とりあえず詳細を確認してみます。

キャッシュが効いていないという事を言いたいんだろうなとは分かりますが、どうすればいいかはここからは分かりません…。

「ページキャッシュについてもっと詳しく」をクリックしてみると、WordPressのヘルプページが表示され、キャッシュについての説明があります。

う~ん、キャッシュプラグインを導入しろって事か…。

対応方法

メニューの[プラグイン]→[新規追加]を選択し、検索ウィンドウに「CACHE」と入れて検索してみます。

キャッシュプラグインが色々出てきました。WordPressのヘルプページにあったのは、「W3 Total Cache」、「WP Super Cache」でしたが、最初の方のプラグインを一個一個インストールして(試したらアンインストールして)、確認してみました。

プラグイン結果補足
W3 Total Cache速度が出ず、警告が消えなかった
LiteSpeed Cache×テーマ(Simplicity)に関するエラーログが表示
WP Super Cacheうまく行きそう

自分は「WP Super Cache」をインストールしましたので、以下はその続きです。

プラグイン一覧で、「WP Super Cache」を有効化します。

プラグインを有効化しただけでは、キャッシュは効かないので、「管理ページ」を開きます。

※ちなみに、この段階で「Authorizationヘッダがありません」の警告が残ったままだと、下記のエラー画面になります。(AuthorizationヘッダがないとWP Super Cacheが使えないという事ですね…)

WP Super Cacheの管理ページを開くと下記の様なページが表示されます。

タブはたくさんありますが、とりあえず最初に表示される「簡単」タブだけでよさそうです。

ここで、「キャッシング利用(推奨)」に変更した上で、「ステータスを更新」ボタンを押して変更を反映させます(キャッシュを有効にします)。

結果

サイトヘルス画面を見てみます。

パフォーマンスの致命的な警告はなくなり、ステータスは「良好」になりました!

永続オブジェクトキャッシュを使用してください【パフォーマンス】

詳細確認

これも警告文だけだと「何を言っているのかちょっと分からない」ですが、とりあえず詳細を確認してみます。

う~ん、データベース関連のキャッシュを使えと言っているっぽいですが、詳細を読んでもどう対応すればよいかが分かりません。

永続オブジェクトキャッシュについてさらに詳しく。」をクリックしてみます。

う~ん、結局「プラグインをインストールしろ」という話の様です。しかし、ホスティングプロバイダ(自分の場合は「さくらレンタルサーバー」)がキャッシュサーバーを提供する必要があってそれに合ったキャッシュプラグインをインストールする必要がありそうです。

そう言えば、サイトヘルスの文言に以下の様なものがありました。

お使いのホスティングサービスでは、次のオブジェクトキャッシュサービスをサポートしているようです: APCu。

「APCu」?

さくらインターネットのニュースリリースを調べてみると、以下のページがありました。

  • APCuキャッシュ機能について
    APCuキャッシュ機能は、WordPressなどのPHPアプリケーションの実行速度向上に効果的です。ご利用にはお客さま側での設定が必要となります。WordPressなどではプラグインにより本機能が利用できます。詳しい利用方法については、サポートサイトをご覧ください。
    https://help.sakura.ad.jp/rs/2255/
    APCuはモジュール版PHPでの利用が前提となっておりますのでご了承ください
さくらのレンタルサーバ/マネージドサーバ PHP7.2とAPCuキャッシュ機能の提供開始

ただ、何もしなくても使えるものではなく以下の対応が必要な様です。

  • PHPをモジュール版へ変更(CGI版を利用している場合)
  • APCu対応のプラグインの導入

サーバー側では、APCuは有効化されているらしいです。

対応方法

※ここに記載しているのは「さくらレンタルサーバー」を利用している場合になります。

モジュール版PHPへの変更

まず、自分が利用しているPHPのバージョン、CGI版かモジュール版かを確認します。

サーバーコントロールパネルにログインし…

メニューの[スクリプト設定]→[言語のバージョン設定]をクリックします。

スクロールしてPHPのバージョンを確認すると、自分の場合はCGIバージョンでした。

モジュール版に変更する必要がありますね…。

とりあえず、モジュール版に変更できるか設定の「変更しない」となっている部分を変更して確認してみます。

う~ん、モジュール版を選択できず、CGI版がデフォルトの状態になっています…。

色々調べていると、「PHPのバージョンを変更したい」のページに下記の情報がありました。

自分が利用しているサーバーでは、現状モジュールモードが選択できない様です…。

という事で、残念ですが、「永続オブジェクトキャッシュ」については、自分は対応不可という事であきらめます…。

モジュール版PHPが利用出来る様になったら、再度挑戦しようと思います。


まとめ

全ての改善に対応は出来ませんでしたが、1件を除いて対応はできました。

しかし、一言…

「分かりにくい‼!!」

それに尽きますね…。


(追記)

この記事の残件の対応内容については、「[WordPress]サイトヘルスの警告について(完結編)」を参照してください。