Ошибка 500 Internal Server Error: что это и как исправить
Код 500 Internal Server Error означает, что сервер получил запрос, но из-за внутреннего сбоя не смог его выполнить и не может сказать точнее, что сломалось. Посетитель почти ничего не исправит сам — причину ищет владелец сайта по логам.
Обновлено 11 октября 2026 г.
Что означает ошибка 500
500 Internal Server Error — самый общий из кодов группы 5xx. Согласно RFC 9110 (раздел 15.6.1), он означает, что сервер столкнулся с непредвиденной ситуацией и не смог выполнить запрос. Что именно пошло не так, код не уточняет: это может быть фатальная ошибка в PHP-скрипте, неверная директива в .htaccess, недоступная база данных или нехватка памяти.
Важное отличие от 4xx: при 500 запрос был корректным и дошёл до сервера, а сломалось что-то на стороне сайта. Ссылка, браузер и интернет посетителя ни при чём — в отличие от ошибки 404, где проблема в самом адресе.
Что делать посетителю
- Обновите страницу (
Ctrl+F5). Если сбой был разовым — например, скрипт не успел выполниться в момент пика нагрузки, — страница откроется. - Проверьте, открывается ли сайт у других: с телефона через мобильную сеть или через проверку кода ответа. Если 500 видят все, дело точно в сайте.
- Откройте другую страницу этого же сайта. Если ошибка только на одной странице — сломан конкретный скрипт или материал, а не весь сервер.
- Очистите кэш и куки для этого сайта или откройте его в режиме инкогнито: иногда битая сессия или cookie приводит к ошибке в личном кабинете.
- Отключите VPN или прокси и попробуйте снова. Редко, но сайт может по-разному отвечать на разные IP-адреса.
- Подождите 10–30 минут и сообщите владельцу сайта: время, адрес страницы и действие, после которого появилась ошибка.
Если ошибка 500 появилась не на сайте, а в приложении, личном кабинете или при обращении к API (1С, сервисы отчётности, игры), принцип тот же: сбой на стороне сервиса. Повторите позже и приложите к обращению в поддержку время запроса и текст ошибки.
Причины ошибки 500 на стороне сайта
| Причина | Как выглядит в логе |
|---|---|
Синтаксическая ошибка или неподдерживаемая директива в .htaccess | .htaccess: Invalid command 'php_value', perhaps misspelled or defined by a module not included in the server configuration |
| Фатальная ошибка PHP: нехватка памяти, исключение, отсутствующий файл | PHP Fatal error: Allowed memory size of 134217728 bytes exhausted |
| Превышено время выполнения скрипта | PHP Fatal error: Maximum execution time of 30 seconds exceeded |
| Циклический rewrite или редирект внутри сервера | nginx: rewrite or internal redirection cycle while internally redirecting; Apache: Request exceeded the limit of 10 internal redirects |
| Неверные права на файлы и каталоги, неверный владелец | Permission denied, Premature end of script headers |
| Недоступна база данных или неверные реквизиты подключения | В логе приложения: ошибка соединения с MySQL/PostgreSQL |
| Конфликт плагина, темы или модуля после обновления CMS | Фатальная ошибка PHP со ссылкой на файл плагина или темы |
Как владельцу найти причину: смотрим логи
Первое действие — открыть журналы ошибок в момент сбоя. Страница 500 в браузере почти никогда не содержит деталей, зато они есть в логах веб-сервера и PHP.
# nginx
tail -n 100 /var/log/nginx/error.log
# Apache
tail -n 100 /var/log/apache2/error.log # Debian/Ubuntu
tail -n 100 /var/log/httpd/error_log # CentOS/RHEL
# PHP-FPM
tail -n 100 /var/log/php8.2-fpm.log
journalctl -u php8.2-fpm --since "30 min ago"
# все запросы с кодом 500 за сегодня (формат combined)
awk '$9 == 500 {print $7}' /var/log/nginx/access.log | sort | uniq -c | sort -rn | headPHP: включите журнал вместо вывода ошибок
На рабочем сайте ошибки не должны выводиться посетителю, но обязаны записываться в файл:
display_errors = Off
log_errors = On
error_log = /var/log/php/error.log
; если упираетесь в лимиты — увеличивайте осознанно, а не «на всякий случай»
memory_limit = 256M
max_execution_time = 60Увеличение memory_limit и max_execution_time лечит симптом. Если скрипту регулярно не хватает памяти или времени, ищите тяжёлый запрос, бесконечный цикл или утечку, а не поднимайте лимит бесконечно.
WordPress
Включите запись ошибок в wp-config.php без вывода на экран, затем отключите плагины переименованием папки wp-content/plugins и вернитесь к стандартной теме. Подробнее — в руководстве по WordPress.
define( 'WP_DEBUG', true );
define( 'WP_DEBUG_LOG', true ); // пишет в wp-content/debug.log
define( 'WP_DEBUG_DISPLAY', false ); // не показывать ошибки посетителям.htaccess
Быстрая проверка: переименуйте .htaccess в .htaccess.off. Если сайт открылся — ошибка в нём. Верните файл и отключайте блоки директив по одному. Частые причины: php_value при работе PHP через FPM или CGI (там такие директивы недоступны и дают 500), опечатка в директиве, незакрытый </IfModule>, правило RewriteRule, зацикливающееся на себя. Основы синтаксиса — в руководстве по .htaccess.
Как проверить код ответа
Убедитесь, что сервер действительно отдаёт именно 500, а не страницу с текстом «ошибка» и кодом 200: некоторые CMS и фреймворки показывают красивую заглушку со статусом 200, и тогда поисковик сочтёт её обычной страницей. Проверьте адрес бесплатным инструментом или командой curl -I https://example.ru/страница.
Как ошибка 500 влияет на индексацию в Яндексе и Google
- Единичный и короткий сбой не страшен: робот увидит 5xx и повторит попытку позже. Страница остаётся в индексе, пока ошибка не затянулась.
- При частых 5xx поисковые роботы снижают скорость обхода сайта, чтобы не добить сервер. Новые и обновлённые страницы попадают в индекс позже.
- Если страница отдаёт 500 в течение длительного времени (дни, а не минуты), она может выпасть из выдачи. Конкретные сроки поисковики не обещают.
- Особенно опасна ошибка 5xx на
robots.txt: Google в этом случае на время считает сканирование запрещённым. Следите, чтобы файл всегда отдавал 200. - Если сайт сознательно недоступен (плановые работы), отвечайте не 500, а 503 с заголовком Retry-After.
Monitor404 ловит именно 404 и не заменяет мониторинг доступности, но после починки 500 и отката релизов его стоит держать включённым: при переносах и откатах чаще всего и появляются битые URL.
Частые вопросы
Что значит ошибка 500 на сайте?
Сервер получил корректный запрос, но из-за внутреннего сбоя (ошибка в скрипте, неверный конфиг, недоступная база) не смог его выполнить. Это проблема сайта, а не пользователя.
Как исправить ошибку 500, если я посетитель?
Обновите страницу, очистите кэш и куки сайта, отключите VPN, попробуйте позже. Если не помогло — сообщите владельцу сайта: исправить 500 может только он.
Как найти причину ошибки 500 на своём сайте?
Откройте error.log веб-сервера и журнал PHP за момент сбоя. Там будет точная строка: фатальная ошибка PHP, неверная директива .htaccess, нехватка памяти или отказ базы данных.
Может ли ошибка 500 вызвать вылет из поиска?
Короткий сбой — нет, робот вернётся позже. Если страница или весь сайт отвечают 500 длительное время, страницы могут исчезнуть из выдачи, а скорость обхода снизится.