HTTP status codes
What are HTTP status codes?
HTTP status codes are three-digit numbers a web server sends with every response to say what happened to the request. 2xx means success, 3xx means the content is elsewhere (a redirect), 4xx means a problem with the request, such as a missing page, and 5xx means the server failed. Search engines use them to decide what to crawl and index.
The ones that matter most for SEO: 200 OK, the page loaded. 301 and 308, permanent redirects. 302, 303 and 307, temporary redirects. 304 Not Modified, the page has not changed since the crawler last saw it. 404 Not Found and 410 Gone, the page does not exist. 429 Too Many Requests, the server is rate-limiting. 500, 502, 503 and 504, server errors.
Why HTTP status codes matter for SEO
Status codes are instructions to crawlers. Google indexes content from 2xx responses, follows 3xx redirects, drops URLs that return 4xx from the index over time, and slows crawling when it sees 5xx or 429. Google treats all 4xx codes other than 429 the same way, so 404 and 410 both remove a page.
Wrong codes cause real problems. A missing page that returns 200 becomes a soft 404. A permanent move done with a 302 keeps the old URL indexed. A server that returns 500 during busy periods gets crawled less. Checking codes across the whole site is the backbone of any technical SEO audit.
How to check HTTP status codes
- For one URL, open your browser’s developer tools (Network tab) and reload, or run `curl -I https://example.com/page`.
- For a whole site, crawl it and group pages by status code.
- In Google Search Console, the page indexing report lists URLs Google saw as 404, soft 404, redirect or server error, and the Crawl stats report breaks requests down by response.
- Fix in order: 5xx first, then broken internal links to 4xx pages, then redirect chains and wrong redirect types.
HTTP status codes example
200 OK page served, can be indexed
301 Moved Permanently permanent redirect (308 is equivalent)
302 Found temporary redirect (307 is equivalent)
304 Not Modified unchanged since last crawl
404 Not Found page missing
410 Gone page removed on purpose
429 Too Many Requests rate-limited; Google slows down
500 Internal Server Error
503 Service Unavailable temporary; use with Retry-AfterHTTP status codes FAQ
Which HTTP status codes matter for SEO?
200, 301, 302, 404, 410, 429 and 503 are the ones you will deal with most. They decide whether Google indexes a page, follows it elsewhere, drops it or slows down.
Is 404 or 410 better for removed pages?
Google treats them the same: both lead to the URL being dropped from the index. Use 410 if you want to say the removal is deliberate.
Related SEO terms
A 301 redirect permanently sends visitors and search engines from one URL to another and tells Google the new URL should be indexed.
A 302 redirect temporarily sends visitors to another URL while telling search engines to keep the original URL indexed.
A 404 error is the HTTP status a server returns when a requested page does not exist. It is normal, but broken links to 404s are worth fixing.
A soft 404 is a page that returns a 200 success code but looks like an error or empty page, so Google treats it as not found.
5xx server errors are HTTP status codes meaning the server failed to handle a request. Persistent ones make Google crawl less and drop pages.
A redirect chain is when a URL redirects to another URL that redirects again, so it takes two or more hops to reach the final page.
Crawling is how search engines discover pages: automated bots fetch URLs and follow the links on them to find more pages.