Blog

HTTP status codes: the complete list for SEO

Every response a server sends starts with a three-digit status code. Search engines read it before anything else on the page, and it decides whether a URL gets crawled, indexed, moved or dropped.

The five classes

The first digit tells you the kind of answer:

2xx: success

CodeMeaningEffect on SEO
200 OKThe page was served normally.The only code that makes a page eligible for indexing. Google still decides whether to index it based on its content.
201 CreatedA new resource was created, usually by an API.Treated like 200, but you won't normally see it on web pages.
204 No ContentSuccess, with no body.Nothing to index. Google may report it as a soft 404.
206 Partial ContentPart of a file, sent in response to a range request.Normal for video and large downloads.

3xx: redirects

CodeMeaningEffect on SEO
301 Moved PermanentlyThe page has moved for good.A strong signal that the new URL should be indexed instead. The standard choice when a page moves.
302 FoundThe page is temporarily elsewhere.A weak signal. Google usually keeps the original URL indexed, though it may treat a long-lasting 302 as permanent.
303 See OtherFetch a different URL with GET, typically after a form.Treated as temporary.
304 Not ModifiedThe page hasn't changed since the crawler's last visit.Good: it saves crawl resources. Google reuses its stored copy.
307 Temporary RedirectLike 302, but the request method must not change.Treated as temporary. Browsers also show a 307 for HSTS upgrades, which never reach the server.
308 Permanent RedirectLike 301, but the request method must not change.Treated the same as a 301.

Google follows up to 10 redirects in a row. Each hop costs time, so point old URLs straight at the final destination. The guide to redirect chains explains how.

4xx: client errors

CodeMeaningEffect on SEO
400 Bad RequestThe request was malformed.Not indexed. Usually a bug in a link or URL format.
401 UnauthorizedA login is required.Not indexed. Fine for private areas.
403 ForbiddenAccess is refused.Not indexed. Check that a firewall or bot protection isn't refusing Googlebot by mistake.
404 Not FoundNothing exists at this URL.Removed from the index over time. Normal for deleted pages, and doesn't hurt the rest of the site.
405 Method Not AllowedThe server doesn't accept that request method.Not indexed.
410 GoneThe page was removed on purpose and won't return.Like 404. Google may drop it a little sooner.
429 Too Many RequestsThe client is being rate limited.Google treats it like a server error and slows its crawling. Prolonged 429s can lead to pages being dropped.
451 Unavailable For Legal ReasonsBlocked for legal reasons.Not indexed.
404 or 410? Both are correct for pages that no longer exist. Use a 301 instead only when there's a genuinely equivalent page to send visitors to. Redirecting everything to the homepage is treated as a soft 404.

5xx: server errors

CodeMeaningEffect on SEO
500 Internal Server ErrorSomething failed on the server.Google slows down crawling. If the error persists, pages are dropped from the index.
502 Bad GatewayA proxy got a bad answer from the server behind it.Same as 500.
503 Service UnavailableThe server is temporarily unavailable.The right code for planned maintenance, ideally with a Retry-After header. Short outages do no lasting harm.
504 Gateway TimeoutA proxy timed out waiting for the server.Same as 500.

A server error on robots.txt itself is worse: Google stops crawling the whole site until robots.txt can be read again. You can check yours with the Robots.txt Tester.

Cloudflare's 52x codes

Sites behind Cloudflare can return codes that aren't in the HTTP standard. They mean Cloudflare couldn't get a proper answer from the site's own server:

Search engines treat all of them like a 5xx error.

Soft 404s

A soft 404 is a page that returns 200 OK but has nothing on it, such as a "no results" page or an empty category. Google detects these and treats them like a 404, and Search Console reports them separately. Return a real 404 or 410 for missing pages, so the status code and the content agree.

How to check status codes in bulk

Your browser hides most status codes and follows redirects silently. To see the real code for each URL, including every redirect hop, use a status code checker:

A good habit is to check every URL in your sitemap. A sitemap should list only URLs that return 200. Extract them with the Sitemap URL Extractor, then send the list straight to the checker.

Questions

Which HTTP status code is best for SEO?

For a page you want indexed, 200 OK. For a page that has moved, 301 or 308. For a page that is gone, 404 or 410. For planned downtime, 503 with a Retry-After header.

Do 404 errors hurt my rankings?

Not by themselves. Google expects pages to disappear, and a 404 on a deleted page doesn't affect other pages. What does matter is linking to missing pages from your own site, and losing pages that had backlinks without redirecting them.

Is a 302 redirect bad for SEO?

Only when the move is actually permanent. A 302 tells Google the original URL may come back, so it tends to keep that URL in results. Change it to a 301 if the page has moved for good.