HTTP Status Codes for SEO: A Complete Guide


Search engine optimization is a constantly evolving bunch of tricks and techniques that push your site to the top. You want to use every single possibility to guarantee stable site development. HTTP status codes provide this opportunity. They are not just useful to know but can also indicate the health of your site. Web crawlers depend on HTTP response codes, directly impacting your site’s SEO. The best you can do is leverage these useful status codes right now. How exactly? Let’s find it out.

What Are HTTP Status Codes?

An HTTP status code is a three-digit number that prompts any server response to an HTTP request. The status code briefly conveys whether the request was completed or an error occurred.

A response code determines whether the user will see the page’s content / various action results or get an error. For example, status code 200 means that everything is okay, and the server will send the content. Conversely, HTTP response code 403 means content access is denied, and the server does not send anything.

Some HTTP statuses can point to server malfunctions. Such server errors can affect your site’s SEO.

How to Check HTTP Status Codes?

You may want to check the HTTP status code to make sure that the redirect settings are correct. Also, HTTP response codes are useful to diagnose errors when the main content is loaded, but some functionality is not available.

To check the status code, open the browser developer tools on the error page. Go to the “Network” tab and refresh the page. After that, you will see all HTTP requests and HTTP response status codes. As an option, you can use special programs that can check a list of URLs or crawl the entire site to check HTTP response. For example, Netpeak Spider, Netpeak Checker, Serpstat, Screaming Frog SEO Spider, and Urlitor.

To quickly open browser developer tools, use the following key combinations:

  • Ctrl + Shift + I for Windows / Linux;
  • ⌘ + ⌥ + I for macOS.

GSC also allows you to get the exact HTTP server code usage number. Go to Settings, then under Crawling, pick “Open Report”. You get a list of status codes sorted by the response. Each status code is clickable and provides detailed information on when and where it was triggered.

What Do HTTP Status Codes Mean?

HTTP status codes are divided into five classes. Each class combines HTTPS codes with similar messages. Each class has a different number of HTTPS status codes. All of them are designed for a specific case. Here is a brief description of response codes classes:

  • 1xx — informational status codes. They report request progress. In practice, these almost never occur.
  • 2хх — success status code. They report that everything is in order and works as expected.
  • 3xx — redirection status codes. They report that the requested page has moved, so another request needs to be made at the new URL.
  • 4xx — client error status codes. They report an error on the user side from which the request was sent.
  • 5xx — server error status codes. They report an error on the server side where the request was processed.

What Do HTTP Status Codes Mean for SEO?

You might have encountered various error status codes after clicking on some page elements or just scrolling the site. It might not be a big deal for web surfing. After all, you can switch to a more stable webpage. However, it’s a considerable problem for any site owner. The site can be unavailable for potential visitors and customers, which means missed financial opportunities.

Moreover, error status codes might be a sign of a hack. Hackers can gain access to confidential information, integrate malicious code, etc. HTTP response codes help quickly detect the problem and reduce potential negative consequences.

Web crawlers work with HTTP server codes as well. Server codes of 1xx and 2xx classes don’t affect a site’s ranking. However, HTTP statuses of 3xx, 4xx, and 5xx do make an impact that differs from class to class.

Web status codes of the 3xx class are about redirecting from one page to another. Permanent redirect SEO codes (301 and 308) transfer the old page positions to the new page. There are also temporary ones (302, 303, and 307) that do not transfer positions. But if a temporary redirect takes too long, Google thinks the site owner put it by mistake and perceives such a redirect as permanent.

HTTP return codes of 4xx and 5xx classes are about reporting errors. Many of them have a negative impact on a page’s position in search results. As a rule, when a web crawler visits a site and spots 4xx or 5xx error status codes, it revisits the site within a day in the event the site’s owner has solved the problem. If the revisit shows the same server error codes, the web crawler may exclude the page from indexing. It’s worth mentioning that in rare cases, a web crawler can exclude a page even after the first visit.

You can check if your page has lost indexing via Google Search Console. To do so, access the console, enter your page’s URL in the search bar, and press Enter. The service will check the page and show its status. If the page is no longer in the index, click Request Indexing to re-index it.

HTTP Status Code List

All HTTP error codes count around 40 units. However, this number is roughly doubled if taking into account unofficial ones. Unofficial HTTPS response codes won’t be considered in the HTTP errors list, as even many official internet status codes are pretty rare.

1хх Informational HTTP Status Codes

  • HTTP 100 Continue: a server has received the initial part of the request and is ready to accept the rest. The HTTP return code is dispatched when there is an Expect header in the request.
  • HTTP 101 Switching Protocols: a server changes protocol. This response status code is dispatched when there is an Upgrade header in the request.
  • HTTP 103 Early Hints: preliminary response with a part of the headers. This HTTP status code is used when the server cannot generate all headers quickly. Their full list will be present in the final response.

2xx Success HTTP Status Codes

  • HTTP 200 OK: a server successfully processed the request.
  • HTTP 201 Created: a server successfully processed the request and created a new resource.
  • HTTP 202 Accepted: a server has started processing the request but has not finished the process yet. Eventually, the request processing may or may not be complete.
  • HTTP 203 Non-Authoritative Information: a server successfully processed the request, but the proxy through which the response to the request passed changed this response.
  • HTTP 204 No Content: a server successfully processed the request, but other than the response headers, there is no content to send in the response.
  • HTTP 205 Reset Content: a server successfully processed the request and responded with a command to reset the data that the user entered before sending the request.
  • HTTP 206 Partial Content: a server successfully processed the partial request and sent the content specified in the Content-Range header. This URL status code is used, for example, to resume a paused download.
  • HTTP 207 Multi-Status: a response that contains information about several independent operations.

3xx Redirection HTTP Status Codes

  • HTTP 300 Multiple Choices: a server sends this response code when there are several possible request responses. For example, if several file types on the server match the query conditions, the user or user-agent must select one of these types.
  • HTTP 301 Moved Permanently: the requested resource is now available at the new URI that should be used on subsequent requests.
  • HTTP 302 Found: the requested resource is temporarily available at a different URI, and subsequent requests should use the old URI. Previously, this SEO code was called 302 Moved Temporarily.
  • HTTP 303 See Other: the requested resource must be looked up at a different URI via the GET request method, even though the original request might have implied a different method.
  • HTTP 304 Not Modified: the requested resource has not been modified, so it’s better to use the cached version.
  • HTTP 305 Use Proxy: the resource request must be made through a proxy. This status code is no longer used.
  • HTTP 306 Switch Proxy: the resource request must be made through the proxy that the server specified in the response headers. This response status code is no longer used.
  • HTTP 307 Temporary Redirect: the requested resource is temporarily available at a different URI. When requesting a new URI, the user must use the same method as in the original request. This response code is similar to 302 Found. It was introduced because some users changed the request method with the 302 HTTP status code.
  • HTTP 308 Permanent Redirect: the requested resource has permanently changed its URI, which should be referred to in all subsequent requests. This HTTP SEO code is similar to 301 Moved Permanently. However, you cannot change the request type from POST to GET here.

4xx Client Error HTTP Status Codes

  • HTTP 400 Bad Request: a server cannot process the request because it does not understand it. For example, due to a syntax error.
  • HTTP 401 Unauthorized: a server cannot process the request without authentication. You need to add the Authorization to the request header or validate the data if it is already present.
  • HTTP 402 Payment Required: initially, this HTTP response code was supposed to be used in payment systems. Now it is not used.
  • HTTP 403 Forbidden: a server refuses to process the request because the user does not have permission to view the content.
  • HTTP 404 Not Found: a server cannot find the requested resource.
  • HTTP 405 Method Not Allowed: the request method cannot be used. The server must indicate the available methods in the Allow header.
  • HTTP 406 Not Acceptable: a server does not have content that matches the requested headers’ characteristics.
  • HTTP 407 Proxy Authentication Required: this response status code works the same as 401 Unauthorized. However, the user must be authorized to use the proxy here.
  • HTTP 408 Request Timeout: a server did not receive the entire request within the maximum allowed time. Such an error status may occur when transferring large data using the PUT or POST method.
  • HTTP 409 Conflict: a server was unable to process the request because the requested content conflicted with the server settings. This error status code can happen if two users try to change a resource using the PUT method simultaneously.
  • HTTP 410 Gone: a request cannot be processed because the resource has been deleted. The new resource location is unknown.
  • HTTP 411 Length Required: a server refuses to process the request until its headers contain a value in the Content-Length field.
  • HTTP 412 Precondition Failed: a server cannot process the request because its headers contain a condition that cannot be met.
  • HTTP 413 Payload Too Large: a request body exceeds the maximum size the server can accept.
  • HTTP 414 URI Too Long: a URI exceeds the maximum allowed length. This response error can occur due to a wrongly selected method (GET instead of POST).
  • HTTP 415 Unsupported Media Type: a server refuses to process the request because it contains data in an invalid format for its method.
  • HTTP 416 Range Not Satisfiable: the Range field specified an invalid range for the resource.
  • HTTP 417 Expectation Failed: a server cannot fulfill the Expect field condition in the request headers.
  • HTTP 418 I’m a teapot: a message that a tea kettle should send if you make coffee in it. This error status code was introduced as an April Fools’ joke in 1998.
  • HTTP 422 Unprocessable Entity: a server cannot execute a request due to a logical error, even though its syntax might be correct. This server error code occurs if the request contains an XML document with a logical error.
  • HTTP 423 Locked: a requested resource is locked for requests with the used method.
  • HTTP 424 Failed Dependency: a server could not fulfill the request because its requested action depended on another failed action. 
  • HTTP 426 Upgrade Required: a server refuses to process the request using the current protocol but may do so after switching to an upgraded version. The server must specify the required protocol version in the Upgrade field in the response headers.
  • HTTP 499 Client Closed Request: a non-standard HTTP error response for Nginx to denote a situation when a user closed the connection while Nginx was processing the request.

5xx Server Error HTTP Status Codes

  • HTTP 500 Internal Server Error: a server encountered an unexpected error while processing the request.
  • HTTP 501 Not Implemented: a server does not support the functionality required to process the request.
  • HTTP 502 Bad Gateway: a server received an invalid response from the upstream server.
  • HTTP 503 Service Unavailable: a server is unavailable due to overloading or undergoing maintenance.
  • HTTP 504 Gateway Timeout: a server did not receive a timely response from the upstream server and closed the connection.
  • HTTP 505 HTTP Version Not Supported: a server does not support the HTTP version specified in the request headers.
  • HTTP 507 Insufficient Storage: a server cannot fulfill the request due to the lack of free space to store the required data.
  • HTTP 508 Loop Detected: a server canceled the operation as it encountered an infinite redirect while processing a request with Depth: infinity.

Wrap-up

Your site might be unavailable for a lot of reasons. It can be an error both on the server or user side. Server status codes are about detecting and reporting such problems. Knowing what server response codes mean, you can quickly fix the problem to eliminate any negative SEO consequences.

Want equally awesome results for your business?

Book a call with our SEO Expert. 👇

Written by