Skip to content
ContactWebmailCustomer panel

Hosting & Servers

404, 301, 200 — What Do HTTP Status Codes Tell Me?

HTTP status codes can tell you a lot about your website. Status code 404 is probably the most common one, since it shows up whenever a URL can't be reached. But what do codes like 200 or 301 actually mean?

Understanding status codes can be especially useful for search engine optimization, since a search engine's crawler uses status codes to work out whether the pages it opens are available (code 200 OK, or code 404 unavailable) or whether they're throwing errors. Other codes, such as 301 and 302, matter for SEO and for managing how crawlers behave, so it's important to be able to recognize and tell them apart. Below, we explain what status codes are about and what the most important ones mean.

What is HTTP?

Hypertext Transfer Protocol (HTTP) is used for communication between a client and a server. The client might be a browser that wants to fetch a page from the server and sends it a request. The server responds with the requested document or page, or with an error message.

HTTP status codes

HTTP status codes are part of the server's response to a client request, for example one coming from a user's browser. The codes appear in every HTTP response header sent by the server. A status code tells you whether the request succeeded or whether something went wrong.

As a rule, a web browser doesn't display the relevant status code — for example, a user isn't told about status code 200, but is simply taken straight to the requested page. A redirect usually goes unnoticed by the user too. With special tools, such as the Live HTTP Headers browser extension, you can monitor status codes to check your website.

Classes of HTTP status codes

There are around 40 different HTTP status codes in total. They can be divided into 5 classes:

You can scroll this table horizontally.

Class Description
100-199 This is informational, for your computer. For example, the server uses this class of HTTP status codes to tell the computer that it has received the request, or that processing is under way.
200-299 This class contains HTTP status codes that indicate successful processing. For example, if the requested web page could be sent back successfully, or a file was saved to the server successfully, a status code from this class is sent.
300-399 With these HTTP status codes, the client always has to take a new action — whether that's because the requested site has been moved, or because the computer should load the page from its cache.
400-499 These status messages cover all the client errors that can occur in a request. The 404 error mentioned earlier also belongs to this class, which we'll describe in more detail shortly.
500-599 Server error messages are summarized in this class.

The most important HTTP status codes at a glance

100 – Continue

The request was successfully sent to the server, and the server is waiting for further instructions from the client on how to carry out the request.

102 – Processing

This status code is used for time-consuming requests, to avoid the request timing out.

200 – OK

This status code is issued when the request was completed correctly and without errors. For example, when the requested page or document is available and gets sent to the client.

301 – Moved Permanently

The data the client is asking for has been permanently moved or redirected to another address, and the old address is no longer valid. The new address where the data can now be found is specified directly as well.

This status code is especially important for search engine optimization. If, for example, the URL structure changes during a relaunch, or pages get removed, you should set up a 301 redirect to avoid 404 error pages, which would otherwise hurt your search ranking.

By redirecting, you control the crawler and send it to another page with the same or similar content. The advantage of 301 redirects is that link equity ("link juice") is inherited. This means the number and quality of backlinks pointing to the old site carries over to the new site, so that link juice isn't lost.

Even when changing domains, make sure redirects are set up correctly and map pages 1:1, rather than redirecting every subpage to the homepage. Since Googlebot stops indexing your site after the fourth or fifth redirect at the latest, you should avoid long redirect chains.

302 – Moved Temporarily

HTTP status code 302 means a temporary redirect, since the resource can only be found at a different address for the time being. In SEO, it's very important to distinguish between 301 and 302, because no link juice is inherited through a 302 redirect, and it can therefore be lost. The original address stays valid with a 302 status code, so Googlebot keeps indexing that page.

400 – Bad Request

The client sent a request containing syntax errors, so the server can't process it. The request should be corrected and sent again.

404 – Not Found

Status code 404 is one of the most common error codes, and it's generated when the resource requested by the client can't be found by the server. This usually happens when the requested URL doesn't exist, or no longer exists. There can be several reasons:

  • The client requested an invalid URL that never existed.
  • The requested data was saved to a new location, and the internal links weren't updated.
  • Dead links: external sources link to a URL whose resources have been moved, so the URL is outdated and was never updated.

404 errors don't just hurt how user-friendly your site is — depending on how many 404 errors there are, your site's Google ranking can suffer too. In Google Search Console, you can find out which pages with 404 errors Googlebot found while crawling. You'll also find the internal and external links pointing to that URL there, so you can fix them.

You can easily fix 404 errors with 301 redirects. As already described in the section on status code 301, this matters especially during a relaunch or a domain move, since pages that aren't redirected would otherwise show HTTP status code 404.

410 – Gone

This status code signals that the requested resource no longer exists and that there's no alternative address either. Server administrators use this status code when a resource has been permanently removed.

500 – Internal Server Error

This HTTP status code represents an internal server error, meaning the requested resource can't be returned. It often happens because of incorrect entries in the .htaccess file.

503 – Service Unavailable

Because of heavy traffic or maintenance work, the service may be temporarily unavailable. As a result, the server is temporarily unreachable, and the status message may also indicate when the request can be sent again.