Ошибка 503 Service Unavailable: что значит и как исправить
503 Service Unavailable — сервер временно не может обработать запрос: перегружен или закрыт на обслуживание. Главное слово — «временно»: правильный ответ 503 обещает, что сайт скоро вернётся, и может подсказать в заголовке Retry-After, когда именно. Поэтому 503 — правильный код и для технических работ на сайте.
Содержание 10
Что означает код 503
По стандарту HTTP код 503 значит: сервер сейчас не может обработать запрос из-за временной перегрузки или плановых работ, и скорее всего это пройдёт через какое-то время. В заголовке Retry-After сервер может подсказать, когда повторить запрос. Отвечать именно 503 сервер не обязан: перегруженный сервер может и просто не принимать соединения.
Страница nginx с этой ошибкой называется «503 Service Temporarily Unavailable».
Если вы посетитель
- Подождите несколько минут и обновите страницу: 503 — ошибка временная.
- Если на странице написано о технических работах, вернитесь позже — сайт обновляют.
- Если ошибка держится долго, сообщите владельцу сайта, какую страницу вы открывали и когда.
Откуда берётся 503
- Ограничение частоты запросов в nginx. Модуль limit_req по умолчанию отвечает на лишние запросы кодом 503. Если в журнале ошибок есть строки «limiting requests», дело в нём. Для таких ответов точнее код 429 — как его включить, рассказано в разборе ошибки 429.
- Технические работы. Сайт закрыли на обслуживание — вручную или на время обновления, как это делает WordPress.
- Перегрузка. Сервер или программа сайта не справляются с потоком запросов.
- Лимиты хостинга. На виртуальном хостинге 503 может означать, что сайт упёрся в лимит тарифа. Уточните в поддержке.
Как правильно закрыть сайт на технические работы
Страница «ведутся работы» должна отдаваться с кодом 503, а не 200. С кодом 200 поисковик увидит обычную страницу с текстом о работах вместо содержимого сайта.
В nginx на время работ замените рабочий блок server сайта таким, а после работ верните рабочий. Файл страницы здесь — /var/www/maintenance/maintenance.html:
server {
listen 80;
server_name example.com;
# для HTTPS добавьте сюда те же строки listen и сертификата, что в рабочем блоке
error_page 503 /maintenance.html;
location = /maintenance.html {
root /var/www/maintenance;
add_header Retry-After 3600 always;
internal;
}
location / {
return 503;
}
}- error_page без знака «=» сохраняет исходный код, поэтому страница уходит с кодом 503.
- Retry-After 3600 подсказывает, что вернуться стоит через час. Без слова always nginx не добавит заголовок к ответу 503: по умолчанию add_header работает только для кодов 200, 201, 204, 206, 301, 302, 303, 304, 307 и 308.
- internal не даёт открыть /maintenance.html напрямую: на такой запрос nginx ответит 404.
- Стили и картинки встройте прямо в HTML-файл: любой другой адрес на время работ отвечает 503.
После любых правок: sudo nginx -t, затем sudo systemctl reload nginx.
«Briefly unavailable for scheduled maintenance» в WordPress
Во время обновления WordPress кладёт в корень сайта файл .maintenance. Пока он есть, сайт отвечает 503 с заголовком Retry-After: 600 и сообщением «Briefly unavailable for scheduled maintenance. Check back in a minute.» — на сайте на русском языке оно будет переведено. Когда обновление заканчивается, WordPress удаляет файл.
Если обновление прервалось, файл может остаться, и сайт будет показывать это сообщение. WordPress перестаёт обращать на него внимание через 10 минут после времени, записанного в файле, — или удалите .maintenance вручную через SFTP или файловый менеджер хостинга.
Своё сообщение можно задать файлом wp-content/maintenance.php: WordPress подключит его вместо стандартного и сразу остановится. Но тогда код 503 и заголовок Retry-After ваш файл должен отправить сам — например, первой строкой:
<?php header('Retry-After: 600', true, 503); ?>На обычном хостинге
Посмотрите в панели хостинга нагрузку на сайт и не упирается ли он в лимиты тарифа. Если причина неясна, напишите в поддержку адрес страницы и время ошибки. Что ещё проверить, рассказано в инструкции Что делать, если хостинг лежит.
503 и поиск Яндекса
По справке Яндекса, ответ 503 — ошибка из-за временной перегрузки сервера или его отключения на обслуживание. Яндекс советует увеличить мощность сервера или оптимизировать его настройки под текущую нагрузку, а на время плановых работ — позаботиться, чтобы сайт быстро вернулся к работе.
Чем 503 отличается от соседних кодов
| Код | Когда возникает |
|---|---|
| 429 | Лимит запросов для конкретного клиента |
| 500 | Ошибка в программе сайта или в настройках сервера |
| 502 | Посредник не получил от следующего сервера нормального ответа |
| 503 | Сервер временно не может обработать запрос: перегрузка или работы |
| 504 | Посредник не дождался ответа от следующего сервера |
Источники
- RFC 9110, раздел 15.6.4 — определение кода 503.
- Документация nginx: error_page и internal, add_header, return и limit_req_status.
- Исходный код WordPress: wp-includes/load.php — режим обслуживания.
- Документация PHP: функция header.
- Яндекс Вебмастер: коды ответа HTTP.
Сверено 6 октября 2026 года.
Что почитать дальше
- Ошибка 429 Too Many Requests — как ограничить частоту запросов и отвечать понятным кодом.
- Ошибка 502 Bad Gateway — когда PHP или приложение не ответили как надо.
- Что делать, если хостинг лежит — по шагам.
- Хостинг и VPS с защитой от DDoS — когда перегрузку создают атакой.
Проверено и обновлено: 07.10.2026