WordPressのメモリ不足エラー|WP_MEMORY_LIMITとPHPのmemory_limit

WordPressで「Allowed memory size of … bytes exhausted」というエラーが出るのは、PHPが1回の処理で使えるメモリの上限(memory_limit)を超えたためです。WordPressは、起動する時に WP_MEMORY_LIMIT(標準で40MB)まで上限を引き上げようとし、管理画面などの重い処理では WP_MAX_MEMORY_LIMIT(標準で256MB)まで引き上げます。ただし、サーバー側が上限を固定していると、WordPressからは変えられません。

この記事では、WordPress 7.1.2 のソースコードとPHPマニュアルにもとづいて、メモリの上限が決まる仕組みと、直す順番をまとめます。

(確認:WordPress 7.1.2 のソースコード wp-includes/default-constants.php・wp-includes/functions.php、PHPマニュアル「php.ini ディレクティブ」。確認日:2026年10月6日)

3つの値の関係

名前 何か 標準の値(ソースで確認)
memory_limit PHPの設定。スクリプトが確保できる最大メモリ。-1 で無制限 PHPの標準は 128M(PHPマニュアル)。実際の値はサーバーで違う
WP_MEMORY_LIMIT WordPressが通常の処理で使いたい上限 40M(マルチサイトは64M)。memory_limit を変えられない環境では、その値になる
WP_MAX_MEMORY_LIMIT 管理画面・画像処理・cronなど、重い処理で使う上限 256M(現在の memory_limit が256Mより大きい時は、その値)

WordPressは、WP_MEMORY_LIMIT が現在の memory_limit より大きい時だけ、PHPの上限を引き上げます。小さくすることはありません。memory_limit が -1(無制限)の時は、何も変えません。また、memory_limit をサーバー側が固定している場合は、WordPressの設定を書いても変わりません。

直す順番

  1. どの処理で出るかを見る:管理画面だけか、画像のアップロードか、特定のプラグインか。エラーの文に、動いていたファイル名が出ます。プラグインの名前が出ていれば、そのプラグインを止めて確かめます
  2. 今の上限を調べる:「ツール」→「サイトヘルス」→「情報」→「サーバー」で、PHPのメモリ制限などを確認します(WordPressの動作環境)
  3. サーバーの管理画面でPHPの設定を変える:レンタルサーバーでは、memory_limit を管理画面で変えられることが多いです。変えられる範囲は、契約で違います
  4. wp-config.php に書く:define( 'WP_MEMORY_LIMIT', '256M' ); のように書くと、WordPress側の希望の上限を上げられます。ただし、memory_limit が固定されている場合は、効きません
  5. プラグインを見直す:メモリの使用量が多い処理を、まとめて動かさない。不要なプラグインを止める

wp-config.php を編集する前には、バックアップを取ってください(WordPressのバックアップ)。wp-config.php の基本はwp-config.phpの主な設定にまとめています。

メモリを大きくしても直らない時

  • 同じエラーが何度も同じ場所で出るなら、プラグインやテーマの不具合で、無限にメモリを使っている可能性があります。上限を上げても直りません。止めて確かめます
  • 画像のアップロードで出る場合は、画像の大きさ(ピクセル)が原因のことがあります。WordPressは、管理画面・画像処理・cronの3つの場面で、必要な時だけ、同じ最大上限まで引き上げようとします(ソースで確認)。サーバーが固定していれば、ここでも変わりません。なお、WordPress 7.1の紹介の文言には、画像の圧縮・リサイズ・サムネイル生成をブラウザー上で行うようになり、大きな画像でPHPのメモリ制限に達することが減る、と書かれています(日本語の翻訳ファイルで確認。実機での効果は未確認)
  • サーバーが重くなる(共有サーバーの負荷)場合は、プランの見直しも考えます(Amazon Auto Posts 導入前に確認することに、これから借りるサーバーの確認事項を載せています)

まとめ

  • メモリ不足のエラーは、PHPの memory_limit を超えた時に出る
  • WordPressは、必要な時に WP_MEMORY_LIMIT(40M)・WP_MAX_MEMORY_LIMIT(256M)まで上限を引き上げるが、サーバーが固定していると変えられない
  • まず、どの処理で出るかを見て、サーバーの設定→wp-config.php→プラグインの見直しの順に確認する

本記事は設定を説明したものです。サーバーの設定の変更は、各社の案内に従ってください。