Перейти к содержимому

Превышен лимит памяти PHP (Allowed memory size exhausted) в WordPress: причины и решение

Превышен лимит памяти PHP (Allowed memory size exhausted) в WordPress: причины и решение

Появляется белая страница с ошибкой «Allowed memory size of X bytes exhausted»? Значит, PHP израсходовал выделенную память при обработке запроса. Чаще всего виноват тяжёлый плагин, неоптимальная тема или утечка памяти в кастомном коде. В этой статье разберём, как найти источник проблемы и настроить лимит памяти правильно.

Что значит ошибка «Allowed memory size exhausted»?

PHP — язык с автоматическим управлением памятью. Каждому скрипту выделяется определённый лимит (обычно 64–128 МБ для WordPress). Если плагин загружает слишком много данных, тема использует неэффективные алгоритмы или внешняя библиотека пытается обработать большой массив — PHP останавливает выполнение и показывает фатальную ошибку.

Типичная запись в debug.log:

PHP Fatal error: Allowed memory size of 67108864 bytes exhausted (tried to allocate 20480 bytes) in /wp-content/plugins/some-plugin/class-heavy.php on line 42

Сколько памяти нужно WordPress?

Минимальный лимит для современного WordPress — 128 МБ, рекомендуемый — 256–512 МБ. Если на сайте несколько плагинов кеширования, SEO-инструментов и медиа-библиотека, не удивляйтесь, что 64 МБ не хватает.

| Сценарий | Рекомендуемый лимит |
|———-|——————-|
| Базовый блог, 5–10 плагинов | 128 МБ |
| Интернет-магазин (WooCommerce) | 256 МБ |
| Сайт с конструктором страниц (Elementor, Divi) | 256–512 МБ |
| Мультисайт или LMS (LearnDash) | 512+ МБ |

Как найти причину

1. Включите режим отладки

Добавьте в wp-config.php:

define('WP_DEBUG', true);
define('WP_DEBUG_LOG', true);
define('WP_DEBUG_DISPLAY', false);

После воспроизведения ошибки проверьте файл /wp-content/debug.log — там будет указан точный файл и строка, из-за которых упала память.

2. Отключайте плагины по одному

Используйте деактивацию через wp-admin → Плагины. Если админка недоступна — переименуйте папку wp-content/plugins/ через FTP или хостинг-панель. После восстановления доступа возвращайте плагины по одному и отслеживайте потребление памяти.

3. Временное переключение темы

Через FTP переименуйте папку активной темы в wp-content/themes/your-theme-backup/. WordPress автоматически включит стандартную тему (Twenty Twenty-Four). Если ошибка исчезла — проблема в теме.

Как увеличить лимит памяти

Есть несколько способов — работают снизу вверх. Пробуйте по порядку.

Способ 1: wp-config.php (самый надёжный)

define('WP_MEMORY_LIMIT', '256M');
define('WP_MAX_MEMORY_LIMIT', '512M'); // для админки

Вторая константа увеличивает лимит только для панели управления — плагины-конструкторы и редакторы часто требуют больше.

Способ 2: .htaccess (для Apache)

php_value memory_limit 256M

Работает только если хостинг разрешает php_value в .htaccess. На многих shared-хостингах эта директива заблокирована.

Способ 3: php.ini (прямая настройка PHP)

memory_limit = 256M

Проверьте, какой php.ini используется: создайте файл info.php в корне сайта с содержимым:

<?php phpinfo();

Найдите строку Loaded Configuration File — это путь к активному php.ini.

Способ 4: Панель хостинга

На хостингах вроде Beget, Timeweb, Reg.ru переключение версии PHP или изменение лимитов — в разделе Управление PHP / PHP Settings. Там же можно выставить memory_limit = 256M без редактирования файлов.

Почему не помогают стандартные способы?

  • Хостинг блокирует директивы — некоторые провайдеры фиксируют memory_limit на уровне сервера. Обратитесь в поддержку.
  • Плагин с утечкой — даже увеличенный лимит не спасёт, если плагин загружает всё-всю базу в память. Смотрите на размер используемой памяти функцией memory_get_peak_usage().
  • Внешние запросы — сервисы типа Imgix или Cloudinary возвращают огромные ответы. Установите ограничения на стороне API-клиента.

Профилактика

  1. Регулярно обновляйте плагины и тему — разработчики часто исправляют утечки памяти.
  2. Используйте кеширование — WP Rocket, W3 Total Cache или LiteSpeed Cache снижают нагрузку на PHP.
  3. Оптимизируйте медиафайлы — сжимайте изображения перед загрузкой, используйте WebP.
  4. Удалите неиспользуемые плагины — даже деактивированный плагин может оставлять таблицы в базе.
  5. Настройте OPcache — в php.ini включите opcache.enable=1, выделите opcache.memory_consumption=128.

Когда вызывать хостинг-поддержку

Если вы перепробовали всё, а лимит 512 МБ всё равно исчерпывается — проблема на стороне сервера: утечка в shared-окружении, ограничения контейнера или неверная конфигурация PHP-FPM пула. Поддержка хостинга должна предоставить актуальные логи error_log и php-fpm — по ним можно найти истинную причину.

Вывод

Ошибка «Allowed memory size exhausted» — не приговор. Чаще всего причина в одном плагине, и решение занимает 10 минут: включить WP_DEBUG, найти строку в debug.log и либо увеличить лимит, либо заменить проблемный компонент. Если ничего не помогает — проверьте настройки хостинга и обратитесь в поддержку.

Автор: Редакция блога технической поддержки WordPress
Дата публикации: 4 июня 2026
Дата обновления: 4 июня 2026