Reference

HTTP Status Codes

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.

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

CodeIndexablePasses PageRankAction
200YesYesDefault for all live pages
301No (follows)Yes (mostly)Use for permanent moves
302No (may index original)NoUse only for temporary
404No (eventually removed)NoFix internal links; redirect if externally linked
410No (fast removal)NoUse for intentional removal
503No (retried)NoUse for planned downtime only