HTTP status codes: what each one means and how Google Search treats it
Vikas Chamarthi, 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."
| Class | RFC 9110 definition | What 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.
| Code | Meaning | How Google Search treats it |
|---|---|---|
| 200 OK | The request succeeded | Content goes to the indexing pipeline. Indexing is possible, not guaranteed |
| 301 Moved Permanently | The resource has a new permanent URL | Followed. A strong signal that the target should be indexed |
| 302 Found | The resource is temporarily at another URL | Followed. A weak signal that the target should be indexed |
| 304 Not Modified | The cached copy is still valid | Tells Google the content is the same as at the last crawl |
| 307 Temporary Redirect | Temporary, and the method must not change | Treated the same as 302 |
| 308 Permanent Redirect | Permanent, and the method must not change | Treated the same as 301 |
| 400 Bad Request | The server won't process a malformed request | Content not used; indexed URL removed; crawled less often |
| 401 Unauthorized | Valid authentication credentials are missing | Same as 400 |
| 403 Forbidden | The server understood but refuses | Same as 400 |
| 404 Not Found | No current representation found | Same as 400; new 404 URLs aren't processed |
| 410 Gone | Removed, likely permanently | Same as 404 |
| 429 Too Many Requests | Rate limiting | Treated as a server error: crawling slows down |
| 500 Internal Server Error | An unexpected condition on the server | Crawling slows in proportion to the errors; URLs kept at first, eventually dropped |
| 502 Bad Gateway | A proxy got an invalid response from upstream | Server error handling, as for 500 |
| 503 Service Unavailable | Temporarily overloaded or in maintenance | Server error handling, as for 500 |
| 504 Gateway Timeout | A proxy got no timely response from upstream | Server 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
- 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.
- Fetch a URL from the command line to see the raw code and headers:
curl -I https://example.com/page. - Test every version of your domain and its redirect hops with the redirect checker.
- Check that AI crawlers are not blocked by robots.txt rules with the AI crawler checker.
Sources
- RFC 9110, HTTP Semantics, section 15: definitions of every status code above except 429.
- RFC 6585, section 4: definition of 429 Too Many Requests.
- Google Search Central: How HTTP status codes, and network and DNS errors affect Google Search: how Google treats each code.
- Google Search Central: Redirects and Google Search: permanent versus temporary redirects.
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
A 301 redirect is permanent and a 302 is temporary. How Google treats 301, 302, 307 and 308, how to avoid chains, and how to set each one up.
403 Forbidden: what it means, why it happens and how to fix it403 Forbidden means the server understood the request and refuses it. Find the cause (permissions, index file, firewall bot rules, IP blocks) and the fix.
429 Too Many Requests: what it means and how to fix itA 429 Too Many Requests means a client hit a rate limit. How to back off as an API client, how to set limits as a server, and how to avoid throttling Googlebot.
502 Bad Gateway: what it means, why it happens and how to fix itA 502 Bad Gateway means a proxy got an invalid reply from the server behind it. Find the failing hop, then fix it in nginx, Cloudflare or a serverless host.
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.