管理画面 > ツール > サイトヘルスからサイトの状態を確認できます。
全てクリアすると下記の画像が表示されます。
すばらしい!すべて問題なく動作中です。
という表示は一部のテスト機能を停止しないと難しいと思います。
本記事ではサイトヘルスの状態を改善する方法を紹介します。
サイトヘルスのテスト全項目
クリア時のサイトヘルスの22項目を書き出してみました。
普通にサイト運営していれば指摘箇所は5個もないと思います。
カテゴリ | 項目 | 解説 |
---|---|---|
セキュリティ | テーマはすべて最新版です | テーマのアップデートは、特にセキュリティリスクを軽減するために重要です。古いテーマには脆弱性が残っている可能性があります。 |
セキュリティ | サイトは他のサービスと安全に接続可能です | サイトが他のAPIや外部サービスと安全に接続できることは、連携やデータ交換の信頼性を保証します。 |
セキュリティ | このサイトの設定ではデバッグ情報を出力しません | デバッグモードが無効になっていることで、サイトのエラーメッセージが公開されず、セキュリティリスクが軽減されます。 |
セキュリティ | プラグインとテーマの自動更新は正しく設定されているようです | プラグインやテーマの自動更新が有効であることで、脆弱性のあるバージョンが早急にアップデートされ、セキュリティリスクが減少します。 |
セキュリティ | プラグインとテーマの一時バックアップディレクトリは書き込み可能です | アップデート時に一時的なバックアップが保存されるディレクトリが書き込み可能であることで、万が一の失敗時にもデータ復旧が可能です。 |
セキュリティ | 更新を安全に実行するために利用可能なディスクスペース | 十分なディスクスペースがあることで、プラグインやテーマの更新作業が問題なく行え、システムの安定性が保たれます。 |
セキュリティ | WordPress.org に接続可能です | WordPressの公式リポジトリやサービスに正常に接続できることは、プラグインやテーマの更新情報を迅速に取得するために重要です。 |
セキュリティ | バックグラウンド更新が動作中です | バックグラウンドで自動的に更新が行われていることで、常に最新のセキュリティパッチが適用されます。 |
セキュリティ | サイトは有効な HTTPS 接続を使用しています | HTTPS接続により、データが暗号化され、安全にやり取りされていることが確認されます。 |
セキュリティ | Authorization ヘッダーは期待通りに機能しています | Authorizationヘッダーが適切に機能していることで、認証が必要な操作が安全に行われます。 |
パフォーマンス | 使用中の WordPress バージョン (6.6.2) は最新です | WordPressのバージョンが最新であることは、パフォーマンスとセキュリティの両方において非常に重要です。最新バージョンはバグ修正やセキュリティ向上が含まれています。 |
パフォーマンス | サイトは現在のバージョンの PHP (8.3.10) を実行しています | 最新のPHPバージョンを使用することで、サイトの速度向上やセキュリティ強化が期待できます。PHPのバージョンが古いと、パフォーマンス低下やセキュリティリスクの可能性が高まります。 |
パフォーマンス | 必須および推奨モジュールがインストール済みです | サイトが正しく動作するために必要なPHPモジュールがすべてインストールされていることは、パフォーマンスと安定性に寄与します。 |
パフォーマンス | PHP デフォルトタイムゾーンが有効です | PHPのタイムゾーン設定が適切であると、時間に関連する機能(予約やスケジュールなど)が正常に動作します。 |
パフォーマンス | PHP セッションが検出されませんでした | PHPセッションは、ユーザーのデータを一時的に保持する仕組みです。セッションが不要な場合は、無効化することでパフォーマンスが向上します。 |
パフォーマンス | SQL サーバーは最新です | 最新のSQLサーバーを使用することで、クエリの実行速度やデータベースの安全性が向上します。古いバージョンはセキュリティリスクが高い可能性があります。 |
パフォーマンス | 予約したイベントが実行可能です | WordPressの内部スケジュール(Cron)が正常に動作していることは、バックグラウンドタスクが適切に実行されるため重要です。 |
パフォーマンス | HTTP リクエストは想定通り動作しているようです | サイトが外部サービスやリソースに対して正常にHTTPリクエストを送信・受信できていることは、APIの利用や外部データの取得に必須です。 |
パフォーマンス | REST API が利用可能です | WordPressのREST APIが正常に動作していることは、外部からのデータ取得や操作を安全かつ迅速に行うために重要です。 |
パフォーマンス | ファイルをアップロードできます | サイトが正常にファイルをアップロードできる機能を持っていることは、メディア管理やコンテンツ制作に必須です。 |
パフォーマンス | 自動読み込みオプションは許容範囲内 | サイトがオートロードするオプションデータが適切な量であることは、サイトの速度を維持する上で重要です。過剰なデータの読み込みはパフォーマンスを低下させます。 |
パフォーマンス | サイトでループバックリクエストが実行可能です | ループバックリクエストが正常に動作することで、WordPressの内部機能(スケジュール実行など)が適切に機能します。 |
不要なサイトヘルスのテスト項目を停止する方法
もちろんサイトヘルスの項目を改善した方がいいのですが、環境によっては改善できないものもあるので、その場合はテストを停止する方法もあります。
停止中のプラグインを削除してください(セキュリティ)
プラグインは連絡フォームや e コマース機能などを追加してサイトを拡張します。サイトに深くアクセスするため、最新に保つことが重要です。
N個のプラグインがアップデートを待っています。
このサイトにはN個の無効なプラグインがあります。 停止中のプラグインは攻撃者の標的になります。プラグインを使用するつもりがなければ、削除を検討してください。
記載されている通り、使ってないプラグインは決して、アップデートできないプラグインは控えた方がいいです。
といっても、プラグインを無理に最新にする必要もないので気にしなくてもいいと思います。
※半年に一回くらいプラグインの更新を見直す等。
非表示・停止の方法は下記のコードをfunctions.phpに入れるだけです。
プラグインバージョンのテスト自体を無効に
function disable_plugin_version_test( $tests ) {
// プラグインバージョンに関するテストを無効化
unset( $tests['direct']['plugin_version'] );
return $tests;
}
add_filter( 'site_status_tests', 'disable_plugin_version_test' );
永続オブジェクトキャッシュを使用してください(パフォーマンス)
永続オブジェクトキャッシュは、サイトのデータベースの効率を上げます。その結果、WordPress がサイトのコンテンツや設定を迅速に取得できるようになるため、読み込み時間を短縮できます。
ホスティングサービスに問い合わせれば、サイトで永続オブジェクトキャッシュを有効化できるかどうかがわかります。 お使いのホスティングサービスでは、次のオブジェクトキャッシュサービスをサポートしているようです: APCu。
永続オブジェクトキャッシュとは、RedisやMemcachedのようなキャッシュシステムを使用して、データベースクエリの結果を保存し、次回同じクエリを実行する際に高速化する技術です。
しかし、レンタルサーバーの多くはRedisやMemcachedのインストールをサポートしていないため、この推奨が有効にできない場合があります。
その場合、このメッセージが表示され続けることになりますが、これを無視しても基本的にサイトの動作には影響がありません。
非表示の方法は下記のコードをfunctions.phpに入れるだけです。
提案を非表示に
add_filter( 'site_status_should_suggest_persistent_object_cache', '__return_false' );
永続オブジェクトキャッシュのテスト自体を無効に
// 永続オブジェクトキャッシュのテストを無効にする関数
function remove_persistent_object_cache_test( $tests ) {
// サイトヘルスのテストリストから「永続オブジェクトキャッシュ」を削除
unset( $tests['direct']['persistent_object_cache'] );
return $tests;
}
add_filter( 'site_status_tests', 'remove_persistent_object_cache_test' );
高速化のキャッシュ周りに関してはWP Rocketなどを利用することをお勧めします。
ページキャッシュは検出されませんでしたが、サーバーのレスポンスは良好です(パフォーマンス)
ページキャッシュは、ユーザーがアクセスするたびにページを読み込むのではなく、静的なページを保存して提供することで、サイトの速度とパフォーマンスを向上させます。
ページキャッシュの検出は、有効化されたページキャッシュプラグインの検索のほか、ホームページへのリクエストを3回行い、以下のHTTPクライアントキャッシュレスポンスヘッダーのうち1つ以上の検索で行います:
cache-control
,expires
,age
,last-modified
,etag
,x-cache-enabled
,x-cache-disabled
,x-srcache-store-status
,x-srcache-fetch-status.
こちらもSWELLなどのテーマ側のキャッシュやWP Rocketなどのプラグインのキャッシュの対応で十分です。
この警告のためにプラグインを入れる必要はありません。
停止する方法は下記のコードをfunctions.phpに入れるだけです。
ページキャッシュのテスト自体を無効に
// ページキャッシュのテストを無効にする関数
function remove_page_cache_test( $tests ) {
// サイトヘルスのテストリストから「ページキャッシュ」を削除
unset( $tests['async']['page_cache'] );
return $tests;
}
add_filter( 'site_status_tests', 'remove_page_cache_test' );
このサイトの設定は、潜在的に誰もが参照可能なファイルにエラーを書き出します
デバッグモードを有効化するとエラーやサイトの失敗の詳細情報を収集できます。しかし誰もがアクセス可能な Web サイトに置くべきでない、重要な情報を含む場合があります。
値
WP_DEBUG_LOG
がこのサイトの構成ファイルに追加されました。これは、サイトで発生したエラーが潜在的にすべてのユーザーが参照可能なファイルに書き出されることを意味します。
wp-config.phpでデバッグログを出力していると警告が出ます。
define( 'WP_DEBUG', true );
define( 'WP_DEBUG_LOG', true );
define( 'WP_DEBUG_DISPLAY', false );
どうやってサイトヘルスのテストを停止できるのか?
class-wp-site-health.phpのコードを調べて、機能を停止できます。
まとめ
WordPressのサイトヘルスの状態を改善する方法を紹介しましたが、費用対効果は高くないので、あまり気にしなくてもいいとは思います。