Ошибка Allowed memory size exhausted означает, что WordPress, плагин или тема упёрлись в лимит памяти PHP. На практике это всплывает во время обновлений, импорта, генерации превью, работы конструктора страниц, резервного копирования и в админке, когда открыта тяжёлая страница. Само сообщение почти всегда связано не с «поломкой WordPress», а с тем, что текущего лимита памяти просто не хватает под конкретную задачу.
Исправление обычно состоит из двух частей: сначала увеличить лимит, затем понять, почему он заканчивается так быстро. Если поднять значение вслепую, сайт может временно заработать, но причина перегрузки останется.
Сначала проверьте, где именно заканчивается память
У WordPress есть свой внутренний лимит, но он не может превысить ограничение PHP на стороне хостинга. Поэтому важно понять, что именно упирается в потолок: настройка WordPress, php.ini, .user.ini, .htaccess или ограничение в панели хостинга.
Самый простой способ посмотреть текущие значения — открыть Инструменты → Здоровье сайта → Информация и найти разделы, связанные с сервером и PHP. Там обычно видно версию PHP и часть параметров окружения. Если доступ к админке уже затруднён, можно временно посмотреть конфигурацию через файл phpinfo() или через панель хостинга, если она это показывает.
Если ошибка появляется только при одном действии — например, при импорте большого XML, обновлении плагина или сохранении страницы в конструкторе, — это хороший признак, что проблема не в «всём сайте», а в конкретной операции, которая съедает больше памяти, чем обычно.
Как увеличить лимит памяти WordPress
Для WordPress обычно начинают с файла wp-config.php. Это самый безопасный и предсказуемый способ, если хостинг не запрещает такие изменения. Добавьте строку define( 'WP_MEMORY_LIMIT', '256M' ); перед комментарием /* That's all, stop editing! Happy publishing. */.
Если у вас административная часть особенно тяжёлая, иногда используют ещё и отдельный лимит для панели управления:
define( 'WP_MEMORY_LIMIT', '256M' );
define( 'WP_MAX_MEMORY_LIMIT', '512M' );Первая строка влияет на обычную работу сайта, вторая — на задачи в админке, где WordPress может запросить больше памяти для обновлений, импорта и некоторых служебных операций. Но здесь есть ограничение: если PHP на сервере разрешает только 128M, WordPress не сможет «продавить» 512M только через wp-config.php.
После правки обновите страницу с ошибкой и проверьте, исчезло ли сообщение. Если проблема была именно в лимите WordPress, сайт обычно начинает работать сразу.
Когда правки wp-config.php недостаточно
Если после увеличения значения в wp-config.php ошибка осталась, значит, лимит режется на уровне PHP или хостинга. Тогда нужно искать настройки в одном из следующих мест:
php.ini— основной конфигурационный файл PHP, если у вас есть к нему доступ;.user.ini— часто используется на shared-хостингах с PHP-FPM;.htaccess— актуально не всегда, зависит от веб-сервера и режима PHP;- панель хостинга — иногда лимит меняется только там.
Для PHP-параметра обычно используется директива memory_limit. Например:
memory_limit = 256MПосле изменения конфигурации PHP может понадобиться перезапуск PHP-FPM или подождать несколько минут, если хостинг применяет настройки не мгновенно. На общем хостинге это зависит от панели и политики провайдера.
Какой лимит ставить на практике
Для небольшого сайта часто хватает 128M, но для современных тем, визуальных редакторов, импорта товаров, больших медиа-библиотек и тяжёлых плагинов этого может быть мало. На практике обычно начинают с 256M для сайта и 512M для админки, если хостинг это позволяет.
| Сценарий | Что обычно ставят | Комментарий |
|---|---|---|
| Небольшой сайт без тяжёлых плагинов | 128M–256M | Часто хватает, если нет импорта и сложных сборок страниц |
| Сайт с конструктором, формами, кэшем, SEO-плагинами | 256M | Хорошая стартовая точка |
| Импорт, обновления, бэкапы, админка с тяжёлыми задачами | 512M для админки | Полезно, если хостинг не ограничивает PHP |
Ставить слишком высокий лимит без необходимости не нужно. Если сайт регулярно ест сотни мегабайт, это повод искать причину, а не просто поднимать цифру до максимума.
Почему память заканчивается слишком быстро
Если лимит приходится повышать снова и снова, обычно проблема в одном из трёх мест: плагин, тема или объём данных. WordPress сам по себе не должен постоянно упираться в память на обычном сайте.
Чаще всего виноваты:
- тяжёлые плагины, которые на одной странице админки загружают много данных сразу;
- конструкторы страниц и темы с большим количеством встроенной логики;
- импорт больших файлов без разбивки на части;
- резервные копии, которые создаются прямо из админки и съедают много ресурсов;
- очень большая медиатека или сложные запросы к базе данных;
- устаревшая версия PHP, где производительность ниже, чем у актуальных версий.
Если ошибка появилась после установки конкретного плагина, временно отключите его и проверьте сайт ещё раз. Если проблема исчезла, причина найдена. Если ошибка возникает только при импорте, попробуйте разбить импорт на несколько частей или использовать более лёгкий формат загрузки. Если память заканчивается в редакторе или на странице настроек, виновником часто оказывается плагин, который подгружает слишком много данных в админку.
Что проверить, если ошибка не исчезает
Когда лимит уже поднят, а сообщение Allowed memory size exhausted всё равно появляется, действуйте по порядку:
- Проверьте, сохранился ли файл
wp-config.phpбез синтаксических ошибок. - Убедитесь, что значение
memory_limitна сервере действительно изменилось. - Сравните, не ограничивает ли хостинг PHP жёстче, чем вы указали в WordPress.
- Отключите недавно добавленные плагины и проверьте повторяемость ошибки.
- Обновите WordPress, тему и проблемный плагин, если ошибка связана с известной несовместимостью.
Если сайт не открывается после правки wp-config.php, значит, в файл могла закрасться ошибка в синтаксисе. В таком случае верните резервную копию файла и проверьте строку с лимитом памяти ещё раз. Даже лишняя кавычка или пропущенная точка с запятой могут сломать загрузку сайта.
Как убедиться, что лимит памяти реально вырос
После изменений не ограничивайтесь тем, что ошибка исчезла на одной странице. Проверьте именно тот сценарий, который раньше падал: обновление плагина, импорт, открытие тяжёлой страницы в админке или сохранение записи с большим количеством блоков.
Если у вас есть доступ к хостингу, посмотрите текущий memory_limit в панели или через phpinfo(). Значение должно совпадать с тем, что вы ожидаете. В WordPress можно также снова открыть Инструменты → Здоровье сайта → Информация и сверить данные о сервере.
Если после увеличения лимита ошибка ушла, но сайт стал заметно медленнее, это уже не вопрос памяти как таковой. Тогда стоит искать тяжёлый плагин, слишком большой импорт или неоптимальную тему. Память — это не бесконечный запас, а лишь временный буфер, который помогает WordPress пережить сложную операцию.
В большинстве случаев рабочая схема такая: сначала поднять лимит до разумного уровня, затем проверить серверное ограничение, после этого найти плагин или сценарий, который съедает память. Такой подход быстрее и надёжнее, чем бесконечно увеличивать цифры вслепую.