⚠️ このような症状が出ていませんか?

主な原因

1. ダッシュボードウィジェットの負荷

最も多い原因。ダッシュボードに表示される各種ウィジェット(ニュース、統計など)が重い処理を行っています。

2. Heartbeat APIの頻繁な通信

WordPressの自動保存やリアルタイム通知機能が、頻繁にサーバーと通信して負荷をかけています。

3. 投稿・リビジョンの大量蓄積

投稿数が数千件、リビジョンが数万件になると一覧表示が重くなります。

4. プラグインの管理画面処理

SEOプラグインや統計プラグインが、管理画面で重い処理を実行しています。

5. 大量の画像・メディアファイル

メディアライブラリに数千枚の画像があると、サムネイル生成などで重くなります。

6. データベースの肥大化

トランジェント(一時データ)やゴミ箱に大量のデータが溜まっています。

解決方法(効果が高い順)

不要なダッシュボードウィジェットを非表示

最も効果的。ダッシュボードの読み込みが劇的に改善します。

手順:
  1. ダッシュボード画面右上の「表示オプション」をクリック
  2. 不要なウィジェットのチェックを外す
  3. 特に以下は重いので外すことを推奨:
    • 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 プラグインを使う:
  1. 「Heartbeat Control」プラグインをインストール
  2. 「設定」→「Heartbeat Control」を開く
  3. ダッシュボードでのHeartbeatを「無効」または「60秒」に設定
  4. フロントエンドは「無効」に設定
  5. 投稿編集画面は「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で削除:
  1. WP-Optimizeプラグインをインストール
  2. 「データベース」タブを開く
  3. 「リビジョンをクリーン」にチェック
  4. 「すべての選択した最適化を実行」
wp-config.phpでリビジョン数を制限:
// リビジョンを3つまでに制限
define('WP_POST_REVISIONS', 3);

管理画面で動作するプラグインを特定

どのプラグインが重いか特定して対処します。

Query Monitorプラグインを使う:
  1. 「Query Monitor」をインストール・有効化
  2. 管理画面で上部のバーに処理時間が表示される
  3. 重いクエリを実行しているプラグインを特定
  4. 該当プラグインの設定を見直すか、代替品に変更
特に重いプラグイン:
  • Jetpack - 必要な機能だけの軽量プラグインに分割
  • Yoast SEO - Rank Math、Slim SEOなど軽量版を検討
  • WordFence - 設定でスキャン頻度を下げる

投稿一覧の表示件数を減らす

一覧表示の件数を減らして軽量化します。

手順:
  1. 「設定」→「表示設定」を開く
  2. 一番下の「1ページに表示する最大投稿数」を確認
  3. デフォルト10件から5件程度に減らす
または画面オプションで:
  1. 投稿一覧画面で「表示オプション」をクリック
  2. 「ページごとに表示する項目数」を10から5に変更

不要なカスタムフィールドを非表示

投稿編集画面で表示されるカスタムフィールドを減らします。

手順:
  1. 投稿編集画面で「表示オプション」をクリック
  2. 不要なボックスのチェックを外す:
    • カスタムフィールド(使っていない場合)
    • ディスカッション
    • コメント
    • スラッグ

管理画面のAJAXを無効化

自動更新を無効にして負荷を減らします。

functions.phpに追加:
// 管理画面のAJAX自動更新を無効化
add_action('admin_init', 'disable_admin_ajax');
function disable_admin_ajax() {
    wp_deregister_script('heartbeat');
}

データベースを最適化

不要なデータを削除してデータベースを軽量化します。

WP-Optimizeで最適化:
  1. 「データベース」タブで以下にチェック:
    • リビジョンをクリーン
    • 自動下書きをクリーン
    • ゴミ箱の投稿を削除
    • スパムコメントを削除
    • 期限切れトランジェントを削除
    • データベーステーブルを最適化
  2. 「すべての選択した最適化を実行」

予防策

1. 定期的なデータベース最適化

2. 必要最小限のプラグイン

3. 軽量なプラグインを選ぶ

4. PHPバージョンを最新に

よくある質問

Q1. フロントエンドは速いのに管理画面だけ遅いです

A. 管理画面特有の問題です。ダッシュボードウィジェットとHeartbeat APIを制御すれば大幅に改善します。

Q2. Heartbeat APIを完全に無効化しても大丈夫ですか?

A. 自動保存機能が使えなくなるため、投稿編集中は有効にしておくことを推奨します。ダッシュボードとフロントエンドでは無効化してOKです。

Q3. リビジョンを削除したら記事は消えますか?

A. 公開済みの記事は消えません。リビジョン(過去の保存履歴)だけが削除されます。ただし、念のためバックアップを取ってから実行してください。

Q4. プラグインを全部無効化しても遅いです

A. テーマまたはデータベース自体に問題がある可能性があります。デフォルトテーマに変更して確認し、データベース最適化を実行してください。

Q5. 投稿数が1万件以上ありますが改善できますか?

A. はい。一覧表示件数を減らし、検索ボックスを活用することで改善できます。また、古い投稿をアーカイブする方法も検討してください。

まとめ

管理画面高速化のチェックリスト

  1. ✓ ダッシュボードウィジェットを非表示
  2. ✓ Heartbeat APIを制御(60秒間隔)
  3. ✓ リビジョンを削除・制限
  4. ✓ 重いプラグインを特定して対処
  5. ✓ 投稿一覧の表示件数を減らす
  6. ✓ データベースを最適化
  7. ✓ PHPバージョンを8.1以上に

管理画面が重い問題は、ダッシュボードウィジェットとHeartbeat APIの設定で大幅に改善できます。定期的なデータベース最適化も忘れずに実施しましょう。

関連ページ