WordPress管理画面が重い・遅い
ダッシュボード、投稿一覧、固定ページ一覧などの管理画面の動作が遅い問題の原因と解決方法を詳しく解説します。フロントエンドは正常でも管理画面だけが重い場合に有効です。
⚠️ このような症状が出ていませんか?
- ダッシュボードの読み込みに10秒以上かかる
- 投稿一覧・固定ページ一覧が開くのが遅い
- プラグイン一覧の表示が遅い
- 記事の編集画面が重い
- メディアライブラリの読み込みが遅い
- サイト自体は速いのに管理画面だけ遅い
主な原因
1. ダッシュボードウィジェットの負荷
最も多い原因。ダッシュボードに表示される各種ウィジェット(ニュース、統計など)が重い処理を行っています。
2. Heartbeat APIの頻繁な通信
WordPressの自動保存やリアルタイム通知機能が、頻繁にサーバーと通信して負荷をかけています。
3. 投稿・リビジョンの大量蓄積
投稿数が数千件、リビジョンが数万件になると一覧表示が重くなります。
4. プラグインの管理画面処理
SEOプラグインや統計プラグインが、管理画面で重い処理を実行しています。
5. 大量の画像・メディアファイル
メディアライブラリに数千枚の画像があると、サムネイル生成などで重くなります。
6. データベースの肥大化
トランジェント(一時データ)やゴミ箱に大量のデータが溜まっています。
解決方法(効果が高い順)
不要なダッシュボードウィジェットを非表示
最も効果的。ダッシュボードの読み込みが劇的に改善します。
手順:
- ダッシュボード画面右上の「表示オプション」をクリック
- 不要なウィジェットのチェックを外す
- 特に以下は重いので外すことを推奨:
- WordPressニュース
- WordPressイベントとニュース
- クイックドラフト
- アクティビティ
functions.phpで完全に無効化:
// ダッシュボードウィジェットを削除
function remove_dashboard_widgets() {
remove_meta_box('dashboard_primary', 'dashboard', 'side');
remove_meta_box('dashboard_quick_press', 'dashboard', 'side');
remove_meta_box('dashboard_recent_drafts', 'dashboard', 'side');
remove_meta_box('dashboard_activity', 'dashboard', 'normal');
}
add_action('wp_dashboard_setup', 'remove_dashboard_widgets');
Heartbeat APIを制御
自動保存の頻度を減らして負荷を軽減します。
Heartbeat Control プラグインを使う:
- 「Heartbeat Control」プラグインをインストール
- 「設定」→「Heartbeat Control」を開く
- ダッシュボードでのHeartbeatを「無効」または「60秒」に設定
- フロントエンドは「無効」に設定
- 投稿編集画面は「30秒」程度でOK
functions.phpで制御:
// Heartbeat APIを制御
add_filter('heartbeat_settings', 'my_heartbeat_settings');
function my_heartbeat_settings($settings) {
$settings['interval'] = 60; // 60秒間隔に変更
return $settings;
}
リビジョンを削除・制限
投稿のリビジョンを減らして軽量化します。
WP-Optimizeで削除:
- WP-Optimizeプラグインをインストール
- 「データベース」タブを開く
- 「リビジョンをクリーン」にチェック
- 「すべての選択した最適化を実行」
wp-config.phpでリビジョン数を制限:
// リビジョンを3つまでに制限
define('WP_POST_REVISIONS', 3);
管理画面で動作するプラグインを特定
どのプラグインが重いか特定して対処します。
Query Monitorプラグインを使う:
- 「Query Monitor」をインストール・有効化
- 管理画面で上部のバーに処理時間が表示される
- 重いクエリを実行しているプラグインを特定
- 該当プラグインの設定を見直すか、代替品に変更
特に重いプラグイン:
- Jetpack - 必要な機能だけの軽量プラグインに分割
- Yoast SEO - Rank Math、Slim SEOなど軽量版を検討
- WordFence - 設定でスキャン頻度を下げる
投稿一覧の表示件数を減らす
一覧表示の件数を減らして軽量化します。
手順:
- 「設定」→「表示設定」を開く
- 一番下の「1ページに表示する最大投稿数」を確認
- デフォルト10件から5件程度に減らす
または画面オプションで:
- 投稿一覧画面で「表示オプション」をクリック
- 「ページごとに表示する項目数」を10から5に変更
不要なカスタムフィールドを非表示
投稿編集画面で表示されるカスタムフィールドを減らします。
手順:
- 投稿編集画面で「表示オプション」をクリック
- 不要なボックスのチェックを外す:
- カスタムフィールド(使っていない場合)
- ディスカッション
- コメント
- スラッグ
管理画面のAJAXを無効化
自動更新を無効にして負荷を減らします。
functions.phpに追加:
// 管理画面のAJAX自動更新を無効化
add_action('admin_init', 'disable_admin_ajax');
function disable_admin_ajax() {
wp_deregister_script('heartbeat');
}
データベースを最適化
不要なデータを削除してデータベースを軽量化します。
WP-Optimizeで最適化:
- 「データベース」タブで以下にチェック:
- リビジョンをクリーン
- 自動下書きをクリーン
- ゴミ箱の投稿を削除
- スパムコメントを削除
- 期限切れトランジェントを削除
- データベーステーブルを最適化
- 「すべての選択した最適化を実行」
予防策
1. 定期的なデータベース最適化
- 月1回はWP-Optimizeで最適化
- リビジョンやゴミ箱を定期的に削除
2. 必要最小限のプラグイン
- 使っていないプラグインは削除(無効化ではなく削除)
- 似た機能のプラグインは統合
3. 軽量なプラグインを選ぶ
- 重いプラグインは軽量な代替品に変更
- All in One SEO → Rank Math、Slim SEO
- Jetpack → 個別の軽量プラグイン
4. PHPバージョンを最新に
- PHP 8.1以上を推奨
- 管理画面の処理速度も向上
よくある質問
Q1. フロントエンドは速いのに管理画面だけ遅いです
A. 管理画面特有の問題です。ダッシュボードウィジェットとHeartbeat APIを制御すれば大幅に改善します。
Q2. Heartbeat APIを完全に無効化しても大丈夫ですか?
A. 自動保存機能が使えなくなるため、投稿編集中は有効にしておくことを推奨します。ダッシュボードとフロントエンドでは無効化してOKです。
Q3. リビジョンを削除したら記事は消えますか?
A. 公開済みの記事は消えません。リビジョン(過去の保存履歴)だけが削除されます。ただし、念のためバックアップを取ってから実行してください。
Q4. プラグインを全部無効化しても遅いです
A. テーマまたはデータベース自体に問題がある可能性があります。デフォルトテーマに変更して確認し、データベース最適化を実行してください。
Q5. 投稿数が1万件以上ありますが改善できますか?
A. はい。一覧表示件数を減らし、検索ボックスを活用することで改善できます。また、古い投稿をアーカイブする方法も検討してください。
まとめ
管理画面高速化のチェックリスト
- ✓ ダッシュボードウィジェットを非表示
- ✓ Heartbeat APIを制御(60秒間隔)
- ✓ リビジョンを削除・制限
- ✓ 重いプラグインを特定して対処
- ✓ 投稿一覧の表示件数を減らす
- ✓ データベースを最適化
- ✓ PHPバージョンを8.1以上に
管理画面が重い問題は、ダッシュボードウィジェットとHeartbeat APIの設定で大幅に改善できます。定期的なデータベース最適化も忘れずに実施しましょう。