Сайты · 9 мин чтения

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

Ошибка 500 на сайте простыми словами: чем отличается от 502, 503 и 504, частые причины, пошаговое исправление по журналу ошибок и как не терять заявки.

Обложка статьи об ошибке 500: на тёмном фиолетовом фоне слева крупная надпись «Ошибка 500» и подпись «что значит и как исправить», справа окно браузера с цифрами 500 и лаймовым лучом фонарика, который освещает строку журнала ошибок
Коротко

Ошибка 500 (Internal Server Error) значит, что сервер сайта столкнулся с непредвиденным сбоем и не смог выполнить запрос. Виноват не браузер посетителя, а код, настройки или ресурсы сервера. Чаще всего она появляется после изменения: обновления модуля, смены версии PHP, переезда, правки .htaccess. Исправление начинается с журнала ошибок и вопроса, что меняли последним; если причину быстро не найти, выручает откат из резервной копии. Чтобы сбой не съедал заявки, нужны внешний мониторинг формы и корзины, копии перед обновлениями и тестовая копия сайта.

Ошибка 500 (Internal Server Error, «внутренняя ошибка сервера») значит, что сервер сайта получил запрос, но не смог его выполнить из-за непредвиденного сбоя у себя. Проблема не в браузере посетителя и не в интернете, а в коде, настройках или ресурсах сервера. Код 500 самый общий из серверных ошибок: он говорит «что-то сломалось», но не говорит что. Поэтому исправление всегда начинается с журнала ошибок сервера. Ниже разберём, чем 500 отличается от 502, 503 и 504, почему она возникает, как найти причину по шагам и как сделать, чтобы сбой не съедал заявки и позиции в поиске.

Что значит ошибка 500 и как она выглядит

Каждый ответ сервера сопровождается трёхзначным кодом состояния. Коды на 2 означают успех, на 3 переадресацию, на 4 ошибку на стороне запроса (например, 404, страницы нет), на 5 ошибку на стороне сервера. По стандарту HTTP, документу RFC 9110, код 500 означает, что сервер столкнулся с непредвиденным условием, которое помешало выполнить запрос.

Посетитель видит это по-разному, в зависимости от сайта и браузера:

  • надпись «500 Internal Server Error» на белом фоне;
  • сообщение браузера вроде «HTTP ERROR 500» и предложение обновить страницу;
  • пустая белая страница без текста;
  • оформленная страница сайта «Что-то пошло не так»;
  • отдельное сообщение платформы, например у CMS о критической ошибке.

Коварство ошибки 500 в том, что она бывает частичной. Главная страница открывается, а корзина, форма заявки или личный кабинет отдают 500. Владелец заходит на сайт, видит, что всё работает, а заявки при этом не приходят.

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

Ошибки 500, 502, 503 и 504: в чём разница

Все коды на 5 означают, что виноват сервер, но указывают на разные места. Это сразу сужает поиск.

КодЧто значит по RFC 9110Где обычно искать причину
500 Internal Server ErrorНепредвиденная ошибка, сервер не смог выполнить запросКод сайта, плагины, настройки, права на файлы, лимиты
501 Not ImplementedСервер не поддерживает нужную функцию, например метод запросаНастройки сервера, встречается редко
502 Bad GatewayПромежуточный сервер получил некорректный ответ от следующего сервераСвязка веб-сервера и PHP или приложения: процесс упал или не запущен
503 Service UnavailableСервер временно не может обработать запрос из-за перегрузки или обслуживанияНагрузка, лимиты тарифа, плановые работы
504 Gateway TimeoutПромежуточный сервер не дождался ответа от следующегоМедленные запросы к базе, долгие скрипты, внешние сервисы

Чтобы понять, где именно рождается ошибка, полезно представлять путь запроса. Обычно он проходит несколько звеньев, и каждое может сломаться по-своему.

Схема пути запроса на светлом фоне в фиолетовых и лаймовых тонах: браузер посетителя, веб-сервер, приложение сайта на PHP или другом языке, база данных и внешние сервисы вроде CRM и оплаты; под каждым звеном подписано, какую ошибку оно чаще вызывает: 502 и 504 на стыке веб-сервера и приложения, 500 внутри приложения при ошибке кода или настроек, 500 при недоступной базе, 504 при медленном внешнем сервисе; внизу вывод, что журнал ошибок показывает, на каком звене сбой
Код ошибки подсказывает звено, на котором сломался запрос, а журнал ошибок показывает точную причину.

Для плановых работ правильный код 503, а не 500. Стандарт разрешает добавить к нему заголовок Retry-After с подсказкой, когда вернуться. Так поисковые роботы и сервисы понимают, что сайт закрыт временно.

Почему возникает ошибка 500: частые причины

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

ПричинаКак проявляетсяЧто проверить
Ошибка в коде или в обновлённом плагинеСразу после обновления, часто на всех страницахЖурнал ошибок PHP: файл и строка, где упало
Ошибка в файле .htaccessВесь сайт сразу, после правки настроек или установки модуляВременно переименовать .htaccess и проверить сайт
Смена версии PHPПосле обновления тарифа или переездаСовместима ли CMS и модули с новой версией
Нет подключения к базе данныхВсе страницы с данными, иногда вперемешкуЛогин и пароль базы в настройках, доступна ли база
Нехватка памяти или времени выполненияТяжёлые страницы, выгрузки, импорт каталогаЛимиты тарифа и записи о превышении в журнале
Неверные права на файлыПосле переноса файлов или распаковки архиваПрава на папки и файлы по рекомендации хостинга
Не установлены зависимостиПосле выкладки новой версии кодаВсе ли библиотеки на месте, как на тестовой копии
Закончилось место на дискеВнезапно, часто вместе с ошибками загрузки файловСвободное место, размер журналов и резервных копий
Сбой внешнего сервиса без обработки в кодеТолько в форме, корзине или оплатеОтветы CRM, платёжного сервиса, службы доставки

Отдельно про версии PHP. По графику на официальном сайте php.net ветка 8.2 получает только исправления безопасности до 31 декабря 2026 года, после этого её поддержка заканчивается. Когда сайт переводят на новую версию PHP, старый код или давно не обновлённые модули могут начать отдавать 500. Если сайт работает на PHP 8.2 или более старой версии, проверьте совместимость заранее на тестовой копии.

Как исправить ошибку 500: пошаговый план для владельца

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

  1. Зафиксируйте симптомы. Какие адреса отдают 500, с какого времени, у всех или у части посетителей, после какого действия. Сделайте снимок экрана.
  2. Вспомните последнее изменение. Обновления CMS, плагинов и тем, правки настроек, смена тарифа или версии PHP, выкладка кода. Если изменение было, откат часто решает проблему за минуты.
  3. Откройте журнал ошибок. На обычном хостинге он доступен в панели управления, обычно в разделе журналов или логов сайта. Ищите записи с временем сбоя: там будет текст ошибки, файл и строка.
  4. Проверьте .htaccess. Если сайт на Apache, временно переименуйте файл. Заработало, значит, ошибка в одной из директив, возвращайте их по одной.
  5. Отключите недавно обновлённые модули. В CMS по одному, начиная с последнего. Если админка недоступна, это делают переименованием папки модуля через файловый менеджер.
  6. Сверьте версию PHP. Если её меняли, временно верните прежнюю в панели хостинга, пока разработчик правит совместимость.
  7. Проверьте базу данных и место на диске. Доступна ли база, не закончилось ли место, не превышены ли лимиты.
  8. Восстановите из резервной копии. Если причину быстро найти не удалось, а сайт приносит заявки, откат на вчерашнюю копию часто быстрее поиска. Как настроить копии, чтобы было куда откатываться, написано в статье про бэкапы.
  9. Напишите в поддержку хостинга. Если ошибка на уровне сервера, например упал процесс PHP или кончились ресурсы, хостинг увидит это быстрее.

Как читать журнал ошибок

Запись в журнале обычно состоит из времени, уровня ошибки, текста и пути к файлу со строкой. Не нужно понимать код, чтобы по тексту понять направление поиска. Несколько частых сообщений PHP и Apache:

Фрагмент текста в журналеЧто это значитЧто делать
Allowed memory size of … bytes exhaustedСкрипту не хватило памятиНайти тяжёлую операцию, поднять лимит в настройках или тарифе
Call to undefined functionКод вызывает функцию, которой нет: модуль не совместим с версией PHP или не загруженПосмотреть, какой модуль указан в пути, обновить или отключить его
Parse error: syntax errorОпечатка в коде, часто после ручной правкиВернуть файл из копии или исправить строку из журнала
Invalid command … perhaps misspelledApache не понимает директиву в .htaccessУбрать или исправить эту строку в .htaccess
Permission deniedСерверу не хватает прав на файл или папкуВыставить права по рекомендации хостинга

Путь к файлу в записи часто сразу показывает виновника: если в нём папка конкретного плагина или модуля, начинайте с него.

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

Что делать в конкретной ситуации, удобно посмотреть по вкладкам.

Ошибка 500: что делать в вашей ситуацииВыберите, когда появилась ошибка. Это порядок первых действий, а не замена журнала ошибок: точную причину покажет только он.
Вероятная причинанесовместимый модуль
Первый шаготкат обновления
Где смотретьжурнал PHP
  • Что сделать: отключите обновлённый модуль или верните копию до обновления, затем ищите в журнале файл и строку с ошибкой.
  • На будущее: обновления сначала на тестовой копии, перед обновлением свежая резервная копия.

Вывод: в большинстве случаев ошибка 500 связана с последним изменением. Поэтому журнал изменений и резервная копия перед каждым обновлением экономят больше времени, чем любая инструкция.

Что делать посетителю, если сайт выдаёт ошибку 500

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

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

Чем опасна ошибка 500 для бизнеса

Даже короткая ошибка 500 стоит денег, если она попадает на форму заявки, корзину или оплату. Человек не будет ждать, он уйдёт к конкуренту. А частичный сбой может длиться днями, пока кто-то не заметит, что заявки перестали приходить.

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

Третья потеря в интеграциях. Если сайт передаёт заявки в CRM и на сайте ошибка, передача может не сработать, а повторить её некому. Поэтому важно, чтобы у обмена был журнал и повторные попытки, об этом подробно в статье про API-интеграцию.

Прикиньте, во что вам обходятся сбои, в калькуляторе ниже.

Калькулятор: во что обходятся сбои сайта и окупится ли контрольСравнивает настройку мониторинга и сопровождение с прибылью от заявок, которые иначе терялись бы во время ошибок. Наборы в кнопках: примеры с условными цифрами, а не цены и не прогноз.
Окупаемость…
Заявок в месяц, которые удастся сохранить…
Из них сделок…
Сохранённая прибыль за вычетом сопровождения…
Итог через 12 месяцев…
Сохранённых заявок в месяц, чтобы окупиться за год…

Как считается: сохранённые заявки = заявки в месяц × доля, теряемая из-за сбоев; прибыль = сохранённые заявки × доля сделок × чек × маржа, минус сопровождение. Доля потерь в примерах условная: 5% значит, что форма или корзина в сумме не работала около полутора дней в месяц и никто этого не заметил, 3% около дня. Подставьте свою оценку: сколько часов в месяц сайт работал с ошибками и сколько заявок приходится на эти часы.

Как не допускать ошибки 500

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

  • Тестовая копия сайта. Обновления CMS, модулей и PHP сначала проверяют на копии и только потом переносят на рабочий сайт.
  • Резервные копии перед каждым изменением. Плюс регулярные автоматические копии, которые хранятся отдельно от сервера.
  • Мониторинг доступности. Внешний сервис раз в несколько минут открывает главную, форму заявки и корзину и сообщает, если пришла не 200, а 500.
  • Тестовая заявка. Раз в день или неделю автоматически или вручную отправляйте заявку и проверяйте, что она дошла до CRM.
  • Журналы под рукой. Кто-то знает, где лежат журналы ошибок, и умеет их читать.
  • План обновлений. Версии PHP и CMS обновляют по графику, а не когда хостинг отключит старую версию.
  • Страница ошибки. Понятная страница с телефоном и мессенджером вместо белого экрана, при этом она должна отдавать код 500, а не 200.

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

Схема защиты сайта от ошибки 500 на светлом фоне в фиолетовых и лаймовых тонах: по кругу четыре этапа, до изменения тестовая копия и резервная копия, во время работы внешний мониторинг главной страницы, формы и корзины, при сбое журнал ошибок и откат, после сбоя разбор причины и запись в план обновлений; в центре круга подпись «сбой замечен за минуты, а не за дни»
Четыре привычки, при которых ошибка 500 замечается за минуты и не повторяется после следующего обновления.
Готов ли ваш сайт к ошибке 500: 12 пунктовОтметьте то, что уже сделано. Отметки сохраняются в этом браузере.
0 из 12

Что написать разработчику или в поддержку хостинга

Чем точнее описание, тем быстрее найдут причину. Скопируйте этот список и заполните:

  1. Адреса страниц с ошибкой и пример адреса, где всё работает.
  2. Когда началось: дата и время с точностью до минут.
  3. Что меняли перед этим: обновления, настройки, тариф, перенос.
  4. У всех ли ошибка: инкогнито, другое устройство, другая сеть.
  5. Что показывает журнал ошибок на это время, если вы его нашли.
  6. Какие действия уже сделали: откат, отключение модулей, смена версии PHP.

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

Частые вопросы

Что значит ошибка 500 на сайте?

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

Ошибка 500 у меня или у сайта?

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

Чем ошибка 500 отличается от 502 и 504?

500 значит, что сбой произошёл в самом приложении сайта. 502 и 504 возникают на стыке серверов: промежуточный сервер получил некорректный ответ или не дождался ответа от приложения. Для 504 обычно ищут медленные запросы и долгие скрипты.

Как быстро исправить ошибку 500?

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

Влияет ли ошибка 500 на позиции в поиске?

Короткий сбой почти не влияет. По справке Google, при ошибках 5xx робот снижает скорость сканирования, а адреса, которые постоянно отдают ошибку сервера, со временем удаляет из индекса. Поэтому затяжные ошибки на важных страницах опасны.

Какой код отдавать при плановых работах?

Код 503 Service Unavailable. По стандарту HTTP он означает временную недоступность, а заголовок Retry-After подсказывает, когда вернуться. Код 500 для этого не подходит.

Может ли ошибка 500 появиться без моих изменений?

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

Том Холоденин разбирает проект
Разбираю каждый сайт личноЭто не менеджер и не бот: ты сразу говоришь со мной.
Бесплатно · лично · ответ за 24 часа

Бесплатный разбор твоего сайта: найду реальные точки роста прибыли и оптимизации затрат

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

Где теряются заявки и деньгиТочки роста прибылиКакие затраты можно сократитьПлан первых шагов

Бесплатно и ни к чему не обязывает. Если улучшать нечего, так и скажу.

Спасибо! Разбор пришлю лично в течение рабочего дня.

Или сразу: как выглядит разбор и онлайн-проверка · записаться на созвон · собрать задачу в калькуляторе

Получить бесплатный разбор →