HTTP response status codes are standardized numeric codes returned by a web server to indicate the outcome of a request made by a browser, crawler or application. They tell clients whether a request was successful, redirected, failed or blocked and explain how the request should be handled next.
HTTP response status codes
Informational Responses (100-199)
Successful Responses (200-299)
Redirection Messages (300-399)
Client Error Responses (400-499)
Server Error Responses (500-599)
Informational Responses (100-199)
Informational Responses are HTTP status codes in the 100–199 range that indicate a request has been received and is continuing to be processed. These responses are provisional and do not represent a final outcome.
Informational status codes are primarily used in technical or low-level communication between clients and servers and are rarely visible to end users. From an SEO perspective, they generally have no direct impact on crawling or indexing, but they play a role in how servers manage request handling behind the scenes.
100 Continue
The 100 Continue status code indicates that the initial part of a client’s request has been received and that the client may proceed with sending the remainder of the request body. It is most commonly used when a client sends an Expect: 100-Continue header to confirm the server is willing to accept a large or potentially expensive request payload.
This status helps prevent unnecessary data transfer when a request is likely to be rejected, improving efficiency in client–server communication.
101 Switching Protocols
The 101 Switching Protocols status code signals that the server has agreed to change the communication protocol used for the connection, as requested by the client. This is commonly used when upgrading from HTTP to another protocol, such as WebSockets.
After returning a 101 response, the server immediately switches to the new protocol defined in the request headers and continues communication under that protocol’s rules.
102 Processing
The 102 Processing status code indicates that the server has received and accepted the request but has not yet completed processing it. It is primarily used in WebDAV environments for long-running operations where the server wants to keep the connection open and prevent client timeouts.
This status does not indicate success or failure, only that work is ongoing.
103 Early Hints
The 103 Early Hints status code allows a server to send preliminary response headers before the final response is ready. It is typically used to hint at resources, such as scripts or stylesheets, that the client can begin preloading while the server prepares the full response.
By enabling earlier resource fetching, 103 responses can help reduce perceived latency and improve page load performance without altering the final response status.
Successful Responses (200-299)
Successful Responses are HTTP status codes in the 200–299 range that indicate a request was successfully received, understood and processed by the server.
200 OK
The 200 OK status code indicates that a request was successfully received, understood and processed by the server, and that the requested content was returned normally.
It is the most common HTTP response and represents a fully successful request. For example, a GET request returns the requested resource, while a POST request may return the result of the operation.
From an SEO perspective, 200 OK responses signal to search engines that a page is valid, accessible and eligible for indexing. Pages intended to rank should return a 200 OK status rather than a redirect or error code. Serving error or placeholder pages with a 200 status can confuse search engines and negatively impact site quality signals.
201 Created
The 201 Created status code indicates that a request has been successfully fulfilled and resulted in the creation of a new resource. The response typically includes a Location header pointing to the newly created resource.
This status is commonly returned after POST requests that create new records, objects or entities on the server.
202 Accepted
The 202 Accepted status code means that the request has been received and accepted for processing, but the processing has not yet been completed. The final outcome may succeed or fail at a later time.
This response is often used for asynchronous operations where immediate completion is not possible.
203 Non-Authoritative Information
The 203 Non-Authoritative Information status code indicates that the request was successful, but the returned information was modified by an intermediary, such as a proxy or cache, rather than coming directly from the origin server.
This status is rarely used in modern applications but exists to signal that the response data may not be authoritative.
204 No Content
The 204 No Content status code indicates that the server successfully processed the request but does not need to return a response body. It is commonly used for operations where an action was performed but no additional information is required.
This status is often returned for DELETE requests or update operations that do not need to return data.
205 Reset Content
The 205 Reset Content status code indicates that the server successfully processed the request and instructs the client to reset the document view. It is typically used in form submissions where the client should clear input fields after submission.
This status requires the client to reset any content associated with the request.
206 Partial Content
The 206 Partial Content status code indicates that the server is delivering only part of the resource due to a range request from the client. It is commonly used for large files, media streaming or resumable downloads.
The response includes a Content-Range header that specifies which portion of the resource is being returned.
Redirection Messages (300-399)
Redirection Messages are HTTP status codes in the 300–399 range that instruct the client to take additional action to complete the request, usually by requesting a different URL.
These status codes are used to guide browsers and search engines when content has moved or when alternative URLs should be accessed. Common examples include 301 and 302 redirects. Proper use of redirection messages is essential for preserving user experience and SEO value when URLs change.
301 Moved Permanently
A 301 Redirect indicates that a URL has permanently moved to a new location. It tells browsers and search engines to update their records and transfer ranking signals to the new URL over time.
301 Redirects are the recommended choice for permanent URL changes, site migrations and content consolidation. When implemented correctly, they preserve SEO value, prevent broken links and ensure users are sent directly to the final destination.301 Moved Permanently: Indicates a permanent change in URL, but does not guarantee that the HTTP method or request body will be preserved when the redirect is followed.308 Permanent Redirect: Indicates a permanent change in URL and guarantees that the original HTTP method and request body are preserved.
302 Found
A 302 redirect indicates a temporary URL change, meaning the original URL is expected to return in the future. Search engines generally continue to associate ranking signals with the original URL rather than transferring them to the destination.
302 Redirects should only be used when the redirect is genuinely temporary, such as during short-term testing or maintenance. Using 302 redirects for permanent changes can delay indexing and cause confusion for search engines.
302 Found: Indicates a temporary change in URL, but does not guarantee that the HTTP method or request body will be preserved when the redirect is followed.
307 Temporary Redirect: Indicates a temporary change in URL and guarantees that the original HTTP method and request body are preserved.
303 See Other
A 303 redirect is an HTTP status code that indicates a request should be redirected to a different URL using the GET method, regardless of the original request method. It is most commonly used after form submissions or non-GET requests to prevent data from being resubmitted if a user refreshes the page.
Unlike 301 and 302 Redirects, a 303 redirect explicitly tells the browser to retrieve the new URL with a GET request. From an SEO perspective, 303 redirects are not intended for permanent URL changes and are generally treated as temporary. They are useful in application workflows but should not be used for site migrations or long-term URL restructuring.
307 Temporary Redirect
A 307 redirect is an HTTP status code that indicates a temporary redirect while preserving the original request method. This means that if the original request was a POST, PUT or another non-GET method, the redirected request will use the same method.
307 redirects are most commonly used in technical or application-specific scenarios where the redirect is temporary and request integrity matters. From an SEO perspective, 307 redirects are treated similarly to 302 redirects, meaning search engines typically continue to associate ranking signals with the original URL rather than transferring them to the destination.
302 Found: Indicates a temporary change in URL, but does not guarantee that the HTTP method or request body will be preserved when the redirect is followed.
307 Temporary Redirect: Indicates a temporary change in URL and guarantees that the original HTTP method and request body are preserved.
308 Permanent Redirect
A 308 redirect is an HTTP status code that indicates a permanent redirect while preserving the original request method. Like a 301 redirect, it signals that the URL has moved permanently, but unlike a 301, it guarantees that the request method and body are not changed.
308 redirects are often used in modern web applications and APIs where strict method consistency is required. For SEO, 308 redirects are generally treated the same as 301 redirects, with ranking signals transferred to the target URL. However, 301 redirects remain more widely used and universally supported, especially for traditional website migrations.
301 Moved Permanently: Indicates a permanent change in URL, but does not guarantee that the HTTP method or request body will be preserved when the redirect is followed.
308 Permanent Redirect: Indicates a permanent change in URL and guarantees that the original HTTP method and request body are preserved.
Client Error Responses (400-499)
Client Error Responses are HTTP status codes in the 400–499 range that indicate a problem with the request made by the client, such as a malformed URL or a missing resource.
Examples include 400 Bad Request and 404 Not Found. A hard 404 occurs when a server explicitly returns a 404 status code for a non-existent page, while a soft 404 occurs when a page appears missing but returns a 200 status code or redirects users to an unrelated page instead. Redirecting removed or non-existent content to the homepage is a common cause of soft 404s.
400 Bad Request
A 400 Bad Request occurs when a server cannot process a request due to malformed syntax, invalid parameters or corrupted data sent by the client. This often happens because of broken URLs, improperly formatted query strings or incorrect request headers.
From an SEO perspective, 400 Errors can prevent search engines from accessing content and may signal technical issues if they occur frequently. While individual 400 Errors are not inherently harmful, widespread occurrences should be investigated and resolved to maintain crawlability and site health.
401 Unauthorized
The 401 Unauthorized status code means that the request has not been applied because valid authentication credentials are missing or invalid. The server requires authentication before granting access to the requested resource.
This response typically includes a WWW-Authenticate header that describes how the client should authenticate.
402 Payment Required
The 402 Payment Required status code is reserved for future use and is not widely implemented. It was originally intended to support digital payment systems and pay-per-use models.
In practice, this status code is rarely encountered and is often unused in modern applications.
403 Forbidden
The 403 Forbidden status code indicates that the server understood the request but refuses to authorize it. Unlike a 401 response, authentication may be present, but the client does not have permission to access the resource.
This is commonly used to restrict access based on user roles, IP restrictions or security rules.
404 Not Found
A 404 Not Found is an HTTP response indicating that a requested page does not exist. This is the correct behavior when content has been removed and there is no suitable replacement.
404 responses are normal and expected on healthy websites, as long as they are not affecting important or high-value URLs.
404 Not Found means “this resource is not available right now and it may or may not come back.”
405 Method Not Allowed
The 405 Method Not Allowed status code indicates that the request method is not supported for the requested resource. For example, attempting to send a POST request to an endpoint that only allows GET requests.
The response typically includes an Allow header listing the permitted methods.
406 Not Acceptable
The 406 Not Acceptable status code indicates that the server cannot generate a response that matches the acceptable values defined in the request’s headers, such as Accept or Accept-Language.
This response is related to content negotiation failures rather than authentication or authorization issues.
407 Proxy Authentication Required
The 407 Proxy Authentication Required status code indicates that the client must authenticate with a proxy server before the request can be fulfilled. It is similar to a 401 response but applies specifically to proxy authentication.
This status is most common in enterprise or restricted network environments.
408 Request Timeout
The 408 Request Timeout status code indicates that the server did not receive a complete request from the client within the expected time frame. As a result, the server closed the connection.
This response often occurs due to slow client connections or network instability.
409 Conflict
The 409 Conflict status code indicates that the request could not be completed due to a conflict with the current state of the resource. This often occurs in situations involving concurrent updates or version control.
For example, attempting to update a resource that has been modified since it was last retrieved may result in a 409 response.
410 Gone
The 410 Gone status code indicates that the requested resource has been permanently removed and is no longer available. Unlike a 404 response, this status explicitly signals that the removal is intentional and permanent. Google tends to de-index 410 pages faster than 404 pages and they are also crawled less often incase you want to revive the page later on.
410 Gone means “this resource has been permanently removed and will not return.”
411 Length Required
The 411 Length Required status code indicates that the server refuses to accept the request without a defined Content-Length header. The client must specify the size of the request body to proceed.
This status is uncommon in modern applications but may appear in strict server configurations.
412 Precondition Failed
The 412 Precondition Failed status code indicates that one or more conditions specified in the request headers were not met. These conditions often involve headers like If-Match or If-Unmodified-Since.
This response helps prevent unintended overwrites or conflicts in concurrent environments.
413 Payload Too Large
The 413 Payload Too Large status code indicates that the request entity exceeds the server’s allowed size limits. This can occur with file uploads or large request bodies.
Servers may include information about acceptable size limits in the response.
This code has had other names previously, such as:- Request Entity Too Large
- Content Too Large
- Request Entity Too Large
414 URI Too Long
The 414 URI Too Long status code indicates that the requested URI is longer than the server is willing or able to process. This often occurs when excessive query parameters are included in the URL.
Using POST requests instead of GET requests can help avoid this issue.
415 Unsupported Media Type
The 415 Unsupported Media Type status code indicates that the server refuses to process the request because the payload format is not supported. This typically relates to the Content-Type header.
For example, submitting JSON to an endpoint that only accepts XML may result in a 415 response.
416 Range Not Satisfiable
The 416 Range Not Satisfiable status code indicates that the server cannot fulfill the requested range of the resource. This commonly occurs when a client requests a byte range outside the available size of the resource.
This response is often associated with partial content requests.
417 Expectation Failed
The 417 Expectation Failed status code indicates that the server cannot meet the requirements defined in the request’s Expect header. This most commonly involves the Expect: 100-continue directive.
When returned, the server is signaling that it does not support or accept the expectation specified.
418 I’m A Teapot
The 418 I’m a teapot status code is an HTTP response code indicating that a server refuses to brew coffee because it is, humorously, a teapot. It originated as an April Fools’ joke in the Hyper Text Coffee Pot Control Protocol (HTCPCP) and is not part of standard web application behavior.
Despite its playful origin, 418 is recognized by many HTTP clients, servers and frameworks. It is occasionally used in development or testing environments as a deliberate, non-standard error response.
From a practical and SEO perspective, 418 responses should not be used on public-facing pages. Search engines do not treat 418 as a valid success or redirect response, and returning it for indexable URLs can prevent pages from being crawled or indexed correctly.
Server Error Responses (500-599)
Server Error Responses are HTTP status codes in the 500–599 range that indicate the server failed to process a valid request due to an internal error.
Common examples include 500 Internal Server Error and 503 Service Unavailable. These errors are particularly harmful to user experience and SEO because they block access to content entirely. Frequent server errors can lead to crawl issues, deindexing and loss of trust from both users and search engines.
Unlike 400-level errors, which are client-side, 500 errors are server-side issues.
500 Errors are particularly problematic for SEO because they block access to content entirely. Persistent or widespread 500 Errors can lead to deindexing, ranking losses and poor user experience. Monitoring, logging and rapid resolution of server errors are critical to maintaining site stability and search visibility.
500 Internal Server Error
A 500 Error (Internal Server Error) indicates that the server encountered an unexpected condition and could not complete the request. This is a generic code used when the server doesn’t respond with a more specific 500 code.
501 Not Implemented
A 501 Not Implemented status code means the server does not support the functionality required to fulfill the request. This usually occurs when a request method or feature is not recognized or has not been enabled on the server.
Unlike 500 Errors, which indicate a failure during processing, a 501 response signals that the server is fundamentally incapable of handling the request as made. Persistent 501 responses typically point to misconfigurations or unsupported integrations rather than temporary outages.
502 Bad Gateway
A 502 Bad Gateway error occurs when a server acting as a gateway or proxy receives an invalid response from an upstream server. This is common in modern architectures that rely on multiple layers, such as CDNs, load balancers, reverse proxies or backend APIs.
For search engines and users, a 502 indicates that communication between systems has failed. While often temporary, recurring 502 errors can disrupt crawling, indexing and user trust if not addressed quickly.
503 Service Unavailable
A 503 Service Unavailable status code indicates that the server is currently unable to handle the request, typically due to temporary overload, maintenance or capacity constraints. Unlike other 5xx errors, a 503 explicitly signals that the condition is expected to be temporary.
When properly implemented, often with a Retry-After header, 503 responses allow search engines to pause crawling without penalizing the affected URLs. This makes it the preferred status code during planned downtime or controlled maintenance windows.
504 Gateway Timeout
A 504 Gateway Timeout error occurs when a gateway or proxy server does not receive a response from an upstream server within a defined time limit. This often points to performance issues, slow backend services or network connectivity problems between systems.
While similar to a 502 error, a 504 specifically indicates a timeout rather than an invalid response. Persistent 504 errors can signal deeper infrastructure bottlenecks that impact both user experience and crawl reliability.
505 HTTP Version Not Supported
A 505 HTTP Version Not Supported status code indicates that the server does not support the HTTP protocol version used in the request. This can occur when outdated clients attempt to communicate with modern servers or when server configurations restrict supported protocol versions.
Although rare in modern web environments, 505 errors highlight compatibility issues rather than server instability. They are unlikely to affect SEO unless they occur at scale or block legitimate crawlers.
506 Variant Also Negotiates
A 506 Variant Also Negotiates error indicates a server configuration issue related to content negotiation, where a resource is incorrectly configured to reference itself as a variant. This creates a logical loop that prevents the server from resolving which version of the content to serve.
This status code is uncommon and typically only appears in advanced configurations involving language, encoding or content-type negotiation. When encountered, it signals a misconfiguration rather than a transient failure.
507 Insufficient Storage
A 507 Insufficient Storage status code means the server is unable to store the data needed to complete the request. It is most commonly associated with WebDAV environments but can also reflect broader storage or quota limitations.
Unlike generic server errors, a 507 response points specifically to resource exhaustion. If unresolved, it can prevent content updates, file uploads or dynamic page generation.
508 Loop Detected
A 508 Loop Detected status code indicates that the server has detected an infinite loop while processing a request. This can happen due to misconfigured redirects, recursive resource references or circular logic within the application.
In the context of redirect management, a 508 error often signals redirect loops that trap users and crawlers. These loops prevent pages from being accessed or indexed and should be resolved quickly to restore crawlability.
508 Loop Detected is a server-generated HTTP status code indicating a redirect or processing loop, while ERR_TOO_MANY_REDIRECTS is a client-side browser error triggered when the browser exceeds its redirect limit after following repeated redirects.
510 Not Extended
A 510 Not Extended status code indicates that the server requires additional extensions to fulfill the request. It was defined as part of an experimental HTTP extension framework and is rarely used in practice.
Most modern systems do not rely on this status code, but when it appears, it typically reflects unsupported or incomplete request requirements rather than a server failure.
511 Network Authentication Required
A 511 Network Authentication Required status code indicates that the client must authenticate to gain access to the network before the request can be completed. This is most commonly seen with captive portals, such as public Wi-Fi networks that require login or acceptance of terms.
From a crawling and SEO standpoint, 511 responses block access entirely and prevent content from being reached until authentication is completed, making them unsuitable for publicly accessible websites. An example of content being blocked could be a staging or pre-production site requiring authentication before allowing access to the content.







.png&w=2560&q=88)



.png&w=2560&q=88)




.png&w=2560&q=88)
