Status codes

An overview of the most common HTTP status codes.

Response types


Status codes

HTTP status codes are three-digit numbers that indicate the outcome of a client's (browser, search engine bot, etc.) request to a server during an HTTP transaction. They are part of the response message sent by the server to inform the client about whether their request was successful or encountered an error. These status codes can be grouped into five main categories: informational responses, successful responses , redirects, client errors, and server errors. Each category contains a number of different responses. On this page you will find an overview of the most common HTTP status codes.

Status messages

The message that accompanies a server status response code doesn't matter for clients. Most clients rely only on the status code 'number' itself. A message should be seen as a recommendation and it is not required the client should examine them.

The status message may differ by HTTP version or even between different RFC documents for the same HTTP version. And with the introduction of HTTP/2, the protocol does not contain a status message or reason at all.

NOTE  httpstatus.io only sends requests with version 1.1 of the HTTP protocol.

In HTTP/1.1, the status line of a response includes both a numeric status code and a corresponding textual status message. For example, "200 OK" or "404 Not Found".

However, in both HTTP/2 and HTTP/3, the specification has changed so that only the numeric status code is required in the response's status line. The textual status message component has been removed.

The reason behind this change is to improve performance by reducing unnecessary bytes transferred over the network.

So, while it was true in previous versions like HTTP/1.0 and 1.1 that both a numeric code and a text message were part of the response's initial line, newer versions like HTTP/2 and HTTP/3 have eliminated the need for including textual messages with each response.

Informational responses


An informational response indicates that the request was received and understood. It is issued on a provisional basis while request processing continues. It alerts the client to wait for a final response.

NOTE  You will not see these type of responses using httpstatus.io.

Successful responses


Status codes that indicate that the server successfully processed the request.

CodeMessageDescription
200OK The server successfully processed the request. Generally, this means that the server provided the requested page. Read more

How Google handles the 200 status code

Google sends the content to be processed for indexing. It might get added to the index, but that's not always guaranteed.

204No Content The server sent a valid reply to a client request that contains header information only (i.e., does not contain any message body). Web clients can use this status to process server responses more efficiently, avoiding refreshing pages unnecessarily, for example. Read more

How Google handles the 204 status code

Googlebot tells the system it didn't find any content on the page. This could cause Search Console to display a 'soft 404' error in the Page Indexing report.

Redirection responses


Further action is needed to fulfill the request. Often, these status codes are used for redirection.

How Google handles 3xx status codes

Googlebot will follow up to 10 redirects. If it doesn't reach the content by then, Search Console will display a redirect error in the Page Indexing report.

CodeMessageDescription
301Moved Permanently The requested page has been permanently moved to a new location. When the server returns this response, it automatically forwards the requestor to the new location. The response should also include this location. It tells the client to use the new URL the next time it wants to fetch the same resource. Read more

How Google handles the 301 status code

Googlebot follows the redirect and treats it as a strong signal that the final destination of the redirect should be the main (canonical) version of the page.

302Found The server is currently responding to the request with a page from a different location, but the requestor should continue to use the original location for future requests. Read more

How Google handles the 302 status code

Googlebot follows the redirect, but treats it as a weak signal that the destination page might be the main (canonical) version.

304Not Modified The requested page hasn't been modified since the last request. When the server returns this response, it doesn't return the contents of the page.

How Google handles the 304 status code

Googlebot notices the content hasn't changed since the last crawl. It may recalculate signals for the page (URL), but the status code doesn't affect the page's indexing.

307Temporary Redirect The server is currently responding to the request with a page from a different location, but the requestor should continue to use the original location for future requests. There is very little difference between a 302 status code and a 307 status code, but you can use both to temporarily point users to another URL. This status code has the same semantic as the 302 Found HTTP response code, with the exception that the user agent must not change the HTTP method used. Read more

How Google handles the 307 status code

Similar to the 302 redirect.

308Permanent Redirect This means that the resource is now permanently located at another URI, specified by the Location: HTTP Response header. This has the same semantics as the 301 Moved Permanently HTTP response code, with the exception that the user agent must not change the HTTP method used. Read more

How Google handles the 308 status code

Similar to the 301 redirect.

Client error responses


These status codes indicate that there was likely an error in the request which prevented the server from being able to process it.

How Google handles 4xx status codes

Google won't index URLs that return a 4xx error code. If a page was already indexed and starts returning a 4xx error, it will be removed from the index.

CodeMessageDescription
400Bad Request The server didn't understand the syntax of the request.
401Unauthorized The request requires authentication, before a resource can be accessed, the client must be authorized by the server. The server might return this response for a page behind a login. Read more

How Google handles the 401 status code

Don't use 401 status code to control how often Google crawls your site. 4xx errors, except 429, don't affect the crawl rate.

403Forbidden The server is refusing the request. Unlike a 401 unauthorized response, authenticating will make no difference. Read more

How Google handles the 403 status code

Don't use the 403 status code to control how often Google crawls your site. 4xx errors, except 429, don't affect the crawl rate.

404Not Found The server can't find the requested page. For instance, the server often returns this code if the request is for a page that doesn't exist on the server. Read more

How Google handles the 404 status code

When Googlebot finds new 404 pages, they aren't processed for indexing, and over time, Googlebot will crawl them less frequently.

408Request Timeout The request you sent to the website server (e.g. a request to load a web page) took longer than the website's server was prepared to wait. In other words, your connection with the website "timed out".
410Gone The server returns this response when the requested resource has been permanently removed. It is similar to a 404 (Not found) code, but is sometimes used in the place of a 404 for resources that used to exist but no longer do. If the resource has permanently moved, you should use a 301 to specify the resource's new location. Read more

How Google handles the 410 status code

Google treats 410 status codes as a strong signal that a page is permanently gone and won't come back. If a 410 error is returned, Google will remove the page from its index more quickly than if a 404 error is used. A 404 might be treated as temporary, but a 410 is viewed as a final removal.

429Too Many Requests The client has sent too many requests in a given amount of time ("rate limiting").

How Google handles the 429 status code

Googlebot treats the 429 status code as a sign that the server is overloaded and considers it a temporary server error. It reduces its crawl rate to ease the load. While Google preserves already indexed URLs for a time, they will eventually be dropped from the index if the 429 error persists.


Soft 404 errors

A soft 404 happens when a page tells users that it doesn't exist but still returns a 200 (success) status code to Googlebot. This can also occur if the page has no main content or is empty. Google treats this as a 'soft' error because, while the content is missing, the status code says everything is fine.

It's a poor user experience when a page returns a 200 (success) code but displays an error message. Users may think the page is working, but are met with an error instead. These pages are excluded from Google Search. If Google's algorithms detect the page is actually an error, Search Console will flag it as a soft 404 in the Page Indexing report.

Server error responses


These status codes indicate that the server is aware that it is on error or is incapable of performing the request.

How Google handles 5xx status codes

Googlebot slows down crawling when it encounters 5xx server errors. Any content Googlebot received from URLs that return a 5xx status code is ignored, and Google's indexing system will eventually remove already indexed pages (URLs) that consistently return server errors.

CodeMessageDescription
500Internal Server Error The server encountered something it didn't expect and was unable to complete the request.
502Bad Gateway The server received an invalid response from another server.
503Service Unavailable The server is currently unavailable (due to a server overload or because it's down for maintenance). Generally, this is a temporary state. Read more
504Gateway Timeout Error The server did not receive a timely response from another server that it was accessing while attempting to load the web page or fill another request by the browser. In other words, 504 errors usually indicate that a different computer, one that the website you're getting the 504 message on doesn't control but relies on, isn't communicating with it quickly enough.
This website uses cookies to ensure you get the best experience. By using this website, you acknowledge that you understand and agree to our Privacy Policy and Terms and Conditions.