Free SEO audit for new clients — claim yours
Home/Blog/Technical SEO/HTTP Status Codes: An SEO Guide
Technical SEO

HTTP Status Codes: An SEO Guide

HTTP Status Codes: An SEO Guide
Table of contents
  1. Key Takeaways
  2. What Are HTTP Status Codes?
  3. How Google Handles the Codes That Matter
    1. 2xx: success and soft 404s
    2. 3xx: redirects
    3. 4xx: client errors
    4. 5xx and 429: server errors
  4. How to Check Status Codes
  5. How to Prioritise Status Code Fixes: Step by Step
  6. Common Mistakes
  7. Related Guides
  8. Frequently Asked Questions
    1. Which HTTP status code is best for SEO?
    2. Is 404 or 410 better for removed pages?
    3. Do 404 errors hurt my rankings?
    4. How should I take my site offline for maintenance?
    5. What is a soft 404?
    6. How many redirects will Googlebot follow?
  9. Conclusion
  10. References

Every time a browser or crawler requests a URL, the server answers with a three-digit HTTP status code before it sends anything else. That small number tells Googlebot whether the page exists, has moved, is temporarily unavailable or is gone for good, and Google adjusts crawling and indexing accordingly.

Most of the time you never see these codes. But when they are wrong (a key page returning a 404, a migration built on temporary redirects, or a server throwing intermittent 500 errors) the effect on organic traffic can be immediate and severe.

This guide explains the status codes that matter for SEO, how Google treats each one according to its own documentation, how to check them, and how to prioritise fixes.

Key Takeaways

  • Status codes fall into five classes: 1xx informational, 2xx success, 3xx redirection, 4xx client errors and 5xx server errors.
  • Only 2xx pages can be indexed; a 200 that shows an error message becomes a "soft 404".
  • 301 and 308 are strong signals that the target should be canonical; 302 and 307 are weak signals.
  • All 4xx codes except 429 are treated the same by Google and do not slow crawling; 5xx and 429 do.
  • Use 503 for short planned downtime, and keep redirect chains to a single hop.

What Are HTTP Status Codes?

HTTP status codes are standardised responses defined by the HTTP specification. MDN's reference groups them into five classes:

ClassRangeMeaningSEO relevance
Informational100–199Request received, continuingRarely relevant
Success200–299Request succeededOnly these can be indexed
Redirection300–399Further action needed, usually a new locationPass signals to the new URL; affect canonicalization
Client error400–499Problem with the request, such as a missing pageURLs dropped from the index over time
Server error500–599Server failed to fulfil a valid requestSlow crawling; persistent errors cause deindexing

How Google Handles the Codes That Matter

Google publishes a detailed page on how HTTP status codes affect its crawlers. Here is a practical summary of the codes you will meet most often:

CodeNameHow Google treats itWhen to use it
200OKContent passed on for indexing (not guaranteed)Every live page you want in search
204No ContentNo content received, so nothing to processAPIs, not web pages
301Moved PermanentlyStrong signal the target should be canonicalPermanent URL changes, migrations, merges
302FoundWeak signal the target should be canonicalGenuinely temporary moves
304Not ModifiedContent unchanged since last crawlCaching; saves bandwidth
307Temporary RedirectEquivalent to 302Temporary moves preserving request method
308Permanent RedirectEquivalent to 301Permanent moves preserving request method
404Not FoundContent not used; indexed URLs removed over timePages that do not exist
410GoneTreated the same as other 4xx errorsContent deliberately and permanently removed
429Too Many RequestsTreated as a server error; crawling slowsRate limiting
500Internal Server ErrorCrawling slows; persistent errors lead to deindexingNever deliberately
503Service UnavailableCrawling slows temporarilyShort planned maintenance

2xx: success and soft 404s

A 200 means the server delivered the page. Google passes the content to indexing, but that does not guarantee it will be indexed; quality and duplication still apply. If a 200 page looks like an error (an empty search result, a "product unavailable" template or a blank page), Search Console may report it as a soft 404. The fix is to return a real 404 or 410, redirect to a genuinely relevant page, or add useful content.

3xx: redirects

Redirects tell crawlers a URL has moved. The permanent/temporary distinction matters because it influences which URL Google treats as canonical. Our detailed comparison of 301 vs 302 redirects covers the decision in depth.

“By default, Google's crawlers follow up to 10 redirect hops.”

— Google Search Central, How HTTP status codes affect Google's crawlers

Ten is a ceiling, not a target. Every extra hop slows users and adds risk, so link directly to final URLs and collapse chains; see our guide to redirect chains and loops.

4xx: client errors

Google does not use content from 4xx URLs, and indexed URLs returning 4xx are removed over time. Importantly, 4xx errors (except 429) do not affect crawl rate, and Google advises against using 401 or 403 to try to limit crawling. Our step-by-step guide to finding and fixing 404 errors explains when to redirect and when to leave a 404 alone.

5xx and 429: server errors

Server errors and 429 responses cause Google to slow crawling temporarily, then gradually speed up again once 2xx responses return. If errors persist, URLs that were indexed are eventually dropped. Recurring 5xx errors are often a hosting capacity problem; reliable SEO hosting is cheaper than lost rankings.

For planned maintenance, Google's guidance on pausing a website recommends returning a 503 with an informational page if you need to disable a site for one or two days, and warns that fully disabling a site should only last a very short period.

How to Check Status Codes

  • Browser developer tools: open the Network tab, reload the page and look at the Status column for the document request.
  • Command line: curl -I https://www.example.com/page/ returns just the response headers, including the status line.
  • Site crawlers: Screaming Frog, Sitebulb and Semrush Site Audit report the status of every internal URL and every redirect hop.
  • Google Search Console: URL Inspection shows how Googlebot saw a specific URL, the Page indexing report groups 404s, soft 404s, server errors and redirects, and Crawl Stats breaks down responses by status.
  • Server logs: the most complete record of what Googlebot actually received. See our log file analysis guide.

A typical response header looks like this:

HTTP/2 301
location: https://www.example.com/new-page/
cache-control: max-age=3600

How to Prioritise Status Code Fixes: Step by Step

  1. Crawl the whole site and export every non-200 internal URL with its source pages.
  2. Fix 5xx errors first. They affect crawling site-wide and usually point to server, plugin or database problems.
  3. Check important pages returning 4xx. Restore them or redirect them to the closest relevant page.
  4. Redirect removed pages that have backlinks to a genuinely relevant replacement using a 301.
  5. Update internal links that point to redirects or errors so they go straight to the final 200 URL.
  6. Flatten redirect chains so every old URL reaches its destination in one hop.
  7. Review soft 404s in Search Console and return proper status codes for empty or error pages.
  8. Confirm that your custom 404 page actually returns 404, not 200.
  9. Monitor Search Console and crawl reports monthly, and always after releases or a site migration.

Common Mistakes

  • Custom error pages that return 200. Every broken URL becomes a soft 404 and may be crawled indefinitely.
  • Redirecting all 404s to the homepage. The homepage is not a relevant replacement, so users are confused and the redirect rarely preserves the old page's value. Redirect to the closest equivalent page or let the URL return 404.
  • Using 302s for permanent moves. It sends a weaker signal about which URL should be canonical.
  • Long redirect chains after several redesigns, such as HTTP to HTTPS to www to a new slug.
  • Returning 403 or 401 to "slow down" Googlebot. Google says not to; use 503 or 429 temporarily instead.
  • Leaving a site on 503 for weeks. Prolonged errors can lead to pages dropping out of the index.
  • Ignoring intermittent 500s. They may not show up when you test manually but can appear clearly in logs and Crawl Stats.

Frequently Asked Questions

Which HTTP status code is best for SEO?

For any page you want indexed, 200 OK. For permanently moved pages, a 301 or 308 redirect. For removed pages with no replacement, a 404 or 410. The best code is simply the one that accurately describes what happened to the URL.

Is 404 or 410 better for removed pages?

Google's documentation says all 4xx errors except 429 are treated the same way, so either works. A 410 states explicitly that the page is gone for good, which some teams prefer for intentionally deleted content.

Do 404 errors hurt my rankings?

404s on URLs that should not exist are normal and do not harm the rest of your site. Problems arise when important pages return 404 by mistake, or when valuable pages with backlinks are deleted without a redirect.

How should I take my site offline for maintenance?

Return a 503 Service Unavailable status, ideally with a Retry-After header. Google's guidance says this is suitable for short outages of a day or two; longer outages risk pages being dropped.

What is a soft 404?

A page that returns 200 OK but looks like an error or empty page to Google, such as 'no products found' or a blank template. Fix it by returning a real 404 or 410, or by adding genuine content.

How many redirects will Googlebot follow?

Google's crawlers follow up to 10 redirect hops by default. In practice you should aim for a single hop to keep things fast and reliable.

Conclusion

HTTP status codes are how your server talks to Google. When they accurately describe each URL (200 for live pages, 301 for permanent moves, 404 or 410 for removed content, 503 for brief maintenance) crawling is efficient and your rankings are protected. Check them regularly, fix server errors first and keep redirects short. If pages are being crawled but not indexed, our guide to "Crawled – currently not indexed" covers the next layer of troubleshooting.

Need a full technical health check? Our SEO team audits status codes, redirects and server logs as part of every technical review. Get a free quote today.

References

  1. Google Crawling Infrastructure: How HTTP status codes affect Google's crawlers
  2. Google Search Central: Redirects and Google Search
  3. Google Search Central: Temporarily pause or disable a website
  4. MDN Web Docs: HTTP response status codes
  5. Semrush: HTTP Status Codes Explained: Full List & Impact on SEO
My SEO Experts Team

Our team of SEO and digital marketing specialists has been helping businesses grow organically since 2018. More about us.

Keep reading

Related articles

Ready to grow your business online?

Get a free, no-obligation proposal tailored to your goals and budget.

CallFree Quote