HTTP status codes are an essential part of SEO and web development.
They tell you everything you need to know about the status of a page or request and help you troubleshoot any errors that might appear.
In this post, we will go over the full HTTP status codes list and explain what each one means. We’ll also show you how to handle them if you encounter an error.
Contents:
- What Are HTTP Status Codes?
- Informational responses (100–199)
- Successful responses (200–299)
- How Google Manages 2xx
- Redirects (300–399)
- How Google Manages 3xx
- Client errors (400–499)
- How Google Manages 4xx
- Server errors (500–599)
- How Google Manages 5xx
- The Most Important Status Codes for SEO
What Are HTTP Status Codes?
These codes help identify the status of a page or request and can be used to troubleshoot any errors that might appear.
They include three-digit numbers and they fall into five different classes:
- Informational responses (100–199)
- Successful responses (200–299)
- Redirects (300–399)
- Client errors (400–499)
- Server errors (500–599)
Informational Responses (100–199)
The first class of HTTP status codes is informational responses.
These codes indicate that the server has received the request and is processing it, but no response is available yet.
You will usually only see these codes in the logs of the server and not in the browser.
Here are the other informational response codes:
- 100 Continue (which indicates that the server has received the request and is continuing to process it)
- 101 Switching Protocols (happens when the browser requests an upgrade to a different protocol)
- 102 Processing (used by WebDAV-enabled servers to indicate that the request is still being processed)
- 103 Early Hints (it lets you return some response headers before the full response is sent, which can help improve Largest Contentful Paint)
Successful Responses (200–299)
The second class of HTTP status codes is successful responses.
These codes indicate that the request was received and processed successfully.
You will usually see these codes in the browser when you visit a page.
- 200 OK (which indicates that the request was successful and the response is available)
- 201 Created (which means that a new resource was created as a result of the request)
- 202 Accepted (indicates that the request has been accepted but is not yet complete)
- 203 Non-Authoritative Information (used for responses that are not from the original server)
- 204 No Content (indicates that there is no content to return for the request)
- 205 Reset Content (resets or clears a form after submitted)
- 206 Partial Content (used when only part of the response is being returned)
- 207 Multi-Status (used with WebDAV to indicate that multiple status codes are being returned)
- 208 Already Reported (used with WebDAV to indicate that the message has been previously reported)
- 226 IM Used (indicates that the response is a representation of an instance-manipulation)
How Google Manages 2xx
Most of the 2xx HTTP status codes don’t need any action from you. Googlebot will automatically crawl and index your content as usual.
However, there are some instances where you might need to take action.
For example, 204 status codes will not be crawled by Googlebot because there’s no content to crawl and will be considered as soft 404 errors.
To find these soft 404 errors, you can visit Google Search Console.
Then, click on the “Pages” tab, in the “Index” section:
In this case, you will need to add some content to the page or redirect it to another one.
Another example is when you see a 200 HTTP status code for a page that doesn’t exist. This can happen when your server is misconfigured and is sending the wrong status code.
If you see this happening, you will need to fix the configuration of your server so that it sends the correct status code.
Redirects (300–399)
The third class of HTTP status codes is mostly about redirects.
These codes indicate that the client needs to take additional action to complete the request.
For example, if you try to visit a page that has been moved, you will see a 301 redirect status code.
Here are the redirect status codes:
- 300 Multiple Choices (indicates that there are multiple options for the resource that can be selected)
- 301 Moved Permanently (shows that the resource has been moved and all future requests should be made to the new location)
- 302 Found (indicates that the resource is temporarily located at a different location)
- 303 See Other (used in conjunction with POST methods to indicate where the response should be located)
- 304 Not Modified (indicates that the resource has not been modified since the last request)
- 305 Use Proxy (used to indicate that the client needs to use a proxy server to make future requests)
- 306 Switch Proxy (no longer used but was previously used to indicate that the client needs to switch proxy servers)
- 307 Temporary Redirect (indicates that the resource is temporarily located at a different location)
- 308 Permanent Redirect (indicates that the resource has been moved and all future requests should be made to the new location)
How Google Manages 3xx
Googlebot will automatically follow 301 and most 302 redirects. They also pass PageRank and anchor text across redirects.
However, there are some instances where you might need to take action.
For example, if you see a 302 redirect for a page that doesn’t exist, this can be an indication of a configuration error on your server.
You will need to fix the configuration of your server so that it sends the correct status code.
Another example is when you see a 300 redirect for a page that doesn’t exist. This can happen when your server is misconfigured and is sending the wrong status code.
If you see this happening, you will need to fix the configuration of your server so that it sends the correct status code.
Another case is 303s. Googlebot used to automatically follow these redirects, but this is no longer the case.
If you want Googlebot to crawl and index the new location of the page, you will need to add a 301 redirect.
Regarding 307s, Googlebot will automatically follow these redirects but they are treated like 302s.
This means that the old location of the page is still indexed and can still show up in search results.
To avoid this, you will need to add a 301 redirect.
Google officially reported that it follows up to 10 redirect hops. So, don’t worry about any SEO issue, if you have less than that.
Client Error (400–499)
The fourth class of HTTP status codes is the client error class.
These status codes indicate that there was an error on the part of the client.
For example, if you try to visit a page that doesn’t exist, you will see a 404 Not Found error.
Here are the client error status codes:
- 400 Bad Request (indicates that the request could not be understood by the server)
- 401 Unauthorized (indicates that the client is not authorized to access the resource)
- 402 Payment Required (reserved for future use)
- 403 Forbidden (indicates that the server is refusing to fulfill the request)
- 404 Not Found (indicates that the resource could not be found)
- 405 Method Not Allowed (indicates that the request method is not allowed for this resource)
- 406 Not Acceptable ( indicates that the server cannot generate a response acceptable to the client)
- 407 Proxy Authentication Required (indicates that the client needs to authenticate itself with a proxy)
- 408 Request Timeout (indicates that the server timed out waiting for the request)
- 409 Conflict (indicates that there was a conflict when trying to fulfill the request)
- 410 Gone (indicates that the resource is no longer available at this location)
- 411 Length Required ( indicates that the server requires a Content-Length header in the request)
- 412 Precondition Failed ( indicates that one or more preconditions in the request failed)
- 413 Payload Too Large ( indicates that the payload of the request is too large for this server to process)
- 414 URI Too Long ( indicates that the URI of the request is too long for this server to process)
- 415 Unsupported Media Type ( indicates that the media type of the request is not supported by this server)
- 416 Range Not Satisfiable ( indicates that the requested range cannot be fulfilled by this server)
- 417 Expectation Failed (indicates that one or more expectations in the request failed)
- 418 I’m a teapot (indicates that the server is a teapot and cannot brew coffee. Used as an April Fool’s joke in 1998 and 2014).
- 419 Page Expired (indicates that the page has expired and should be refreshed)
- 420 Method Failure (used by Spring Framework – indicates when a method failure has occurred)
- 421 Misdirected Request ( indicates that the request was directed at a non-existent server)
- 422 Unprocessable Entity (indicates that there are semantic errors)
- 423 Locked (indicates that the resource being accessed is locked and cannot be modified)
- 424 Failed Dependency (indicates that the request failed due to a failure of a previous request)
- 426 Upgrade Required ( indicates that the client needs to switch to a different protocol)
- 428 Precondition Required ( indicates that the server requires a request header field, such as If-Match, to be present in the request)
- 429 Too Many Requests ( indicates that the client has made too many requests and has been rate-limited by the server)
- 451 Unavailable For Legal Reasons (indicates that the resource is unavailable for legal reasons)
- 494 Request Header Too Large ( Nginx only)
- 495 Cert Error (Nginx only)
- 496 No Cert (Nginx only)
- 497 HTTP to HTTPS (Nginx only)
- 498 Token expired/invalid (Esri)
- 499 Client Closed Request (Nginx only)
How Google Manages 4xx
4xx status codes will cause pages to drop out of the search results. If you don’t want this to happen, there are two options:
- Use a 410 status code. This tells Google that the page is gone for good, and it will be removed from the search results permanently.
- Use a 404 status code. This tells Google that the page is not available right now, but it may be available in the future. The page will be removed from the search results temporarily.
Here is the HTTP status codes distribution according to Ahrefs:
Server Errors (500–599)
5xx status code means there was a server error. These are the most common server-side status codes:
- 500 Internal Server Error (indicates that an error has occurred on the server and the server cannot process the request)
- 501 Not Implemented (indicates that the server does not support the functionality required to process the request)
- 502 Bad Gateway (indicates that an invalid response was received from an upstream server)
- 503 Service Unavailable (indicates that the server is not available to process the request)
- 504 Gateway Timeout (indicates that the server did not receive a response from an upstream server in a timely manner)
- 505 HTTP Version Not Supported (indicates that the HTTP version used in the request is not supported by this server)
- 506 Variant Also Negotiates (indicates that the variant also negotiates header field present in the request is not supported by this server)
- 507 Insufficient Storage ( indicates that there is not enough space left on the server to process the request)
- 508 Loop Detected ( indicates that the server detected an infinite loop while processing the request)
- 509 Bandwidth Limit Exceeded (Nginx only)
- 510 Not Extended (indicates that the server does not support the extension required to process the request)
- 511 Network Authentication Required ( indicates that the client needs to authenticate itself in order to gain network access)
It’s important to note that not all server errors are caused by code problems.
Sometimes, server errors can be caused by things like traffic spikes or database issues. If you see a lot of 500 status codes in your log files, it’s worth investigating further to see if there is a problem with your server.
How Google Manages 5xx
Google will try to crawl a 500 page, but it may not succeed.
If it does succeed, the page will be removed from the search results temporarily.
It’s important to note that not all server errors are caused by code problems.
Sometimes, server errors can be caused by things like traffic spikes or database issues.
If you see a lot of 500 status codes in your log files, it’s worth investigating further to see if there is a problem with your server.
The Most Important Status Codes for SEO
The most important status codes for SEO are:
- 200 OK
- 301 Moved Permanently
- 302 Found
- 404 Not Found
- 410 Gone
- 500 Internal Server Error
These status codes will affect your SEO in different ways.
200 OK
This is the status code for successful requests. It should be the goal for most of your content.
If you have a lot of pages returning other status codes, it’s worth investigating why.
It could be an indication that there is a problem with your website.
301 Moved Permanently
This status code is used when a page has been permanently moved to a new URL.
If you need to change the URL of a page, this is the status code you should use.
It will tell search engines that the page has moved, and they should update their records accordingly.
It’s important to use a 301 redirect if you want to preserve your SEO rankings.
302 Found
This status code is used when a page has been temporarily moved to a new URL.
It’s important to note that this is not the same as a 301 redirect.
A 302 redirect will tell search engines that the page has been moved, but it doesn’t guarantee that they will update their records.
If you need to change the URL of a page temporarily, this is the status code you should use.
404 Not Found
This is the status code for pages that can’t be found.
Therefore, it’s important to have a 404 page on your website. If a user tries to access a page that doesn’t exist, they will see the 404 page.
This helps to prevent them from getting frustrated and leaving your site.
Also, if search engines can’t find a page, they will remove it from the search results.
410 Gone
This status code is used when a page has been permanently removed from a website.
If you need to remove a page from your website, this is the status code you should use.
It will tell search engines that the page is no longer available, and they should remove it from the search results.
500 Internal Server Error
This is the status code for pages that have a server error.
If a page returns this status code, it means there is a problem with the server.
It’s important to fix any pages that are returning this status code.
If you don’t, search engines may remove the page from the search results.
Before You Go
HTTP status codes are an essential part of SEO.
They can help to ensure that your pages are being indexed correctly and that users can find the content they’re looking for.
If you’re seeing a lot of errors in your log files, it’s worth investigating further to see if there is a problem with your website.
Also, be sure to use a dedicated Chrome extension to help you out checking HTTP status codes:
I hope this article has helped you to understand how they work and how to use them effectively.
If you have any questions, feel free to leave a comment below.
Thanks for reading!
Leave a Reply