Ошибка 503 Service Unavailable: что это и как исправить
Код 503 Service Unavailable означает, что сервер временно не может обработать запрос: он перегружен или закрыт на техобслуживание. Это единственная ошибка из группы 5xx, которую можно использовать намеренно — для плановых работ.
Обновлено 11 октября 2026 г.
Что означает ошибка 503
По RFC 9110 (раздел 15.6.4) 503 Service Unavailable сообщает: сервер сейчас не может обработать запрос из-за временной перегрузки или планового обслуживания, и ситуация, вероятно, исправится через какое-то время. Сервер должен (SHOULD) прислать заголовок Retry-After, подсказывая, когда повторить запрос.
Ключевое слово в определении — «временно». Именно этим 503 отличается от 500 (непредвиденный сбой) и от 502 (плохой ответ вышестоящего сервера): здесь сервер знает о проблеме и сообщает о ней как о временной.
Что делать посетителю
- Подождите несколько минут и обновите страницу. При техобслуживании и пиковой нагрузке это обычно решает вопрос.
- Не обновляйте страницу десятки раз подряд: это только добавляет нагрузку на сервер и может привести к блокировке по лимиту запросов.
- Проверьте, недоступен ли сайт для всех: откройте его с телефона через мобильную сеть или через проверку кода ответа.
- Отключите VPN или прокси: некоторые сайты ограничивают трафик с общих адресов и отвечают на него 503.
- Если вы видите заголовок «Retry-After» или дату окончания работ на странице, ориентируйтесь на неё. Если ошибка держится больше нескольких часов, свяжитесь с владельцем сайта другим способом (почта, соцсети).
Частые причины 503: что проверить владельцу
- Перегрузка. Всплеск трафика, поисковые и SEO-боты, парсеры, атака. Заняты все воркеры веб-сервера или процессы PHP-FPM, запросам не хватает места.
- Лимиты хостинга. Превышены квоты на процессы, оперативную память, CPU или число одновременных запросов: хостинг сам начинает отдавать 503.
- Режим обслуживания. Сайт сознательно закрыт на время обновления. В WordPress после неудачного обновления в корне может остаться файл
.maintenance, и сайт продолжает отвечать «Briefly unavailable for scheduled maintenance» с кодом 503. Удалите файл. - Лимиты в самом nginx. Директивы
limit_reqиlimit_connпо умолчанию отвечают именно 503. Если легитимные посетители получают 503, значит, лимит слишком жёсткий или бот расходует его за всех. - Остановленные или упавшие службы. Выключенный PHP-FPM, приложение или база данных, к которым обращается сайт.
Где искать причину
# nginx: превышение лимитов и недоступность upstream
grep -E "limiting requests|limiting connections|no live upstreams" /var/log/nginx/error.log | tail -n 30
# PHP-FPM: пул исчерпан
grep "max_children" /var/log/php8.2-fpm.log | tail -n 20
# Apache: исчерпан лимит одновременных запросов
grep "MaxRequestWorkers" /var/log/apache2/error.log | tail -n 20
# кто создаёт нагрузку: топ IP по запросам
awk '{print $1}' /var/log/nginx/access.log | sort | uniq -c | sort -rn | head
# нагрузка и память
uptime
free -mЕсли основной источник запросов — боты и сканеры, ограничьте их, а не наращивайте мощности. Если нагрузка легитимная, увеличивайте пул (pm.max_children для PHP-FPM, worker_connections в nginx) в пределах доступной памяти и подключайте кэш страниц.
Как правильно закрыть сайт на техобслуживание
Если вы закрываете сайт на плановые работы, отдавайте именно 503 с заголовком `Retry-After`. Он указывается либо в секундах, либо датой в формате HTTP (Retry-After: Mon, 12 Oct 2026 10:00:00 GMT). Так и посетители, и поисковые роботы понимают, что это временно.
server {
listen 80;
server_name example.ru;
error_page 503 /maintenance.html;
location = /maintenance.html {
root /var/www/maintenance;
internal;
# always — иначе заголовок не добавится к ответу с кодом 503
add_header Retry-After 3600 always;
}
location / {
return 503;
}
}Для приложений на PHP можно отдавать заглушку прямо из кода (например, из index.php на время работ):
<?php
http_response_code(503);
header('Retry-After: 3600');
header('Content-Type: text/html; charset=utf-8');
readfile(__DIR__ . '/maintenance.html');
exit;Не показывайте страницу «Ведутся технические работы» с кодом 200: поисковик проиндексирует её как содержимое страницы. Не отвечайте 404 и не делайте 301 на страницу заглушки: роботы могут решить, что страницы удалены или перемещены. Про последствия ложных ответов — в материале про soft 404.
Как проверить, что сайт отдаёт именно 503
Прежде чем уходить с сайта, убедитесь, что и заголовки, и код корректны: проверьте код ответа и заголовок Retry-After (например, curl -I https://example.ru/). Не забудьте включить сайт обратно и проверить главную страницу, внутренние страницы, robots.txt и sitemap.xml — все они должны вернуть 200.
Как 503 влияет на индексацию в Яндексе и Google
- Для поисковых систем 503 — сигнал «зайдите позже». Страница при этом остаётся в индексе, а робот повторяет запрос.
- Если 503 держится часами или днями, роботы реже заходят на сайт. Затянувшееся «временное» состояние со временем интерпретируется как постоянная недоступность, и страницы могут выпасть из выдачи.
- Для плановых работ заранее ограничьте время простоя и не оставляйте 503 надолго. Лучше выполнять миграцию в окно с минимальным трафиком.
- Заголовок
Retry-After— рекомендация, но поисковые системы не обязаны следовать ему буквально. Не рассчитывайте, что точное значение заставит робота вернуться ровно в это время. - Если
robots.txtотдаёт 503 при работающем сайте, Google на время приостанавливает сканирование. Исключите служебные файлы из режима обслуживания, если вам нужно сохранить обход.
После снятия режима обслуживания стоит проверить, не потерялись ли страницы и не появились ли 404 из-за переноса. Для этого и нужен Monitor404: он сразу покажет, какие адреса посетители теперь не находят.
Частые вопросы
Что значит ошибка 503 Service Unavailable?
Сервер временно не может обработать запрос: он перегружен или закрыт на техобслуживание. Предполагается, что через некоторое время работа восстановится.
Что делать, если сайт выдает ошибку 503?
Подождите, обновите страницу через несколько минут, проверьте доступность с другой сети и отключите VPN. Если ошибка не уходит, свяжитесь с владельцем сайта.
Для чего нужен заголовок Retry-After при 503?
Он подсказывает клиенту и роботу, через сколько секунд или к какой дате повторить запрос. Его рекомендуется отдавать при плановых работах вместе с кодом 503.
Как закрыть сайт на обслуживание, не навредив SEO?
Отдавайте код 503 с Retry-After, держите простой как можно короче, не используйте для заглушки код 200, 404 или 301, а после работ проверьте robots.txt и основные страницы.