Превышен лимит памяти 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-клиента.
Профилактика
- Регулярно обновляйте плагины и тему — разработчики часто исправляют утечки памяти.
- Используйте кеширование — WP Rocket, W3 Total Cache или LiteSpeed Cache снижают нагрузку на PHP.
- Оптимизируйте медиафайлы — сжимайте изображения перед загрузкой, используйте WebP.
- Удалите неиспользуемые плагины — даже деактивированный плагин может оставлять таблицы в базе.
- Настройте 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
