Проще говоря, сервер дал скрипту ограниченное время на выполнение, а тот не успел закончить работу. Ниже — полное решение: как увеличить лимит, найти причину и убрать ошибку надолго.
Quick Fix
- Увеличьте параметр
max_execution_timeв PHP. - Для WordPress проверьте плагины, тему и тяжёлые фоновые задачи.
- Отключите проблемный импорт, backup или cron-процесс.
- Проверьте логи PHP и сервера.
- Оптимизируйте медленные запросы к базе данных.
- Если сайт на слабом хостинге, проверьте лимиты тарифа.
Что значит Max Execution Time Exceeded
Ошибка Max Execution Time Exceeded означает, что PHP-скрипт превысил максимально допустимое время выполнения. После этого сервер завершает процесс, чтобы скрипт не зависал бесконечно и не перегружал ресурсы.
Обычно ошибка выглядит как PHP Fatal Error, ошибка 500, белый экран или сообщение о критической ошибке на сайте.
Как выглядит ошибка
Чаще всего в логах или на экране можно увидеть такие варианты:
Maximum execution time of 30 seconds exceededPHP Fatal error: Maximum execution time exceededFatal error: Maximum execution time of ... seconds exceeded- ошибка 500 Internal Server Error;
- белый экран сайта;
- сообщение WordPress о критической ошибке.
Почему появляется Max Execution Time Exceeded
1. Слишком маленький лимит времени выполнения
Самая частая причина — на сервере установлен низкий параметр max_execution_time, например 30 секунд. Для простых страниц этого хватает, но для тяжёлых задач уже нет.
2. Медленный или тяжёлый плагин
Некоторые плагины WordPress долго выполняют резервное копирование, импорт, экспорт, генерацию кэша, сканирование безопасности или работу с внешними API. Если плагин не успевает завершить задачу, сервер обрывает выполнение.
3. Большой импорт или экспорт данных
Импорт товаров, загрузка больших CSV-файлов, массовая обработка медиа, экспорт заказов или миграция контента часто приводят к превышению лимита времени.
4. Медленные запросы к базе данных
Если скрипт ждёт ответ от MySQL или другой базы слишком долго, общее время выполнения растёт. В итоге PHP не успевает завершить задачу в отведённый срок.
5. Проблемы с хостингом или нехватка ресурсов
На слабом shared hosting даже обычная задача может выполняться медленно. Чем медленнее сервер, тем выше шанс, что скрипт упрётся в лимит времени.
6. Конфликт плагинов или темы
Иногда проблема не в одном тяжёлом скрипте, а в конфликте, который заставляет код работать слишком долго или зависать в цикле.
7. Внешние API отвечают слишком медленно
Если сайт ждёт ответ от стороннего сервиса — платежной системы, CRM, API доставки, AI-сервиса или другого внешнего ресурса — это тоже может вызвать Max Execution Time Exceeded.
8. Зацикливание или неэффективный код
Бесконечный цикл, неудачный рекурсивный вызов, слишком тяжёлый массив данных или неоптимальный PHP-код могут легко съесть всё доступное время выполнения.
Max Execution Time Exceeded — как исправить пошагово
1. Увеличьте max_execution_time в php.ini
Если у вас есть доступ к php.ini, найдите строку:
max_execution_time = 30
И увеличьте значение, например:
max_execution_time = 120
Для тяжёлых задач иногда ставят 180 или 300 секунд.
2. Увеличьте лимит через .htaccess
На некоторых хостингах можно добавить в .htaccess:
php_value max_execution_time 120
Если после этого появляется ошибка 500, значит хостинг не разрешает менять параметр таким способом.
3. Измените лимит через .user.ini
На shared hosting часто помогает файл .user.ini со строкой:
max_execution_time = 120
Это хороший вариант, если доступ к php.ini закрыт.
4. Измените параметр в панели хостинга
На многих хостингах есть раздел PHP Settings, Select PHP Version или MultiPHP INI Editor, где можно изменить max_execution_time без ручной правки файлов.
5. В WordPress проверьте плагины
Если ошибка появилась после установки или обновления плагина, отключите его и проверьте, исчезла ли проблема. Особенно внимательно смотрите на backup plugins, import plugins, security plugins и тяжёлые конструкторы страниц.
6. Проверьте тему
Если дело не в плагинах, временно переключитесь на стандартную тему WordPress. Иногда именно тема вызывает тяжёлую обработку или конфликтующий код.
7. Проверьте PHP-логи
Откройте error_log, PHP log или debug.log WordPress. Там обычно видно, какой файл или операция упираются в лимит времени.
8. Разбейте тяжёлую задачу на части
Если ошибка возникает при импорте или обработке большого объёма данных, не запускайте всё одной операцией. Лучше разбить задачу на небольшие партии.
9. Оптимизируйте запросы к базе данных
Если проблема связана с медленными SQL-запросами, нужно не только повышать лимит, но и оптимизировать сами запросы, индексы и объём данных.
10. Проверьте внешние подключения
Если сайт обращается к внешнему API, проверьте, не тормозит ли сторонний сервис. Иногда именно внешнее ожидание съедает всё время выполнения.
11. Увеличьте max_input_time при необходимости
Если проблема возникает во время загрузки больших форм или файлов, иногда полезно проверить и параметр max_input_time, потому что он тоже влияет на обработку длительных операций.
12. Проверьте лимиты хостинга
Если хостинг очень слабый, даже увеличение max_execution_time может не решить проблему полностью. В таком случае иногда помогает только переход на более мощный тариф или VPS.
Какой max_execution_time ставить
- 30 секунд — стандартный минимум на многих хостингах.
- 60 секунд — подходит для большинства обычных задач.
- 120 секунд — хороший рабочий вариант для импорта, обновлений и WordPress-сайтов средней тяжести.
- 300 секунд — для больших импортов, backup и тяжёлых процессов.
Но просто ставить огромный лимит без поиска причины — не всегда хорошая идея. Иногда это только маскирует проблему в коде или плагине.
Как исправить Max Execution Time Exceeded в WordPress
- Увеличьте
max_execution_timeчерез хостинг или конфиг PHP. - Проверьте, какой плагин или задача вызывает ошибку.
- Отключите плагины по одному для теста.
- Переключите тему на стандартную.
- Включите WP_DEBUG и посмотрите лог.
- Оптимизируйте импорт, cron и тяжёлые фоновые процессы.
Если увеличение лимита не помогло
1. Проблема может быть не в лимите, а в коде
Если код зациклился или работает неэффективно, можно увеличивать время бесконечно, но это не решит саму причину.
2. Проверьте память PHP
Иногда ошибка по времени сопровождается нехваткой памяти. Тогда нужно проверять не только max_execution_time, но и memory_limit.
3. Проверьте серверную нагрузку
Если CPU и диск перегружены, скрипт может просто не успевать выполнить нормальную задачу в отведённый срок.
4. Ищите конкретный медленный процесс
Импорт, backup, image processing, API-запрос, поиск, WooCommerce-задачи или cron — вот типичные источники проблемы.
Частые сценарии, где возникает ошибка
- импорт товаров в WooCommerce;
- обновление большого количества плагинов;
- резервное копирование сайта;
- генерация миниатюр изображений;
- загрузка большого XML или CSV;
- медленный запрос к внешнему API;
- массовая обработка контента.
Как не допустить ошибки в будущем
- Не перегружайте сайт тяжёлыми и ненужными плагинами.
- Обновляйте PHP, WordPress, тему и плагины.
- Оптимизируйте большие задачи и разбивайте их на части.
- Следите за логами PHP и сервера.
- Используйте хостинг с достаточными ресурсами.
- Проверяйте внешние интеграции и API-ответы.
FAQ
Что означает Maximum execution time exceeded?
Это означает, что PHP-скрипт работал дольше допустимого лимита времени и был остановлен сервером.
Как увеличить max_execution_time?
Обычно через php.ini, .user.ini, .htaccess или настройки PHP в панели хостинга.
Какой лимит лучше поставить?
Для большинства задач хороший старт — 120 секунд. Для тяжёлых процессов иногда требуется 300 секунд.
Почему ошибка остаётся после увеличения лимита?
Потому что причина может быть в медленном коде, конфликте плагинов, тяжёлом SQL-запросе, нехватке памяти или слабом хостинге.
Стоит ли просто ставить очень большой max_execution_time?
Не всегда. Это может скрыть проблему, но не решить её. Лучше одновременно искать конкретный скрипт или процесс, который тормозит.
