Guides/HTTP Status Codes for SEO: 2xx, 3xx, 4xx and 5xx Explained
Guide

HTTP Status Codes and SEO: How Google Treats Each Response

Only a 200 goes to indexing. 301 passes the strong canonical signal, 302 does not, redirect chains die at 10 hops, and 503 is the right code for maintenance — not 404 or 5xx.

Only a 200 response is sent to indexing, and even then indexing is not guaranteed. Every other status changes what Google does with the URL: 301 passes the strong permanent canonical signal to the target, 302 does not, redirect chains are followed for at most 10 hops before Google gives up, and 4xx/5xx responses eventually drop the URL from the index. Serving the correct status code is one of the highest-leverage technical decisions on a site, because the code is the first thing Googlebot reads and it governs everything downstream.

2xx — success

A 200 OK is the only response that proceeds to the indexing pipeline, and indexing is still not guaranteed on a 200 — content quality and canonicalization decide the rest. Two edge cases: 201/202 cause Google to wait a limited time before proceeding, and 204 No Content yields nothing to index. The trap in the 2xx range is the soft 404 — a 200 returned for a page whose content is empty or says "not found." Google detects the mismatch, refuses to index it, and keeps recrawling it because the 200 invites return visits. This has its own detailed treatment in our soft 404 guide; Crawlinx flags it as status.soft_404.

3xx — redirects

Redirects are followed, but not all pass ranking signals equally.

Code Signal to target Use
301 / 308 Strong, permanent — canonical signal consolidates onto the target Permanent moves
302 / 303 / 307 Weak, temporary — source may stay indexed Genuinely temporary redirects

301 versus 302

This is the most consequential redirect distinction in SEO. A 301 (or its HTTP/2 equivalent 308) tells Google the move is permanent: it follows the redirect and consolidates the source URL's signals onto the target, treating the target as the canonical. A 302 (or 303/307) says the move is temporary: Google follows it but keeps the source URL as the canonical candidate and may leave it indexed.

The practical rule is blunt. If a URL has moved for good — a migration, a merged page, an HTTP-to-HTTPS switch — use 301. Using 302 for a permanent move withholds the consolidation you want and can leave the old URL competing in the index. Reserve 302/307 for redirects that will genuinely be reversed. Crawlinx flags redirects encountered during the crawl as redirect.single so you can confirm the type matches the intent.

Redirect chains and the 10-hop limit

Google follows at most 10 redirect hops in a single crawl attempt, then reports an error and stops. Well before that ceiling, chains cost you: each hop is a separate fetch that dilutes the canonical signal and wastes crawl budget, because Googlebot follows them one at a time across crawls. A chain like /a → /b → /c → /d should be collapsed to a single /a → /d. Redirect loops are fatal — Google gives up and the URL never resolves. Crawlinx flags chains of multiple hops as redirect.chain. The crawl-budget cost of long chains is covered in our crawl budget guide.

A note on non-server redirects: a meta-refresh with a 0 delay is treated as permanent, a delayed one as temporary, and a JavaScript location redirect is only honored if the render succeeds — server-side 301 is the most reliable option by a wide margin.

4xx — client errors

Content behind a 4xx (400, 401, 403, 404, 410, 411 — but not 429) is unused by Google. A previously indexed URL that starts returning a 4xx is removed from the index, and Google's crawl frequency for it decays over time.

404 versus 410

Both mean the resource is gone, and Google treats them as the same removal — a 404 Not Found and a 410 Gone both drop the URL. The difference is intent and speed: 410 explicitly says "permanently gone," and Google may act on it slightly faster than a 404, which leaves open the possibility the page returns.

The decision is simple:

Neither is "better" for preserving value — both remove the URL. Choose 410 only to signal deliberate permanence. Crucially, do not redirect every missing page to the homepage to avoid a 404: Google usually reclassifies that as a soft 404, worse than an honest error. A real 404/410 page can still be user-friendly — just make sure the header carries the status. Crawlinx flags client-error responses as status.4xx.

5xx — server errors and 429

A 5xx (500, 502, 503) is ignored for indexing; Google slows its crawl and retains indexed URLs for a while, then drops them if the errors persist. 429 Too Many Requests is treated as a server error rather than a normal 4xx. Network failures, DNS errors, and timeouts are all treated like 5xx.

503 for maintenance

When a site or page is temporarily down — a deploy, a migration, planned maintenance — return 503 Service Unavailable, optionally with a Retry-After header. 503 tells Google "come back later" and preserves the indexed URL. The mistakes here are damaging:

Crawlinx flags server errors as status.5xx and any non-200 primary response as status.non_200.

How Crawlinx detects status-code problems

Crawlinx records the response status for every URL it fetches and flags the ones that hurt indexing: client errors (status.4xx), server errors (status.5xx), any non-200 primary response (status.non_200), and the 200-but-empty soft 404 (status.soft_404). It tracks redirect behaviour too — single hops (redirect.single) and multi-hop chains that waste crawl budget (redirect.chain). Run these within the technical SEO audit checklist.

Takeaway

The status code is the first thing Google reads, so make it truthful. Serve 200 only for real content; use 301 for permanent moves and 302 only for genuinely temporary ones; collapse redirect chains well under the 10-hop limit; return 404 or 410 for gone pages instead of redirecting them to the homepage; and use 503 for maintenance — never a 200, a 4xx, or a 5xx on robots.txt.

Related
Soft 404s Explained: What They Are and How to Fix Them Crawl Budget: What It Is and How to Manage It Robots.txt Guide: How Robots.txt Works Technical SEO Audit Checklist status.4xx status.5xx status.non_200 status.soft_404 redirect.chain redirect.single

Audit your own site — free

77 checks, internal PageRank, render-diff. No signup, results in ~30s.

Scan your site →