HTTP Status Codes
HTTP status codes are three-digit responses a web server sends when a browser or search engine crawler requests a page. They tell the visitor, and Google, whether the page loaded successfully, moved, does not exist or failed. Getting status codes right is a basic but essential part of Technical SEO.
The five classes of status codes
- 1xx – Informational: rarely relevant to SEO.
- 2xx – Success: the request worked.
- 3xx – Redirection: the content is somewhere else.
- 4xx – Client errors: the page cannot be found or accessed.
- 5xx – Server errors: the server failed to respond properly.
The status codes that matter most for SEO
- 200 OK: the page loaded normally. All pages you want indexed should return 200.
- 301 Moved Permanently: the page has moved for good. Google transfers ranking signals to the new URL. See 301 Redirect.
- 302 Found / 307 Temporary Redirect: a temporary move. Google keeps the original URL indexed for a while, but long-standing 302s are eventually treated like 301s.
- 304 Not Modified: the page has not changed since the last visit, which saves crawling resources.
- 404 Not Found: the page does not exist. See 404 Error.
- 410 Gone: the page has been deliberately and permanently removed. Google may drop it from the index slightly faster than a 404.
- 403 Forbidden: access is denied, often because of security rules blocking crawlers by mistake.
- 429 Too Many Requests: the server is rate-limiting the crawler.
- 500 Internal Server Error: something broke on the server.
- 503 Service Unavailable: the server is temporarily down, for example during maintenance. Google will try again later.
How status codes affect crawling and rankings
Persistent 5xx errors make Google slow its Crawling of your site and, if they continue, it can remove affected pages from the index. Too many 404s from internal links waste crawl activity and create a poor user experience. Chains of redirects slow down crawling and lose a little efficiency at each step (see Redirect Chains).
A particularly confusing problem is the soft 404: a page that says “not found” or is nearly empty but returns a 200 code. Google detects these and treats them as errors. Return a real 404 or 410 instead, or add useful content.
How to check status codes
- Crawl your site with an SEO crawler and filter by response code.
- Review the Pages report in Google Search Console for “Not found (404)”, “Server error (5xx)” and “Soft 404” entries.
- Use the Crawl Stats report to see the mix of responses Googlebot receives.
- Use your browser’s developer tools (Network tab) or an online header checker for individual URLs.
Best practices
- Make sure every important page returns 200.
- Use 301 redirects for permanent moves, not 302s.
- Update internal links to point straight to final URLs.
- Use 503 with a Retry-After header during planned maintenance, never a 200 page saying “down for maintenance”.
- Return proper 404 or 410 codes for removed content.
- Monitor server errors and response times, especially after hosting changes.
Status codes during migrations
During a Website Migration, status codes are critical. Every old URL should return a 301 to the most relevant new URL, and the new URLs should return 200. Checking a full list of old URLs after launch catches mistakes before rankings suffer.
Further reading: MDN’s HTTP response status codes reference.
Key Takeaways
- Status codes tell browsers and Google whether a request succeeded.
- Indexable pages should return 200; permanent moves should use 301.
- Use 404 or 410 for removed content, not soft 404s.
- Persistent 5xx errors reduce crawling and can drop pages.
- Use 503 during planned maintenance.
Related Terms
Curious how this applies to your website? Request a free SEO check-up, or keep learning in the SEO Encyclopedia.