HTTP status codes: what 200, 301, 404, and 500 mean for SEO
Understand how Google handles 2xx, redirects, 4xx, 429, and 5xx responses, then diagnose soft 404s, redirect chains, crawl slowdowns, and indexing loss.
HTTP status codes are three-digit numbers your server returns to tell a browser (or crawler) what happened with a request.
They matter for SEO because they directly affect crawlability and indexing.
The status code families
- 2xx: Success (200 = OK)
- 3xx: Redirection (301 = moved permanently, 302 = found)
- 4xx: Client errors (404 = not found, 403 = forbidden)
- 5xx: Server errors (500 = internal server error, 503 = service unavailable)
Crawlers react differently to each family.
Status codes you should care about most
- 200 OK: the response succeeded, but indexing is not guaranteed and error-like content may still be treated as a soft 404
- 301 Moved Permanently: use this for permanent URL changes
- 302 Found: temporary redirect; use sparingly
- 404 Not Found: page doesn’t exist; keep an eye on broken links
- 410 Gone: page is intentionally unavailable; Google generally processes ordinary 4xx responses, including 404 and 410, in the same way
- 429 Too Many Requests: the server is overloaded or rate-limiting; Google treats it like a server error and may slow crawling
- 500 Internal Server Error: server broke; fix immediately
- 503 Service Unavailable: temporary unavailability; use it during a genuine outage and restore a successful response promptly
Redirect Semantics Matter
For Google Search, 301 and 308 are strong signals that the destination should become canonical; 302 and 307 are weak signals because the move is described as temporary. At the HTTP layer, 307 and 308 preserve the request method unambiguously, while user agents may change a POST to GET after 301 or 302.
Keep redirect paths short and point internal links directly to the final URL. Google’s general web crawler may follow multiple hops, but long chains waste requests, increase latency, and create more places for a loop or broken target.
Diagnose by Pattern, Not One URL
Use server logs, crawl data, and Search Console to separate these cases:
| Pattern | Likely meaning | First response |
|---|---|---|
| A few intentional 404s | Normal removals | Remove internal links and sitemap entries |
| Many new 404s after a release | Routing, build, or migration failure | Compare old-to-new URL maps and deployment output |
| 200 pages reported as soft 404 | Thin, empty, or error-like body | Return the correct 404/410 or publish substantive content |
| Rising 429/5xx across templates | Capacity, origin, CDN, or application incident | Stabilize service before requesting recrawls |
| Redirect chains or loops | Conflicting migration and canonical rules | Collapse to one final destination |
Google’s crawler status-code documentation explains that persistent 5xx responses can reduce crawl rate and eventually remove affected URLs from the index. A maintenance page returning 200 can be mistaken for normal content, so the response code and body must agree.
The protocol meanings themselves are defined by RFC 9110. SEO tools should report both the final response and every redirect hop rather than reducing a chain to “page works.”
How to check status codes
Use our Link Checker to scan your site for broken links and status issues. Or check individual URLs in the browser dev tools.
Soft 404s are a special case: they return 200 OK but show error content. These confuse crawlers. Use our Soft 404 Detection tool to find them.
Link back to the glossary
Quick glossary entry: HTTP status codes.
Related wiki terms
Q&A
Is every 404 bad for SEO?
No. 404s are normal for removed pages. The problem is broken links pointing to 404s, or soft 404s that return 200 OK but show error content.
Should I use 301 or 302 redirects?
Use 301 or 308 for a permanent move and 302 or 307 for a temporary one. Google treats permanent redirects as a strong canonical signal and temporary redirects as a weak signal; choose the code that matches the intended duration.
What do I do about 5xx errors?
Fix server issues as soon as possible. 5xx errors prevent crawling and can hurt rankings if persistent.