HTTP status codes are easy to understand but the issues that arise they identify can be complicated to fix. Monitoring the status codes and addressing issues are critical to long-term performance of your website.
What is an HTTP status code?
Wikipedia has a great explanation, but it’s technical. Just remember every time you open a webpage you send an HTTP request to that website’s server, and the HTTP status code tells you if that request worked, redirected somewhere else, or failed.
List of the five HTTP status code levels
HTTP status codes are broken into five different levels. The codes will always be three digits and the first number indicates the level:
- 1xx Informational response – You won’t really see 1xx level status codes as they’re only a confirmation of a receipt of your request. I think of these as a server’s way of saying “let me look into that for you.” Generally, is not available to see.
- 2xx Success – This is what you want to see. You made a request, it was received, understood, and accepted.
- 3xx Redirection – You requested one URL and the server provided an alternative address for your browser to request instead. These are not necessarily bad, but they need to be handled properly from an SEO perspective. There are 3 main 3xx-level HTTP status codes you’re likely to encounter:
- 301 Moved permanently – 301 permanent redirects are extremely important for SEO performance, especially during website migrations or restructuring. Any time you’re “moving” or “moving and/or modifying” an important URL from your website, you should implement a 301 permanent redirect for that URL, ensuring that a browser is redirected to the new location or if you moved and/or modified the content in the destination URL that you redirect the browser to the most similar page on your new site. As they are “permanent redirects,” 301 redirects help preserve page equity so your URL still ranks. This happens because a 301 redirect communicates to the search engine that it should update its index to the new URL and to pass on any external links to the old URL to the new URL.
- 302 Found/Moved Temporarily – Sometimes a website needs to redirect a page for a short period of time, perhaps to coincide with a promotion, but they don’t want Google to change which page appears in search results. For example, you may have a page which gets a lot of traffic from Google for keywords related to “Specials” or “Clearance”, but on Black Friday you want to send customers to a special Black Friday page. 302 redirects allow this. Remember, the page you’re redirecting to likely won’t be indexed, so don’t leave your redirect up for too long or you may start to see ranking declines or your temporary URL become the new ranking URL. Search engines can and will treat a 302 temporary redirect as a permanent 301 redirect if it is in place for too long.
- 307 Temporary Redirect – The 307 redirect is an HSTS Policy. It tells the browser that any and all URLs for the website that you are browsing have been moved from HTTP to HTTPS and that any HTTP link that you encounter should be converted to an HTTPS link. In practice, it prevents browsers from requesting HTTP URLs from your site. A 301 redirect should be used in order to communicate to a search engine that you have moved from HTTP to HTTPS.
- 4xx Client Error – 400 level status codes can indicate a problem, especially if a large number are discovered. There are three main types of 400-level status codes:
- 403 Forbidden – 403 response codes signal a “Forbidden” status, indicating that the server can be reached and process the request but refuses to take any further action. There are several possible root causes for 403 responses, including but not limited to ad blocking browser extensions and firewall settings on the user’s computer.
- 404 Page Not Found – The most common type, 404 status codes can be caused by a wide variety of things, but often a URL either changed and wasn’t redirected, or a link was updated incorrectly. 404 status codes are sometimes an appropriate code for a URL. 404s are typically used when a site no longer wants a page served and the content is no longer valid. An example would be when a company no longer carries a product and there are no related products to redirect the browser to. In cases when a new page could be a replacement, the 404 would be incorrect and you would want to redirect the URL to the new replacement content.
Here is an example of our 404 page:
- Soft 404 – Technically not an official HTTP status response, “Soft 404” is a label Google uses for pages that are missing but the server incorrectly responds 200 OK. These are often due to incorrectly configured servers which respond with 200 OK instead of 404 Page Not Found. Fixing Soft 404 errors is often similar to a normal 404 error, by identifying the broken link and either updating it or 301 redirecting the broken URL to a relevant location.
- 410 Gone – Less common, 410 status codes indicate a page has been intentionally removed. This will remove a URL from a search engine’s index quickly and is considered a permanent removal, so be careful when employing these and always double check with your analytics and SEO specialists to ensure it’s the right option. 410 responses are usually the result of a URL being published temporarily, building little to no value, and not needing of a redirect.
- 5xx Server Errors – 500-level status codes aren’t issues with the specific URL, but the request to your website’s server. These can cause major problems, when bots encounter 5xx errors they slow their crawl rate automatically as they believe the load being created could be negatively impacting the site’s ability to serve your customers. If your site is experiencing large amounts of 5xx status codes it could indicate that your server has a capacity issue or the site consumes a lot of resources and should be optimized. to ensure search engines and people can access your website,:
- 500 Internal Server Error – This is the generic server error status and doesn’t give you additional information beyond the server error.
- 503 Service Unavailable – These errors should be deliberate, such as a website being down for maintenance, and indicate the error is temporary.
- 504 Gateway Timeout – 504 errors indicate your server is responding too slowly. These can be caused by connectivity issues or bugs in your website code.
How to find HTTP status codes and identify problems
There are several ways to check the HTTP status code of individual URLs or lists of URLs. Here are a few of the best:
2. Google Search Console – Under “Coverage” in the left-side navigation, you can find various error types. Prioritize the errors that Google specifically calls out.
HTTP Status Code Cheat Sheet
|OK||200||The URL opened as intended||No action|
|Redirect||301||The URL is permanently redirected to another location. Good for SEO||If internal links are redirecting, update the source links.|
|Redirect||302||The URL is temporarily redirected to another location.||If redirects have SEO value or will be permanent, update the redirects to 301|
|Redirect||307||The 307 redirect is an HSTS Policy. It tells the browser that any and all URLs for the website that you are browsing have been moved from HTTP to HTTPS||If internal links are redirecting, update the source links.|
|Client Error||403||The server can be reached and process the request but refuses to take any further action||Check the server and URL. Try to not link to forbidden pages on public-facing pages|
|Client Error||404/Soft 404||Page not found – Either the page was deleted from your website or the link URL is wrong||Find the source of the broken link and update it. 301 redirect the broken URL if you can’t find or change the broken link|
|Server Error||500||Generic server message||Check server connection and settings|
|Server Error||503||Service Unavailable – usually a deliberate period where a server is down for maintenance||Try to minimize down time as much as possible, and ensure the site is back online ASAP|
|Server Error||504||Gateway timeout||Check server connection and settings|