Ошибка 429 значит, что сервер ограничил частоту запросов и решил: вы спрашиваете слишком часто. Это не поломка, а защита: от перегрузки, от перебора паролей, от сборщиков данных. Беда начинается, когда защита ошибается — и режет живых людей или поискового робота.
Что говорит стандарт
Код 429 введён в RFC 6585:
The 429 status code indicates that the user has sent too many requests in a given amount of time ("rate limiting").
Ответ «SHOULD include details» — должен объяснять причину, и «MAY
include a Retry-After header» — может содержать заголовок, через сколько
повторить. В примере из стандарта — Retry-After: 3600 и текст «I only
allow 50 requests per hour».
Заголовок Retry-After описан в RFC 9110: это число секунд или дата, до
которой ждать. Обещание, а не гарантия.
Как 429 читают поисковики
Яндекс и Google смотрят на этот код по-разному.
Яндекс. В справочнике кодов Вебмастера: «Отправлено слишком много
запросов за короткое время. Это может указывать, например, на попытку
DDoS-атаки». И отдельной строкой: ответ может нести Retry-After, но
«Яндекс не учитывает этот заголовок».
Google. В документации Search Central 429 выделен из остальных кодов 4xx: роботы Google «treat the 429 status code as a signal that the server is overloaded, and it's considered a server error». Дальше — последствия для серверных ошибок: обход временно замедляется, уже проиндексированные адреса сохраняются, «but eventually dropped» — но со временем удаляются.
Там же Google сам советует 429 как аварийный тормоз: если нужно срочно снизить нагрузку от робота на пару часов или 1–2 дня, отдавать 500, 503 или 429 вместо 200. И предупреждает, что замедление касается всего хоста.
Отдельно про robots.txt. Если Google не может его скачать из-за серверной ошибки, первые 12 часов он, по документации, «stops crawling the site» — не обходит сайт вообще.
Наш замер: 429 с первого запроса
25 сентября 2026 года мы открыли главные страницы сайтов организаций Екатеринбурга из OpenStreetMap — по одному запросу на адрес. Код 429 вернули 5 адресов из 1579 ответивших. Это была не перегрузка: запрос был первым.
У всех пяти одинаковый ответ:
Retry-After: 10— «повторите через 10 секунд»;- страница, подписанная именем городского справочника организаций, с текстом «Мы проверяем, что вы не робот, через несколько секунд вы будете перенаправлены на сайт»;
- тот же 429 на
robots.txt.
Сайты — две ветклиники, стоматология, гостиница и автосервис. Судя по странице отказа, их обслуживает одна и та же площадка, и у неё общая защита.
Мы повторили проверку по-разному:
| Как спрашивали | Результат |
|---|---|
| из-за рубежа, curl | 429 у всех пяти |
| из-за рубежа, с обычной строкой браузера | 429 у всех пяти |
| из российской сети, первые шесть запросов к двум сайтам | 200, в том числе со строкой робота Яндекса |
| из российской сети, седьмой запрос и дальше | 429 у всех пяти, и у тех двух тоже |
| Chrome под управлением программы, ожидание 12 секунд | 429, перенаправления нет |
Из российской сети первые два сайта открылись: по три запроса к каждому. Седьмой запрос — уже к третьему домену — получил 429, и дальше закрылись все пять. Лимит считается не по сайту, а по площадке: кто зашёл на два её сайта, на третий уже не попадёт.
Заголовок обещал 10 секунд. Мы повторяли запрос из российской сети раз в
четыре минуты: через 40 минут после первого отказа ответ был всё тем же
429 с тем же Retry-After: 10. Почти через сутки, 26.09, первый же
запрос из российской сети снова получил 429 с тем же Retry-After: 10.
Режут ли всё ещё именно наш адрес или теперь площадка отвечает так всем,
по этим данным не различить.
Почему 429 бьёт по поисковому роботу
Робот ходит часто и с немногих адресов — ровно так, как выглядит сборщик данных. Защита, настроенная на людей, режет его первым.
Что происходит дальше:
- Google замедляет обход всего хоста, а страницы, которые долго отвечают 429, выпадают из индекса.
- Яндекс не ждёт по
Retry-After: он не учитывает этот заголовок. - robots.txt под лимитом хуже всего. У всех пяти сайтов из замера он тоже отдавал 429.
Понять, что так происходит, можно в Вебмастере: там видно, какие коды получает робот. Как ещё проверить доступность для роботов — в статье доступен ли сайт для роботов.
Лимиты API — законный случай
У программных интерфейсов 429 — норма. Сервис говорит: квота на минуту
или сутки выбрана, подождите. Правильная программа читает Retry-After
и ждёт, а не повторяет запрос сразу: частые повторы только продлевают
блокировку.
Мы сами работаем с такими лимитами: у очереди переобхода Яндекса квота 150 адресов в сутки. Лишние заявки она просто не принимает.
Что делать посетителю
- Подождите. Если в ответе был
Retry-After, выждите это время, а лучше — вдвое дольше. - Не обновляйте страницу подряд. Каждое обновление — новый запрос в счёт лимита.
- Выключите VPN. Через один VPN-адрес ходят тысячи людей, и лимит на адрес выбирают все вместе.
- Включите JavaScript и куки. Защита, которая «проверяет, что вы не робот», без них не пропустит.
Что делать владельцу сайта
- Не ставьте лимит на robots.txt и sitemap. Эти файлы робот запрашивает первыми.
- Считайте лимит по сайту, а не по всей площадке. Иначе посетитель, открывший два сайта подряд, не увидит третий.
- Пропускайте поисковых роботов. Проверяйте их по обратному DNS, а не по строке браузера: её подделать легко.
- Не обещайте в Retry-After то, чего не выполняете. Десять секунд в заголовке и отказы почти сутки на деле — обман и для людей, и для программ.
- Для срочной разгрузки от робота Google его документация сама предлагает 429 или 503 — но на часы или дни, не навсегда.
Если сервер перегружен по-настоящему и отвечает 503, это другой случай — разбор в статье ошибка 503.
Границы замера
- Одна выборка: главные страницы сайтов Екатеринбурга из OpenStreetMap, по одному запросу из-за рубежа и несколько — из российской сети.
- Лимиты мы не нагружали нарочно: на пять сайтов ушло несколько десятков запросов за час, повторы — с паузой от 20 секунд до 4 минут.
- Chrome — под управлением программы; обычный браузер с человеком мог пройти проверку.
- Настоящих адресов поисковых роботов у нас нет: запрос со строкой YandexBot показывает только реакцию на строку.
- Данные сняты 25.09.2026, повторный запрос — 26.09.2026.
Коротко
- 429 — сервер ограничил частоту запросов; по стандарту это «rate limiting».
Retry-After— обещание: у нас 10 секунд в заголовке обернулись отказами и через 40 минут, и почти через сутки.- Яндекс этот заголовок не учитывает; Google считает 429 серверной ошибкой и замедляет обход всего хоста.
- 5 сайтов Екатеринбурга отдавали 429 с первого запроса, включая robots.txt.
- Владельцу: не лимитировать robots.txt, пропускать проверенных роботов, считать лимит по сайту.
