HTTP status codes are like short notes from a server. They’re not part of the site’s content. Instead, they’re messages from the server letting you know how things went when it received the request to view a certain page. HTTP status codes are returned in sets of numbers that explain what is happening during the transfer process between the client (or the browser) and the server.
These kinds of messages are returned every time your browser interacts with a server, even if you don’t see them. If you’re a website owner or developer, understanding HTTP status codes is critical. When they do show up, HTTP status codes are an invaluable tool for diagnosing and fixing website configuration errors.
There are a few different classes of HTTP response status codes. They all inform a user whether a specific HTTP request has been completed. The five status code classes are:
1xx status codes: Informational codes indicating that the request initiated by the browser is continuing.
2xx status codes: Success codes returned when browser request was received, understood, and processed by the server.
3xx status codes: Redirection codes returned when a new resource has been substituted for the requested resource.
4xx status codes: Client error codes indicating that there was a problem with the request.
5xx status codes: Server error codes indicating that the request was accepted, but that an error on the server prevented the fulfillment of the request.
Within each of these core status codes, a variety of server codes exist and may be returned by the server. Each individual code has a specific and unique meaning.
1xx HTTP status codes indicate that a server is processing information and hasn’t fully completed the request yet. Most 1xx status codes are not directly relevant to SEO situations.
100 – Continue: The client request is good and processing
101 – Switching Protocol: The client requested to change the type of protocol, and the server agreed.
102 – Processing: Processing is taking a longer time than normal.
2xx HTTP status codes show that a request has been completed and the transfer happened as planned. These codes aren’t incredibly relevant to SEO other than showing that things are working as they should.
200 – OK: The exchange between the client and the server is complete. Everything is set up properly and nothing should negatively impact SEO.
201 – Created: The client created something (such a new page) successfully on the server.
202 – Accepted: The client requested to create something on the server. It was accepted, but it has not been completed.
203 – Non-Authoritative Information: Information was transmitted, but it was not taken from the primary source.
204 – No Content: The request was received, but there was no data sent to the client.
205 – Reset Content: Similar to 204, the request was received and there was no data sent to the client, but the response also includes a request to update the content.
206 – Partial Content: Only a portion of the header content was sent to the client.
207 – Multi-Status: The server passed the results of several independent operations at once, which are placed in the body of the message as an XML document.
3xx HTTP status codes indicate that the client has requested information that is no longer at the provided address. These are often referred to as redirect codes and they are very relevant to marketers because they impact visitor experience and SEO performance.
300 – Multiple Choices: This shows that a resource has been moved and provides a list of available alternatives.
301 – Moved Permanently: The request for a resource (or URL) is permanently directed to another resource. You can set up a 301 redirect for a page that is no longer available.
302 – Found: This is similar to 301, but it is a temporary redirect rather than a permanent redirect.
303 – See Other: The requested resource is available on a URL that is different from the one requested.
304 – Not Modified: The client only requests the resource if it hasn’t been changed since the last document cache.
305 – Use Proxy: Access is only possible through the proxy specified in the response.
307 – Temporary Redirect: A 307 is more specific than a 302 redirect. The server doesn’t see the request and instead, the browser implements the redirect on its own.
4xx HTTP status codes indicate that a problem has occurred on the client-side. These errors show that there is a problem with the browser receiving information from the server.
400 – Bad Request: A syntax error is preventing the request from going through.
401 – Unauthorized: Authorization is required to access the requested resource.
403 – Forbidden: The user is trying to access a resource they can’t have access to.
404 – Not Found: The resource or URL no longer exists, and the server cannot return any information.
408 – Request Timeout: The transmission timeout by the relay server from the client has expired.
410 – Gone: A resource was previously located on the URL, but it is now gone or unavailable.
429 – Too Many Requests: The client is trying to send too many requests in a short amount of time.
5xx HTTP status codes indicate that something is wrong on the server-side of things. The client made a good request, but the server is unable to complete the transfer. When a server produces 5xx errors, it can harm SEO (as it may tell search engines to deindex a page), so it’s important to resolve these issues quickly.
500 – Internal Server Error: There was an error on the server and the request could not be completed.
501 – Not Implemented: The server doesn’t understand or cannot support the request.
502 – Bad Gateway: The server received an invalid message from the upstream server.
503 – Service Unavailable: There is a temporary technical issue preventing the server from processing the request.
While they may seem confusing or intimidating on the surface, HTTP status codes are actually very informative. By learning some of the common ones, you can troubleshoot problems on your site more quickly. Above are defined HTTP status codes that you may encounter. From milder 100 and 200 level codes to the trickier 400 and 500 level errors, making sense of these messages is crucial for maintaining your website and making sure it’s accessible to users.