Pingveraблог ← Блог
Главная › Блог › Ошибка 500 на сайте: что это значит и как найти причину в интернет-магазине

Ошибка 500 на сайте: что это значит и как найти причину в интернет-магазине

7 ноября 2026 · 12 мин чтения

Ошибка 500 на сайте: что это значит и как найти причину в интернет-магазине

Ошибка 500 Internal Server Error означает, что сервер получил запрос, начал его выполнять и наткнулся на сбой внутри себя. Чаще всего падает код сайта: фатальная ошибка PHP после обновления плагина или модуля, нехватка памяти, ошибка в .htaccess, недоступная база данных. Покупателю браузер показывает пустую страницу или короткое «Internal Server Error», и заказ не оформляется.

Сам код 500 причину не называет, её записывает журнал ошибок. Поэтому первый шаг всегда один: узнать время сбоя и адрес страницы, открыть лог PHP или CMS за эти минуты и прочитать первую фатальную ошибку. До «Чёрной пятницы» 27 ноября 2026 года меньше трёх недель. Сейчас удобно включить логирование и выяснить, что ломается после обновлений, пока это не случилось в день распродажи.

Коротко

  • 500 значит «сервер столкнулся с непредвиденным условием и не смог выполнить запрос». Это ошибка на стороне сайта, а не браузера покупателя.
  • Типичные причины в магазине: фатальная ошибка PHP в плагине, теме или модуле, превышение memory_limit, ошибка в .htaccess, сбой подключения к базе, несовместимость с новой версией PHP.
  • Причину ищут в журнале ошибок: лог PHP, wp-content/debug.log в WordPress, лог из .settings.php в 1С-Битриксе, error log веб-сервера.
  • Ошибка 500 часто бывает только на одной странице: в корзине, на оформлении заказа, в личном кабинете. Главная при этом открывается, и простая проверка доступности её не замечает.
  • Страницы, которые отдают роботу 5xx, Яндекс исключает из поиска. После исправления их отправляют на переобход.

Что означает ошибка 500 и чем она отличается от 502 и 503

Стандарт HTTP (RFC 9110, раздел 15.6.1) определяет 500 так: сервер столкнулся с непредвиденным условием, которое помешало ему выполнить запрос. Весь класс 5xx, по тому же стандарту, означает, что сервер знает о своей ошибке или не способен выполнить запрошенный метод.

Различие с соседними кодами помогает понять, где искать:

  • 500 обычно отдаёт само приложение или веб-сервер, когда код упал. Сервер работает, PHP запустился, но скрипт завершился фатальной ошибкой.
  • 502 отдаёт прокси (например, nginx), когда приложение за ним ответило неверно или оборвало соединение.
  • 503 означает, по RFC 9110, временную перегрузку или плановое обслуживание, после которого сервис, скорее всего, восстановится.

Если ошибка 500 показывает страницу хостинга или CDN, а не вашего сайта, сначала уточните у провайдера, на каком звене она возникла.

Почему это важно сейчас

Ноябрь и декабрь приносят сразу два риска. Первый: обновления. WordPress 7.1.4 вышел 28 октября 2026 года, а на 8 декабря 2026 года запланирован выпуск WordPress 7.2, кандидаты в релиз выходят 17 и 24 ноября и 1 декабря. Вслед за ядром обновляют плагины, и каждое обновление может принести несовместимость с вашей версией PHP или другим плагином. В 1С-Битриксе то же самое происходит с модулями и шаблонами.

Второй риск: поиск. В справке Яндекс Вебмастера сказано, что страница исключается из поиска, если сервер вернул роботу код 3XX, 4XX или 5XX. Из списка исключённых она уйдёт, только когда при новом обращении робот получит рабочий ответ. В другом разделе справки предупреждают: если роботу не удалось подключиться к сайту из-за ошибки сервера, сайт может полностью пропасть из поиска. Карточка товара, которая неделю отдавала 500, теряет позиции как раз перед сезоном.

Что делать при ошибке 500: порядок действий

  1. Зафиксируйте время, адреса и условия. Где ошибка: на всех страницах, только в админке, только при добавлении в корзину или на оформлении? У всех посетителей или только у авторизованных? Запишите точное время: по нему вы найдёте строку в журнале.
  2. Вспомните последнее изменение. Обновление плагина, модуля, темы или ядра, смена версии PHP, правка .htaccess или wp-config.php, выкладка нового кода. Если ошибка началась сразу после изменения, откат почти всегда быстрее поиска.
  3. Откройте журнал ошибок. На хостинге это обычно раздел «Логи» в панели управления. Ищите строки PHP Fatal error, Allowed memory size ... exhausted, Uncaught Error. Первая фатальная ошибка по времени чаще всего и есть причина, остальные строки идут следом.
  4. Если журнала нет, включите его. В PHP за запись отвечают параметры log_errors и error_log. По документации PHP, log_errors по умолчанию выключен, а display_errors в рекомендуемом php.ini-production выключен. На рабочем сайте ошибки пишут в файл, а не показывают покупателям.
  5. WordPress: включите отладочный лог. Константы ставятся в wp-config.php (фрагмент ниже). По документации WordPress, с WP_DEBUG_LOG журнал пишется в wp-content/debug.log, причём WP_DEBUG должен быть включён. Если WordPress перехватил фатальную ошибку, он показывает посетителям сообщение о технических проблемах на сайте и отправляет администратору письмо со ссылкой на режим восстановления. В этом режиме сломанный плагин или тема приостанавливаются для того, кто вошёл по ссылке, и их можно отключить. Проверьте почту администратора: в письме часто уже написано, какой плагин виноват.
  6. 1С-Битрикс: проверьте .settings.php. Параметр exception_handling → debug решает, показывать ли ошибки в браузере. Документация Битрикса требует на боевом сервере false, потому что true раскрывает стек вызовов и пути файлов. Журнал задаётся в log: если параметр не задан, логирование отключено. Включите запись в файл и воспроизведите ошибку.
  7. Проверьте память. Строка Allowed memory size of ... bytes exhausted означает, что скрипт упёрся в memory_limit. По документации PHP, значение по умолчанию 128M. WordPress, по своей документации, пытается поднять лимит до 40 МБ для одиночного сайта и до 64 МБ для мультисайта. Поднимать лимит стоит только после того, как вы поняли, какой скрипт столько ест: импорт каталога и генерация фида часто расходуют память из-за ошибки, а не по необходимости.
  8. Проверьте .htaccess. Документация Apache советует при серверных ошибках смотреть error log: там будет указана ошибка синтаксиса в директиве, например RewriteCond: bad flag delimiters. Переименуйте файл на минуту. Если сайт открылся, причина в нём.
  9. Отключите подозреваемый плагин или модуль. Без доступа в админку плагин WordPress отключают переименованием его папки в wp-content/plugins. Делайте это на копии или в спокойное время и записывайте, что меняли.
  10. Пройдите путь покупки целиком. Каталог, карточка, корзина, оформление, переход к оплате, возврат с платёжной страницы, письмо о заказе. Ошибка 500 часто остаётся на одном шаге, который зависит от отдельного плагина: доставки, оплаты, промокодов. Что проверять после каждой выкладки, разобрано в статье «Что проверить после релиза сайта».
  11. Верните страницы в поиск. В Яндекс Вебмастере проверьте ключевые адреса в «Проверке ответа сервера», убедитесь, что они отвечают 200 OK, и отправьте их на переобход.

Если сайт не открывается вообще и непонятно, с какой стороны подойти, общий порядок есть в статье «Сайт лежит: что делать».

Таблица: частые причины ошибки 500 и как их проверить

Причина Признак Кто проверяет Как проверить Как часто
Фатальная ошибка в плагине, модуле или теме 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 до упора. Ошибка пропадёт, но скрипт, который течёт по памяти, будет тормозить сайт и упадёт на следующем пике.
  • Чинить, не посмотрев в журнал. Перебор плагинов наугад занимает час. Строка в логе показывает файл за минуту.
  • Проверять только главную. Ошибка 500 на оформлении заказа или в личном кабинете не видна с главной страницы.
  • Обновлять всё в неделю распродажи. Обновление, которое тянет новую версию PHP или зависимостей, проще пережить в обычный будний день.
  • Оставлять debug.log открытым. Журнал с путями и запросами доступен по прямой ссылке, если его не закрыть.

Ограничения. Советы про журналы и .htaccess относятся к сайтам, где у вас или у студии есть доступ к файлам и панели хостинга. Магазины на Tilda и InSales работают на инфраструктуре платформы: при ошибке 500 там проверяют свои вставки кода и интеграции, а затем пишут в поддержку платформы. Ни одна настройка не исключает ошибку 500 полностью. Она даёт другое: вы узнаёте о сбое раньше покупателей и находите причину по журналу, а не перебором.

Вопросы и ответы

Ошибка 500 на сайте: это проблема у меня или у сайта?

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

Почему ошибка 500 только на одной странице?

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

Сколько ждать, пока страницы с ошибкой 500 вернутся в поиск?

Точного срока Яндекс не называет. По справке Вебмастера, страница уйдёт из списка исключённых, когда робот при новом обращении получит рабочий ответ. Ускорить это можно, отправив исправленные адреса на переобход.

Источники

  • RFC 9110, HTTP Semantics, разделы 15.6, 15.6.1 (500) и 15.6.4 (503): https://www.rfc-editor.org/rfc/rfc9110.html
  • WordPress, Debugging in WordPress (WP_DEBUG, WP_DEBUG_LOG, WP_DEBUG_DISPLAY): https://developer.wordpress.org/advanced-administration/debug/debug-wordpress/
  • WordPress, Editing wp-config.php (WP_MEMORY_LIMIT, журнал отладки): https://developer.wordpress.org/advanced-administration/wordpress/wp-config/
  • WordPress Core, Fatal Error Recovery Mode in 5.2: https://make.wordpress.org/core/2019/04/16/fatal-error-recovery-mode-in-5-2/
  • WordPress, история релизов: https://wordpress.org/download/releases/
  • WordPress Core, график выпуска WordPress 7.2: https://make.wordpress.org/core/2026/10/06/wordpress-7-2-release-party-schedule/
  • Руководство PHP, memory_limit: https://www.php.net/manual/en/ini.core.php#ini.memory-limit
  • Руководство PHP, настройки обработки ошибок (display_errors, log_errors, error_log): https://www.php.net/manual/en/errorfunc.configuration.php
  • Документация Apache HTTP Server 2.4, .htaccess files: https://httpd.apache.org/docs/2.4/howto/htaccess.html
  • Документация 1С-Битрикс, файл .settings.php: https://docs.1c-bitrix.ru/pages/framework/settings.html
  • Яндекс Вебмастер, «Почему страницы исключены из поиска»: https://yandex.ru/support/webmaster/site-indexing/excluded-pages.html
  • Яндекс Вебмастер, «Как проверить, что сайт доступен для посетителей и поисковых роботов»: https://yandex.ru/support/webmaster/ru/robot-workings/availability

Проверено: 7 ноября 2026 года.


Шаг «узнать об ошибке 500 раньше покупателей» можно автоматизировать. Pingvera раз в минуту проверяет доступность сайта по HTTP из нескольких регионов, подтверждает сбой повторными проверками и присылает алерт в Telegram, MAX, VK, на почту или в webhook. Для WooCommerce сервис следит и за потоком заказов: если сайт отвечает, а заказы перестали приходить, придёт отдельный алерт. Бесплатный тариф покрывает до 5 сайтов, разовую проверку можно сделать без регистрации на https://pingvera.ru/check.

Узнавайте о проблеме раньше клиента

Pingvera следит за сайтами клиентов «снаружи и изнутри» — доступность из регионов, формы, оплата, домен, SSL, сервер — и предупреждает в Telegram, email и Max раньше, чем напишет клиент.

Попробовать Pingvera бесплатно

Читайте также: Сайт лежит: что это значит и как быстро найти причину · Ошибка 503 на сайте: что значит и что делать · Ошибка 404 на сайте: что значит и что делать магазину · Не работает https: что означает ошибка и как её починить · Бесплатно проверить сайт.

← Все статьи · Политика конфиденциальности · pingvera.ru · Telegram-канал

На сайте осуществляется обработка пользовательских данных с использованием Cookie в соответствии с Политикой конфиденциальности.