429 Too Many Requests — как исправить ошибку

429 Too Many Requests означает, что сервер получил слишком много запросов за короткий промежуток времени и временно включил ограничение частоты запросов. Это называется rate limiting. Сервер также может вернуть заголовок Retry-After, чтобы показать, сколько нужно подождать перед новой попыткой.

Ошибка 429 может появляться у обычного посетителя сайта, у парсера, у API-клиента, у WordPress-плагина, у Cloudflare, у скрипта на сервере или у приложения, которое делает слишком много запросов слишком быстро.

Quick Fix

  • Подождите и повторите попытку позже, особенно если сервер вернул Retry-After.
  • Закройте лишние вкладки, скрипты, боты и расширения, которые могут слать много запросов.
  • Очистите cookies и кэш браузера.
  • Отключите VPN, прокси или автоматизацию для проверки.
  • Если это ваш сайт, проверьте rate limit, firewall, Cloudflare и логи сервера.
  • Если это API, добавьте паузы между запросами, exponential backoff и обработку 429.

Что значит 429 Too Many Requests

HTTP-статус 429 Too Many Requests означает, что клиент отправил слишком много запросов за определённый период времени. MDN описывает это как типичную ситуацию rate limiting, когда сервер просит клиента замедлиться.

Если сервер добавляет заголовок Retry-After, он указывает, сколько нужно подождать перед новой попыткой. Этот заголовок официально используется в том числе и для ответа 429.

Почему появляется ошибка 429

1. Слишком много запросов с одного IP

Это самая частая причина. Сайт, API, сервер или CDN ограничивают число запросов от одного IP-адреса за минуту, секунду или другой интервал времени.

2. Сайт защищается от ботов и скриптов

429 часто появляется, когда сервер считает поведение подозрительным: слишком быстрые обновления страницы, массовый парсинг, автоматические проверки, многократные обращения к API или aggressive crawling.

3. У API есть жёсткий лимит

Многие API специально ограничивают количество запросов. Например, Cloudflare пишет, что при превышении лимита API-запросов дальнейшие вызовы блокируются и возвращают HTTP 429 на определённое время.

4. Плагин, приложение или скрипт делает слишком много фоновых запросов

На WordPress это может быть security plugin, импортёр, API-интеграция, cron-задача или внешний сервис. На обычном сайте — чат-виджет, аналитика, мониторинг или неудачный JavaScript-код.

5. Cloudflare или WAF включили rate limiting

Cloudflare прямо указывает, что 429 возвращается, когда клиент превышает установленные rate-limiting rules. Для WAF rate limiting у Cloudflare код 429 является значением по умолчанию для блокировки.

6. Пользователь слишком часто обновляет страницу

Такое тоже бывает. Если много раз подряд перезагружать страницу, открывать много вкладок или запускать автоповтор, сервер может временно ограничить доступ.

7. Ошибка в клиентской логике

Если приложение не умеет корректно обрабатывать лимиты и сразу повторяет запросы после ошибки, оно только усугубляет проблему. MDN и Cloudflare рекомендуют учитывать Retry-After и замедлять повторные запросы.

429 Too Many Requests — что делать обычному пользователю

  1. Подождите несколько минут и попробуйте снова.
  2. Если есть VPN, отключите его и проверьте ещё раз.
  3. Закройте лишние вкладки сайта.
  4. Очистите кэш и cookies браузера.
  5. Попробуйте открыть сайт с другой сети, например через мобильный интернет.
  6. Если ошибка остаётся долго, свяжитесь с владельцем сайта или поддержкой сервиса.

Если сервер прислал Retry-After, лучше ориентироваться именно на это значение и не бомбить страницу новыми попытками раньше времени.

429 Too Many Requests — что делать владельцу сайта

1. Проверьте, кто именно отдаёт 429

Сначала важно понять источник: это ваш origin server, приложение, плагин, Cloudflare, API-шлюз, WAF или сторонний сервис. Без этого легко искать проблему не там.

2. Проверьте логи

Посмотрите access log, error log, логи приложения, firewall, WAF, reverse proxy и Cloudflare events. Обычно там видно, какие URL, IP, user-agent или токены упираются в лимит.

3. Проверьте rate limiting rules

Если на сайте есть ручные ограничения по запросам, убедитесь, что они не слишком агрессивные. На Cloudflare rate limiting можно настраивать отдельно, а код блокировки по умолчанию там как раз 429.

4. Ищите источник лишних запросов

Это может быть бот, парсер, cron, импорт, health check, сломанный плагин, фронтенд-скрипт или внешний сервис. Если не убрать источник нагрузки, ошибка будет повторяться.

5. Проверьте WordPress-плагины и интеграции

Особенно часто 429 вызывают security plugins, login protection, XML-RPC ограничения, REST API ограничения, мониторинг, интеграции с внешними API и тяжёлые бэкапы.

6. Добавьте корректную обработку Retry-After

Если вы пишете клиент, парсер или API-интеграцию, после 429 нужно делать паузу, читать Retry-After и использовать backoff, а не бесконечные мгновенные повторы. Cloudflare в своих примерах обработки rate limiting рекомендует именно такой подход.

Как исправить 429 Too Many Requests в WordPress

  1. Отключите security plugins и антибот-защиту для проверки.
  2. Проверьте, не перегружает ли сайт XML-RPC, REST API или wp-cron.
  3. Временно отключите внешние API-интеграции.
  4. Проверьте Cloudflare rate limiting rules.
  5. Проверьте, не ломает ли сайт плагин кеша, мониторинга или защиты логина.
  6. Посмотрите access log и найдите URL, которые чаще всего упираются в 429.

Как исправить 429 Too Many Requests в API

  1. Прочитайте документацию API и узнайте точный лимит.
  2. Ограничьте частоту запросов на стороне клиента.
  3. Добавьте очередь запросов.
  4. Используйте exponential backoff.
  5. Читайте и уважайте заголовок Retry-After.
  6. Не запускайте параллельно слишком много однотипных запросов.

Для Cloudflare API это особенно важно: они прямо указывают, что при превышении лимита запросы будут блокироваться на время и вернут 429.

429 и Cloudflare — что проверять

Если используется Cloudflare, проверьте rate limiting rules, WAF, custom rules и API limits. Cloudflare отдельно подтверждает, что 429 возвращается как для rate limiting на уровне сайта, так и для превышения некоторых API-лимитов.

Чем 429 отличается от 403, 503 и 504

  • 403 Forbidden — доступ запрещён по правилам доступа.
  • 429 Too Many Requests — запросов слишком много за короткое время.
  • 503 Service Unavailable — сервер временно не готов обрабатывать запросы.
  • 504 Gateway Timeout — один сервер слишком долго ждал ответа от другого.

Как не допустить 429 Too Many Requests в будущем

  • Ограничивайте частоту запросов на стороне клиента.
  • Используйте кэш вместо постоянных повторных обращений.
  • Настраивайте API-клиенты с backoff и очередями.
  • Проверяйте WordPress-плагины, которые создают лишний трафик.
  • Не ставьте слишком жёсткие rate limits без тестов.
  • Следите за логами и всплесками автоматических запросов.

FAQ

Что означает 429 Too Many Requests?

Это значит, что клиент отправил слишком много запросов за определённый промежуток времени, и сервер временно включил rate limiting.

Что делать, если сервер вернул Retry-After?

Нужно подождать именно столько, сколько указано в заголовке Retry-After, и только потом повторять запрос.

429 — это проблема у меня или у сайта?

Может быть и так, и так. Иногда это из-за слишком активного клиента, а иногда из-за слишком жёстких лимитов или неверной настройки защиты на сайте.

Может ли Cloudflare вызывать 429?

Да. Cloudflare использует 429 для rate limiting и для ряда API-лимитов.

Поможет ли просто обновлять страницу снова и снова?

Обычно нет. Это часто только продлевает блокировку, потому что сервер продолжает видеть слишком много запросов.

Вывод

429 Too Many Requests почти всегда связан с тем, что клиент, скрипт, бот, приложение или IP отправляет слишком много запросов за короткое время. Для обычного пользователя лучшее решение — подождать, не делать лишних повторов и проверить VPN, браузер и сеть.

Для владельца сайта главное — найти источник лишнего трафика, проверить rate limiting, firewall, Cloudflare, плагины и логи. Если это API, нужно обязательно уважать лимиты и корректно обрабатывать Retry-After.

Ответить

Ваш адрес email не будет опубликован. Обязательные поля помечены *