検証用のWordPressでサイトヘルスを開いたら、「改善が必要」の表示の下に、致命的な問題が1件、おすすめの改善が9件並んでいました。

テーマの動作確認に使っているサイトなので、警告が出ていても困ってはいません。ただ、10件の中には本番サイトで出たら放っておけないものと、気にしなくていいものが混ざっています。1件ずつ開いて、何を見ている警告なのか、どうすれば消えるのかを確かめました。


WordPressで記事販売ができる「YOMERU」
記事を、そのまま収益に。
WordPressサイトで記事の有料販売ができる
無料のプラグイン「YOMERU」。

検証サイトで出た10件の警告

サイトヘルスは、管理画面の「ツール」→「サイトヘルス」で開けます。検証サイトでは、次のように表示されました。

サイトヘルスに表示された10件の警告

①が「致命的な問題」、②が「おすすめの改善」です。右側のラベルは、その項目がセキュリティ、パフォーマンス、プライバシーのどれに関わるかを表しています。「WP Mail SMTP」のラベルは、プラグインが自分で追加した項目です。

サイトヘルスそのものの使い方は、こちらの記事で紹介しています。

致命的な問題

サイト訪問者へエラー表示を行う設定になっています

項目を開くと、原因が書かれています。

警告の詳しい内容

wp-config.php で WP_DEBUG が有効になっていて、PHPのエラーがサイトの画面にそのまま出る状態です(①)。エラーの文面には、サーバー上のファイルの場所などが含まれることがあります。

本番サイトでこの表示が出ていたら、wp-config.php の WP_DEBUG を false に戻します。

define( 'WP_DEBUG', false );

エラーを調べている途中で、記録は残したいという場合は、画面には出さずにログファイルに書き出す設定にします。

define( 'WP_DEBUG', true );
define( 'WP_DEBUG_DISPLAY', false );
define( 'WP_DEBUG_LOG', true );
WordPressの本体のコードを読むと、この項目はサイトの環境の種類が「開発用(development)」に設定されているときは、「おすすめの改善」に格下げされます。

おすすめの改善

停止中のプラグインを削除してください

「このサイトには2個の無効なプラグインがあります」と出ていました。停止しているプラグインも、ファイルはサーバーに残っています。古いまま放置すると、そのファイルが攻撃の入り口になることがあります。

使う予定がないなら、「プラグイン」の画面で削除します。同じ項目の中に「5個のプラグインがアップデートを待っています」とも書かれていたので、更新もあわせて済ませます。

停止中のテーマを削除してください

こちらは「Twenty Twenty-Five と現在有効なテーマ GLUE を除いて、1個の停止中のテーマがあります」という内容でした。

WordPressのデフォルトテーマ1つは、数に入れられていません。有効なテーマに問題が起きたときの予備として、残しておくことが勧められているからです。それ以外の使っていないテーマは削除します。子テーマを使っている場合、親テーマは消さないように気をつけます。

予約したイベントの実行に失敗しました

「予約したイベント action_scheduler_run_queue の実行に失敗しました」と出ていました。action_scheduler_run_queue は、WooCommerceなどのプラグインが使う「Action Scheduler」の処理です。

WordPressの本体のコードでは、予定の時刻を過ぎて5分以内なら「遅れています」、5分以上過ぎても実行されていなければ「失敗しました」と表示されます。どちらも原因は同じで、WP-Cronが動くきっかけになるアクセスが少ないことがほとんどです。検証サイトはほとんどアクセスがないので、この警告が出るのは自然です。

本番サイトで出続ける場合の対処は、こちらの記事にまとめています。

Action Scheduler の仕組みは、こちらの記事で紹介しています。

検索エンジンによるこのサイトのインデックス作成は推奨されていません。

「設定」→「表示設定」の「検索エンジンがサイトをインデックスしないようにする」にチェックが入っていると出ます。検証サイトや公開前のサイトなら、そのままで構いません。

本番サイトで出ていたら、検索結果に載らない状態なので、すぐにチェックを外します。サイトの引っ越しや作り直しのあとに、外し忘れることがあります。

永続オブジェクトキャッシュを使用してください

データベースから読み出した内容をメモリに残しておき、次からはそこから取り出す仕組みです。サーバーのデータベースへの問い合わせが減るので、表示が速くなります。検証サイトのサーバーでは「APCu」が使えると書かれていました。

この項目は、どのサイトにも出るわけではありません。本体のコードでは、投稿、コメント、ユーザーなどのどれかが1,000件を超えたとき、または自動で読み込まれる設定(オプション)が500件または約100KBを超えたときに表示されます。検証サイトの投稿は23件なので、テーマやプラグインの設定の量で引っかかったと考えられます。

使うには、サーバーがRedisやMemcached、APCuなどに対応していて、さらに対応するプラグインを入れる必要があります。まずは契約しているサーバーのマニュアルで、使えるかどうかを確かめます。

WP Mail SMTPメーラーの設定が不完全です

WP Mail SMTPを入れたものの、送信の設定をしていないときに出ます。下の「Send a test email to check your email domain」も同じプラグインが出している項目で、テストメールを送って、送信元のドメインの設定を確かめるよう促すものです。

設定の手順は、こちらの記事で紹介しています。

サイトで HTTPS を使用していません

開いてみると「このサイトに HTTPS を使用してアクセスしていますが、WordPress アドレスとサイトアドレスはデフォルトでは HTTPS を使用するとして設定されていません」とありました。サーバーではSSLが使えるのに、「設定」→「一般」のURLが http:// のままになっている状態です。

項目の中にある「サイトを更新して、HTTPS を使用する」ボタンを押すと、WordPressのアドレスが https:// に切り替わります。記事の中に http:// で書いた画像のURLなどが残っている場合は、あわせて置き換えます。

ページキャッシュは検出されませんでしたが、サーバーのレスポンスは良好です

WordPressは、トップページに3回アクセスして、キャッシュを使っているかどうかと、応答の速さを調べています。検証サイトの応答は中央値で201ミリ秒で、基準の600ミリ秒を下回っていました。

速さは足りているので、急いで手を打つ必要はありません。応答が600ミリ秒を超えると、「致命的な問題」に変わります。

問題がないと「テスト通過」にまとまる項目

サイトヘルスが調べている項目は、ほかにもあります。問題がなければ、画面の下の「テスト通過」を開いたところにまとめて表示されます。Localで作ったばかりのサイトで確認した項目と、警告になる条件は次のとおりです。

項目 警告になるとき
WordPressのバージョン 新しいバージョンが出ている
プラグイン・テーマ 更新が残っている、停止中のものがある
PHPのバージョン 推奨より古いPHPで動いている
PHPのモジュール WordPressが使う拡張機能が入っていない
PHPのタイムゾーン PHPの初期設定のタイムゾーンを、テーマやプラグインが書き換えている
PHPセッション プラグインなどがPHPのセッションを開いたままにしている
SQLサーバー MySQL・MariaDBのバージョンが古い
他のサービスとの安全な接続 サーバーから外部へSSLで接続できない
予約したイベント 予定の時刻を過ぎても実行されていない
HTTPリクエスト 外部への通信が設定で止められている
REST API REST APIに接続できない(ブロックエディターも使えなくなる)
デバッグ情報 エラーを画面やサイト内のログファイルに出している
ファイルのアップロード PHPの設定でアップロードが止められている、post_max_size が upload_max_filesize より小さい
自動更新 プラグイン・テーマの自動更新が正しく動かない設定になっている
一時バックアップ用のフォルダ 更新前のバックアップを置くフォルダに書き込めない
ディスクの空き容量 空きが100MBを切っている(20MBを切ると致命的な問題)
自動読み込みオプション 自動で読み込まれる設定の合計が約800KBを超えている
ユーザー登録 だれでも登録できる設定で、登録時の権限が管理者などになっている
検索エンジンのインデックス インデックスしないようにする設定になっている
オペコードキャッシュ PHPのOPcacheが無効になっている
WordPress.orgへの接続 更新の確認などに使うWordPress.orgに接続できない
バックグラウンド更新 WordPressの自動更新が動かない状態になっている
ループバックリクエスト サイトが自分自身にアクセスできない(WP-Cronやテーマの編集に影響)
Authorizationヘッダー サーバーがAuthorizationヘッダーを受け取れない(アプリケーションパスワードが使えない)

自動読み込みオプションが多すぎるときの対処は、こちらの記事で解説しています。

Localのサイトでは出ない項目がある

Localで作ったサイトでは、検証サイトに出ていた「ページキャッシュ」と「永続オブジェクトキャッシュ」の項目が、テスト通過の一覧にもありませんでした。

本体のコードを読むと、この2つはサイトの環境が「本番(production)」のときだけ調べる項目です。Localのサイトは「ローカル(local)」の環境として作られるので、はじめから対象外になっています。ローカル環境で警告がゼロでも、本番サーバーで同じ結果になるとは限りません。サイトを公開したら、本番の管理画面でも一度開いておきます。

まとめ

10件のうち、本番サイトで出ていたらすぐに直したいのは、エラーの画面表示、検索エンジンのインデックス、HTTPSの3つです。どれも設定を1か所変えれば消えます。

停止中のプラグインやテーマ、予約したイベントは、出たら中身を開いて、心当たりがあるかを確かめれば十分です。キャッシュの2項目は、表示の速さに困っていないなら後回しで構いません。

サイトヘルスは、テーマやプラグインを入れ替えたあとに開くと、変化が分かりやすくなります。月に1回、更新作業のついでに「ツール」→「サイトヘルス」を開く習慣をつけておくと、警告に早く気づけます。

世界最高品質のデザインの
WordPressテーマ集
WordPressテーマ「ISSUE」
WordPressテーマ「ISSUE」
人材不足を解決する求人採用サイトを。
WordPressテーマ「SEEED」
WordPressテーマ「SEEED」
Webサービスを販売するLP型テーマ。
WordPressテーマ「GENESIS」
WordPressテーマ「GENESIS」
スタイリッシュな企業サイトの決定版。
WordPressテーマ「SOLARIS」
WordPressテーマ「SOLARIS」
一流の企業のための一流の企業サイトを。