HTTP status codes: what each one means and how Google Search treats it

, Founder · Updated

HTTP status codes are the three-digit numbers a server sends back with every response to say what happened to the request. The first digit gives the class: 2xx succeeded, 3xx redirects, 4xx is a problem with the request, 5xx is a problem on the server. For SEO the code matters as much as the page, because Google decides whether to index, keep, drop or slow down crawling of a URL based on it.

Key takeaways

  • A 200 does not guarantee indexing, and a 200 on an error page can be flagged as a soft 404.
  • 301 and 308 are strong signals that the target should be indexed; 302 and 307 are weak signals.
  • Every 4xx except 429 removes an already indexed URL from Google's index and does not slow crawling.
  • 5xx and 429 make Googlebot slow down, and URLs that keep returning them are eventually dropped.

The five classes

RFC 9110, the current HTTP semantics standard, defines all valid status codes as 100 to 599. "The first digit of the status code defines the class of response. The last two digits do not have any categorization role."

ClassRFC 9110 definitionWhat it usually means for a site owner
1xx Informational"The request was received, continuing process"You rarely see these in a crawl
2xx Successful"The request was successfully received, understood, and accepted"The page loaded
3xx Redirection"Further action needs to be taken in order to complete the request"A redirect, or a cached copy is still valid (304)
4xx Client Error"The request contains bad syntax or cannot be fulfilled"Missing page, blocked request, rate limit
5xx Server Error"The server failed to fulfill an apparently valid request"The server, proxy or origin is broken or overloaded

The codes you will actually see, and what Google does with each

The meaning column summarises RFC 9110 (and RFC 6585 for 429). The Google column summarises Google Search Central's page on how HTTP status codes affect Google Search, last updated 4 February 2026.

CodeMeaningHow Google Search treats it
200 OKThe request succeededContent goes to the indexing pipeline. Indexing is possible, not guaranteed
301 Moved PermanentlyThe resource has a new permanent URLFollowed. A strong signal that the target should be indexed
302 FoundThe resource is temporarily at another URLFollowed. A weak signal that the target should be indexed
304 Not ModifiedThe cached copy is still validTells Google the content is the same as at the last crawl
307 Temporary RedirectTemporary, and the method must not changeTreated the same as 302
308 Permanent RedirectPermanent, and the method must not changeTreated the same as 301
400 Bad RequestThe server won't process a malformed requestContent not used; indexed URL removed; crawled less often
401 UnauthorizedValid authentication credentials are missingSame as 400
403 ForbiddenThe server understood but refusesSame as 400
404 Not FoundNo current representation foundSame as 400; new 404 URLs aren't processed
410 GoneRemoved, likely permanentlySame as 404
429 Too Many RequestsRate limitingTreated as a server error: crawling slows down
500 Internal Server ErrorAn unexpected condition on the serverCrawling slows in proportion to the errors; URLs kept at first, eventually dropped
502 Bad GatewayA proxy got an invalid response from upstreamServer error handling, as for 500
503 Service UnavailableTemporarily overloaded or in maintenanceServer error handling, as for 500
504 Gateway TimeoutA proxy got no timely response from upstreamServer error handling, as for 500

Detailed guides: 301 vs 302 redirects, 403 Forbidden, 429 Too Many Requests, 502 Bad Gateway and 503 Service Unavailable.

Why a 200 page can still miss the index

Google is explicit that "an HTTP 2xx (success) status code doesn't guarantee indexing." A 200 only means the content reaches the indexing pipeline. If the page is empty or reads like an error message, Search Console can report it as a soft 404. The usual cause is a template that prints "Product not found" or an empty search result while still sending 200. Return a real 404 or 410 for those pages instead.

Redirects pass signals, but not equally

Google's crawlers follow up to 10 redirect hops and ignore the content of the redirecting URLs. A 301 or 308 is a strong signal that the target is the URL to index. A 302 or 307 is a weak one, and Google's redirects guide says a temporary redirect shows the source page in search results. Use a permanent redirect when a page has moved for good.

One hop is the goal.

You can see every hop between the http, https, www and non-www versions of your homepage, and of any inner page, with our free redirect checker.

Client errors take the page out of the index

Google treats 400, 401, 403, 404, 410 and 411 the same way. It doesn't use the content, removes URLs that were already indexed, and gradually crawls them less. That makes a 404 or 410 the right answer for a page you deleted on purpose.

Two cases cause trouble.

A 403 sent by a firewall to Googlebot removes pages you wanted indexed. And 401 or 403 is not a way to slow Googlebot down: Google says 4xx codes other than 429 have no effect on crawl rate.

Server errors and 429 slow crawling, then pages drop

Google says "5xx and 429 server errors prompt Google's crawlers to temporarily slow down with crawling." Indexed URLs are kept at first, but those that keep returning server errors are eventually dropped. When the server answers with 2xx again, the crawl rate gradually recovers. A short outage costs you little; errors lasting days on important pages can cost you rankings.

How to check your own status codes

  1. Open Search Console's Page indexing report and look at "Not found (404)", "Blocked due to access forbidden (403)", "Server error (5xx)" and "Page with redirect". It shows which URLs Google saw with which code.
  2. Fetch a URL from the command line to see the raw code and headers: curl -I https://example.com/page.
  3. Test every version of your domain and its redirect hops with the redirect checker.
  4. Check that AI crawlers are not blocked by robots.txt rules with the AI crawler checker.

Sources

Questions

What are the five classes of HTTP status codes?
The first digit sets the class. 1xx is informational, 2xx means the request succeeded, 3xx means further action is needed (usually a redirect), 4xx means the request has a client error, and 5xx means the server failed to fulfil a valid request. These classes are defined in RFC 9110, section 15.
Does a 200 status code mean my page will be indexed?
No. Google says a 2xx status code doesn't guarantee indexing. It passes the content to its indexing pipeline, which then decides whether to index it. A page that returns 200 but looks empty or like an error can be reported as a soft 404 in Search Console.
How does Google treat a 404 compared with a 410?
The same way. Google lists 400, 401, 403, 404, 410 and 411 together: it doesn't use the content, removes previously indexed URLs from the index, and gradually crawls those URLs less often. 410 says the removal is likely permanent, but Google does not handle it differently from 404.
Which status codes slow down Googlebot?
5xx server errors and 429. Google says both prompt its crawlers to temporarily slow down. Other 4xx codes, including 401 and 403, have no effect on crawl rate, so they are not a way to limit crawling.
How many redirects will Googlebot follow?
Google says its crawlers follow up to 10 redirect hops by default. Content on the redirecting URLs is ignored; only the final target is processed. Keep chains to one hop where you can, because each hop also slows down real visitors.

Related

See where you stand in Google and AI answers

Starter is $19 a month for one site, with a 14-day free trial and no card to start.