The HTTP Status Codes are a set of status codes that the web server returns to the client when it makes an HTTP request. These can be anything from 200, which means OK, to 404 Not Found. In this article we're going to discuss some of the most common ones and what they mean for SEO.
The first thing to discuss is what the different status codes actually mean. The easiest way to think of them are as notifications from your server, letting you know whether or not it was successful in completing a task (or if something went wrong).
A good analogy would be like checking out at the grocery store: when we check our groceries and pay for them, we get an itemized receipt showing us how much we spent and what products were purchased. The same happens with websites - every time a website sends data back and forth over the internet, there's some sort of "receipt" that shows up on your screen telling you about everything that just happened (the information contained in this article is also called metadata!). Generally speaking, anything between 200 and 399 is considered a success, while anything between 400 to 599 is something that went wrong.
Below we'll walk through the most common HTTP status codes you may receive, and what each of them mean.
This means that the request was sent successfully and is continuing to process.
This means that the request was successful and understood by the server.
This means that the client has been redirected to a new URL.
This means that the server couldn't fulfill a request because of some issue with it. Typically this signals that a page is missing or broken.
This means that the server was not able to fulfill a request from the client due to server issues.
In order for a website to rank as highly as possible, these different status codes come into play. For example if your site returns an error code when someone tries to visit it (such as 404 Not Found), then this is going to negatively affect the SEO ranking of that URL.
If your server fires 5xx errors, your entire website isn't accessible and is also going to negatively affect SEO because Google can't view the content on your site.
While 1xx - 3xx status codes are generally okay, if you have 301 redirect chains, this can also prevent Google from discovering all of your web pages because it's eating up unnecessary crawl budget and passing less link authority to each page with each step of the redirect chain.
Below we'll walk through the most important SEO HTTP Status Codes to consider and what each of them means.
If the site returned this, it means that a request was completed successfully and you're on the page you intended to be on. Most of your site pages should signal 200 HTTP Status Codes.
A 301 redirect means that the requested URL has been permanently redirected to another URL. This is considered a good thing for SEO because this tells Google that your old page can now be found at a new URL, allowing it to maintain the keyword rankings of the original page.
This means that the requested URL has been temporarily redirected to another URL. This is considered a good thing for SEO because this tells Google that your old page can now be found at a new temporary location, allowing it to maintain the keyword rankings of the original page (just like permanent redirects).
This means that the server could not find the requested URL because it doesn't exist. Generally speaking, this is a bad thing for SEO and has to be fixed ASAP!
The more broken pages you have on your website, the less trusted your site appears in the eyes of Google. It also causes a poor user experience.
In the case of ecommerce websites with products that sell out, you want to include a 410 HTTP Status Code. This signals that the page no longer exists for a reason, whereas 404 errors give Google no context in regards to why the page is now missing or broken.
This means that the requested URL is no longer available on this server, and it's been permanently deleted.
These should be purposely employed if you want to delete a web page and have no 1:1 equivalent to redirect that URL to.
A 500 server error means that the server encountered an error while handling a request from the client.
These should be fixed ASAP! If you're seeing these errors frequently, it's likely because of resource issues (or not enough resources) on your website and can mean slower page-loading times for visitors, or that visitors never actually get to visit your website at all because resources aren't being served.
This means that the server can't process a request from the client due to temporary heavy load on our website.
Now that you know the different types of website HTTP status codes, here's how you can check your pages to see what codes they're triggering.
The first tool that you can use is Google Search Console. It will display Google's crawl stats and a coverage report that breaks down each of your page URLs between 2xx, 3xx, 4xx, or 5xx status codes.
You can also use Screaming Frog. This tool will crawl your entire website and catalogues the different status codes it encounters during its crawl. It's my preferred tool, as it allows you to download and save actionable reports via Excel spreadsheets on a page-by-page level. It will also bucket each status code so you can see how many URLs signal 2xx codes, 301 redirects, or 404 errors.