Помилка Allowed memory size exhausted означає, що WordPress або один із компонентів сайту намагався використати більше оперативної пам’яті, ніж дозволено налаштуваннями PHP. У результаті сторінка може не відкриватися, адміністративна панель стане недоступною, а під час оновлення плагіна чи теми з’явиться білий екран.
Проблема не завжди свідчить про те, що сайт остаточно пошкоджений. Часто її можна локалізувати, збільшивши доступний ліміт або усунувши компонент, який споживає надмірну кількість ресурсів. Водночас перед зміною файлів конфігурації, плагінів чи бази даних варто створити резервну копію. Некоректне редагування може призвести до нових помилок або втрати частини даних.
Що означає помилка пам’яті
PHP працює в межах обмеження пам’яті, заданого на рівні хостингу. Наприклад, якщо для сайту встановлено ліміт 128 МБ, а під час формування сторінки WordPress, тема та плагіни потребують більше, виконання сценарію буде примусово зупинено.
Типове повідомлення може мати такий вигляд:
Fatal error: Allowed memory size of 134217728 bytes exhausted
Найпоширеніші симптоми:
- білий екран замість сторінки або панелі керування;
- помилка виникає лише під час відкриття конкретного розділу;
- не вдається встановити чи оновити плагін або тему;
- адміністративна панель працює повільно та перериває операції;
- збій з’явився після оновлення WordPress, теми, плагіна або імпорту даних.
Причиною може бути не тільки малий ліміт PHP. Пам’ять часто витрачається через конфлікт плагінів, помилки в коді теми, великі імпорти, надмірну кількість записів у базі даних або шкідливий код. Тому просте збільшення ліміту не завжди усуває першопричину.
Пошук ресурсоємного плагіна
Якщо помилка з’явилася після встановлення або оновлення розширення, насамперед перевіряють плагіни. Деякі з них можуть завантажувати великі масиви даних, створювати складні запити до бази або конфліктувати між собою.
Безпечна послідовність перевірки:
- Зробіть резервну копію файлів і бази даних, якщо сайт ще доступний.
- Зафіксуйте, після якої дії виникла помилка.
- Тимчасово вимкніть останній встановлений або оновлений плагін.
- Якщо панель WordPress недоступна, перейменуйте каталог відповідного плагіна через файловий менеджер або SFTP. Це призведе до його деактивації.
- Перевірте сайт після кожної зміни, не вимикаючи одразу всі компоненти без потреби.
Коли конкретний плагін знайдено, його не варто просто залишати вимкненим без подальшої перевірки. Потрібно з’ясувати, чи є нова сумісна версія, чи правильно налаштовані його параметри, чи не дублює він функції іншого розширення. Іноді причиною є не один плагін, а їхня комбінація.
Якщо після вимкнення всіх плагінів помилка залишається, перевіряють активну тему. Тимчасове перемикання на стандартну тему WordPress допомагає визначити, чи пов’язаний збій із шаблонами, віджетами або додатковим кодом теми. Перед такими діями слід переконатися, що є резервна копія та зафіксовані поточні налаштування.
Ліміти PHP
Поточний ліміт пам’яті можна перевірити в адміністративній панелі WordPress у розділі стану сайту або через інформацію, яку надає хостинг. Важливо відрізняти кілька параметрів:
memory_limit— загальний ліміт пам’яті для PHP;WPMEMORYLIMIT— бажаний ліміт, який WordPress використовує для звичайних запитів;WPMAXMEMORY_LIMIT— підвищений ліміт для адміністративних операцій, якщо сервер його дозволяє.
У деяких випадках ліміт можна змінити у файлі wp-config.php, додавши перед рядком завершення редагування:
define('WPMEMORYLIMIT', '256M');
Для адміністративної частини іноді використовують:
define('WPMAXMEMORY_LIMIT', '256M');
Однак ці значення не гарантують результату. Хостинг може обмежувати їх на рівні PHP, панелі керування або тарифного плану. Також збільшення ліміту до надмірного значення не вирішує проблему неефективного коду й може створити додаткове навантаження на сервер.
Перед редагуванням wp-config.php потрібно зберегти оригінальний файл. Помилка в синтаксисі, неправильне кодування або вставлення директиви не в тому місці можуть зробити сайт недоступним. Якщо доступ до сайту вже втрачено, краще не змінювати кілька параметрів навмання, а спочатку переглянути журнали PHP та помилки вебсервера.
Під час оцінки Скільки коштує ремонт сайту на WordPress зазвичай враховують не лише зміну ліміту пам’яті, а й діагностику плагінів, теми, бази даних та серверної конфігурації.
Оптимізація запитів
Якщо пам’ять закінчується під час завантаження каталогу, пошуку, звітів або імпорту, проблема може бути пов’язана з надто складними запитами до бази даних. Сайт витрачає ресурси не лише на PHP-код, а й на формування та обробку великих вибірок.
Перевіряють такі фактори:
- надмірну кількість записів у таблицях постів, метаданих і налаштувань;
- плагіни, які зберігають журнали, статистику або тимчасові дані без очищення;
- великий обсяг автозавантажуваних параметрів у таблиці налаштувань;
- відсутність кешування для повторюваних запитів;
- пошук і фільтрацію без відповідних індексів;
- помилки під час імпорту товарів, користувачів або медіафайлів.
Оптимізацію виконують після резервного копіювання. Видалення журналів, транзитних параметрів або записів із бази даних без перевірки може порушити роботу плагінів і призвести до втрати важливої інформації. Для великих сайтів бажано спершу працювати з копією бази або тестовим середовищем.
Також перевіряють PHP-журнали, журнал запитів бази даних і серверні логи. Вони можуть показати, на якому URL, під час якої операції або в якому файлі відбувається перевищення пам’яті. Якщо помилка виникає тільки на одній сторінці, це суттєво звужує коло пошуку.
Окрему увагу приділяють кешуванню. Кеш може зменшити кількість повторних обчислень, але неправильно налаштований кеш, несумісне розширення або пошкоджені кеш-файли іноді самі стають джерелом проблем. Перед очищенням кешу потрібно розуміти, де він зберігається і чи не видаляються разом із ним тимчасові, але потрібні дані.
Коли потрібен потужніший хостинг
Зміна тарифу може бути виправданою, якщо сайт стабільно споживає більше ресурсів через обсяг трафіку, кількість товарів, складні фільтри, особисті кабінети або регулярні імпорти. Ознаками обмежень хостингу є повторювані помилки навіть після оптимізації, нестача CPU та RAM, перевищення лімітів процесів або примусове завершення PHP-скриптів.
Перед перенесенням на потужніший тариф потрібно переконатися, що проблема дійсно ресурсна. Якщо причиною є зациклений код, шкідливий скрипт чи несправний плагін, додаткові ресурси можуть лише тимчасово приховати симптом і збільшити витрати.
Під час зміни хостингу необхідно врахувати сумісність версії PHP, налаштування вебсервера, доступ до бази даних, права на файли, SSL-сертифікат, DNS та роботу пошти. Перенесення виконують через резервну копію або контрольовану міграцію. До завершення перевірки не варто видаляти старий сайт: помилки під час копіювання можуть призвести до втрати файлів чи частини бази даних.
Звернення до спеціаліста потрібне, якщо одночасно недоступні сайт і панель керування, помилка виникає після змін у сервері, є ознаки зараження, пошкоджена база даних або незрозуміло, які саме файли можна змінювати. Фахівець спочатку аналізує резервні копії, логи, конфігурацію PHP, плагіни, тему та навантаження, а вже потім пропонує спосіб відновлення. Це зменшує ризик втратити дані під час поспішних виправлень.