HTTP status codes
HTTP status codes are three-digit responses servers return for every request, grouped into five classes: 1xx informational, 2xx success, 3xx redirection, 4xx client errors, 5xx server errors. Googlebot reads them on every fetch to decide whether to index, recrawl, drop, or back off.
Long definition
Every URL Googlebot fetches returns a status code, and that single number drives the indexing decision more than most on-page signals. The five classes map roughly to crawler behavior:
- 1xx (informational) — rare in SEO contexts.
100 Continueand101 Switching Protocolsexist for protocol negotiation, not content. - 2xx (success) —
200 OKmeans the URL is canonical-eligible.204 No Contentis treated as low-value but not an error. - 3xx (redirection) —
301,302,307,308. Each carries different signals about permanence and HTTP method preservation.304 Not Modifiedis a bandwidth optimization for unchanged resources. - 4xx (client errors) —
404 Not Found,410 Gone,403 Forbidden,451 Unavailable for Legal Reasons,429 Too Many Requests. These trigger eventual deindexing, with timing depending on the specific code. - 5xx (server errors) —
500 Internal Server Error,502 Bad Gateway,503 Service Unavailable,504 Gateway Timeout. Googlebot retries with exponential backoff and pauses indexing if errors persist.
The codes that move SEO needles in practice: 200 (the baseline), 301 (permanent redirect, the canonical consolidation signal), 302 (temporary), 304 (saves crawl budget on unchanged resources), 404 and 410 (deindexing, with 410 faster), 451 (legal removal), and the 5xx family (which can knock entire sites out if sustained).
The full registry is maintained by IANA per RFC 9110. Most CDNs and frameworks pass through the originating status, but middleware can rewrite — always verify with curl -I or a server log, not just browser DevTools.
Common misconceptions
- "All 4xx codes are equivalent." They aren't.
404says "not found right now" — Google retries before deindexing.410says "intentionally gone" — Google deindexes faster.403says "forbidden" — Google may treat it like401and back off without deindexing. Choose the code that matches your intent. - "5xx errors get pages deindexed instantly." A few transient 5xx responses don't move the needle. Sustained 5xx over days does. Googlebot is designed to absorb infrastructure blips without nuking your index.
- "304 Not Modified hurts SEO." The opposite.
304tells Googlebot the resource hasn't changed, saves a body fetch, and frees crawl capacity for URLs that have changed. It's a positive signal for large sites. - "You can fix indexing problems by returning the right status code." Status codes are necessary, not sufficient. A
200on a page with thin or duplicate content still won't rank — and a clean301chain still loses equity at every hop.
Continue exploring