Skip to content

Glossary 429 error

What Is a 429 Error (Too Many Requests)?

  • Technical SEO
Definition

A 429 error (Too Many Requests) is the HTTP status code a server sends to a client that has made too many requests within a given amount of time. It applies to that client, not to the whole server. The response can include a Retry-After header saying how long to wait before trying again.

A door on the right with an orange hourglass at its upper right; on the left, a queue of six envelopes waiting in front, the first three in orange, on a dark blue ground.
On this page 12
  1. Origin of the term
  2. How it works
  3. Types and variants
  4. Examples
  5. How to measure it
  6. Advantages and disadvantages
  7. How it differs from related concepts
  8. Criticism and limits
  9. How to apply it, step by step
  10. Best practices
  11. Common mistakes
  12. How this entry was made
In brief

429 error: the server slows down a client that has sent too many requests. Why Google treats it like a 5xx, and how to use it without losing URLs.

A door on the right with an orange hourglass at its upper right; on the left, a queue of six envelopes waiting in front, the first three in orange, on a dark blue ground.

Origin of the term

The 429 was not part of the early HTTP specifications. RFC 6585, "Additional HTTP Status Codes", published by the IETF in April 2012, introduced it together with codes 428, 431 and 511. The mechanism it describes is rate limiting: capping how many requests a server accepts from each client. RFC 9110 from 2022 does not redefine the 429, so RFC 6585 is still the reference.

How it works

Something counts each client's requests and, once the limit is passed, stops serving the page and answers 429 until the waiting time is over. That something can be the application itself, an API gateway or a CDN with a firewall.

The RFC leaves open how the client is identified and how requests are counted. The limit can apply per resource, across the whole server or across a set of servers, and the client can be recognised by its credentials or by a cookie. According to MDN, limits are most often based on the client's IP address. Two more rules from the RFC: a 429 response must not be cached, and servers are not required to use it at all; under attack, dropping the connection can make more sense than answering every request.

For Google, the 429 is the exception among client errors. Its status code documentation treats all 4xx codes the same, except 429: with a 404 or a 403, the URL is not indexed, and if it was indexed it gets removed. A 429, by contrast, signals an overloaded server, and "it's considered a server error". That gives it the effects of a 5xx:

  • Google's crawlers slow down, and according to the guide to reducing crawl rate the slowdown covers the whole hostname, including URLs that respond normally.
  • Indexed URLs are kept, "but eventually dropped" if the error continues.
  • The crawl rate goes back up once the errors drop.

Google recommends 429, together with 500 and 503, to slow its crawling for a few hours or one to two days. It advises against 403 and 404 for that purpose.

Does your CDN rule slow crawlers down with a 429, or block them with a 403?

Types and variants

A 429 on the robots.txt file follows its own rules. Google's robots.txt documentation treats any 4xx as if the file did not exist, except 429. Search Console Help on the Crawl Stats report lists "HTTP 429/5XX" among the unsuccessful robots.txt responses. A 429 there counts as a connection problem.

For AI crawlers, the documentation is missing. The crawler pages of OpenAI, Anthropic and Perplexity, accessed 12.11.2026, do not say how their bots react to a 429 or to Retry-After. Anthropic does support the Crawl-delay directive in robots.txt. To control them, you have robots.txt and, if you don't want to rely on the crawler's goodwill, blocking at the server. And pay per crawl does not use 429 at all: it answers with a 402 and asks for payment.

Examples

RFC 6585 gives this example itself, for a site that allows 50 requests per hour for each logged-in user:

HTTP/1.1 429 Too Many Requests Content-Type: text/html Retry-After: 3600

The 3600 is in seconds, so one hour.

A CDN rule meant for scrapers can also catch Googlebot if it crawls many filter URLs in a short time. If the rule answers 429, Google crawls the whole host more slowly. If it answers 403, Google concludes those URLs do not exist.

How to measure it

To see a URL's status code, a single terminal request is enough: curl -I https://www.example.com/. The first line shows the code, followed by Retry-After if the server sends it. If the limit depends on IP address or user agent, test from the same origin as the affected client.

What waiting time does your server put in Retry-After?

In Google Search Console, the Crawl Stats report shows the responses Google received by type, plus host status, including robots.txt availability. Your server logs show who was limited: which agent, which IP and how many requests.

Advantages and disadvantages

A 429 says exactly what is going on: too many requests, not a missing page or a missing permission. For Google, that means slowing down instead of dropping URLs, and with Retry-After the server can give a concrete wait time.

The cost is the cost of slower crawling. Google warns that with less crawling it discovers fewer new pages and refreshes existing ones less often, so prices and product availability may take longer to show up in Search. If the 429 lasts for days on the same URLs, they can drop out of the index. And a badly tuned IP limit also blocks people who share a network.

How it differs from related concepts

CodeWhat the server saysWhat it is for
429 Too Many RequestsThis client has sent too many requestsLimiting one client; for Google, slowing crawling
503 Service UnavailableI can't serve anyone right nowMaintenance and overload of the whole server
403 ForbiddenI understand the request but won't fulfil itDenying access; for Google it works like a 404 and does not slow crawling

Source: RFC 6585 (April 2012), section 4; RFC 9110 (June 2022), sections 15.5.4 and 15.6.4; Google's status code documentation (accessed 12.11.2026).

Criticism and limits

Google's sources disagree on how long a deliberate 429 can last. The guide to reducing crawl rate, last updated 6 October 2026, advises against going beyond "1-2 days". Search Console Help on the Crawl Stats report, which shows no date, says not to return 503 or 429 for "more than two or three days". On removal from the index, Google's page on crawling errors, last updated 18 December 2025, says that returning 503 or 429 for more than two days "will cause Google to drop those URLs from the index", while the guide to reducing crawl rate only says the URL may be dropped after multiple days.

The February 2023 Google blog post that made the 429 exception widely known also recommended reducing crawl rate in Search Console. That tool was retired on 8 January 2024, as Google announced in November 2023.

There is also no standard for warning clients before they hit the limit. Headers such as X-RateLimit-Remaining are each service's own convention, and the IETF's RateLimit header fields are still a draft as of November 2026.

How to apply it, step by step

  • Use your logs to find which agent, IP and URLs are causing the load.
  • Before throttling something that claims to be Googlebot, verify it with a reverse DNS lookup or against the IP ranges Google publishes.
  • Return 429 only to the excess requests, not to the whole site, and add Retry-After.
  • Check which status code your CDN's rate limiting rule returns. In Cloudflare you choose a value between 400 and 499, and the default is 429.
  • Keep robots.txt outside the limit.
  • Lift the limit on Googlebot after one or two days and check the Crawl Stats report.
  • If you are the one receiving the 429, as an API client, wait for the Retry-After time before repeating the request.

Best practices

  • To slow Googlebot down, use 429, 503 or 500, never 403 or 404.
  • If the load comes from filter or calendar URLs, fix it in the site structure; a 429 only buys time.

Common mistakes

  • Rate limiting with 403 in the CDN: Google reads it as "this URL does not exist", not as "slow down".
  • Returning 429 on robots.txt.
  • Keeping the limit on Googlebot in place for weeks.
  • Setting a per-IP limit so low that it blocks users on the same network.

How this entry was made

This entry was written in November 2026 with AI assistance. The facts come from RFC 6585 and RFC 9110, Google's documentation on status codes, crawl rate, robots.txt and crawler verification, Search Console Help, Google's blog, MDN, and documentation from Cloudflare, OpenAI, Anthropic, Perplexity and the IETF. It was reviewed before publication and contains no client data.

Manuel Riveiro Rodriguez CEO & Digital Strategist

A technical audit covers this and everything else in one pass.

Request an audit

Frequently asked

How long does a 429 error last?

As long as the server decides. If it sends Retry-After, that is the waiting time, in seconds or as a date. The RFC sets no duration.

Is a 429 error my fault?

Partly. The server counted too many requests from your connection, your account or your key. On a shared network, such as an office or a VPN, other people may have triggered it.

Can I use a 429 to slow Googlebot down?

Yes. Google recommends it, along with 500 and 503, for a few hours or one to two days. Crawling slows down for the whole host and picks up again once the errors stop.

Do AI crawlers respect a 429?

That is not documented. The crawler pages of OpenAI, Anthropic and Perplexity do not mention 429. To control them, you have robots.txt and, if you don't want to rely on the crawler's goodwill, blocking at the server.

What should I do if an app gives me a 429 error?

Wait a few minutes and try again, without repeating the action in a loop, because every attempt counts. If it persists, the limit belongs to the service and only its support team can review it.

Sources

  1. IETF, RFC 6585 "Additional HTTP Status Codes", April 2012, sections 4 and 7.2.
  2. IETF, RFC 9110 "HTTP Semantics", June 2022, sections 15.5.4 and 15.6.4.
  3. Google, "How HTTP status codes affect Google's crawlers", last updated 4 February 2026.
  4. Google, "Reduce the Google crawl rate", last updated 6 October 2026.
  5. Google, "How Google interprets the robots.txt specification", last updated 23 October 2026.
  6. Google, "Verify requests from Google crawlers and fetchers", last updated 20 March 2026.
  7. Search Console Help, "Crawl Stats report".
  8. Google Search Central Blog, Gary Illyes, "Don't use 403s or 404s for rate limiting", 17 February 2023.
  9. Google Search Central Blog, "Upcoming deprecation of Crawl Rate Limiter Tool in Search Console", 24 November 2023.
  10. MDN, "429 Too Many Requests", last modified 22 June 2026.
  11. Cloudflare, "Rate limiting parameters".
  12. Cloudflare, "What is Pay Per Crawl?".
  13. OpenAI, "Overview of OpenAI Crawlers".
  14. Anthropic, "Does Anthropic crawl data from the web, and how can site owners block the crawler?".
  15. Perplexity, "Perplexity Crawlers".
  16. IETF, draft "RateLimit header fields for HTTP", version 11, expires 24 November 2026.
  17. Google Search Central, "Troubleshoot Google Search crawling errors", last updated 18 December 2025. Source for the more than two days of 503 or 429.