2026年5月20日
2026年5月20日
WordPressの管理画面が重い場合の解決方法【管理画面高速化】
はじめに
WordPressの管理画面が重い場合、フロントエンドとは別の原因があります。ハートビートAPI・ダッシュボードウィジェットの外部リクエスト・プラグインの管理画面スクリプト読み込みが主な原因です。
主な原因
1. ハートビートAPI:管理画面がサーバーに頻繁にリクエストを送る(デフォルト15〜60秒ごと)
2. ダッシュボードウィジェット:RSSフィード取得などの外部リクエスト
3. プラグインの管理画面スクリプト:不要なページでもスクリプトが読み込まれる
4. 大量のリビジョン:データベースが肥大化してクエリが遅くなる
5. メディアライブラリの画像数:数千枚以上で一覧表示が遅くなる
解決手順
ステップ1:ハートビートAPIを制御する
ハートビートAPIはWordPressの自動保存・セッション維持に使用されますが、頻度が高すぎるとサーバーに負荷をかけます。
// functions.phpに追加
// 管理画面のハートビートを無効化
add_action('init', function() {
if (is_admin()) {
wp_deregister_script('heartbeat');
}
});
// または頻度を下げる(60秒→120秒)
add_filter('heartbeat_settings', function($settings) {
$settings['interval'] = 120; // デフォルトは60秒
return $settings;
});
または「Heartbeat Control」プラグインで管理画面から設定可能です。
ステップ2:ダッシュボードウィジェットを削除
// functions.phpに追加
add_action('wp_dashboard_setup', function() {
remove_meta_box('dashboard_primary', 'dashboard', 'side'); // WordPressニュース
remove_meta_box('dashboard_quick_press', 'dashboard', 'side'); // クイック下書き
remove_meta_box('dashboard_recent_drafts', 'dashboard', 'main');
remove_meta_box('dashboard_activity', 'dashboard', 'normal'); // アクティビティ
});
ステップ3:プラグインのスクリプトを不要ページで読み込まない
// functions.phpに追加
add_action('admin_enqueue_scripts', function($hook) {
// 投稿編集ページ以外では重いプラグインのスクリプトを無効化
if ($hook !== 'post.php' && $hook !== 'post-new.php') {
wp_dequeue_script('heavy-plugin-script');
wp_dequeue_style('heavy-plugin-style');
}
}, 100);
ステップ4:リビジョンを制限・削除
// wp-config.phpに追加(リビジョン数を5に制限)
define('WP_POST_REVISIONS', 5);
// または無効化
define('WP_POST_REVISIONS', false);
既存のリビジョンをWP-CLIで削除:
wp post delete $(wp post list --post_type=revision --format=ids) --force
ステップ5:管理画面専用のメモリを確保
// wp-config.phpに追加
define('WP_MAX_MEMORY_LIMIT', '512M');
まとめ
管理画面の重さは①ハートビートの頻度を下げる→②不要なダッシュボードウィジェットを削除→③リビジョンを制限する→④管理画面専用のメモリを増やすの順で対処します。「Heartbeat Control」プラグインを使えば設定が簡単です。
関連記事: