
Ошибка 500 Internal Server Error означает, что сервер получил запрос, начал его выполнять и наткнулся на сбой внутри себя. Чаще всего падает код сайта: фатальная ошибка PHP после обновления плагина или модуля, нехватка памяти, ошибка в .htaccess, недоступная база данных. Покупателю браузер показывает пустую страницу или короткое «Internal Server Error», и заказ не оформляется.
Сам код 500 причину не называет, её записывает журнал ошибок. Поэтому первый шаг всегда один: узнать время сбоя и адрес страницы, открыть лог PHP или CMS за эти минуты и прочитать первую фатальную ошибку. До «Чёрной пятницы» 27 ноября 2026 года меньше трёх недель. Сейчас удобно включить логирование и выяснить, что ломается после обновлений, пока это не случилось в день распродажи.
memory_limit, ошибка в .htaccess, сбой подключения к базе, несовместимость с новой версией PHP.wp-content/debug.log в WordPress, лог из .settings.php в 1С-Битриксе, error log веб-сервера.Стандарт HTTP (RFC 9110, раздел 15.6.1) определяет 500 так: сервер столкнулся с непредвиденным условием, которое помешало ему выполнить запрос. Весь класс 5xx, по тому же стандарту, означает, что сервер знает о своей ошибке или не способен выполнить запрошенный метод.
Различие с соседними кодами помогает понять, где искать:
Если ошибка 500 показывает страницу хостинга или CDN, а не вашего сайта, сначала уточните у провайдера, на каком звене она возникла.
Ноябрь и декабрь приносят сразу два риска. Первый: обновления. WordPress 7.1.4 вышел 28 октября 2026 года, а на 8 декабря 2026 года запланирован выпуск WordPress 7.2, кандидаты в релиз выходят 17 и 24 ноября и 1 декабря. Вслед за ядром обновляют плагины, и каждое обновление может принести несовместимость с вашей версией PHP или другим плагином. В 1С-Битриксе то же самое происходит с модулями и шаблонами.
Второй риск: поиск. В справке Яндекс Вебмастера сказано, что страница исключается из поиска, если сервер вернул роботу код 3XX, 4XX или 5XX. Из списка исключённых она уйдёт, только когда при новом обращении робот получит рабочий ответ. В другом разделе справки предупреждают: если роботу не удалось подключиться к сайту из-за ошибки сервера, сайт может полностью пропасть из поиска. Карточка товара, которая неделю отдавала 500, теряет позиции как раз перед сезоном.
.htaccess или wp-config.php, выкладка нового кода. Если ошибка началась сразу после изменения, откат почти всегда быстрее поиска.PHP Fatal error, Allowed memory size ... exhausted, Uncaught Error. Первая фатальная ошибка по времени чаще всего и есть причина, остальные строки идут следом.log_errors и error_log. По документации PHP, log_errors по умолчанию выключен, а display_errors в рекомендуемом php.ini-production выключен. На рабочем сайте ошибки пишут в файл, а не показывают покупателям.wp-config.php (фрагмент ниже). По документации WordPress, с WP_DEBUG_LOG журнал пишется в wp-content/debug.log, причём WP_DEBUG должен быть включён. Если WordPress перехватил фатальную ошибку, он показывает посетителям сообщение о технических проблемах на сайте и отправляет администратору письмо со ссылкой на режим восстановления. В этом режиме сломанный плагин или тема приостанавливаются для того, кто вошёл по ссылке, и их можно отключить. Проверьте почту администратора: в письме часто уже написано, какой плагин виноват..settings.php. Параметр exception_handling → debug решает, показывать ли ошибки в браузере. Документация Битрикса требует на боевом сервере false, потому что true раскрывает стек вызовов и пути файлов. Журнал задаётся в log: если параметр не задан, логирование отключено. Включите запись в файл и воспроизведите ошибку.Allowed memory size of ... bytes exhausted означает, что скрипт упёрся в memory_limit. По документации PHP, значение по умолчанию 128M. WordPress, по своей документации, пытается поднять лимит до 40 МБ для одиночного сайта и до 64 МБ для мультисайта. Поднимать лимит стоит только после того, как вы поняли, какой скрипт столько ест: импорт каталога и генерация фида часто расходуют память из-за ошибки, а не по необходимости..htaccess. Документация Apache советует при серверных ошибках смотреть error log: там будет указана ошибка синтаксиса в директиве, например RewriteCond: bad flag delimiters. Переименуйте файл на минуту. Если сайт открылся, причина в нём.wp-content/plugins. Делайте это на копии или в спокойное время и записывайте, что меняли.Если сайт не открывается вообще и непонятно, с какой стороны подойти, общий порядок есть в статье «Сайт лежит: что делать».
| Причина | Признак | Кто проверяет | Как проверить | Как часто |
|---|---|---|---|---|
| Фатальная ошибка в плагине, модуле или теме | 500 сразу после обновления, в логе PHP Fatal error с путём к файлу плагина |
Разработчик или студия на поддержке | Журнал PHP, debug.log, письмо режима восстановления WordPress |
После каждого обновления |
| Несовместимость с версией PHP | 500 на многих страницах после смены версии PHP на хостинге | Разработчик | Журнал PHP: Uncaught Error, вызов несуществующей функции |
При каждой смене версии PHP |
| Нехватка памяти | 500 на тяжёлых страницах: импорт, фильтр каталога, выгрузка фида | Разработчик | Строка Allowed memory size ... exhausted в журнале |
Еженедельно в сезон |
Ошибка в .htaccess |
500 на всех страницах после правки правил переадресации | Тот, кто правил файл | Error log веб-сервера, временное переименование файла | После каждой правки |
| Сбой базы данных | 500 или сообщение об ошибке подключения на всех динамических страницах | Хостинг или администратор | Статус СУБД в панели хостинга, место на диске | При инциденте |
| Ошибка во внешнем вызове | 500 только на оформлении, в доставке или оплате | Разработчик | Журнал PHP: исключение в коде модуля доставки или оплаты | Перед пиком и при смене подрядчика |
Фрагмент wp-config.php для WordPress. Он пишет ошибки в файл и не показывает их покупателям:
// wp-config.php — выше строки «That's all, stop editing!»
define( 'WP_DEBUG', true );
define( 'WP_DEBUG_LOG', true ); // журнал: wp-content/debug.log
define( 'WP_DEBUG_DISPLAY', false ); // по умолчанию true: ошибки видны на сайте
@ini_set( 'display_errors', 0 );
Закройте debug.log от доступа извне или задайте путь к файлу вне корня сайта: WP_DEBUG_LOG принимает и путь, например '/tmp/wp-errors.log'. После разбора выключите WP_DEBUG.
Фрагмент .settings.php для 1С-Битрикса, по документации вендора:
'exception_handling' => [
'value' => [
'debug' => false, // на боевом сервере только false
'log' => [
'settings' => [
'file' => 'bitrix/modules/error.log', // путь от корня сайта
'log_size' => 1000000, // максимум в байтах
],
],
],
'readonly' => false,
],
Если на сайте лежит файл /error.php, при debug => false Битрикс покажет его посетителю с кодом 500. Документация отдельно напоминает, что красивая страница ошибки не заменяет поиск причины.
План на неделю до распродажи:
[ ] Убедиться, что журнал ошибок PHP или CMS пишется в файл, и знать, где он лежит
[ ] Проверить, что ошибки не выводятся покупателям (display_errors / WP_DEBUG_DISPLAY / debug => false)
[ ] Записать версии PHP, ядра CMS и ключевых плагинов или модулей
[ ] Сделать резервную копию и проверить, что из неё можно восстановиться
[ ] Ставить обновления сначала на копии сайта, потом на рабочий
[ ] Заморозить обновления плагинов и модулей с 24 ноября до конца распродажи
[ ] Разобрать журнал за неделю: убрать повторяющиеся фатальные ошибки и предупреждения
[ ] Пройти путь покупки до оплаты и письма о заказе на телефоне
[ ] Проверить карточки и категории в «Проверке ответа сервера» Яндекс Вебмастера
[ ] Договориться, кто откатывает изменения в день распродажи и у кого доступ
Ситуация условная, собрана для иллюстрации.
Магазин на WooCommerce. Утром в понедельник менеджер замечает, что за выходные пришло два заказа вместо обычных двадцати. Главная и каталог открываются, проверка доступности главной зелёная. Менеджер проходит путь покупки и на шаге оформления видит пустую страницу с текстом «Internal Server Error».
Студия на поддержке открывает журнал PHP за выходные. Первая фатальная ошибка появилась в субботу в 03:12: Uncaught Error в файле плагина расчёта доставки. В это же время на сайте автоматически обновился плагин оплаты, и новая версия вызывала функцию, которой не было в старой версии плагина доставки. Плагин доставки обновили до совместимой версии на копии сайта, проверили оформление и перенесли на рабочий сайт. Оформление заработало.
Выводы команды: автообновление плагинов отключили до конца сезона, проверку доступности добавили для страницы оформления, а не только для главной. Как ловить такие тихие остановки по потоку заказов, описано в статье «Магазин работает, а заказов нет».
memory_limit до упора. Ошибка пропадёт, но скрипт, который течёт по памяти, будет тормозить сайт и упадёт на следующем пике.debug.log открытым. Журнал с путями и запросами доступен по прямой ссылке, если его не закрыть.Ограничения. Советы про журналы и .htaccess относятся к сайтам, где у вас или у студии есть доступ к файлам и панели хостинга. Магазины на Tilda и InSales работают на инфраструктуре платформы: при ошибке 500 там проверяют свои вставки кода и интеграции, а затем пишут в поддержку платформы. Ни одна настройка не исключает ошибку 500 полностью. Она даёт другое: вы узнаёте о сбое раньше покупателей и находите причину по журналу, а не перебором.
У сайта. Код 500 формирует сервер, когда сам не смог выполнить запрос. Очистка кеша браузера и смена браузера здесь обычно не помогают. Если ошибку видит только один человек, проверьте, не отличается ли у него условие: авторизация, товары в корзине, регион доставки.
Каждая страница выполняет свой код. Корзина вызывает плагины доставки, скидок и оплаты, карточка товара вызывает другие. Фатальная ошибка в одном плагине ломает только страницы, где он работает. Ищите в журнале путь к файлу, который упоминается в ошибке.
Точного срока Яндекс не называет. По справке Вебмастера, страница уйдёт из списка исключённых, когда робот при новом обращении получит рабочий ответ. Ускорить это можно, отправив исправленные адреса на переобход.
WP_DEBUG, WP_DEBUG_LOG, WP_DEBUG_DISPLAY): https://developer.wordpress.org/advanced-administration/debug/debug-wordpress/WP_MEMORY_LIMIT, журнал отладки): https://developer.wordpress.org/advanced-administration/wordpress/wp-config/memory_limit: https://www.php.net/manual/en/ini.core.php#ini.memory-limitdisplay_errors, log_errors, error_log): https://www.php.net/manual/en/errorfunc.configuration.php.settings.php: https://docs.1c-bitrix.ru/pages/framework/settings.htmlПроверено: 7 ноября 2026 года.
Шаг «узнать об ошибке 500 раньше покупателей» можно автоматизировать. Pingvera раз в минуту проверяет доступность сайта по HTTP из нескольких регионов, подтверждает сбой повторными проверками и присылает алерт в Telegram, MAX, VK, на почту или в webhook. Для WooCommerce сервис следит и за потоком заказов: если сайт отвечает, а заказы перестали приходить, придёт отдельный алерт. Бесплатный тариф покрывает до 5 сайтов, разовую проверку можно сделать без регистрации на https://pingvera.ru/check.
Pingvera следит за сайтами клиентов «снаружи и изнутри» — доступность из регионов, формы, оплата, домен, SSL, сервер — и предупреждает в Telegram, email и Max раньше, чем напишет клиент.
Попробовать Pingvera бесплатноЧитайте также: Сайт лежит: что это значит и как быстро найти причину · Ошибка 503 на сайте: что значит и что делать · Ошибка 404 на сайте: что значит и что делать магазину · Не работает https: что означает ошибка и как её починить · Бесплатно проверить сайт.