HTTP status codes and what they mean for SEO

HTTP status codes, like 404, 301 and 500, might not mean much to a regular visitor, but for SEOs they are incredibly important. Not only that, search engine spiders, like Googlebot, use these to determine the health of a site. These status codes offer a way of seeing what happens between the browser and the server. Several of these codes indicate an error, for instance, that the requested content can’t be found, while others simply suggest a successful delivery of the requested material. In this article, we’re taking a closer look at the most important HTTP header codes and what they mean for SEO.

What are HTTP status codes and why do you see them?

Optimize your site for search & social media and keep it optimized with Yoast SEO Premium »

Yoast SEO for WordPress pluginBuy now » Info

A HTTP status code is a message the server sends when a request made by a browser can or cannot be fulfilled. According to the official W3C specs, there are dozens of status codes, many of which you’re unlikely to come across. If you need a handy overview of status code, including their code references, you can find one on

To fully understand these codes, you have to know how a browser gets a web page. Every website visit starts by typing in the URL of a site or entering a search term in a search engine. The browser sends a request to the site’s IP address to get the associated web page. The server responds with a status code embedded in the HTTP header, telling the browser the result of the request. When everything is fine, a HTTP 200 header code is sent back to the browser, in conjunction with the content of the website.

However, it is also possible that there’s something wrong with the requested content or server. It could be that the page is not found, which gives back a 404 error page, or there might be a temporary, technical issue with the server, resulting in a 500 Internal Server Error. These HTTP status codes are an important tool to evaluate the health of the site and its server. If a site regularly sends improper HTTP header codes to a search engine indexing its contents, it might cause problems that will hurt its rankings.

Different ranges

There are five different ranges of HTTP status codes, defining different aspects of the transaction process between the client and the server. Below you’ll find the five ranges and its main goal:

  • 1xx – Informational
  • 2xx – Success
  • 3xx – Redirection
  • 4xx – Client error
  • 5xx – Server error

If you ever try to brew coffee in a teapot, your teapot will probably send you the status message 418: I’m a teapot.

Most important HTTP status codes for SEO

As we’ve said, the list of codes is long, but there are a couple that are especially important for SEOs and anyone working on their own site. We’ll do a quick rundown of these below:

200: OK / Success

This is how it probably should be; a client asks the server for content and the server replies with a 200 success message and the content the client needs. Both the server and the client are happy — and the visitor, of course. All messages in 2xx mean some sort of success.

301: Moved Permanently

A 301 HTTP header is used when the requested URL permanently moved to a new location. As you are working on your site, you will often use this, because you regularly need to make a 301 redirect to direct an old URL to a new one. If you don’t, users will see a 404 error page if they try to open the old URL and that’s not something you want. Using a 301 will make sure that the link value of the old URL transfers to the new URL.

Read more: ‘How to create a 301 redirect in WordPress’ »

302: Found

A 302 means that the target destination has been found, but it lives under a different location. However, it is a rather ambiguous status code, because it doesn’t tell if this is a temporary situation or not. Use a 302 redirect only if you want to temporarily redirect a URL to a different source and you are sure that you will use the same URL again. Since you tell search engines that the URL will be used again, none of the link value is transferred over to the new URL, so you shouldn’t use a 302 when moving your domain or making big changes to your site structure, for instance. In this Ask Yoast video, Joost details the difference between the two.

307: Temporary Redirect

The 307 code replaces the 302 in HTTP1.1 and could be seen as the only ‘true’ redirect. You can use a 307 redirect if you need to temporarily redirect a URL to a new one while keeping the original request method intact. A 307 looks a lot like a 302, except that it tells specifically that the URL has a temporary new location. The request can change over time, so the client has to keep using the original URL when making new requests.

403: Forbidden

A 403 tells the browser that the requested content is forbidden for the user. If they don’t have the correct credentials to log in, this content stays forbidden for that user.

404: Not Found

As one of the most visible status codes, the 404 HTTP header code is also one of the most important ones. When a server returns a 404 error, you know that the content has not been found and is probably deleted. Try not to bother visitors with these messages, so fix these errors as soon as possible. Use a redirect to send visitors from the old URL to a new article or page that has related content.

Monitor these 404 messages in Google Search Console at Crawl errors and try to keep them to the lowest amount possible. A lot of 404 errors might be seen by Google as a sign of bad maintenance. Which in return might influence your overall rankings. If your page is broken and in fact should be gone from your site, a 410 sends a clearer signal to Google.

Keep reading: ‘404 error pages: check and fix’ »

410: Gone

The result from a 410 status code is the same as a 404 since the content has not been found. However, with a 410 you tell search engines that you deleted the requested content, thus it’s much more specific than a 404. In a way, you order search engines to remove the URL from the index. Before you permanently delete something from your site, ask yourself if there is an equivalent of the page somewhere. If so, make a redirect, if not maybe you shouldn’t delete it and just improve it.

Read on: ‘How to properly delete a page from your site (404 or 410?)’ »

451: Unavailable for Legal Reasons

A rather new addition, the 451 HTTP status code shows that the requested content has been deleted because of legal reasons. If you received a takedown request or a judge ordered you to take specific content offline, you should use this code to tell search engines what happened to the page.

Read more: ‘HTTP 451: Content unavailable for legal reasons’ »

500: Internal Server Error

A 500 error is a generic error message saying that the server encountered an unexpected condition that prevented it from fulfilling the request, without getting specific on what caused it. These errors could come from anywhere, maybe your web host is doing something funny or a script on your site is malfunctioning. Check your server’s logs to see where things go wrong.

503: Service Unavailable

A server sends a 503 error message when it is currently unable to handle the request due to an outage or overload. Use this status code whenever you require temporary downtime, for instance when you are doing maintenance on your site. This way, search engines know they can come back later to find your site in working order again.

Keep reading: ‘503: Handling site maintenance correctly for SEO’ »

Working with HTTP status codes

HTTP status codes are a big part of the lives of SEOs, and that of search engines spiders for that matter. You’ll encounter them daily and it’s key to understand what the different status codes mean. For instance, if you delete a page from your site, it’s very important that you know the difference between a 301 and a 410 redirect. They serve different goals and, therefore, have different results.

If you want to get an idea of the kinds of status codes your site generates, you should log into your Google Search Console. Here, you’ll come across a page with crawl errors that the Googlebot found over a certain period of time. These crawl errors have to be fixed before your site can be indexed correctly. Or, you can connect Yoast SEO Premium with Google Search Console, view errors directly from the backend and fix the ones that need redirecting.

Manage redirects with Yoast SEO Premium

We get it, working with these things on a daily basis is time-consuming and pretty boring. However, if you use Yoast SEO Premium, creating redirects has never been easier. Every time you delete or move a post or page, the Redirects manager in Yoast SEO asks you whether you want to redirect it or not. Just pick the correct option and you’re good to go. Watch the video to see how easy it works.

That’s all, folks

Make yourself familiar with these codes, because you’ll see them pop up often. Knowing which redirects to use is an important skill that you’ll have to count on often when optimizing your site. One look at the crawl errors in Google Search Console should be enough to show you how much is going on under the hood.

Read on: ‘Crawl efficiency: making Google’s crawl easier’ »