Allowed memory size exhausted в WordPress: почему заканчивается PHP memory_limit и как это понимать без лишней паники

Автор: | 14.10.2026

Сообщение об ошибке памяти в WordPress обычно появляется внезапно: сайт еще работал, а потом перестал открывать страницу, обновлять плагин или сохранять запись. На экране может всплыть фраза Allowed memory size exhausted, и это почти всегда означает одно: PHP уперся в установленный лимит памяти. Сам WordPress в этом случае не ломается навсегда, но начинает задыхаться под нагрузкой, которую не может переварить в заданных рамках.

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

Что означает ошибка памяти в WordPress

Когда PHP выполняет скрипт, ему выделяется ограниченный объем оперативной памяти. Если этот объем заканчивается, выполнение прерывается, а WordPress уже не может продолжать работу в обычном режиме. Отсюда и появляется сообщение о том, что разрешенный лимит памяти исчерпан.

Важно не путать память PHP с памятью сервера в целом. На хостинге может быть свободно много ресурсов, но конкретному процессу PHP все равно позволено использовать только установленный предел. Именно поэтому сайт с небольшой посещаемостью тоже способен упереться в лимит, если внутри него есть тяжелые запросы, сложные расчеты или конфликтующие расширения.

В практике веб-разработки такая ошибка чаще всего всплывает в самый неудобный момент. У меня она однажды возникла на обычной странице редактирования записи, хотя снаружи сайт выглядел спокойным. Причина оказалась в плагине, который при сохранении подтягивал слишком много данных из базы и забирал память быстрее, чем ожидалось.

«Память кончается не там, где сайт большой. Она кончается там, где один процесс делает слишком много работы за слишком короткое время», — эта мысль часто звучит у администраторов серверов, и в ней есть практический смысл.

Почему лимит памяти заканчивается

Причин у этой ошибки обычно несколько, и сводить все только к слабому хостингу не стоит. Нередко проблема лежит в самом WordPress-окружении: теме, плагинах, версии PHP, настройках кэша или даже в составе библиотеки, которую использует одно из расширений. Одно неудачное место в цепочке способно создать перегрузку.

Частая причина — плагин, который работает слишком тяжело или конфликтует с другим расширением. Например, инструменты для резервного копирования, импорта контента, создания страниц, SEO, визуальных редакторов и аналитики могут в некоторых сценариях потреблять заметный объем памяти. Если таких плагинов несколько, расход складывается очень быстро.

Вторая распространенная причина — тема с большим количеством встроенных функций. Особенно это заметно у коммерческих тем, где в одном пакете есть все: слайдеры, конструкторы, портфолио, анимации, виджеты, встроенные шорткоды. На красивом сайте это выглядит удобно, но при редактировании и загрузке страниц внутри PHP начинается тяжелая работа.

Есть и третий сценарий: сам лимит установлен слишком низко. На части хостингов по умолчанию дают 64M или 128M, а для WordPress этого иногда мало даже без экстремальной нагрузки. Тогда сайт может жить до определенного момента, а потом упасть при обновлении ядра, импорте изображения или генерации страницы с большим числом блоков.

Типичные источники перерасхода памяти

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

  • тяжелые плагины резервного копирования и миграции;

  • визуальные конструкторы с большим числом модулей;

  • конфликт нескольких SEO- или кэш-плагинов;

  • устаревшая версия PHP;

  • слишком низкий memory_limit в настройках сервера;

  • ошибки в теме или в пользовательском коде;

  • слишком крупные операции импорта и экспорта.

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

«Одна строчка в логе экономит больше времени, чем час догадок в админке», — эта фраза особенно справедлива для случаев, когда WordPress упирается в память.

Как проверить, что именно забирает память

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

Следующий источник информации — журналы сервера и отладочный лог WordPress. При включенном режиме отладки можно увидеть дополнительные предупреждения, которые предшествовали падению. Бывает, что память съедается не одной большой операцией, а десятком предупреждений подряд, которые накапливаются в одной точке.

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

Если доступ к панели нет, помогает работа через FTP или файловый менеджер хостинга. Иногда достаточно переименовать папку одного плагина, чтобы WordPress отключил его и снова начал загружаться. Такой прием часто выручает, когда админка уже не открывается совсем.

Что делать, если memory_limit действительно мал

Иногда диагноз оказывается скучным, зато прямым: лимит памяти просто ниже, чем нужно сайту. В этом случае помогает увеличение значения memory_limit, но делать это лучше там, где позволяет конфигурация сервера. Возможные места зависят от хостинга и способа запуска PHP.

Иногда значение меняют в файле php.ini, иногда в .htaccess, а на некоторых хостингах это доступно прямо в панели управления. В WordPress также можно указать лимит в wp-config.php, но этот способ сработает только в пределах тех ограничений, которые разрешил сервер. Если хостинг жестко режет память, одна строка в WordPress не спасет.

Ниже удобнее видеть, где обычно проверяют и меняют лимит памяти.

Место Что там делают Что важно помнить
wp-config.php Задают лимит для WordPress Не выше серверного ограничения
php.ini Меняют системный memory_limit Подходит не на всех хостингах
.htaccess Иногда задают параметры PHP Работает только при поддержке Apache
Панель хостинга Выбирают нужное значение в интерфейсе Самый простой вариант для многих сайтов

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

Когда виноват не лимит, а сам сайт

Иногда увеличение памяти только откладывает проблему. Сайт перестает падать сегодня, но завтра снова начинает вести себя так же, потому что источник перегрузки остался на месте. В таких случаях полезнее искать не способ дать системе больше воздуха, а причину, почему она задыхается.

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

Еще один частый сюжет — старая версия PHP. Современные версии работают быстрее и бережнее расходуют ресурсы, а старые сборки нередко ведут себя тяжелее. Если хостинг позволяет, обновление PHP может дать более заметный эффект, чем механическое повышение лимита.

«Хорошая оптимизация заметна не по скорости одного запроса, а по тому, что система перестает падать в редких, неудобных сценариях», — это хорошо описывает ситуацию с памятью в WordPress.

Как снизить риск повторения ошибки

Лучший способ не возвращаться к этой проблеме слишком часто — держать сайт в порядке. Это звучит просто, но на деле означает регулярную проверку плагинов, темы, версии PHP и журналов ошибок. Когда все эти элементы обновлены и не конфликтуют между собой, память расходуется заметно спокойнее.

Полезно следить за количеством расширений. Чем их больше, тем выше шанс, что два из них начнут мешать друг другу или дублировать функции. Иногда удаление одного лишнего плагина решает больше, чем увеличение лимита на сто мегабайт.

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

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

В WordPress проблемы с памятью редко бывают загадкой. Чаще это сочетание понятных вещей: слишком низкого лимита, тяжелого кода, старой версии PHP и неудачного набора плагинов. Когда источник найден, решение тоже становится вполне приземленным: убрать лишнее, обновить среду и настроить сервер так, чтобы он не работал на пределе каждый день.