Understanding HTTP Status Codes(and What to Do About Them)

HTTP response status codes are standardized three-digit messages sent by servers to web browsers, providing crucial information about request outcomes. At SEO Design Chicago, our lead developer has over 20 years of experience dealing with these codes across five distinct categories. Your website hosting platform or web developer should be able to remedy most of these issues if they have the experience

Our experience allows us to quickly interpret these codes, understanding whether a request was successful, encountered an error, or needs further action. This rapid assessment, backed by two decades of hands-on experience, enables us to swiftly implement solutions that enhance your website’s functionality, user experience, and search engine visibility.

Don’t let confusing status codes hinder your online success. Trust SEO Design Chicago’s veteran team to decode these messages and optimize your website’s performance. Contact us today to leverage our expertise and elevate your digital presence.

HTTP Status Code Categories

  • 1xx – Informational: The server has received the request and is continuing the process.
  • 2xx – Successful: The request was successful, and the browser received the expected information. 
  • 3xx – Redirection: Further action is required to complete the request. 
  • 4xx – Client Error: The website or page couldn’t be reached due to client-side issues. 
  • 5xx – Server Error: The server couldn’t complete the request despite it appearing valid.

Detailed Explanations of Key Response Status Codes

1xx Success Codes

The 1xx class of status codes, known as Informational responses, indicates that the server has received the request headers and that the client should proceed to send the request body (in the case of requests for which a body needs to be sent, like a POST request). These codes are part of HTTP/1.1 and are purely provisional responses, meant to be sent before the final response.

  • 100 Continue Description: This interim response indicates that everything so far is OK and that the client should continue with the request or ignore it if it’s already finished. Example: When a client is uploading a large file, it may first send a request with an “Expect: 100-continue” header. The server responds with 100 Continue if it’s ready to accept the file, allowing the client to proceed with sending the request body.
  • 101 Switching Protocols Description: This code is sent in response to an Upgrade request header from the client and indicates the protocol the server is switching to. Example: A client requests to switch from HTTP/1.1 to HTTP/2, or from HTTP to WebSocket. The server acknowledges this with a 101 response.
  • 102 Processing Web Distributed Authoring and Versioning (WebDAV) Description: This code indicates that the server has received and is processing the request, but no response is available yet. Example: In a complex WebDAV operation involving multiple resources, the server might send this to prevent the client from timing out while it processes a lengthy request.
  • 103 Early Hints Description: This status code is primarily intended to be used with the Link header to allow the user agent to start preloading resources while the server is still preparing a response. Example: When loading a web page, the server might send a 103 Early Hints response with Link headers for critical CSS and JavaScript files, allowing the browser to start loading these resources before the main response is ready.

2xx Success Codes

200-level Status Codes: The 2xx class of status codes, known as Successful responses, indicates that the client’s request was successfully received, understood, and accepted by the server. These codes confirm that the intended action was carried out and completed without errors. They represent the ideal outcome for most HTTP requests, signifying that the client-server interaction has proceeded as expected.

  • 200 OK – Example: A user successfully loads a webpage or an API request returns data as expected.
  • 201 Created – Example: A new user account is successfully created via a registration form.
  • 202 Accepted – Example: A request to initiate a long-running process, like generating a large report, is acknowledged but not yet completed.
  • 203 Non-Authoritative Information – Example: A proxy server modifies the server’s original response, such as translating it to a different language.
  • 204 No Content – Example: A user clicks a “Save” button, and the action is successful but doesn’t require returning any content.
  • 205 Reset Content – Example: After submitting a form, the server instructs the browser to clear the form for a new entry.
  • 206 Partial Content – Example: A video player requests only a specific portion of a video file to enable seeking or resuming a paused download.
  • 207 Multi-Status – Example: A WebDAV server responds to a request involving multiple resources, each with its own status.
  • 208 Already Reported – Example: In a WebDAV response, to avoid repeating the same status for resources with multiple bindings.
  • 226 IM Used – Example: The server has fulfilled a GET request for the resource, and the response is a representation of the result of one or more instance-manipulations applied to the current instance.

3xx Redirection Codes

300-level Status Codes: The 3xx class of status codes, known as Redirection messages, indicates that further action needs to be taken by the user agent (typically a web browser) to fulfill the request. These codes are used when the requested resource is not at the location the client expected, either temporarily or permanently. They instruct the client on how to proceed to complete the original request, often by following a different URL.

  • 300 Multiple Choices – Example: A server offers multiple versions of a document (e.g., different languages) and lets the user choose.
  • 301 Moved Permanently – Example: A website changes its domain name, and all old URLs are permanently redirected to new ones.
  • 302 Found (Previously “Moved Temporarily”) – Example: A product page temporarily redirects to a “out of stock” page.
  • 303 See Other – Example: After a POST request to submit a form, the user is redirected to a different page using a GET request.
  • 304 Not Modified – Example: A browser checks if its cached version of a webpage is still valid, and the server confirms it hasn’t changed.
  • 307 Temporary Redirect – Example: A website is undergoing maintenance, and users are temporarily redirected to a holding page.
  • 308 Permanent Redirect – Example: Similar to 301, but mandating that the request method and body not be changed when the redirected request is made.

4xx Client Error Codes: 

400-level Status Codes: The 4xx class of status codes, known as Client Error responses, indicates that the request contains bad syntax or cannot be fulfilled by the server. These errors are generally caused by issues on the client side, such as sending malformed requests, lacking proper authentication, or requesting non-existent resources. They suggest that the client should modify its request before retrying, as the current request cannot be processed as is.

  • 400 Bad Request – Example: A user submits a form with invalid data, such as an email address without an “@” symbol.
  • 401 Unauthorized – Example: A user tries to access a protected resource without providing valid credentials.
  • 402 Payment Required – Example: A user attempts to access premium content without a paid subscription.
  • 403 Forbidden – Example: A logged-in user tries to access an admin-only section of a website.
  • 404 Not Found – Example: A user clicks on a broken link or types in a URL for a page that doesn’t exist.
  • 405 Method Not Allowed – Example: A POST request is sent to an API endpoint that only allows GET requests.
  • 406 Not Acceptable – Example: A client requests a specific media type that the server can’t provide.
  • 407 Proxy Authentication Required – Example: A user needs to authenticate with a proxy server before accessing the internet.
  • 408 Request Timeout – Example: A server closes an idle connection because the client took too long to send the full request.
  • 409 Conflict – Example: Two users try to edit the same wiki page simultaneously, causing a version conflict.
  • 410 Gone – Example: A user tries to access a resource that has been intentionally removed and will not be available again.
  • 411 Length Required – Example: A server refuses a request because the Content-Length header field is not defined.
  • 412 Precondition Failed – Example: A client’s “If-Unmodified-Since” header condition is not met when trying to update a resource.
  • 413 Payload Too Large – Example: A user tries to upload a file that exceeds the server’s size limit.
  • 414 URI Too Long – Example: A GET request results in a URL that is longer than the server is willing to interpret.
  • 415 Unsupported Media Type – Example: A user tries to upload an image in a format not supported by the server.
  • 416 Range Not Satisfiable – Example: A client requests a portion of a file that doesn’t exist on the server.
  • 417 Expectation Failed – Example: The server cannot meet the requirements of the Expect request-header field.
  • 418 I’m a Teapot – Example: An Easter egg response code returned by teapots refusing to brew coffee.
  • 421 Misdirected Request – Example: The request was directed at a server that is not able to produce a response.
  • 422 Unprocessable Entity – Example: A server understands the content type of the request entity, but was unable to process the contained instructions.
  • 423 Locked – Example: The resource that is being accessed is locked in a WebDAV environment.
  • 424 Failed Dependency – Example: The request failed due to failure of a previous request in a WebDAV environment.
  • 425 Too Early – Example: The server is unwilling to risk processing a request that might be replayed.
  • 426 Upgrade Required – Example: The server refuses to perform the request using the current protocol but might be willing to do so after the client upgrades to a different protocol.
  • 428 Precondition Required – Example: The origin server requires the request to be conditional to prevent losing updates in a “lost update” problem.
  • 429 Too Many Requests – Example: A user has sent too many requests in a given amount of time, triggering rate limiting.
  • 431 Request Header Fields Too Large – Example: The server is unwilling to process the request because its header fields are too large.
  • 451 Unavailable For Legal Reasons – Example: A user tries to access a webpage that has been taken down due to a DMCA request.

5xx Server Error Codes: 

500-level Status Codes: The 5xx class of status codes, known as Server Error responses, indicates that the server failed to fulfill a request that appears to be valid. These errors suggest that there’s a problem on the server side rather than with the client’s request. They often occur due to server misconfiguration, overload, or unexpected conditions that prevent the server from completing the request. Unlike 4xx errors, 5xx errors imply that the issue is temporary and that the request might succeed if retried later.

  • 500 Internal Server Error – Example: A PHP script encounters an uncaught exception or a critical error in the application code.
  • 501 Not Implemented – Example: The web server doesn’t recognize the request method used. For instance, a server that only supports GET and POST receives a PUT request.
  • 502 Bad Gateway – Example: A reverse proxy server receives an invalid response from an upstream server. This could happen if your web application server (like Node.js) crashes while the nginx front-end is still running.
  • 503 Service Unavailable – Example: The server is undergoing maintenance or is overloaded. This might occur during a traffic spike or a scheduled database upgrade.
  • 504 Gateway Timeout – Example: A reverse proxy doesn’t receive a timely response from the upstream server. This could happen if your application server is taking too long to process a request.
  • 505 HTTP Version Not Supported – Example: The server doesn’t support the HTTP protocol version used in the request. This might occur if a client tries to use HTTP/2 with a server that only supports HTTP/1.1.
  • 506 Variant Also Negotiates – Example: The server has a configuration error where the chosen variant resource is configured to engage in transparent content negotiation itself, becoming a circular reference.
  • 507 Insufficient Storage – Example: A WebDAV server can’t store the request content. This might happen when trying to upload a large file to a server that’s running out of disk space.
  • 508 Loop Detected – Example: The server detects an infinite loop while processing a request. This could occur in a misconfigured WebDAV system where a resource is part of multiple infinite-depth loops.
  • 510 Not Extended – Example: The server requires further extensions to fulfill the request. This is rarely used but might occur if a client doesn’t support a required extension in a custom server setup.
  • 511 Network Authentication Required – Example: The client needs to authenticate to gain network access. This might be encountered when connecting to a public Wi-Fi that requires login before allowing internet access.

 

HTTP Status Codes and how they affect SEO

How do server error codes affect SEO?  Certain status codes have significant implications for SEO and need to be addressed as soon as possible or your site could tank!

200 OK: Ideal for most content, ensuring proper crawling and indexing.

301 Moved Permanently: Used for permanent redirects, passing most link equity.

302 Found: Used for temporary redirects, doesn’t pass as much link equity as 301.

404 Not Found: Can hurt SEO if not monitored and fixed, as pages won’t be shown in search results.

410 Gone: Clearly tells crawlers to remove the page from their index. 5xx Server Errors: Indicate server issues that need immediate attention.

How to Check HTTP Status Codes

You can check status codes manually in your browser’s Developer Tools or use various online tools and website crawlers. In Chrome:

  1. Open the URL you want to check
  2. Open Developer Tools (F12) and go to the “Network” tab
  3. Refresh the page
  4. Find the first request of type “document”
  5. The “Status” column shows the HTTP response code
  6. Fixing Common Errors

AHrefs Site Audit Report

https://app.ahrefs.com/site-audit

SEMrush Site Audit checker

SEO Design Chicago highly recommends using SEMrush’s Site Audit tool as a way to quickly identify server errors. With our team’s extensive experience in digital marketing, we’ve found that this tool provides great insights that can significantly improve a website’s search engine performance. Itt simplifies the complex task of technical SEO analysis, allowing our experts to quickly identify and prioritize issues that might be holding a site back. The tool’s regular automated audits align perfectly with our proactive approach to SEO, enabling us to catch and resolve problems before they impact rankings. Moreover, its integration with other SEMrush features complements our holistic approach to digital marketing. By leveraging this powerful tool, we can offer our clients more efficient, data-driven strategies, ultimately leading to better visibility, increased traffic, and improved ROI for their websites.

AHrefs Site Audit Report

SEO Design Chicago uses Ahrefs’ Site Audit tool for its unique strengths in technical SEO analysis as well. This powerful tool stands out with its comprehensive crawl capabilities, examining over 100 pre-defined SEO issues. Our team particularly values its SEO health score feature, which provides a clear benchmark for improvement over time.

The Ahrefs tool excels in identifying critical issues that might escape notice with other platforms, such as deep-linking problems and complex redirect chains. Its data visualization capabilities allow us to present complex SEO concepts to clients in an easily digestible format.

By integrating Ahrefs’ Site Audit into our workflow, we’re able to offer clients a more nuanced and thorough analysis of their website’s technical health. This tool’s robust features complement our expertise, enabling us to craft highly targeted SEO strategies that drive tangible results in search rankings and organic traffic growth.

404 Not Found:

503 Service Unavailable:

  • Check if the website is still receiving traffic
  • Restart the server if it has crashed
  • Identify and mitigate potential DoS or DDoS attacks
  • Upgrade server resources if legitimate traffic has increased

In conclusion, a deep understanding of HTTP status codes is essential for maintaining a robust, SEO-friendly website that delivers an exceptional user experience. While this knowledge is valuable, the complexity of server issues and their impact on your online presence can be overwhelming. That’s where SEO Design Chicago comes in. Our team of experts specializes in identifying and resolving server-related problems that may be hindering your website’s performance and search engine visibility.

Don’t let confusing status codes and technical issues hold your website back. Contact SEO Design Chicago today to schedule a comprehensive website audit. Our professionals will meticulously analyze your server responses, pinpoint any problematic status codes, and develop a tailored strategy to optimize your site’s performance. By partnering with SEO Design Chicago, you’re not just fixing immediate issues – you’re investing in long-term digital success.

Remember, in the fast-paced world of digital marketing, even minor server issues can have major consequences. Take the proactive step towards a healthier, more visible website. Reach out to SEO Design Chicago now, and let us help you turn perplexing status codes into opportunities for growth and improved user engagement.

 

Call Now