Ошибка 503 Service Unavailable: что значит и как исправить

Ошибка 503 Service Unavailable означает, что сервер получил запрос, но прямо сейчас не может его обработать: он перегружен, закрыт на обслуживание или ждёт ответа от компонента, который стоит за ним. Код по определению временный — сайт никуда не делся, и страница часто открывается после паузы. Но если 503 повторяется снова и снова, на пути запроса есть конкретное препятствие, и искать его нужно с той стороны, где находитесь вы.
Поэтому инструкция разделена по ролям. Посетителю — короткий список того, что стоит попробовать. Тем, кто открывает сайты через прокси или запускает парсеры, — как понять, кто вернул ошибку (сам сайт, его CDN или прокси), и как повторять запросы, не усугубляя ситуацию. Владельцу сайта — порядок диагностики и пояснение, как код влияет на поисковики.
Ротационные прокси
Ротационные прокси распределяют запросы по множеству IP и снижают число ограничений
Что означает код 503
Стандарт HTTP (RFC 9110) описывает 503 как временную невозможность обработать запрос из-за перегрузки или плановых работ. Сервер может добавить заголовок Retry-After — через сколько секунд или в какое время вернуться. Сформировать такой ответ может любое звено цепочки: приложение, обратный прокси вроде nginx, балансировщик, CDN, файрвол или прямой прокси, через который работаете вы сами.
Текст на экране бывает разным: «Service Unavailable», «Service Temporarily Unavailable», «Сервис временно недоступен», «No healthy upstream» или фирменная страница техработ. Значение имеет именно число в строке статуса.
Чем 503 отличается от похожих кодов
| Код | Что означает | Типичная причина |
|---|---|---|
| 500 Internal Server Error | Приложение упало при обработке запроса | Ошибка в коде или скрипте |
| 502 Bad Gateway | Шлюз получил некорректный ответ от сервера за ним | Бэкенд упал или вернул мусор |
| 503 Service Unavailable | Сервис работает, но временно не принимает запросы | Перегрузка, техработы, нет живых бэкендов, ограничение частоты |
| 504 Gateway Timeout | Шлюз не дождался ответа бэкенда | Медленное приложение или база данных |
| 429 Too Many Requests | Клиент прислал слишком много запросов | Лимит на конкретного клиента |
Формально ограничение частоты — это 429, но многие сайты отвечают слишком активным клиентам именно 503. Помните об этом, если отправляете автоматический трафик.
Почему сервер отдаёт 503
- Плановые работы. На время обновления сайт переводят в режим обслуживания, который намеренно отвечает 503.
- Всплеск трафика. Распродажа, упоминание в новостях или волна ботов съедают рабочие процессы, соединения с базой или память.
- Медленная зависимость. Веб-сервер в порядке, но база, кэш или внешний API тормозят, и запросы копятся в очереди.
- Нет живых бэкендов. Балансировщик или CDN после неудачных проверок помечает все исходные серверы как недоступные.
- Защитные системы. WAF или антибот-система отклоняет подозрительных клиентов и выбирает для ответа 503.
- Прокси не может достучаться до цели. Прямые прокси отвечают 503, когда не удаётся подключиться к адресу назначения или нет свободного выходного IP.
Что сделать посетителю
- Подождите минуту и обновите страницу. Большинство ошибок из-за нагрузки или выкладки проходят быстро.
- Откройте сайт в приватном окне или с выключенными расширениями, чтобы исключить сломанную сессию или блокировщик.
- Попробуйте другую сеть, например мобильный интернет вместо офисного Wi-Fi.
- Если вы работаете через прокси или VPN, ненадолго отключите его. Если напрямую страница открывается, проблема в маршруте, а не в сайте.
- Посмотрите страницу статуса сервиса или его соцсети — там часто сообщают о сбоях.
Очистка кэша браузера при 503 помогает редко: код приходит с сервера. Если страница не работает часами, исправить ситуацию может только владелец.
Ошибка 503 при работе через прокси
Если вы собираете данные или тестируете сайты через прокси, у ошибки 503 три возможных автора: сам сайт, CDN или файрвол перед ним либо прокси, через который идёт запрос. Решения у них разные, поэтому сначала определите источник.
Шаг 1. Узнайте, кто ответил
Отправьте один и тот же запрос с подробным выводом — напрямую и через прокси:
curl -sv -o /dev/null https://example.com/catalog
curl -sv -o /dev/null -x http://user-7f3k:Pa55word@203.0.113.17:8000 https://example.com/catalogЧитайте вывод сверху вниз:
CONNECT tunnel failed, response 503— сам прокси отказался открыть туннель к сайту. До цели запрос не дошёл.- 503 после TLS-рукопожатия пришёл от сайта или его пограничных серверов. Посмотрите заголовки
Server,Via,Proxy-Statusи служебные заголовки CDN вроде идентификатора запроса. - 503 только через прокси при нормальном прямом ответе — сайт ограничивает или блокирует IP прокси.
Отдельно сам прокси удобно проверить в прокси-чекере: он покажет, отвечает ли сервер и какой у него выходной IP.
Шаг 2. Если ошибку вернул прокси
Шлюз отвечает 503, когда не может подключиться к целевому хосту, когда для выбранной страны или сессии в этот момент нет свободного IP или когда исчерпан лимит аккаунта. Проверьте в личном кабинете трафик и ограничения по потокам, попробуйте другую геолокацию или идентификатор сессии, сверьте хост и порт в настройках. Если туннель стабильно не открывается к одному домену, а остальные сайты работают, скорее всего, этот ресурс не пускает сеть прокси.
Шаг 3. Если сайт вас ограничивает
Многие крупные площадки отвечают на автоматический трафик кодом 503, а не 429. Классический пример — маркетплейсы: их страница проверки на робота приходит со статусом 503 и вежливой припиской про автоматический доступ. Признаки ограничения:
- ошибки начинаются после серии быстрых запросов и проходят после паузы;
- один IP получает отказ, а свежий из того же пула проходит;
- в теле ответа капча или страница «необычный трафик», а не привычная вёрстка.
Лечится это тем, чтобы меньше походить на поток. Снизьте частоту, распределите запросы по адресам с помощью ротационных прокси, держите реалистичные заголовки и сохраняйте cookies в пределах сессии. Подробнее — в чек-листе о том, как снизить риск блокировки при веб-скрейпинге, а разбор того, как сайты распознают ботов, объясняет, какие сигналы выдают парсер.
Шаг 4. Повторяйте запросы с паузами
Долбить перегруженный сервер — значит продлевать сбой и тратить трафик прокси. Если есть Retry-After, соблюдайте его, если нет — увеличивайте паузу экспоненциально:
import random
import time
import requests
PROXY = "http://user-7f3k:Pa55word@203.0.113.17:8000"
session = requests.Session()
session.proxies = {"http": PROXY, "https": PROXY}
def get_with_backoff(url, tries=5):
for attempt in range(tries):
resp = session.get(url, timeout=25)
if resp.status_code != 503:
return resp
header = resp.headers.get("Retry-After", "")
# Retry-After бывает и датой HTTP — тогда используем свою паузу
pause = int(header) if header.isdigit() else min(2 ** attempt * 3, 90)
time.sleep(pause + random.uniform(0.2, 1.5))
return respОграничьте число попыток и записывайте каждый 503 с IP прокси и временем. Закономерности в журнале покажут, в чём дело: в одном адресе, одной стране или определённом времени суток. Другие типичные сбои собраны в статье об ошибках при парсинге сайтов.
Как владельцу сайта найти причину 503
Двигайтесь снаружи внутрь, чтобы не перезапускать сервисы вслепую:
- Подтвердите код и масштаб. Все страницы или часть, все регионы или один? Проверьте из внешнего мониторинга.
- Начните с периметра. Журналы CDN и балансировщика покажут, провалили ли исходные серверы проверки или ограничение сработало на краю сети.
- Проверьте ресурсы сервера. Процессор, память, место на диске, число открытых соединений и занятых рабочих процессов (PHP-FPM, Gunicorn и подобных).
- Изучите журналы. Логи ошибок веб-сервера и приложения вокруг первого 503 обычно указывают на узкое место.
- Проверьте зависимости. Пул соединений с базой, кэш, очереди и внешние API.
- Посмотрите правила файрвола. Новое правило WAF или лимит частоты может отдавать 503 обычным посетителям.
- Сопоставьте с последними изменениями. Выкладка, обновление плагина или правка конфигурации прямо перед ошибками — главный подозреваемый.
В WordPress после прерванного обновления в корне сайта остаётся файл .maintenance, и сайт застревает в режиме обслуживания; удаление файла возвращает его к работе. Ещё одна частая причина — плагин, который перегружает базу, поэтому разумно отключать плагины по одному.
Чтобы ошибка не повторялась, добавьте кэширование, выносите тяжёлые задачи в очереди, заранее масштабируйте рабочие процессы перед известными пиками, выкатывайте обновления постепенно и настройте оповещения о доле ответов 5xx.
Как 503 влияет на SEO
Поисковики понимают 503 как «зайдите позже», поэтому страница техработ должна отдавать именно этот код, а не 200. Google снижает частоту сканирования, когда встречает ответы 5xx или 429, и возвращается позже. Короткий сбой не вредит, но адреса, которые отвечают 503 несколько дней подряд, могут начать выпадать из индекса. На время плановых работ добавляйте Retry-After и не затягивайте их.
Частые вопросы об ошибке 503
Ошибка 503 — проблема у меня или у сайта?
Почти всегда у сайта или сервера перед ним. Исключение — автоматический трафик: сайт может вернуть 503 клиенту, который шлёт слишком много запросов, а прокси — не дотянуться до цели.
Сколько длится ошибка 503?
Сбои из-за нагрузки и выкладки обычно проходят за минуты. Если страница не открывается часами, у владельца серьёзная авария или затянувшиеся техработы.
Почему 503 появляется только через прокси?
Скорее всего, сайт или его CDN ограничивает этот IP либо прокси не может открыть туннель к адресу назначения. Сравните прямой запрос с запросом через прокси и поищите в выводе curl строку «CONNECT tunnel failed».
Нужно ли парсеру повторять запрос после 503?
Да, но с растущими паузами и ограничением числа попыток. Соблюдайте заголовок Retry-After, если сервер его прислал, и меняйте IP, если один адрес раз за разом получает отказ.
Вредит ли ошибка 503 позициям в поиске?
Кратковременная — нет. Поисковики считают её временной, но страницы, которые отдают 503 несколько дней, теряют приоритет сканирования и со временем могут выпасть из индекса.


