Обсудить проект

WordPress: Allowed memory size exhausted — как исправить нехватку памяти PHP

Сообщение Allowed memory size exhausted появляется, когда PHP-процесс использовал больше памяти, чем разрешено сервером.

Увеличение лимита может помочь, но при ошибке в плагине, рекурсии или огромной выборке оно лишь скрывает причину.

Как проявляется проблема

  • критическая ошибка при открытии страницы
  • падение импорта
  • ошибка в редакторе
  • backup завершается с ошибкой
  • проблема появилась после нового плагина

Основные причины

1. Низкий memory_limit

Тяжёлой конфигурации WordPress или WooCommerce не хватает доступной памяти.

2. Тяжёлый плагин

Конструктор, импортёр или отчёт загружает большие массивы.

3. Неоптимальный SQL

Код получает тысячи записей и метаданных за один запрос.

4. Импорт без пакетов

Весь файл обрабатывается одним PHP-запросом.

5. Рекурсия или утечка

Ошибка логики постоянно накапливает объекты в памяти.

Пошаговая диагностика

Шаг 1. Прочитать fatal error

Файл и строка показывают, где память закончилась, хотя это не всегда реальный виновник.

Шаг 2. Проверить фактический лимит

Сверьте memory_limit в панели хостинга/phpinfo и настройках WordPress.

Шаг 3. Отключить подозрительный компонент

Повторите операцию на staging без недавно установленного плагина.

Шаг 4. Оценить объём данных

Массовую операцию нужно дробить, а не выполнять одним запросом.

Как исправить

Поднять лимит разумно

Если сервер располагает памятью, увеличьте лимит до уровня, подходящего проекту.

Обрабатывать пакетами

Импорт и генерацию миниатюр разбивайте на части.

Оптимизировать код

Получайте только нужные поля и не храните огромные наборы объектов в памяти.

Что важно не делать

  • Не меняйте сразу несколько настроек: после каждого действия проверяйте результат.
  • Перед правками файлов и базы сделайте резервную копию.
  • Не отключайте защиту, кеш или обновления навсегда только ради временного обхода ошибки.
  • На интернет-магазине проверяйте решение не только под администратором, но и как обычный посетитель.

Когда нужна помощь разработчика

Если проблема повторяется, затрагивает продажи, заявки или индексацию, сохраните время ошибки и журналы сервера. Это позволяет найти первопричину вместо временного обхода.

Нужна диагностика? Можно обратиться за восстановлением WordPress.

Связанные статьи

Часто задаваемые вопросы

Какой memory_limit нужен?

Универсального числа нет: WooCommerce и конструкторы требуют больше, чем простой блог.

Можно ли поставить -1?

На production это плохая идея: бесконечный лимит способен уронить весь сервер.

Почему после обновления стало хуже?

Новая версия компонента могла изменить потребление памяти или запустить миграцию.

Раздел блога: Ошибки WordPress →

Обсудим ваш проект?

Обычно отвечаю в течение 15–30 минут в рабочее время.

Бесплатно проведу первичную оценку и подскажу, какие доработки действительно нужны.