HTTP Status Codes That Actually Matter for Search

On this page
  1. The codes that matter
  2. The traps
  3. Verifying in bulk

A crawler reads the status line before it reads a single byte of your content. Everything downstream — rendering, indexing, ranking — happens only on the 200 branch. Getting the codes right is the cheapest technical work available.

The codes that matter

Code Meaning to a search engine Typical use
200 Real content. Process it. Every page you want indexed
301 Permanently moved. Transfer signals to the target. Permanent URL changes, HTTPS and www consolidation
308 Permanently moved, request method preserved. Same as 301, safer for non-GET
302 Temporarily moved. Keep the original canonical. Maintenance pages, short-lived tests
307 Temporarily moved, method preserved. Same as 302
304 Not modified since last fetch. Conditional requests, saves bandwidth
404 Not found. Drop it eventually. Pages that never existed or are gone
410 Gone deliberately. Drop it sooner. Content you have removed on purpose
429 Too many requests. Slow down. Rate limiting
5xx Server broken. Retry later, crawl less. Never intentional

The traps

Redirect chains. Every hop is a separate fetch. A chain of four wastes crawl budget on three URLs that exist only to point elsewhere, and each hop is an opportunity to lose signal. Point the first URL at the final destination.

Redirecting everything to the homepage. When a removed page redirects somewhere that does not answer what it answered, the engine treats it as a soft 404. Redirect to the closest genuine equivalent or return 404.

Soft 404s. A 200 with “page not found” in the body is worse than a real 404, because the crawler trusts the code and the indexer has to detect the mismatch.

Sustained 5xx. Occasional server errors are handled gracefully. Prolonged ones reduce crawl rate site-wide, and the recovery is slower than the decline.

Trusting a tool over the server. Browser extensions and third-party crawlers cache. curl -I https://example.com/page/ is the ground truth, and it takes two seconds.

Verifying in bulk

For a site of any size, check status codes as a set rather than one at a time. Crawl your own site with a desktop crawler and export every non-200 response, then compare that list against your XML sitemap. Every URL in a sitemap should return 200. Anything else in there is a contradictory signal you are sending on purpose.

To run a complete technical health audit across your headers, robots.txt, and rendering, use the 15-minute diagnostic checklist in Search Engine Basics.

Sources

Tier 1 is a search engine's own documentation or a primary standards document. Tier 2 is a reputable secondary publication or a peer-reviewed paper.

  1. How HTTP status codes, and network and DNS errors affect Google SearchGoogle Search CentralTier 1 source: primary documentation or a standards document
  2. HTTP Semantics (RFC 9110)IETFTier 1 source: primary documentation or a standards document

About the author

Hassan, Editor, Search Engine Basics

Hassan

Editor, Search Engine Basics

  • 8 years of hands-on SEO and technical search work
  • Runs original crawl and log-file experiments on live sites

Hassan has worked in SEO and digital marketing since 2018, running technical audits, content programmes and log-file analysis across law, logistics, medical billing and software client sites. He writes Search Engine Basics from first-hand search data rather than from secondary commentary, and every claim on the site is traced back to a primary source.

Related terms

Back to the technical foundations guide