WordPressの管理画面が重い・遅いときに高速化する方法(ダッシュボードの高速化)

WordPressが遅いときに、高速化するブログ記事を見ると、大体が表側(ホームページとかブログ記事のページなど、サイト訪問者が見るページ)の高速化の記事ばっかりで、解決策も「キャッシュプラグイン使いましょう」とか「CDN使え」みたいな事しか書いてないんですが、これらの方法はWordpressの管理画面には効果がないです。管理画面の速度は、サイトの生産性に大きな影響があるので高速化する必要があるかと思います。今回はその方法について書いていきます。

方法1:早いサーバに引っ越しする

WordPressの管理画面は、利用しているサーバの清野がそのまま速度に反映されるので、より上位のレンタルサーバに乗り換えるのを検討してもいいかもしれないです。お金かかるけど…

この方法は、管理画面全般に効果があるのでお勧めです。お金かかるけど…

方法2:カテゴリとタグを減らす

WordPressの管理画面で、特に投稿一覧や固定ページ一覧の速度が非常に遅いときはこの方法が使えます。

カテゴリやタグが100個以上あるようなサイトだと、投稿一覧などを表示するたびに、データベースに対して複雑なクエリが発行され、内部でいろいろな追加の処理が走るので、管理画面が多くなります。

現実的にカテゴリやタグが100個を超えている場合には、「コンテンツを細かく分けすぎ」な場合が多いので、この機会に整理してはいかがでしょうか。

思い切ってタグをすべて削除して使わないようにするのも一つの手だと思います。

方法3:投稿一覧や固定ページ一覧で表示する記事数や項目数を減らす

この方法も、投稿一覧や固定ページ一覧が遅い場合に有効な方法です。

管理画面右上の「表示オプション」をクリックすると、表示する項目やページごとに表示する項目数を設定できます。

上記の部分で「これは別に表示されなくていいかな」っていう項目があればOFFにしておくと表示が多少早くなります。また、ページごとに表示する項目数も10程度にしておくと、高速化が図れます。

方法4:自動保存をOFFにする

投稿を新規作成・編集するページや、固定ページを新規作成・編集するページで、「更新」ボタンや「公開」ボタンがなかなかアクティブにならずに、いつまでたっても保存できない場合に有効です。

WordPressの編集画面では、編集内容が失われないように定期的に自動保存する機能が付いています。しかし、何らかの原因で自動保存の処理が詰まると、画面全体が固まってしまうのでこの機能をOFFにします。

ブロックエディタ(Gutenberg)を使っている場合

新しいWordpressの場合はこちらだけでOKです。wordpressをインストールしたフォルダ内の「wp-config.php」ファイルの「require_once ABSPATH . ‘wp-settings.php’;」って書かれているより前に以下のコードを追加します。

// autosave無効化(というか1日1回という長い期間に設定)
define('AUTOSAVE_INTERVAL', 86400);

古いエディタ(Classic Editor)を使っている場合

この場合は、使用中のテーマフォルダの中にある「functions.php」ファイルに以下のコードを追記します。

/**
 * ------------------------------------------------------------
 * 自動保存を無効化
 */
add_action('wp_print_scripts', function () {
    wp_deregister_script('autosave');
});

方法5:バックグラウンド通信(Wordpress heartbeat, wp-auth-check, wp-cron)をOFFにする

個人的にはこれが一番効果がありました。WordPressの管理画面では、見えないところでかなり通信をしていて、その処理が重い場合、通信が詰まってしまってページ全体が重くなります。

そこで、これらうち重要ではなさそうな機能をOFFにすることで、高速化が期待できます。以下にその方法を書いていきます。

wordpress heartbeat と wp-auth-check をOFFにする方法

副作用も少なめなので、この方法はまあまあお勧めできます。使用中のテーマフォルダの中にある「functions.php」ファイルに以下のコードを追記します。

/**
 * ------------------------------------------------------------
 * heart beat と wp auth check を無効化
 */
function theme_stop_heartbeat()
{
	wp_deregister_script('heartbeat');
}
add_action('init', 'theme_stop_heartbeat', PHP_INT_MAX);

function theme_disable_wp_auth_check()
{
	return false;
}
add_filter('wp_auth_check_load', 'theme_disable_wp_auth_check', 10);

※この方法は個人的には結構効果がありました。記載を間違えるとWordpressが動かなくなったり、サイト全体が真っ白になったりするので自己責任で編集してください。

wp-cronをOFFにする方法

この方法は、リスクがありますが、wp-cronの処理は重い処理が多いので、こちらもOFFにするとかなり効果があります。wordpressをインストールしたフォルダ内の「wp-config.php」ファイルの「require_once ABSPATH . ‘wp-settings.php’;」って書かれているより前に以下のコードを追加します。

// wp-cron無効化
define('DISABLE_WP_CRON', true);

※wp-cronの処理は、サイトのメンテナンスやデータのアップデートにも使われるので、完全にOFFにしてしまうといろいろな影響があるかもしれないので、自己責任で行ってください。

他にもあるかも?

他にもいい方法があるかもしれないので、気が付いたら追記していこうと思います。また、質問や良い方法を知っている人がいたらコメント欄などで教えてくれると嬉しいです。

質問・コメントなどあると嬉しいです