- 200 means index me, 301 or 308 means I have moved for good, 404 or 410 means I am gone.
- A missing page must return a real 404 or 410, not a 200 with an error message.
- Use 503 with Retry-After for planned downtime, and only for short periods.
- Persistent 5xx and 429 responses cause crawlers to slow down and eventually drop URLs.
- Server logs are the most reliable place to see the codes crawlers actually receive.
Every time a browser or crawler requests a URL, the server replies with a status code. For SEO, that code is the first and most important signal about the URL. Get it wrong and nothing else on the page matters.
2xx: success
- 200 OK: the page exists and can be considered for indexing.
- 204 No Content: success with an empty body. Google treats it as a soft 404.
3xx: redirection
- 301 Moved Permanently: the URL has moved for good. Signals consolidate on the destination.
- 302 Found: a temporary move. The original URL usually stays indexed, although Google may treat a long-standing 302 as permanent.
- 307 Temporary Redirect and 308 Permanent Redirect: the same as 302 and 301 but the request method must not change.
- 304 Not Modified: the content has not changed since the crawler last fetched it. This saves crawl resources and is perfectly healthy.
4xx: client errors
- 404 Not Found: the page does not exist. The URL is dropped from the index after repeated crawls.
- 410 Gone: the page has been deliberately removed. Google treats it much like a 404, sometimes acting a little faster.
- 401 and 403: access denied. The URL is not indexed. Do not use these to throttle crawlers.
- 429 Too Many Requests: rate limiting. Google treats it like a server error and slows down.
- 451: unavailable for legal reasons.
404s are a normal part of the web. They do not harm the rest of the site. They only matter when the missing URL had links, traffic or a sensible replacement.
5xx: server errors
- 500 Internal Server Error and 502 Bad Gateway: something broke. Crawlers back off and retry.
- 503 Service Unavailable: the right code for maintenance. Add a Retry-After header. If it lasts more than a couple of days Google may start dropping URLs.
- 504 Gateway Timeout: an upstream server did not respond in time.
A rise in 5xx responses tells Google your server is struggling, so it reduces crawl rate. Sustained errors lead to deindexing.
Soft 404s
A soft 404 is a page that tells users it does not exist, or has no real content, while returning a 200. Typical causes are empty category pages, out-of-stock products with the content stripped out, internal search results with zero matches, and missing pages redirected in bulk to the homepage. Google detects these and treats them as not found, but they waste crawl activity and muddy your reports. Return the correct code instead.
Choosing the right response
- Page moved permanently: 301 to the closest equivalent.
- Page removed with no replacement: 404 or 410.
- Product temporarily out of stock: keep the page at 200 with useful content.
- Product discontinued: redirect to a direct successor if there is one, otherwise 404 or 410.
- Planned downtime: 503 with Retry-After.
- Geo-blocked or paywalled content: think carefully, because crawlers mostly come from US IP addresses.
Common mistakes
- Custom error pages that return 200.
- Redirecting every 404 to the homepage.
- Using 302 for permanent moves because it is the framework default.
- Returning 403 or 5xx to Googlebot from an overzealous firewall or bot-protection rule.
- Serving a 200 with an error message from a JavaScript app, because the server always returns the app shell.
How to test
- Browser developer tools or curl -I for single URLs.
- A site crawler for response codes at scale.
- Search Console's Page indexing and Crawl stats reports for Google's view.
- Server logs for what bots actually received, including the ones your CDN handled.
The GEO angle
AI crawlers and live-fetch agents are frequently caught by bot protection and served 403s or challenge pages. If an assistant cannot fetch your page at the moment a user asks, it will cite someone else. Check your logs for the status codes returned to AI user agents, not just Googlebot.
Add your title here
This is a paragraph. Writing in paragraphs lets visitors find what they are looking for quickly and easily. Make sure the title suits the content of this text.




