HTTP Status Codes and SEO: How Google Treats Each One

How Google and Bing handle 200, 301, 302, 304, 404, 410, 429 and 5xx responses, what each one does to crawling and indexing, and how to check your own pages.

By the MakeItFlow team Updated 10 min read
Share LinkedIn X Facebook WhatsApp
HTTP Status Codes and SEO: How Google Treats Each One

Every time a search engine requests a URL, the server replies with a three-digit HTTP status code before it sends any content. For SEO, that number decides what happens next. A 200 can be indexed, a 301 or 308 passes the page's signals to a new URL, a 404 or 410 drops the URL from the index over time, and a 5xx or 429 slows crawling down.

To see what a URL returns, including every redirect hop on the way, paste it into our free HTTP Status Code Checker. This guide goes through each status code group, how Google and Bing handle it, and the mistakes that most often cost rankings.

Key takeaways

  • Google only indexes content from pages that return a 2xx status, and it reports 2xx pages that look empty or like an error as soft 404s.
  • Google treats 301 and 308 as strong signals that the redirect target should be indexed, and 302, 303 and 307 as weak signals.
  • Google's documentation handles 404, 410 and every other 4xx code except 429 the same way: the content is ignored and indexed URLs are dropped over time.
  • 5xx and 429 responses make Google crawl less for a while, and URLs that keep returning server errors are eventually removed from the index.

The status code groups

Class Meaning SEO effect in one line
2xx Success Content can be indexed
3xx Redirect Signals move to the target URL
4xx Client error Content ignored, URL eventually dropped
5xx Server error Crawling slows, URL dropped if it continues

The most detailed public reference is Google's page on how HTTP status codes, network and DNS errors affect Google Search. Most of what follows comes from that document. Where Bing differs or publishes less, this guide says so.

2xx: success

200 OK

A 200 tells Google the request worked, so the content goes on to indexing. That doesn't guarantee the page will be indexed. Google still judges quality, duplication and canonical signals. Reports such as "Crawled - currently not indexed" are about those judgements, not the status code (see our guide to crawled and discovered but not indexed pages).

Soft 404s: a 200 that should have been an error

If a page returns 200 but looks like an error page, such as "Product not found", an empty category or a blank template, Google may report it as a soft 404 and treat it as missing. The usual causes are custom error pages that return 200, and removed products redirected to the home page. Our soft 404 guide covers each cause and how to fix it.

A quick test: request a URL that definitely doesn't exist.

curl -s -o /dev/null -w "%{http_code}\n" https://example.com/this-page-does-not-exist-123

If that prints 200, your site creates soft 404s for every mistyped or removed URL. Fix the error page so that it returns a real 404.

204 No Content

A 204 has no body, so Google has nothing to index. Pages you want ranked should never return 204.

3xx: redirects

Google follows up to 10 redirect hops and then gives up. It ignores the content of the redirecting URL and processes the final target instead. What differs between redirect codes is how strongly each one tells Google to use the target as the canonical URL:

Code Name Google's treatment Use it for
301 Moved Permanently Strong signal that the target is canonical Permanent moves, HTTPS, domain changes
308 Permanent Redirect Same as 301 Permanent moves where the request method must be kept
302 Found Weak signal Genuinely temporary moves
307 Temporary Redirect Same as 302 Temporary moves where the request method must be kept
303 See Other Weak signal After form submissions, rarely relevant to SEO
304 Not Modified Content unchanged since last crawl Conditional requests, saves crawl effort

A "weak signal" doesn't mean a 302 passes no value. It means Google is more likely to keep the original URL in results, because you've said the move is temporary. If you leave a 302 in place for months, Google may decide it's effectively permanent anyway, but it's better not to rely on that. Our 301 vs 302 guide has server configs for each type.

Common redirect problems that come up in audits:

  • Chains. http:// → https:// → https://www. → /new-page/ wastes hops and slows visitors. Collapse each chain into a single 301 to the final URL. Our Redirect Checker shows every hop.
  • Loops. Two rules that send traffic back and forth mean the URL never resolves, so it can't be indexed.
  • Everything redirected to the home page. Removed pages redirected to an unrelated home page are often treated as soft 404s. Redirect to the closest equivalent page, or return 404/410.

304 Not Modified

When Googlebot sends an If-Modified-Since or If-None-Match header and the page hasn't changed, a 304 with no body tells it to reuse what it already has. This saves bandwidth and crawl effort, but only if your server sends accurate Last-Modified or ETag headers. A 304 for a page that has actually changed means Google keeps the stale version.

4xx: client errors

404 Not Found vs 410 Gone

Google's documentation groups 404, 410 and every other 4xx code except 429 together. The content is ignored, URLs already in the index are dropped over time, and Google gradually crawls them less often.

People often ask whether 410 removes pages faster than 404. Google's documentation doesn't describe 410 separately, so the honest answer is that any difference is small. Use 410 when you know a page is gone for good, for example a discontinued product line or deliberately removed spam pages. Use 404 for everything else. Both are correct responses, and neither is a penalty.

Some things are worth getting right here:

  • 404s don't harm the rest of your site. Every site has some. Fix the ones that matter: URLs with backlinks, real traffic or internal links pointing at them. Our guide to broken links and redirect chains covers how to find them.
  • Don't 404 pages you meant to keep. After a migration or a CMS slug change, compare your old sitemap against current responses.
  • Return a real 404 for missing pages, with a helpful page body (search box, main categories). The status code is what search engines read, and the helpful body is for people.

401 and 403

A 401 (authentication required) or 403 (forbidden) also stops indexing. Pages that are behind a login on purpose are fine. The problem is a firewall, security plugin or bot-protection setting that sends 403 to Googlebot or Bingbot while real visitors see the page. Your browser test looks fine, but search engines can't get in. Check Search Console's URL Inspection live test, or Bing's URL Inspection, rather than trusting your own browser.

Google also specifically says not to use 401 or 403 to limit crawl rate. Use the codes in the next sections instead.

429 Too Many Requests

429 is the one 4xx code Google handles differently. It's treated as a sign of server overload, the same as a 5xx, so Google slows its crawling down rather than dropping the URL. That makes 429 a legitimate way for a struggling server to ask crawlers to back off for a while. If it keeps happening for weeks, though, you'll see the same effects as long-running 5xx errors.

5xx: server errors

500, 502, 503 and the other 5xx codes tell Google that your server is failing. Google's documented behaviour:

  1. Crawlers temporarily slow down, roughly in proportion to how many URLs return errors.
  2. URLs already in the index are kept at first, so a short outage doesn't immediately cost rankings.
  3. URLs that keep returning server errors are eventually dropped from the index.
  4. Once responses go back to 2xx, Google gradually increases the crawl rate again.

503 for planned maintenance

For planned downtime, return a 503 Service Unavailable with a Retry-After header, rather than a maintenance message served with a 200. A 200 maintenance page can be indexed as your actual content, and site-wide that looks like every page has turned into the same thin page. On Apache, a basic maintenance switch looks like this:

# Temporary maintenance: return 503 to everyone except your office IP
RewriteEngine On
RewriteCond %{REMOTE_ADDR} !^203\.0\.113\.10$
RewriteCond %{REQUEST_URI} !^/maintenance\.html$
RewriteRule ^ - [R=503,L]
ErrorDocument 503 /maintenance.html
Header always set Retry-After "3600"

Replace the example address with your own public IP address, which you can find with our IP address checker.

Remove it as soon as the work is done. If a site serves 503s for days, it ends up in the "persistent error" group.

5xx on robots.txt is worse

A server error on /robots.txt affects your whole site, not just one URL. Google's robots.txt documentation says that if it gets a 5xx for robots.txt, it stops crawling the site for the first 12 hours, then falls back to its last cached copy for up to 30 days. A missing robots.txt (404) is fine. A broken one is not. Our robots.txt testing guide covers this in more detail.

Network and DNS errors

If Googlebot can't connect at all (a timeout, a refused connection or a domain that doesn't resolve), the effect is similar to a 5xx. These failures show up in Search Console's Crawl Stats report as host status problems rather than as a status code.

How Bing differs

Bing hasn't published an equally detailed, code-by-code breakdown. Its Webmaster Guidelines cover crawling and indexing in more general terms. In practice the same principles hold: serve 200 for content you want indexed, 301 for permanent moves, a real 404 or 410 for removed pages, and keep server errors short. Two Bing-specific tools help:

  • URL Inspection in Bing Webmaster Tools shows how Bingbot last fetched a URL.
  • IndexNow lets you tell Bing (and other engines that support it) straight away when URLs are added, updated or deleted, so a 404 or 410 can be picked up sooner than it would be by waiting for a recrawl.

Our Bing Webmaster Tools setup guide covers verification and both features.

How to check status codes on your site

For one URL:

# Final status only
curl -s -o /dev/null -w "%{http_code}\n" https://example.com/page

# Every hop in a redirect chain
curl -sIL https://example.com/old-page | grep -iE "^HTTP|^location"

Some servers answer HEAD requests (what -I sends) differently from GET. If the result looks odd, repeat it with a normal GET using -o /dev/null -w "%{http_code}". Our HTTP Status Code Checker does this for you and flags redirect loops and chains with more than two hops.

For the whole site:

  • Search Console → Settings → Crawl stats breaks down Googlebot's requests by response code, so a sudden rise in 5xx or 404 responses stands out.
  • Search Console → Pages lists URLs excluded as "Not found (404)", "Soft 404", "Server error (5xx)" and "Page with redirect".
  • A crawler such as Screaming Frog (free up to 500 URLs) lists the status code of every internal link.
  • MakeItFlow audits check whether HTTP redirects to HTTPS, whether www and non-www agree, and whether the internal links on the page you submit return errors. With Website Monitoring (Starter plan and up), saved sites are re-scanned daily or weekly, and you're emailed when the score changes.

A quick decision table

Situation Return
Page exists and should rank 200
Page moved permanently 301 (or 308) to the new URL
Temporary promotion, A/B test, geo-routing 302 (or 307)
Page removed, close replacement exists 301 to the replacement
Page removed, no replacement 404, or 410 if gone for good
Product out of stock but returning 200, with availability marked up
Planned maintenance 503 with Retry-After
Server overloaded by bots 429 or 503, never 403/404

Most of what goes wrong comes down to the status code not matching what's actually happening to the page. Run your key URLs through the HTTP Status Code Checker after any migration, plugin change or server move.

FAQ

Is a 404 error bad for SEO?

Not in itself. A 404 for a page that genuinely doesn't exist is the correct response, and Google says 404s don't hurt the rest of your site. They become a problem when they hit pages that had backlinks, traffic or internal links, so redirect those to the closest relevant page.

Should I use 404 or 410 for deleted pages?

Both work. Google's documentation treats 404, 410 and other 4xx codes (except 429) the same way, so any difference in how fast pages drop out is small. Use 410 when you know the content is gone permanently, and 404 otherwise.

Does a 302 redirect pass link equity?

Google treats a 302 as a weak signal that the target should be canonical. It usually keeps the original URL in results rather than ignoring the redirect. If a move is permanent, use a 301 or 308 so the signals clearly move to the new URL.

How long can my site return 503 before rankings suffer?

Google doesn't publish a fixed limit. It says indexed URLs are kept at first when server errors occur, and dropped if the errors persist. A few hours of 503 for planned maintenance is normal. Several days of errors starts to put pages at risk.

Why does Search Console show 403 errors when my page works fine?

Your server, a security plugin or a CDN bot-protection feature is probably blocking Googlebot while allowing normal browsers. Run a live test with URL Inspection to see what Googlebot gets, then allow verified search engine crawlers in your firewall settings.

What does a soft 404 mean if my page returns 200?

It means Google thinks the page looks like an error or has no meaningful content, even though the server said 200. Common causes are empty category pages, "not found" messages served with 200, and removed pages redirected to the home page. Either add real content, or return a proper 404 or 410.

#http status codes #technical seo #crawling #googlebot

Written by the MakeItFlow team

We build the website audit these guides are based on. Every fact is checked against the primary sources listed above and this guide was last reviewed on 30 October 2026 . How we research and check

Share LinkedIn X Facebook WhatsApp

Check your own site in 30 seconds

Run a free audit covering speed, SEO, DNS, email authentication and security headers — and get a prioritised fix list.

Weekly newsletter

One practical website fix, every week

New guides on speed, SEO, email deliverability and security — straight to your inbox. No spam, unsubscribe in one click.

Keep reading