Что означает ошибка 429 Too Many Requests и как она работает
Формулировка из спецификации RFC 6585 звучит так: «The user has sent too many requests in a given amount of time». Иначе говоря, сервер зафиксировал, что с вашей стороны пришло слишком много обращений за определенный промежуток, и временно отказывает в обслуживании. Вот что означает ошибка 429 на практике — это машиночитаемый сигнал «притормозите», а не наказание и не блокировка.
Формально код принадлежит классу 4xx (клиентские ошибки), но это не всегда указывает на вину пользователя. Сервер или промежуточный слой — CDN, WAF, API-шлюз — фиксирует превышение лимита, а причина может быть в чем угодно: в вашем поведении, в общем IP-адресе, в стороннем расширении или в слишком строгой конфигурации самого сервиса.
Важные нюансы, о которых редко пишут
Спецификация не определяет, как именно сервер считает запросы и по какому признаку идентифицирует «пользователя»: это может быть IP, cookie, API-ключ, аккаунт или комбинация параметров. Заголовок Retry-After, подсказывающий время ожидания, — рекомендация, а не обязательное поле. То, что хочу отметить отдельно, — это что ошибка 429 значит для кеширования: ответы с этим кодом запрещено сохранять в кеше, а значит, при каждом повторном обращении сервер будет заново решать, пропустить вас или нет.
Три связанных, но не тождественных понятия помогут разобраться глубже:
- Rate limiting — ограничение частоты обращений за интервал времени.
- Quota — выделенный объем ресурса на период (например, 5000 запросов в сутки).
- Throttling — замедление обработки при нагрузке.
Чем ошибка сервера 429 отличается от 403, 500 и 503
На первый взгляд все коды ошибок похожи: сайт не работает, страница не грузится. Но для диагностики принципиально понимать разницу, потому что от нее зависят ваши дальнейшие действия.
403 Forbidden — сервер понял запрос, однако отказывается его выполнять. Причины: недостаток прав, географическое ограничение, блокировка IP, антибот-защита. Здесь требуется изменить сам запрос, права или идентификацию, а вот ждать бессмысленно. Граница между 403 и 429 при этом размыта: GitHub, например, документирует, что при превышении лимитов может вернуть и тот и другой код. А Яндекс Директ ограничивает нагрузку через внутренние коды 152 и 506, вообще не прибегая к HTTP 429 — выбор кода всегда остается за реализацией.
500 Internal Server Error — непредвиденный сбой на стороне сервиса: программная ошибка, необработанное исключение, сбой зависимости. Клиент тут бессилен, проблема целиком внутри. 429 ошибка на сайте — напротив, спроектированный, штатный ответ: сервис работает и отказывает осознанно.
503 Service Unavailable — самая тонкая пара с 429. Оба кода временные, оба могут сопровождаться Retry-After. Разница в адресате: 429 обычно относится к конкретному клиенту, ключу или IP, а 503 — к состоянию сервиса в целом. Показательный пример: в nginx модуль limit_req при срабатывании по умолчанию отдает именно 503, а не 429. Чтобы nginx сообщал корректный код, администратору приходится явно прописывать директиву limit_req_status 429.
Практическая формула: 429 — «снизьте частоту и подождите», 503 — «сервису сейчас плохо», 403 — «в таком виде запрос выполнен не будет», 500 — «на стороне сервиса сбой».
Почему появляется ошибка 429 «слишком много запросов»: причины по слоям
Причины удобно разделить на четыре слоя: от пользователя до сервера.
Со стороны пользователя. Частое обновление страницы, быстрое пролистывание каталога, множество открытых вкладок с автообновлением. Браузерные расширения и юзерскрипты способны генерировать десятки фоновых обращений на каждое ваше действие — и вот уже, например, Яндекс выдает ошибку 429 или предлагает капчу, хотя вы уверены, что ничего особенного не делали. Кстати, в обычном поиске Яндекс чаще показывает капчу (SmartCaptcha), чем голый код 429, но суть одна: система зафиксировала аномальную активность.
Со стороны сети. Лимит часто считается по IP-адресу, а IP у многих общий. Корпоративный NAT, университетская сеть, мобильный оператор с CGNAT, публичный Wi-Fi — с одного адреса выходят сотни пользователей, и чужая активность может исчерпать лимит за вас. Отсюда классическая ситуация: «я ничего не делал, но получил ограничение».
Со стороны интеграций и скриптов (этот пункт — для владельцев сайтов и разработчиков; если вы обычный пользователь, смело переходите к следующему абзацу). Парсеры без задержек, повторные запросы без экспоненциальной паузы (так называемый retry storm), неограниченный параллелизм, опрос вместо вебхуков, исчерпание суточной квоты API-ключа. Если вы видите ошибку 429 в браузере на собственном сайте — виноваты, вероятнее всего, плагины CMS, cron-задачи или внешние интеграции, которые обращаются к REST API изнутри.
Со стороны сервера и защитных слоев. Слишком строгие пороги в WAF и CDN, антибрутфорс-правила, защита от скрапинга, лимиты тарифа. В Yandex Cloud, например, модуль Advanced Rate Limiter в Smart Web Security позволяет задавать окна от одной секунды до суток и группировать запросы по IP, cookie, заголовку или query-параметру — гибко, но при неосторожной настройке легко задеть обычных посетителей. Отдельно стоит помнить: 429 может прийти не от самого сайта, а от промежуточного слоя: обратного прокси, CDN или API-шлюза.
Как исправить ошибку 429: инструкция для пользователя
Первое и главное — перестать отправлять запросы. Это не шутка и не формальность: у многих сервисов продолжение обращений продлевает окно ограничения, а в отдельных случаях приводит к эскалации вплоть до полноценной блокировки. GitHub, например, прямо предупреждает, что настойчивые запросы во время действующего лимита могут обернуться баном интеграции.
Дальше — по шагам, от простого к сложному.
Проверьте, не указан ли срок ожидания. Иногда он написан прямо на странице ошибки, иногда спрятан в заголовке Retry-After (об этом — в разделе про диагностику). Типичные окна: от нескольких секунд до часа, при суточных квотах — дольше.
Отключите расширения и юзерскрипты, связанные с проблемным сервисом. Они часто генерируют фоновые обращения, о которых вы даже не подозреваете. Остановите сторонние приложения и боты, работающие с тем же аккаунтом.
Если Яндекс выдает ошибку 429 или предлагает капчу — действия те же. Включите сохранение cookies (без них проверка не запоминается), отключите подозрительные расширения, проверьте устройство на вредоносное ПО. Помните: Яндекс при подтверждении запрашивает только символы с картинки и никогда не просит номер телефона или повторный ввод пароля — если видите такое, перед вами поддельная страница.
Проверьте, не общий ли у вас IP-адрес. Выключите прокси и попробуйте другую сеть. Это диагностический прием, а не «исправление»: смена IP очищает счетчик, но при систематическом превышении проблема вернется. Зато вы поймете, связан ли лимит с вашей конкретной сессией или с адресом, который делите с сотнями других людей.
Об очистке cookies стоит сказать отдельно. Она помогает только тогда, когда лимит привязан к кукам или сессии. Против IP-ограничения, лимита API-ключа или лимита на аккаунт очистка бесполезна — при этом вы потеряете авторизацию и создадите новую сессию. Это эксперимент с ограниченной областью применения, а не универсальный рецепт.
Коротко о том, как исправить ошибку 429 в Яндексе: если речь о поиске — подождите, пройдите капчу, отключите расширения. Если о Яндекс Метрике или Директе — это вопрос квот API, и решение лежит на стороне разработчика (об этом ниже). Если о стороннем сайте, открытом в Яндекс Браузере, — проблема не в браузере, а в самом сайте: браузер лишь отображает ответ сервера.
Чего делать точно не стоит:
- очищать DNS-кеш (к HTTP-статусам он отношения не имеет);
- очищать кеш браузера в надежде «сбросить лимит» (не сбросит);
- бесконечно обновлять страницу (сделает хуже).
Если ограничение держится долго или повторяется регулярно — обращайтесь в поддержку сервиса. А как убрать ошибку 429 навсегда — зависит от ее источника, и для случаев, когда источник на вашей стороне, я написала следующий раздел.
Как устранить код ошибки 429: руководство для разработчика
Все, что я описала в этом разделе, адресовано разработчикам и администраторам. Если вы пользователь и уже попробовали рекомендации из предыдущего раздела — переходите к разделу диагностики или FAQ.
На стороне сервера
Прежде чем отдавать 429, сервис решает, как именно считать запросы и где проводить черту. Для этого существуют четыре основных алгоритма, каждый — со своей логикой и компромиссами.
Фиксированное окно (fixed window) — счетчик обнуляется в начале каждого интервала. Просто в реализации, но допускает всплеск на стыке двух окон: пользователь успевает отправить двойную порцию запросов за пару секунд, формально не нарушив лимит ни в одном из периодов.
Скользящее окно (sliding window) — интервал «плывет» вместе со временем, поэтому картина нагрузки точнее, но вычислительно дороже.
Token bucket — пока клиент молчит, у него копится резерв на всплеск; при возобновлении обращений этот резерв расходуется, а когда заканчивается — скорость снова выравнивается.
Leaky bucket — противоположный принцип: запросы принимаются с любой скоростью, но обрабатываются строго равномерно, а все, что не вмещается, отклоняется.
В распределенной системе счетчики выносятся в общее хранилище (Redis, Valkey), иначе фактический лимит умножается на число инстансов.
Разделяйте лимиты по ключу: IP, пользователь, API-ключ, эндпоинт. Полезно иметь первичные ограничения (запросов в час) и вторичные защитные (конкурентность, всплески). В ответе отдавайте 429 с понятным телом и заголовком Retry-After, если можете надежно назвать время ожидания. Формат Retry-After — либо число секунд, либо HTTP-дата.
Отдельный вопрос — как сообщить клиенту о состоянии лимита до того, как тот получит 429. Единого стандарта пока нет: рабочая группа IETF HTTPAPI готовит спецификацию заголовков RateLimit (Internet-Draft, версия 11, май 2026 — до статуса RFC еще не дошла). Идея — два поля в ответе: RateLimit-Policy описывает правила (сколько запросов разрешено и за какой период), а RateLimit показывает, сколько из этого лимита еще доступно. На практике большинство сервисов уже передают подобную информацию, но каждый по-своему: через нестандартные заголовки X-RateLimit-Limit, X-RateLimit-Remaining, X-RateLimit-Reset. Формат значений при этом разнится: где-то Reset указан в секундах, где-то в Unix-времени, и при интеграции с новым API это приходится выяснять отдельно.
Особая ловушка — thundering herd: если всем заблокированным клиентам назвать одинаковое время возврата, они придут одновременно. Лечится добавлением случайного джиттера к Retry-After.
Ошибка 429 в Яндексе: что делать разработчику конкретно? В API Метрики — держать не больше 3 параллельных запросов на пользователя, не превышать 200 обращений к отчетам за 5 минут и 5000 в сутки. В теле 429-ответа Метрика возвращает тип превышенной квоты (error_type), что упрощает диагностику. В Директе лимит устроен иначе: система баллов с заголовком Units, суточный объем делится на 24 скользящих окна — здесь отслеживать остаток нужно превентивно, не дожидаясь отказа. В Yandex Cloud коду 429 соответствует gRPC-статус RESOURCE_EXHAUSTED, а квоты часто поднимаются по заявке в поддержку.
На стороне клиента
Если сервер прислал заголовок Retry-After — ориентируйтесь на указанное в нем время. Если заголовка нет — выстраивайте паузы по нарастающей: 1 секунда, 2, 4, 8 и так далее, с небольшим случайным разбросом (джиттером), чтобы не создавать волну одновременных повторов. Количество попыток стоит ограничить заранее: бесконечный цикл повторов — прямой путь к затяжной блокировке.
Отдельный и принципиальный момент — повтор запросов, которые что-то меняют на сервере (POST, PUT с побочными эффектами). Автоматически повторять их после 429 опасно: этот код не доказывает, что операция не была выполнена. Предыдущая попытка могла дойти до сервера, а 429 — прийти от промежуточного слоя. Последствия неосторожного повтора — дублирование объекта, повторная оплата, двойная отправка формы.
Еще несколько практик, которые снижают вероятность столкновения с лимитом в принципе: ограничение параллельных запросов (пул воркеров, семафор, очередь), кеширование ответов (HTTP-кеш, условные запросы через ETag и Last-Modified), замена постоянного опроса на вебхуки, batch-запросы вместо множества одиночных вызовов. И простейший прием — аутентификация: у GitHub, например, анонимный клиент получает 60 запросов в час, а авторизованный — 5000.
Как проверить и продиагностировать ошибку запроса 429
Главный вопрос диагностики — кто именно отдал 429: origin-сервер, CDN, WAF, обратный прокси или API-шлюз. От ответа зависит все дальнейшее. Первый инструмент доступен любому — прямо в браузере; остальные пригодятся тем, у кого есть доступ к серверу или панели хостинга.
DevTools браузера. Вкладка Network, колонка Status — здесь виден код. В Response Headers ищите Retry-After, заголовки RateLimit или X-RateLimit-*, а также признаки источника ответа (Server: cloudflare, cf-ray, заголовки прокси). Тело ответа часто содержит объяснение — в Яндекс Метрике, например, это поле error_type с указанием конкретной превышенной квоты. Функция «Copy as cURL» позволит воспроизвести запрос вне браузера и убедиться, что проблема не в расширениях.
Командная строка. curl -v покажет статус и заголовки без браузерного шума; повторные вызовы с разными интервалами помогут эмпирически нащупать порог и длину окна ограничения.
Логи сервера. Фильтруйте access-лог по статусу 429 (или 503, если код не переопределен). Группируйте по IP, User-Agent, URI и времени. В error-логе nginx модуль limit_req пишет записи «limiting requests, excess: … by zone …» — они прямо указывают на сработавшую зону и величину превышения. Задача — понять, это один агрессивный клиент, распределенная нагрузка или слишком узкий лимит для нормального трафика.
Панели CDN и WAF. У Cloudflare — Rate Limiting Analytics и Security Events, где видно конкретное сработавшее правило. Фирменная страница ошибки Cloudflare с кодом 1015 — однозначный признак того, что 429 сгенерирован именно на уровне CDN, а не вашим приложением.
Search Console. Отчет «Статистика сканирования» показывает, какие ответы получает Googlebot. Всплеск 429 означает, что ваши лимиты бьют по поисковому роботу — а это уже вопрос SEO (подробнее в FAQ).
FAQ
Ошибка 429 в Стиме: почему возникает и как исправить?
Steam Web API официально ограничивает 100 000 вызовов в сутки на ключ — это единственный документированный лимит. Для веб-страниц (Торговая площадка, инвентари, магазин) публичной таблицы порогов Valve не публикует, однако сообщество давно фиксирует, что ошибку 429 Стим возвращает при частых обращениях к этим разделам. Типичные триггеры — браузерные расширения для торговли, юзерскрипты, сторонние торговые площадки и боты. Что делать: прекратить обновлять страницу, отключить все Steam-расширения, остановить ботов, попробовать другую сеть (как диагностику, не как лекарство). Ограничение по наблюдениям держится от нескольких минут до нескольких часов и продлевается, если продолжать отправлять запросы.
Ошибка 429 в Яндексе: почему появляется?
За этим запросом скрываются минимум пять разных ситуаций:
- API Яндекс Метрики возвращает HTTP 429 при превышении документированных квот (30 запросов в секунду на IP, 3 параллельных, 5000 в сутки на пользователя).
- Яндекс Директ ограничивает нагрузку через систему баллов и внутренние коды, без HTTP 429.
- Yandex Cloud — 429 при исчерпании квот сервисов (Search API, AI Studio, Smart Web Security).
- Обычный поиск чаще показывает капчу, чем голый код 429.
- Сторонний сайт в Яндекс Браузере — ошибку отдает сам сайт, браузер лишь отображает ответ.
Решение зависит от того, какой именно сценарий перед вами.
429 — это бан? Меня заблокировали навсегда?
Нет. По спецификации это ограничение частоты, а не блокировка аккаунта. Ограничение, как правило, временное: от секунд до суток. Но систематическое игнорирование лимитов способно привести к эскалации: продлению окна, блокировке IP на уровне WAF, отзыву API-ключа. Правило простое: получили 429 — остановитесь, а не ускоряйтесь.
Как долго длится ограничение?
Универсального ответа нет. Если в ответе есть Retry-After — ориентируйтесь на него. Если заголовка нет — типичные окна составляют от нескольких секунд до часа; при суточных квотах (как в API Метрики) лимит сбрасывается в 00:00 GMT. Спецификация не обязывает сервер сообщать срок, поэтому иногда остается только ждать и проверять.
Влияет ли 429 на SEO?
Да, если ответы систематические. Google трактует 429 как сигнал перегрузки и снижает скорость сканирования. Уже проиндексированные URL какое-то время сохраняются, но при длительном 429 в итоге выпадают из индекса. Единичный или кратковременный 429 проблемой не является. Диагностика — отчет «Статистика сканирования» в Search Console: если видите всплеск 429 для Googlebot, ваши лимиты бьют по роботу и пора пересмотреть пороги или добавить верифицированных краулеров в исключения (но проверять их по обратному DNS, а не по User-Agent).
Код 429 — один из тех ответов сервера, которые выглядят пугающе, но устроены логично. Это не поломка и не бан, а просьба сбавить темп. Разобравшись в причине — общий IP, расширение-вредитель, агрессивный скрипт или тесные лимиты на сервере — вы решите проблему за минуты, а не за часы. Ошибка 429 — это сигнал, а не приговор: остановитесь, прочитайте ответ и только потом действуйте. Такой подход работает и для пользователя, и для разработчика, и для владельца сервиса — проверено на всех трех ролях одновременно.
Если вы сталкивались с 429 в неожиданном месте или нашли нестандартный способ диагностики — поделитесь в комментариях. Такие истории полезнее любой документации.
* Meta Platforms Inc. (и принадлежащие ей соц.сети Instagram, Facebook) признана экстремистской организацией, ее деятельность в России запрещена.



Думала, что код ошибки 429 означает блокировку аккаунта. Оказалось, чаще всего достаточно перестать обновлять страницу и немного подождать.