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」プラグインを使えば設定が簡単です。

関連記事:

お気軽にご相談ください

お見積りへ お問い合わせへ