WordPressの管理画面が重い・固まるときの原因と対処法

目次

ログインはできるのに、管理画面の読み込みが遅い、投稿一覧や設定画面が固まる、操作のたびに「タイムアウト(処理が時間切れで止まること)」になる。こうした症状の原因は一つではなく、手元のブラウザ、プラグインの数、編集画面の裏側で動く通信、PHPが使えるメモリ、データベースの大きさ、サーバーの混み具合といった層に分かれています。

当サイト記事 難易度表記について

  • 【難易度:簡単】WordPressの管理画面だけでできる・すぐ試せること
  • 【難易度:普通】少し手間がかかる(念のため、事前にバックアップを取りましょう)
  • 【難易度:やや難しい】FTPや設定ファイルへの操作が必要(これらが分からない場合や、不慣れな場合は実施するかは慎重に検討ください)
  • 【難易度:難しい】専門の知識が必要。場合によっては致命的なトラブルにもなりかねませんので自信がない場合は専門家へご相談を

直し方の近道は、いきなり設定をいじることではなく、「どこが・いつ重いか」を先に見て、可能性の高い層から順に切り分けることです。多くの場合、最初の切り分けと、次のプラグインの絞り込みで見当がつきます。メモリやデータベースの設定は、現在値を確認してから必要なときだけ触ります。

管理画面にそもそも入れない(ログイン自体できない)場合は、この記事ではなくWordPressにログインできないときの原因と対処法をご覧ください。 この記事は、ログインはできて操作が重いケースを扱います。

まず切り分ける:どこが・いつ重いか【難易度:簡単】

原因によって直し方が変わります。設定を変える前に、次の3点を確認すると、読むべき手順が絞れます。

手元のブラウザを原因から外す

最初に、重さがサーバー側なのか手元のパソコン側なのかを分けます。次のいずれかで軽くなるなら、原因はサーバーではなくブラウザ側です。

  1. シークレットモード(プライベートウィンドウ)で管理画面を開く。拡張機能が無効になるため、広告ブロッカーなどの拡張機能が原因かどうかが分かります。
  2. 別のブラウザで開く。
  3. ブラウザのキャッシュとCookieを削除してから開き直す。

ここで変化がなければ、以降のサーバー側の手順に進みます。

どの画面が重いかを見る

重い場所によって、疑うべき原因が変わります。

  • ダッシュボード(管理画面のホーム)だけ重い: プラグインが追加した「ボックス(ウィジェット)」が外部と通信して待たされていることがあります。
  • 投稿一覧・固定ページ一覧が重い: 記事数が多いか、プラグインが一覧に列(チェック項目やSEO情報など)を追加しているケースが多いです。下の「データベースの肥大化」も関係します。
  • 投稿の編集画面だけ重い: 編集画面の裏で動く通信(Heartbeat)か、エディターを拡張するプラグインの負荷を疑います。下の「Heartbeatの負荷を下げる」へ。
  • 管理画面全体が一様に重い・タイムアウトする: PHPのメモリ不足、プラグイン全体の合計負荷、サーバーのリソース上限を順に確認します。

いつ重いかを見る

  • 特定の時間帯だけ重い/日によって違う: 共有サーバーで他サイトのアクセスと重なっている可能性があります。下の「サーバーのリソース上限」へ。
  • 常に重い: サイト自体の要因(プラグイン・メモリ・データベース)の可能性が高く、下の手順で切り分けられます。

この記事には、テーマファイルや wp-config.php(WordPressの基本設定が書かれたファイル)の編集が含まれます。編集の前に必ず元のファイルのコピーを手元に保存し、不安なときは無理に進めないでください。

プラグインの絞り込み【難易度:普通】

管理画面が重くなる原因で最も多いのが、有効化しているプラグインです。プラグインは管理画面を開くたびに読み込まれるため、数が増えるほど1ページあたりの処理が増えます。使っていないプラグインも、有効なままなら動き続けます。まずここを疑うのが近道です。

どれが原因かを見分ける

原因のプラグインは、止めて速くなるかどうかで特定します。半分ずつ止めて範囲を狭める方法(二分探索)が速く済みます。

  1. 作業前にバックアップがある状態を確認します(サーバーの自動バックアップでも、手動でも構いません)。
  2. 「プラグイン」一覧で、使っていないものを無効化します。これだけで軽くなることがあります。
  3. 残ったプラグインを半分だけ無効化し、管理画面の速度を見ます。速くなれば、止めた側に原因があります。
  4. 原因のある側をさらに半分ずつ無効化して、重さの元になっているプラグインを1つに絞り込みます。

見つかったあとの判断

原因のプラグインが分かったら、すぐ削除せず、まず公式ページの更新履歴やサポートフォーラムで同じ症状が報告されていないかを確認します。更新で直ることがあります。直らない場合は、同じ役割の別プラグインへの乗り換えを検討しますが、設定の引き継ぎに手間がかかる点は見込んでおきます。

プラグインを無効化している間は、そのプラグインの機能(問い合わせフォーム、決済、キャッシュ、SEO設定など)が一時的に止まります。フロント側の表示に関わる機能は、アクセスの少ない時間帯に作業すると安全です。作業が終わったら、必要なプラグインを忘れず元に戻してください。

Heartbeatの負荷を下げる(編集画面が重いとき)【難易度:やや難しい】

WordPressには「Heartbeat(ハートビート)」という仕組みがあり、編集画面を開いている間、ブラウザとサーバーが一定間隔で通信します。この通信が、投稿の自動保存、他の人が同じ記事を編集しているときの衝突防止、ログイン状態の維持などを支えています。通信の間隔は15〜120秒の範囲で動きます。

これが原因かを見分ける

「編集画面だけ重い」「編集中に時々固まる」場合に当てはまります。通信のたびに有効なプラグイン全体が動くため、プラグインが多い環境や共有サーバーで影響が出やすくなります。逆に、編集画面以外も一様に重いなら、原因は別(メモリやサーバー)の可能性が高く、ここは後回しで構いません。

通信の間隔を延ばす

テーマの functions.php(FTPやサーバーのファイルマネージャーで編集します)に次を追加すると、通信間隔を延ばせます。

// Heartbeat の通信間隔を延ばす(単位は秒。15〜120の範囲で指定)
add_filter( 'heartbeat_settings', function( $settings ) {
    $settings['interval'] = 60;
    return $settings;
} );

※ コードをコピーすると引用符が全角(' ')に変わることがあります。動かないときは、半角の ' で囲み直してください。

この記述は wp-config.php ではなく functions.php に書きます。間隔を延ばすと自動保存の頻度も下がるため、編集中はこまめに手動保存する習慣を付けてください。なお、テーマを更新すると functions.php の変更が上書きされることがあります。継続して使うなら、子テーマの functions.php か、サイト固有の小さなプラグインに書く方法を検討してください。完全に止める方法もありますが、自動保存や編集衝突の検知まで失われるため、まずは間隔を延ばして様子を見ることをおすすめします。

PHPのメモリ不足を確認する(管理画面全体が重い・タイムアウト)【難易度:やや難しい】

PHP(WordPressを動かしているプログラムの言語)には、1回の処理で使えるメモリ(作業領域)の上限があります。管理画面はフロントページより多くのメモリを使うため、この上限が低いと、管理画面だけが重くなったり、操作の途中でタイムアウトしたりします。

ただし、メモリ不足が原因かどうかは、数値を書き換える前にまず現在値を確認してから判断します。上限がすでに十分ある環境では、設定をいじっても重さは変わりません。その場合は、上のプラグインの絞り込みや、下のデータベースの方を先に疑ってください。

まず現在の上限を確認する

管理画面で「ツール → サイトヘルス → 情報 → サーバー」を開き、「PHP メモリ上限」の値を見ます。これがいま使える上限です。目安は次のとおりです。

サイトヘルスで確認できるPHP上限設定
サイトヘルスで確認できるPHP上限設定
  • 256M 以上(例:512M・1G)になっている: メモリは十分にあります。管理画面が重い主因がメモリ不足である可能性は低いので、ここは変更せず、プラグインの絞り込みやデータベースの方を確認してください。
  • 128M 以下(例:64M・128M)になっている: 重い画面でメモリが足りなくなっている可能性があります。次の手順で引き上げを検討する価値があります。

上限が低いときだけ引き上げる

WordPressのメモリ設定(WP_MEMORY_LIMIT / WP_MAX_MEMORY_LIMIT)は、いまより大きい値を指定したときだけ上限を引き上げる仕組みで、現在値より小さい値を書いても下がりません(WordPress公式の仕様)。書き換えて減ってしまう心配はありませんが、裏を返すと、現在値より小さい数字を書いても何も起きません。引き上げたいときは、いまの値より大きい値を指定します。

管理画面の重さに効くのは、管理画面専用の WP_MAX_MEMORY_LIMIT です(WordPressの初期値は256M)。たとえば現在が128Mなら、wp-config.php/* That's all, stop editing! ... */ の行より前に次を追加して256Mに上げ、様子を見ます(現在が256Mなら512M、というように、いまの値より一段上を目安にします)。

// 管理画面(wp-admin)で使えるメモリの上限。いまの値より大きい値を指定する。
define( 'WP_MAX_MEMORY_LIMIT', '256M' );

※ コードをコピーすると引用符が全角(' ')に変わることがあります。動かないときは、半角の ' で囲み直してください。

フロント表示も含めて底上げしたい場合は、あわせて define( 'WP_MEMORY_LIMIT', '256M' ); を書きます(こちらの初期値は40Mで、フロントエンド用です)。

反映されたか確認する/値が変わらないとき

書き換えたら、もう一度「ツール → サイトヘルス → 情報 → サーバー」で「PHP メモリ上限」が上がったかを確認します。値が変わらない場合は、サーバー側のPHP設定(memory_limit)の方が低く、それが上限として優先されています。WordPressの設定で、サーバー側の上限を超えて増やすことはできません。この場合は、サーバーのコントロールパネルでPHPのメモリ上限を引き上げるか(設定の名称や場所はサーバー会社によって異なります)、引き上げる項目が見当たらないときは、サーバー会社に引き上げを依頼してください。

PHPのバージョンを確認する【難易度:難しい】

古いPHPのまま使い続けると、処理が遅いだけでなく、セキュリティ更新も出なくなります。WordPress公式が推奨するPHPのバージョンは、2026年6月時点で8.3以上です(7.x系でも動きますが、すでにサポート終了=セキュリティ更新が出ない状態です)ので、確認し、可能であれば早急にアップデートを検討しましょう。

現在のPHPバージョンを確認するだけなら【難易度:簡単】です。WordPressの管理画面から「ツール → サイトヘルス」で確認できます。(古い場合はサイトヘルスが自動的に警告も出します)。

やはり、サイトヘルス機能からPHPバージョンを確認できる
やはり、サイトヘルス機能からPHPバージョンを確認できる

変更はサーバーのコントロールパネルから行えることが多いですが、PHPのバージョンを上げると、古いプラグインやテーマが動かなくなったり、エラーを出して正しく表示できなくなることがあります。事前バックアップをとって、さらに使用中のプラグインとテーマが新しいPHPに対応しているかを確認できると万全ですが、先にPHPのバージョンを変えてしまったという場合に、何か不具合が見つかったらすぐ元のバージョンに戻しまましょう。(※多くのコントロールパネルでは、バージョンの切り替えはいつでも戻せます)

その上で、ご自身で時間をかけて対応するか、当サービスにご相談するなどの対応を検討ください。

データベースの肥大化(リビジョンなど)【難易度:やや難しい】

WordPressは記事を保存するたびに、過去の状態を「リビジョン(改訂履歴)」としてデータベース(記事や設定を保存している入れ物)に残します。WordPressの初期設定ではリビジョンの数に上限がなく、更新の多い記事ほど履歴がたまります。記事数が多く、投稿一覧の読み込みや管理画面の検索が遅い場合に、これが一因になることがあります。

これが原因かを見分ける

「記事数が多い」「投稿一覧や検索が特に遅い」が重なるときに当てはまります。記事数が少ないサイトでは、リビジョンが重さの主因になることはまれです。なお、自動保存(オートセーブ)はユーザーごとに1件だけ保持され、新しい保存で上書きされます。リビジョンとは別物で、際限なく増えるものではありません。

これから増える分を抑える

wp-config.php に次を追加すると、1記事あたりに残すリビジョンの数を制限できます。下記は記事などのリビジョンを20件に制限する記述です。

define( 'WP_POST_REVISIONS', 20 );

※ コードをコピーすると引用符が全角(' ')に変わることがあります。動かないときは、半角の ' で囲み直してください。

この設定は、設定後にその記事を次に更新したときに適用され、超過すると古いものから自動で削除されます。ただしまだ更新していない記事の過去のリビジョンは、更新するまでそのまま残ります。すべてをすぐ減らしたい場合は、次の方法を検討します。

すでにたまった分を減らす

たまったリビジョンを一括で減らすには、専用プラグインを使う方法と、データベースを直接操作する方法があります。プラグインを使う方が安全ですが、データ量が非常に多い環境では処理がタイムアウトすることもあります。

データベースを直接操作する方法(phpMyAdminでのSQL実行)は、対象を間違えると記事データが消えるおそれがあり、取り返しがつきません。危険度が高いため、この記事では手順を示しません。リビジョンの量が多く、プラグインでも処理しきれない場合は、フォームからご相談いただくか、データベースに慣れた人に依頼することをおすすめします。

サーバーのリソース上限【難易度:簡単】

共有サーバーのプランには、同時に処理できるリクエストの数や、1回の処理にかけられる時間に上限があります。他サイトのアクセスが集中した時間帯に管理画面が遅くなる、特定の時間だけ重い、という場合は、サーバー側の制限が影響している可能性があります。

まず、サーバー会社の障害情報やメンテナンス情報を確認します。時間帯を変えても改善せず、上のプラグイン・メモリ・データベースの確認でも原因が絞れない場合は、上位プランへの変更や、サーバーの乗り換えを検討します。どのプランが適切かは、サイトの規模やアクセス数によって変わります。

やってはいけないこと

  • バックアップを確認しないまま wp-config.php やテーマファイルを書き換える。元のファイルをコピーしてから作業してください。
  • 原因が分からないまま、プラグインをまとめて「削除」する(無効化ではなく削除)。削除すると、そのプラグインの設定が失われることがあります。切り分けは必ず無効化で行ってください。
  • phpMyAdminで、リビジョン以外のデータを推測で削除する。誤った削除は記事や設定の喪失につながります。

よくある質問

  • 特定のプラグインを有効にすると重くなります。すぐ削除すべきですか。
    • 削除の前に、そのプラグインの更新履歴や公式フォーラムで既知の問題がないかを確認してください。更新で改善することがあります。代替プラグインへの乗り換えも選択肢ですが、設定の引き継ぎに手間がかかります。
  • 管理画面だけ遅く、サイトのフロントは普通に表示されます。なぜですか。
    • 管理画面(wp-admin)は、フロントより多くのプラグイン処理とデータベースアクセスが発生します。管理画面専用の WP_MAX_MEMORY_LIMIT が低いか、管理画面でだけ動くプラグインの負荷が原因のことが多いです。フロント側の表示速度を改善したい場合はWordPressの表示速度を改善する方法をご覧ください。
  • Heartbeatを完全に止めても問題ありませんか。
    • 完全に止めると、自動保存、編集の衝突検知、ログイン状態の維持などが動かなくなります。無効化より、間隔を延ばす(60〜120秒)方が、機能を保ちながら負荷を下げられます。完全に止める必要があるかは、プラグインの絞り込みで原因を確かめてから判断することをおすすめします。
  • ログイン自体ができないのですが、この記事の手順を試せますか。

ここまでの手順でも原因が絞れない、設定ファイルやデータベースの操作に不安がある、という場合は、WPメンテナンスセンターにご相談ください。ご相談の際は、「どの画面が・いつ重いか」「ここまでで試した手順」「ご利用のサーバー会社」を添えていただくと、原因の見当が早くつきます。

※ 本記事は一般的な対処方法の解説です。WordPressやサーバーの構成によって手順や結果は異なります。ファイルやデータベースの操作は、誤るとサイトが表示できなくなることがあるため、作業前に必ずバックアップを取り、ご自身の判断と責任の範囲で行ってください。無理に進めず、専門スタッフや保守契約担当者にご相談ください。ご相談先がない場合は、当サイトへお気軽にご相談ください。

今すぐ相談する(ご相談無料)