HTTP Status Codes
Last updated
HTTP status codes are three-digit numbers servers send in response to a request. They tell the browser (or crawler) what happened: whether the request succeeded, where to find the resource, or what went wrong. Understanding them is essential for diagnosing crawl and indexing problems.
2xx — Success
The request was received and processed.
200 OK
The standard success response. The page was found and returned correctly. All crawlable, indexable pages should return 200.
204 No Content
The request succeeded but there is no body to return. Rarely relevant for HTML pages; more common in APIs.
3xx — Redirects
The resource has moved. The browser or crawler should follow to the new location.
301 Moved Permanently
The resource has moved permanently to a new URL. The correct redirect for site migrations, URL changes, and consolidating duplicate content. Google transfers most (not all) PageRank through 301s. Use for permanent moves.
302 Found (Temporary Redirect)
The resource has temporarily moved. Google may not transfer PageRank and may continue to index the original URL. Use only for genuinely temporary redirects — A/B tests, maintenance pages, geo-based routing. Using 302 when you mean 301 is a common mistake that leaves link equity split.
307 Temporary Redirect
Same semantics as 302 but preserves the HTTP method (GET stays GET, POST stays POST). Preferred over 302 for temporary redirects in modern implementations.
308 Permanent Redirect
Same semantics as 301 but method-preserving. The HTTP/1.1 equivalent of 301 with strict method preservation.
Redirect chains
A redirect chain is when URL A redirects to B, which redirects to C. Google follows chains but each hop wastes crawl budget and slightly dilutes PageRank. Chains of three or more hops are worth fixing. Audit with Screaming Frog or Ahrefs Site Audit.
Redirect loops
URL A redirects to B, which redirects back to A. Results in a crawl error. Browsers show “too many redirects.” Fix the chain logic.
4xx — Client errors
The request could not be completed because of a problem with the request itself.
404 Not Found
The requested URL does not exist on this server. Google will eventually drop 404 pages from its index. Links pointing to 404 pages pass no value. Fix broken internal links; redirect externally-linked 404s to the most relevant live page.
410 Gone
The resource has been permanently removed and will not return. Google deindexes 410 pages faster than 404s. Use 410 when you intentionally remove a page and want fast deindexing.
401 Unauthorised
The request requires authentication. Crawlers cannot access pages behind login walls unless explicitly granted access. Correct for paywalled content you do not want indexed.
403 Forbidden
The server understood the request but refuses to authorise it. Often caused by misconfigured server rules blocking Googlebot. Confirm the right pages are not accidentally blocked.
429 Too Many Requests
Rate limiting. The server is throttling requests. Can cause crawl interruptions on large sites if the crawl rate is too high. Adjust via Google Search Console crawl rate settings.
5xx — Server errors
The server encountered an error and could not complete the request.
500 Internal Server Error
A generic server-side error. Googlebot will retry. Sustained 500s cause pages to drop from the index. Investigate server logs immediately.
503 Service Unavailable
The server is temporarily unavailable — maintenance, overload, or deployment in progress. Google treats 503 as temporary and will retry. Use during planned downtime with a Retry-After header to signal when to return. Do not return 503 for extended periods.
504 Gateway Timeout
The server acting as a gateway did not receive a timely response from an upstream server. Usually an infrastructure or load issue.
Soft 404s
A soft 404 is a page that returns a 200 status code but contains no meaningful content — “page not found” messages, empty search results, thin auto-generated pages. Google identifies these algorithmically and may deindex them. Google Search Console flags them in the Coverage report.
Fix by returning the correct status code (404 or 410) for pages with no real content, or by improving the content so the page earns its 200.
Less common codes worth knowing
418 I’m a Teapot
Originally an April Fools RFC (RFC 2324, 1998), 418 was preserved in the HTTP spec when there were proposals to remove it — the community voted to keep it. Some servers use it to reject requests that are clearly not HTTP (bots trying HTTP endpoints with non-HTTP protocols), and it appears occasionally as a deliberate refusal signal. It has no SEO implications but is in the spec.
422 Unprocessable Content
The server understood the request and the content type is valid, but the body contains semantic errors — commonly returned by APIs when form submissions or JSON payloads fail validation. Rarely encountered for HTML pages; more relevant when crawling form-heavy or API-driven sites.
425 Too Early
Indicates the server is unwilling to process a request sent with early data (0-RTT in TLS 1.3) due to replay attack risk. An edge case in SEO crawling; Googlebot does not use 0-RTT, so this will not appear in normal crawls.
426 Upgrade Required
The server refuses to process the request using the current protocol and requires an upgrade (typically to HTTPS or a newer HTTP version). Correctly configured servers should redirect to HTTPS via 301 rather than returning 426.
431 Request Header Fields Too Large
The server refuses the request because one or more request header fields are too large. Can occur when crawlers or browsers send an excessive number of cookies or very long URLs. On large e-commerce sites with aggressive cookie use, this can occasionally block crawlers.
451 Unavailable For Legal Reasons
The resource is unavailable due to a legal demand — a court order, DMCA takedown, or government restriction. Named after the Ray Bradbury novel. Relevant for publishers: Google treats 451 as a signal that the page is legally restricted in a given jurisdiction rather than genuinely gone, and may handle it differently from 404 in terms of deindexing. If content is removed for legal reasons, 451 is more accurate than 404.
511 Network Authentication Required
The client must authenticate to gain network access — typical of captive portal pages (hotel Wi-Fi login screens). Not relevant for public web pages but may appear in crawl logs if a crawler encounters a network with a captive portal.
SEO implications at a glance
| Code | Indexable | Passes PageRank | Action |
|---|---|---|---|
| 200 | Yes | Yes | Default for all live pages |
| 301 | No (follows) | Yes (mostly) | Use for permanent moves |
| 302 | No (may index original) | No | Use only for temporary |
| 404 | No (eventually removed) | No | Fix internal links; redirect if externally linked |
| 410 | No (fast removal) | No | Use for intentional removal |
| 503 | No (retried) | No | Use for planned downtime only |