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.
