WordPressのメモリ不足エラー

結論
WordPressの「Allowed memory size of X bytes exhausted」エラーは、PHPリクエストが設定された`memory_limit`を超えるメモリを使用したため、PHPによって処理が停止されたことを意味します。メモリを増やすことで失敗したタスクを再実行できる場合がありますが、エラーが繰り返し発生する場合は、メモリを大量に消費するプラグイン、テーマ、インポート、または一括操作が原因であることが一般的です。変更を加えるたびに、失敗した操作とまったく同じ操作を繰り返し、実際に問題が解決したか確認してください。
要点
- これはPHPのメモリ上限によるエラーであり、必ずしもWordPressが壊れていることを意味しません。
- 初期対応として、
wp-config.phpの「That’s all, stop editing!」という行より上にdefine('WP_MEMORY_LIMIT', '256M');を追加し、WordPress側のメモリ設定を調整します。 - サーバーのPHP
memory_limitによって、WordPressが要求した値が上書きされたり、制限されたりすることがあります。 - インポート、一括編集、移行、または特定のプラグイン画面だけで失敗する場合は、処理内容または特定コンポーネントに固有のメモリ問題であることが多いです。
- 256Mまたは512Mでもエラーが続く場合は、上限を上げ続けるのではなく、バッチサイズを減らし、原因となっているプラグインやテーマを切り分けてください。
Site Administrator
最終レビュー: September 25, 2026
このエラーの意味と見分け方
- 致命的エラーに、
Allowed memory size of 134217728 bytes exhausted (tried to allocate ... bytes)に似た文言が含まれます。 - サイト全体が利用できなくなることもあれば、ダッシュボード、特定のプラグイン画面、インポート、移行、一括操作だけに問題が限定されることもあります。
- プラグインやテーマのインストール・更新、大規模なデータ処理の開始、またはPHPメモリ上限の低いホスティングへの移行後に発生することがあります。
- ホームページは正常に読み込めても、インポート、ページビルダー画面、商品の同期、その他のメモリ負荷が高いタスクが失敗する場合があります。
- メモリを増やすことで通常のページは正常になったように見えても、元の操作は引き続き失敗することがあります。
可能性の高い順の主な原因
- PHPの
memory_limitがサイトまたはリクエストに対して低すぎる。 WordPressコア、使用中のテーマ、プラグイン、現在のリクエスト、処理対象のデータによって、ホスティングの控えめな初期値を超えることがあります。 - プラグインまたはテーマのメモリ使用量が大きい。 ページビルダー、インポート/エクスポートツール、バックアップソフトウェア、キャッシュツール、広範なSEOまたはマーケティングスイートは、特定のタスクで大幅に多くのメモリを使用することがあります。
- 大規模な処理で一度に処理するデータ量が多すぎる。 メディアのインポート、商品の同期、移行、検索と置換などは、通常のページ読み込みが正常でも上限を超えることがあります。
- 有効化されているプラグイン全体の基本メモリ使用量が大きい。 中程度のメモリ使用量のコンポーネントが複数あると、合計で上限を超えることがあります。
- 設定レイヤー間で値が一致していない。
wp-config.php、ホスティングパネル、php.ini、.user.ini、適用される.htaccess設定によって、Webリクエストで実際に有効になる値が異なる場合があります。 - コンポーネントの処理方法が非効率、またはメモリリークがある。 予測できる大規模処理のときだけでなく、比較的小さな処理や繰り返しの使用で特定の操作が失敗する場合、この可能性が高くなります。
修正方法
1. 失敗しているリクエストを特定する
可能であれば、完全な致命的エラーメッセージをコピーします。すべてのページ、ダッシュボードだけ、特定のプラグイン画面だけ、またはインポートや一括編集など特定の操作だけに影響するのかを記録してください。この違いから、全般的に上限が低いのか、特定の処理に固有の問題なのかを切り分けられます。
2. WordPressからより多くのメモリを要求する
ファイルを編集する前に、バックアップを作成するか、現在の設定を復元できることを確認してください。SFTPまたはホストのファイルマネージャーを使用してwp-config.phpを開き、/* That's all, stop editing! */の上に次の行を追加します。
define('WP_MEMORY_LIMIT', '256M');これにより、サーバーが許可する範囲でWordPressが256 MBを使用するよう要求します。定数がすでに存在する場合は、2つ目を追加せず、既存の定義を編集してください。一部の管理タスクでは別の管理者用メモリ設定が使用されることがあるため、ダッシュボードだけで失敗する場合は、追加の調査が必要になることがあります。
3. サイトで使用されているPHPの上限を確認する
WP_MEMORY_LIMITで、サーバー独自のmemory_limitを超えてPHPの上限を引き上げることはできません。ホスティングのコントロールパネル、またはサイトにサービスを提供しているPHPバージョンが使用するphp.iniを確認してください。VPSでは、該当するPHP設定を変更するためにPHP-FPMまたは該当するPHPサービスの再起動が必要になることがあります。必要なアクセス権限と承認がある場合にのみ実施してください。
mod_phpを使用する一部のApache設定では、.htaccessに次のような設定を記述できます。
php_value memory_limit 256Mただし、これはPHP-FPMには適用されず、ディレクティブが許可されていない環境ではサーバー設定エラーを引き起こす可能性があります。追加する前に、ホスティングパネルを使用するか、ホストに確認してください。コマンドラインPHPの設定は、Webリクエストで使用される設定と異なる場合があります。
4. 失敗した操作とまったく同じ操作を再実行する
エラーが発生したインポート、一括編集、プラグイン操作、またはページリクエストを再試行します。通常のページは失敗したタスクよりはるかに少ないメモリしか使用しないことがあるため、ホームページを読み込むだけでは不十分です。タスクが成功した場合は動作を監視し、同じ操作でさらにメモリが必要になる場合を除き、上限をこれ以上引き上げないでください。
5. 操作によるピーク時のメモリ使用量を減らす
インポート、移行、同期、一括編集では、ツールのバッチサイズを小さくするか、作業をより小さなグループに分割します。これは、すべてのPHPリクエストに非常に高い上限を割り当てるより安全なことがよくあります。大規模なジョブを比較的負荷の低い時間帯に実行すると運用上のリスクを減らせる場合がありますが、リクエストのピーク時メモリ要件が下がるわけではありません。
6. 原因の可能性があるプラグインまたはテーマを切り分ける
256Mまたは512Mでも不十分な場合、または変更後に問題が始まった場合は、失敗した画面やタスクに関連するコンポーネントをテストします。可能であればステージング環境のコピーを使用してください。本番サイトでは、まずバックアップを作成し、プラグインを1つずつ無効化します。ダッシュボードにアクセスできない場合は、SFTPまたはファイルマネージャーを使用して、疑わしいプラグインのディレクトリ名を一時的に変更し、WordPressが読み込めないようにします。
最近変更したコンポーネントと、失敗に関連するプラグインを優先して確認し、その後にページビルダー、インポート/エクスポートツール、バックアップツール、キャッシュツール、大規模なオールインワンスイートを確認します。フロントエンドのページが失敗する場合は、デフォルトテーマでもテストしてください。各テスト後に影響を受けていないコンポーネントを元に戻し、どの構成をテストしたのか分かるようにします。
7. 実際に有効な設定値を比較する
WP_MEMORY_LIMITを変更しても目に見える効果がない場合は、WordPressのリクエストと、Webリクエストで使用されるPHPの値を比較します。ホスティングパネル、php.ini、.user.ini、適用される.htaccess設定、およびホストによる上限を確認してください。自分で確認できない場合は、どのPHP設定が適用されるのかホストに問い合わせます。
8. 恒久的な解決を確認する
元の失敗した操作をもう一度実行し、その後、重要なフロントエンドページと管理画面を確認します。非常に高い上限を設定した場合にのみサイトが動作するなら、それを解決済みと判断せず、原因となっているプラグイン、テーマ、クエリ、またはバッチサイズの調査を続けてください。
予防と修正確認
- 本番環境のタスクが失敗するまで待つのではなく、ホストがサポートする適切なWordPressメモリ値を設定します。
- 使用していないプラグインを削除し、有効なプラグイン構成を定期的に見直します。基本的なメモリ使用量は累積するためです。
- インポート、移行、同期、一括編集のバッチを、利用可能なPHPメモリの範囲内に収めます。
- 大規模な操作は、サイト全体を処理する前に、ステージング環境または限定したデータセットでテストします。
- プラグインや設定を変更した後は、以前失敗した操作を再実行し、フロントエンドと管理画面の両方を確認します。
- WebリクエストにどのPHP設定が適用されるかを記録し、今後のメモリ変更を正しい場所で行えるようにします。
外部の助けが必要なタイミング
Webリクエストで使用されるPHP設定を特定できない場合、要求したメモリ値が無視される場合、または.htaccessとPHP-FPMの設定が不明な場合は、ホスティングプロバイダーに問い合わせてください。ホスティングプランにメモリの固定上限があるか、引き上げ可能かを確認します。
1つのプラグインまたはテーマが比較的小さな処理でも一貫して失敗する場合、ホストがサポートする256Mまたは512Mでもエラーが続く場合、または重要な機能を担っているためコンポーネントを無効化できない場合は、WordPress開発者に相談してください。ホストが固定している上限が通常のサイト運用に対して低すぎる場合は、アップグレードまたは別のホスティングプランが必要になることがあります。
よくある質問
WordPressで「Allowed memory size exhausted」とは何を意味しますか?
PHPプロセスが設定されたmemory_limitに達し、さらにメモリを割り当てようとしたことを意味します。PHPによってリクエストが停止され、ページの表示中、またはバックグラウンド処理や管理操作中に致命的エラーが発生します。
WP_MEMORY_LIMITはどこに追加すればよいですか?
wp-config.phpの/* That's all, stop editing! */より上に、define('WP_MEMORY_LIMIT', '256M');を追加します。定数がすでに存在する場合は、重複して追加せず、既存の定義を変更してください。
WP_MEMORY_LIMITを変更してもエラーが解決しないのはなぜですか?
WordPressは、PHPサーバーが許可する以上のメモリを要求できません。ホスティングパネル、またはWebリクエストで使用される設定にあるmemory_limitを確認してください。コマンドラインPHPの設定はサイトに適用されない場合があり、Apacheのphp_value設定もPHP-FPMには同じ方法では適用されません。
なぜインポートや一括編集だけでエラーが発生するのですか?
これらのタスクでは、通常のページ表示よりも1回のリクエストで大量のデータを処理することがあります。バッチサイズを小さくするか、作業をより小さなグループに分割し、必要に応じてサポートされているPHPメモリ上限を引き上げます。
メモリ上限を上げ続けるべきですか?
無制限に上げるべきではありません。適度な引き上げが適切な場合もありますが、256Mまたは512Mでも繰り返し失敗する場合は、メモリを大量に消費するプラグインやテーマを切り分け、処理量を減らすか、サーバーの上限についてホストに相談してください。
サイトの他の部分が動作していても、プラグインがこのエラーを引き起こすことはありますか?
はい。プラグインは、通常のページ読み込み時よりも、設定画面、インポート、バックアップ、同期、その他の負荷が高いタスクで大幅に多くのメモリを使用することがあります。まず、失敗した操作に関連するコンポーネントをテストしてください。
関連ドキュメント
信頼できる情報源として、WP_MEMORY_LIMITおよびWP_MAX_MEMORY_LIMIT定数についてはWordPressのドキュメント、memory_limitについてはPHPのドキュメント、Webリクエストで使用されるPHP設定についてはホスティングプロバイダーのドキュメントを参照してください。環境固有のディレクティブについては、mod_phpを使用するApacheやPHP-FPMなど、ご利用のサーバー構成に対応したドキュメントを確認してください。