4xx Client errors

HTTP 429 Too Many Requests

HTTP 429 Too Many Requests means the client hit a rate limit and should wait before trying again.

What 429 Too Many Requests means

A 429 protects login forms, contact forms and APIs from abuse and accidental loops. A good 429 includes a Retry-After header (seconds or a date) and RateLimit headers so clients can back off.

Common causes

  • express-rate-limit or a gateway limit was exceeded.
  • A client retrying in a tight loop without backoff.
  • Many users behind one IP address (offices, mobile carriers).

How to fix or use it

Rate-limit public POST routes, send Retry-After, and retry on the client with exponential backoff. Behind a proxy, set app.set("trust proxy", 1) so limits use the real client IP.

Express (Node.js) example

import rateLimit from 'express-rate-limit';
app.use('/api/contact', rateLimit({ windowMs: 15 * 60 * 1000, limit: 5, standardHeaders: 'draft-7', legacyHeaders: false }));

SEO impact

Google slows its crawl when it receives 429 or 503. Short bursts are fine; long periods of 429 on public pages can drop them from the index.

Other 4xx Client errors codes