Did you like our previous blog about domain hijacking? Let’s see if you know all the HTTP codes now.
There is a complex series of dialogues happening behind the scenes every time you use the internet.
Your browser and servers are always communicating — and while most people don’t understand the internet’s language, it’s definitely essential for developers and SEO experts to understand it.
This is especially true when it relates to the often-overlooked yet critically important world of HTTP status codes.
Decoding HTTP Status Codes
HTTP status codes are three-digit numbers sent by a server in response to a client’s request, such as your browser’s request to view a web page.
Think of them as short, digital status updates that tell you what’s going on with your request.
The codes are divided into five groups:
- 1XX (Informational)
- 2XX (Successful)
- 3XX (Redirection)
- 4XX (Client Errors)
- 5XX (Server Errors)
Keeping Tabs on HTTP Status Codes with Google Search Console and UptimeRobot
Google Search Console is an important tool to help you monitor and decode the various HTTP status codes your site is generating. By using the ‘Crawl Errors’ report, you can see if Google has encountered any problems when indexing your website.
While Google Search Console is comprehensive, it doesn’t explicitly identify all HTTP status codes, and you also won’t get alerts immediately when something goes wrong.
That’s where UptimeRobot steps in.
UptimeRobot will monitor your website so if your site goes down or starts generating 4xx or 5xx HTTP status codes, you’ll receive an alert.
This rapid notification allows you to quickly address issues and stay ahead of potential website hiccups that could impact your site’s SEO.
Once you detect HTTP code issues, make sure you look into it.
With UptimeRobot, you can choose which HTTP codes will be considered as UP or DOWN notifications.
Google’s John Mueller has a lot of interesting advice on how to remove errors (see the video below, where he discusses removing 404 errors from Google indexing). While this can be a long and tedious process, especially if you have a large website with many subpages, it’s crucial that you address the issues to ensure your SEO isn’t damaged.
Deciphering the HTTP Status Code Directory
HTTP status codes might seem like a secret language, but they’re quite logical. Let’s decode the classes.
Class 1XX: The Informational Codes
100 Continue: The client can continue with its request. This preliminary response indicates that everything so far is OK and that the client should proceed with the request or ignore it if it’s already finished.
101 Switching Protocols: This code is sent in response to an upgrade request header from the client, and the server is switching the protocols according to the requester’s instructions. For example, the server might switch from HTTP 1.1 to HTTP 2.
103 Early Hints: The server sends this code to notify the client about potential redirection targets, even before the client finishes its request. This code helps optimize loading by reducing round-trip times.
Class 2XX: Codes for Success
200 OK: The request succeeded, and the resultant entity body contains the requested resource. It’s the standard response for successful HTTP requests.
201 Created: A new resource was successfully created in response to the request. This is typically the response sent after POST requests or some PUT requests.
202 Accepted: The request has been accepted for processing, but the server has not yet completed the processing.
203 Non-Authoritative Information: The server successfully processed the request but is returning a cache or proxy response.
204 No Content: The server successfully processed the request and isn’t returning any content. This status is often used for DELETE requests where returning a body with the status of the deleted element is not necessary.
205 Reset Content: The server processed the request, and the user agent should reset the document view. This could be used when the server has fulfilled the request and desires that the user agent reset the GUI.
206 Partial Content: The server is delivering a part of the requested resource due to a range header sent by the client. For instance, if you’re downloading a large file, the server might send the file in smaller parts rather than all at once.
Class 3XX: The Redirection Codes
TIP: Catch redirects and get alerts with UptimeRobot using the new “Don’t follow redirects” option.
300 Multiple Choices: The server has several actions to choose from, depending on the client. For instance, there might be different file formats or word languages to choose from.
301 Moved Permanently: The requested resource has moved permanently. Links to the old URL are automatically redirected to the new URL.
302 Found: This response code means that the URI of the requested resource has been temporarily changed. However, future requests should still use the original URI.
303 See Other: The server sends this response to direct the client to another URL. This status code is commonly used to redirect after a PUT or POST request.
304 Not Modified: The client can use a cached version of the requested resource.
307 Temporary Redirect: The requested resource has been temporarily moved to a different URL.
308 Permanent Redirect: This is similar to a 301, but it indicates that all future requests should repeat the original request using the new URL.
Class 4XX: The Client Error Codes
400 Bad Request: The server could not understand the request due to malformed syntax. The client should modify the request before resending.
401 Unauthorized: The request requires authentication. The client should resend the request with the required credentials.
402 Payment Required: Reserved for future use, this code was originally meant to signal that the client must pay to access the requested resource.
403 Forbidden: The server has denied the request. Unlike a 401 Unauthorized response, authenticating won’t make a difference.
404 Not Found: The server can’t find the requested resource. Links that lead to a 404 page are often called broken or dead links.
405 Method Not Allowed: The HTTP method used in the request is not supported for the requested resource.
406 Not Acceptable: The server cannot produce a response that matches the list of acceptable formats.
407 Proxy Authentication Required: The proxy requires authentication before forwarding the request to the server.
408 Request Timeout: The server didn’t receive a complete request from the client within the required time.
409 Conflict: The request couldn’t be processed because of a conflict in the request, such as an edit conflict in the case of multiple updates.
410 Gone: The requested resource is no longer available and won’t be available again. This is often used when a resource has been intentionally removed.
411 Length Required: The server won’t accept the request without a Content-Length header field, which the client failed to include.
412 Precondition Failed: One or more preconditions sent by the client in the header fields of the request evaluated to false when tested on the server.
413 Payload Too Large: The request’s payload is larger than the server is willing or able to process. The server may close the connection or return a Retry-After header field.
414 URI Too Long: The requested URI is longer than the server is willing to interpret. This is often due to a GET request being converted to a POST request with long query information.
415 Unsupported Media Type: The request entity has a media type that the server or resource does not support.
416 Range Not Satisfiable: The client has asked for a portion of the file that lies outside the server’s ability to provide.
417 Expectation Failed: The server cannot meet the requirements of the Expect request-header field.
422 Unprocessable Entity: The request was well-formed but was unable to be followed due to semantic errors.
425 Too Early: The server is unwilling to risk processing a request that might be replayed, typically used with the HTTP/2 feature of “Early Data.”
426 Upgrade Required: The client should switch to a different protocol specified in the Upgrade header field.
428 Precondition Required: The origin server requires the request to be conditional, typically used to prevent “the Lost Update” problem in HTTP PUT operations.
429 Too Many Requests: The user has sent too many requests in a given amount of time, exceeding the rate limits imposed by the server.
431 Request Header Fields Too Large: The server refuses to process the request because the header fields are too large.
451 Unavailable For Legal Reasons: The server cannot provide the requested resource due to legal reasons, such as a web page for which a legal dispute has been lodged.
499 Client Closed Request: The client closed the connection before the server could respond. It is used when the client has closed the connection before the server finished processing its request.
Class 5XX: The Server Error Codes
500 Internal Server Error: This is a generic error message when an unexpected condition was encountered, and no more specific message is suitable.
501 Not Implemented: The server either does not recognize the request method or it lacks the ability to fulfill the request.
502 Bad Gateway: When acting as a getaway, the server received an invalid response.
503 Service Unavailable: The server is currently overloaded or down for maintenance.
504 Gateway Timeout: The server didn’t receive a timely response from an upstream server and couldn’t complete the request.
505 HTTP Version Not Supported: The server does not support the HTTP protocol version used in the request.
506 Variant Also Negotiates: The server has an internal configuration error, and you may need to modify its request to resolve the ambiguity.
507 Insufficient Storage: The server is unable to store the representation needed to complete the request.
508 Loop Detected: The server detected an infinite loop while processing a request with “Depth: infinity”. This status indicates that the entire operation failed.
510 Not Extended: Further extensions to the request are required for the server to fulfill it. For example, the client may need to provide additional authentication details.
511 Network Authentication Required: The client needs to authenticate itself to gain network access.
599 Network Connect Timeout Error: A network connection to the server timed out.
Bonus HTTP Code
📍Although not an official error, HTTP 999 is used as a “catch-all” error code presented when a more specific error code is not provided by the server. It’s commonly used by some social media sites like LinkedIn to limit or prevent web crawlers.
The Undeniable Impact of HTTP Status Codes on SEO
Understanding the technical side of SEO can be challenging, but it’s also crucial if you want to maximize your website’s visibility. An abundance of error codes can signal to search engines like Google that your website isn’t very reliable, which in turn can negatively impact your site’s SEO.
According to Search Engine Watch, several HTTP status codes are especially critical to SEO:
302 – This temporary redirect code tells search engines generally that the original URL will eventually be restored, so the page index is never updated for better SEO.
404 – When search engine crawlers can’t access your content, your SEO suffers.
410 – This error causes search engines to remove the page from the index immediately. This means that the page will no longer appear in search engine results.
500 – Google also doesn’t like it when servers are down, so this error can negatively affect your rankings.
503 – Search engines don’t like to see “service unavailable,” and if the error keeps happening, the search engine might de-index the page, affecting your rankings.
On the flip side, correct usage of HTTP status codes can help preserve your website’s SEO. For example, Google likes to see 301 permanent redirects for pages that are no longer available, allowing your site to retain its SEO value. 200 HTTP codes are also great to see — it means everything is working as it should, and Google loves you.
Understanding HTTP status codes can give you a wealth of information about the health and performance of your website.
By paying attention to these codes and managing them effectively, you can provide a seamless user experience for your customers and maintain your website’s SEO value.
Take advantage of tools like Google Search Console and UptimeRobot to help you monitor these status codes and address any issues promptly. Remember, an informed website owner is an empowered website owner — so don’t let HTTP status codes remain a mystery!