HTTP response status code 430 is an unofficial client error specific to Shopify and is returned by the server to indicate that too many HTTP requests are being made using the API within a certain period.
Table of Contents
- Usage
- Takeaway
- See also
Usage
When the 430 status code is received, the server is refusing to process the HTTP request because too many HTTP requests are made to the API in too close a succession. This error has been reported during web crawling events, such as when a store operator is testing their site. It can be avoided and solved by increasing the limit on the maximum number of HTTP requests over a given time.
This is similar to the HTTP Response status code 429 Too Many Requests, which is an official status that is relevant and applicable in such cases.
Note
In the IETF draft specification, HTTP response 430 was originally reserved for Request Header Fields Too Large. However, that has been changed to status 431. Also, in another IETF draft, there is mention of a 430 Would Block status that was to be implemented to address the problem of head-of-line blocking in HTTP/1.1 pipelining. However, with the introduction of HTTP/2, the problem was solved and the 430 Would Block status code was never finalized.
Note
Search engines like Google will not index a URL with 430 response status, and consequently, URLs that have been indexed in the past but are now returning this HTTP status code will be removed from the search results.
Takeaway
The 430 status code is a client error that is specific to Shopify and indicates that the server is unwilling to process the HTTP request because too many API HTTP requests have been made, too close together. A better alternative to use is 429 Too Many Requests.
See also
- 429 Too Many Requests
- RFC 7231
Last updated: June 2, 2022
The 430 HTTP Status Code means that the request header fields are too large and used by Shopify. The 430 HTTP Status Code indicates that the server is unwilling to accept the request due to its extremely large header fields. After minimizing the size of the request header fields, the request may be resubmitted. Responses with the 430 HTTP Status Code must not be cached. The difference between the 430 HTTP Status Code and the 400 HTTP Status Codes is that the 400 HTTP Status Code could not understand the request due to invalid syntax, whereas the 430 HTTP Status Code is an example of unofficial status codes.
What does 430 HTTP Status Code Mean?
The 430 HTTP Status Code means that the request header fields are too large. The 430 HTTP Status Code is used by Shopify. When under attack, servers are not required to use the 430 HTTP Status Code; instead, it may be more suitable to simply drop connections or take other actions. must figure out how many pages are total in your site and calculate so that all pages.
How to Use 430 HTTP Status Code for a Website?
To use the 430 HTTP Status Code in a website, the web developer should add a 30-second delay to the time in the SEOProfiler bot. Simply calculate the total number of pages on your site and the time it will take for all of those pages to be crawled within a 24-hour period. It also helps to make use of the Google Webmaster function, which allows you to see any mistakes that Google discovers while crawling your site on a regular basis.
How to Check 430 HTTP Status Code?
To check the 430 HTTP Status Code use the web browser network tab and developer tools for every resource that the client uses.
Which HTTP Method is used with 430 HTTP Status Code?
There is only one method that can be used associated with the 430 HTTP Status Code, and that is the GET method. It is important to apply the GET method in association with the 430 HTTP Status Code in order to request a representation of the specified resource. Requests made using the GET method should only return data.
There is a related HTTP Response Header with the 430 HTTP Status Code which is the 450 HTTP Status Code because they are unofficial status codes. The 450 HTTP Status Code is a Microsoft extension code that indicates when Windows Parental Controls are activated and are preventing access to the requesting URL.
How is the Browser Compability of 430 HTTP Status Code?
The 430 HTTP Status Code is compatible with all browsers including Chrome, Edge, Firefox, Internet Explorer, Opera, Safari, and Webview Android.
What are the other Similar Status Codes to the 430 HTTP Status Code?
There are other similar HTTP Status Codes to the 430 HTTP Status Code. The following HTTP Status Codes are listed below.
- 420 Method Failure HTTP Status Code: When a method fails, the Spring Framework returns a deprecated response. The 420 HTTP Status Code is similar to the 430 HTTP Status Code which is an unofficial status code.
- 450 Blocked by Windows Parental Controls HTTP Status Code: When Windows Parental Controls are enabled and limiting access to the requested URL, the Microsoft extension code indicates this. The 450 HTTP Status Code is similar to the 430 HTTP Status Code which is an unofficial status code.
- 498 Invalid Token HTTP Status Code: ArcGIS for Server returned a result. Code 498 denotes a token that has expired or is otherwise invalid. The 498 HTTP Status Code is similar to the 430 HTTP Status Code which is an unofficial status code.
- 499 Token Required HTTP Status Code: ArcGIS for Server returned a result. A token is required but was not submitted, as indicated by code 499. The 499 HTTP Status Code is similar to the 430 HTTP Status Code which is an unofficial status code.
- Author
- Recent Posts
Holistic SEO & Digital has been built by Koray Tuğberk GÜBÜR. Holistic SEO is the process of developing integrated digital marketing projects with every aspect including Coding, Natural Language Processing, Data Science, Page Speed, Digital Analytics, Content Marketing, Technical SEO, and Branding. Structured, Semantic Search Engine improves its ability to detect the real-world entities, today. Having a simple website is not enough anymore. To show that your brand is authoritative, trustworthy, and expert on its own niche, you need entity-based Search Engine Optimization Projects. Holistic SEO & Digital’s main focus is on improving the brand’s organic visibility and growth potential.
From Wikipedia, the free encyclopedia
This is a list of Hypertext Transfer Protocol (HTTP) response status codes. Status codes are issued by a server in response to a client’s request made to the server. It includes codes from IETF Request for Comments (RFCs), other specifications, and some additional codes used in some common applications of the HTTP. The first digit of the status code specifies one of five standard classes of responses. The optional message phrases shown are typical, but any human-readable alternative may be provided, or none at all.
Unless otherwise stated, the status code is part of the HTTP standard (RFC 9110).
The Internet Assigned Numbers Authority (IANA) maintains the official registry of HTTP status codes.[1]
All HTTP response status codes are separated into five classes or categories. The first digit of the status code defines the class of response, while the last two digits do not have any classifying or categorization role. There are five classes defined by the standard:
- 1xx informational response – the request was received, continuing process
- 2xx successful – the request was successfully received, understood, and accepted
- 3xx redirection – further action needs to be taken in order to complete the request
- 4xx client error – the request contains bad syntax or cannot be fulfilled
- 5xx server error – the server failed to fulfil an apparently valid request
1xx informational response
An informational response indicates that the request was received and understood. It is issued on a provisional basis while request processing continues. It alerts the client to wait for a final response. The message consists only of the status line and optional header fields, and is terminated by an empty line. As the HTTP/1.0 standard did not define any 1xx status codes, servers must not[note 1] send a 1xx response to an HTTP/1.0 compliant client except under experimental conditions.
- 100 Continue
- The server has received the request headers and the client should proceed to send the request body (in the case of a request for which a body needs to be sent; for example, a POST request). Sending a large request body to a server after a request has been rejected for inappropriate headers would be inefficient. To have a server check the request’s headers, a client must send
Expect: 100-continue
as a header in its initial request and receive a100 Continue
status code in response before sending the body. If the client receives an error code such as 403 (Forbidden) or 405 (Method Not Allowed) then it should not send the request’s body. The response417 Expectation Failed
indicates that the request should be repeated without theExpect
header as it indicates that the server does not support expectations (this is the case, for example, of HTTP/1.0 servers).[2] - 101 Switching Protocols
- The requester has asked the server to switch protocols and the server has agreed to do so.
- 102 Processing (WebDAV; RFC 2518)
- A WebDAV request may contain many sub-requests involving file operations, requiring a long time to complete the request. This code indicates that the server has received and is processing the request, but no response is available yet. [3] This prevents the client from timing out and assuming the request was lost. The status code is deprecated.[4]
- 103 Early Hints (RFC 8297)
- Used to return some response headers before final HTTP message.[5]
2xx success
This class of status codes indicates the action requested by the client was received, understood, and accepted.[1]
- 200 OK
- Standard response for successful HTTP requests. The actual response will depend on the request method used. In a GET request, the response will contain an entity corresponding to the requested resource. In a POST request, the response will contain an entity describing or containing the result of the action.
- 201 Created
- The request has been fulfilled, resulting in the creation of a new resource.[6]
- 202 Accepted
- The request has been accepted for processing, but the processing has not been completed. The request might or might not be eventually acted upon, and may be disallowed when processing occurs.
- 203 Non-Authoritative Information (since HTTP/1.1)
- The server is a transforming proxy (e.g. a Web accelerator) that received a 200 OK from its origin, but is returning a modified version of the origin’s response.[7][8]
- 204 No Content
- The server successfully processed the request, and is not returning any content.
- 205 Reset Content
- The server successfully processed the request, asks that the requester reset its document view, and is not returning any content.
- 206 Partial Content
- The server is delivering only part of the resource (byte serving) due to a range header sent by the client. The range header is used by HTTP clients to enable resuming of interrupted downloads, or split a download into multiple simultaneous streams.
- 207 Multi-Status (WebDAV; RFC 4918)
- The message body that follows is by default an XML message and can contain a number of separate response codes, depending on how many sub-requests were made.[9]
- 208 Already Reported (WebDAV; RFC 5842)
- The members of a DAV binding have already been enumerated in a preceding part of the (multistatus) response, and are not being included again.
- 226 IM Used (RFC 3229)
- The server has fulfilled a request for the resource, and the response is a representation of the result of one or more instance-manipulations applied to the current instance.[10]
3xx redirection
This class of status code indicates the client must take additional action to complete the request. Many of these status codes are used in URL redirection.[1]
A user agent may carry out the additional action with no user interaction only if the method used in the second request is GET or HEAD. A user agent may automatically redirect a request. A user agent should detect and intervene to prevent cyclical redirects.[11]
- 300 Multiple Choices
- Indicates multiple options for the resource from which the client may choose (via agent-driven content negotiation). For example, this code could be used to present multiple video format options, to list files with different filename extensions, or to suggest word-sense disambiguation.
- 301 Moved Permanently
- This and all future requests should be directed to the given URI.
- 302 Found (Previously «Moved temporarily»)
- Tells the client to look at (browse to) another URL. The HTTP/1.0 specification (RFC 1945) required the client to perform a temporary redirect with the same method (the original describing phrase was «Moved Temporarily»),[12] but popular browsers implemented 302 redirects by changing the method to GET. Therefore, HTTP/1.1 added status codes 303 and 307 to distinguish between the two behaviours.[11]
- 303 See Other (since HTTP/1.1)
- The response to the request can be found under another URI using the GET method. When received in response to a POST (or PUT/DELETE), the client should presume that the server has received the data and should issue a new GET request to the given URI.
- 304 Not Modified
- Indicates that the resource has not been modified since the version specified by the request headers If-Modified-Since or If-None-Match. In such case, there is no need to retransmit the resource since the client still has a previously-downloaded copy.
- 305 Use Proxy (since HTTP/1.1)
- The requested resource is available only through a proxy, the address for which is provided in the response. For security reasons, many HTTP clients (such as Mozilla Firefox and Internet Explorer) do not obey this status code.
- 306 Switch Proxy
- No longer used. Originally meant «Subsequent requests should use the specified proxy.»
- 307 Temporary Redirect (since HTTP/1.1)
- In this case, the request should be repeated with another URI; however, future requests should still use the original URI. In contrast to how 302 was historically implemented, the request method is not allowed to be changed when reissuing the original request. For example, a POST request should be repeated using another POST request.
- 308 Permanent Redirect
- This and all future requests should be directed to the given URI. 308 parallel the behaviour of 301, but does not allow the HTTP method to change. So, for example, submitting a form to a permanently redirected resource may continue smoothly.
4xx client errors
This class of status code is intended for situations in which the error seems to have been caused by the client. Except when responding to a HEAD request, the server should include an entity containing an explanation of the error situation, and whether it is a temporary or permanent condition. These status codes are applicable to any request method. User agents should display any included entity to the user.
- 400 Bad Request
- The server cannot or will not process the request due to an apparent client error (e.g., malformed request syntax, size too large, invalid request message framing, or deceptive request routing).
- 401 Unauthorized
- Similar to 403 Forbidden, but specifically for use when authentication is required and has failed or has not yet been provided. The response must include a WWW-Authenticate header field containing a challenge applicable to the requested resource. See Basic access authentication and Digest access authentication. 401 semantically means «unauthorised», the user does not have valid authentication credentials for the target resource.
- Some sites incorrectly issue HTTP 401 when an IP address is banned from the website (usually the website domain) and that specific address is refused permission to access a website.[citation needed]
- 402 Payment Required
- Reserved for future use. The original intention was that this code might be used as part of some form of digital cash or micropayment scheme, as proposed, for example, by GNU Taler,[14] but that has not yet happened, and this code is not widely used. Google Developers API uses this status if a particular developer has exceeded the daily limit on requests.[15] Sipgate uses this code if an account does not have sufficient funds to start a call.[16] Shopify uses this code when the store has not paid their fees and is temporarily disabled.[17] Stripe uses this code for failed payments where parameters were correct, for example blocked fraudulent payments.[18]
- 403 Forbidden
- The request contained valid data and was understood by the server, but the server is refusing action. This may be due to the user not having the necessary permissions for a resource or needing an account of some sort, or attempting a prohibited action (e.g. creating a duplicate record where only one is allowed). This code is also typically used if the request provided authentication by answering the WWW-Authenticate header field challenge, but the server did not accept that authentication. The request should not be repeated.
- 404 Not Found
- The requested resource could not be found but may be available in the future. Subsequent requests by the client are permissible.
- 405 Method Not Allowed
- A request method is not supported for the requested resource; for example, a GET request on a form that requires data to be presented via POST, or a PUT request on a read-only resource.
- 406 Not Acceptable
- The requested resource is capable of generating only content not acceptable according to the Accept headers sent in the request. See Content negotiation.
- 407 Proxy Authentication Required
- The client must first authenticate itself with the proxy.
- 408 Request Timeout
- The server timed out waiting for the request. According to HTTP specifications: «The client did not produce a request within the time that the server was prepared to wait. The client MAY repeat the request without modifications at any later time.»
- 409 Conflict
- Indicates that the request could not be processed because of conflict in the current state of the resource, such as an edit conflict between multiple simultaneous updates.
- 410 Gone
- Indicates that the resource requested was previously in use but is no longer available and will not be available again. This should be used when a resource has been intentionally removed and the resource should be purged. Upon receiving a 410 status code, the client should not request the resource in the future. Clients such as search engines should remove the resource from their indices. Most use cases do not require clients and search engines to purge the resource, and a «404 Not Found» may be used instead.
- 411 Length Required
- The request did not specify the length of its content, which is required by the requested resource.
- 412 Precondition Failed
- The server does not meet one of the preconditions that the requester put on the request header fields.
- 413 Payload Too Large
- The request is larger than the server is willing or able to process. Previously called «Request Entity Too Large» in RFC 2616.[19]
- 414 URI Too Long
- The URI provided was too long for the server to process. Often the result of too much data being encoded as a query-string of a GET request, in which case it should be converted to a POST request. Called «Request-URI Too Long» previously in RFC 2616.[20]
- 415 Unsupported Media Type
- The request entity has a media type which the server or resource does not support. For example, the client uploads an image as image/svg+xml, but the server requires that images use a different format.
- 416 Range Not Satisfiable
- The client has asked for a portion of the file (byte serving), but the server cannot supply that portion. For example, if the client asked for a part of the file that lies beyond the end of the file. Called «Requested Range Not Satisfiable» previously RFC 2616.[21]
- 417 Expectation Failed
- The server cannot meet the requirements of the Expect request-header field.[22]
- 418 I’m a teapot (RFC 2324, RFC 7168)
- This code was defined in 1998 as one of the traditional IETF April Fools’ jokes, in RFC 2324, Hyper Text Coffee Pot Control Protocol, and is not expected to be implemented by actual HTTP servers. The RFC specifies this code should be returned by teapots requested to brew coffee.[23] This HTTP status is used as an Easter egg in some websites, such as Google.com’s «I’m a teapot» easter egg.[24][25][26] Sometimes, this status code is also used as a response to a blocked request, instead of the more appropriate 403 Forbidden.[27][28]
- 421 Misdirected Request
- The request was directed at a server that is not able to produce a response (for example because of connection reuse).
- 422 Unprocessable Entity
- The request was well-formed but was unable to be followed due to semantic errors.[9]
- 423 Locked (WebDAV; RFC 4918)
- The resource that is being accessed is locked.[9]
- 424 Failed Dependency (WebDAV; RFC 4918)
- The request failed because it depended on another request and that request failed (e.g., a PROPPATCH).[9]
- 425 Too Early (RFC 8470)
- Indicates that the server is unwilling to risk processing a request that might be replayed.
- 426 Upgrade Required
- The client should switch to a different protocol such as TLS/1.3, given in the Upgrade header field.
- 428 Precondition Required (RFC 6585)
- The origin server requires the request to be conditional. Intended to prevent the ‘lost update’ problem, where a client GETs a resource’s state, modifies it, and PUTs it back to the server, when meanwhile a third party has modified the state on the server, leading to a conflict.[29]
- 429 Too Many Requests (RFC 6585)
- The user has sent too many requests in a given amount of time. Intended for use with rate-limiting schemes.[29]
- 431 Request Header Fields Too Large (RFC 6585)
- The server is unwilling to process the request because either an individual header field, or all the header fields collectively, are too large.[29]
- 451 Unavailable For Legal Reasons (RFC 7725)
- A server operator has received a legal demand to deny access to a resource or to a set of resources that includes the requested resource.[30] The code 451 was chosen as a reference to the novel Fahrenheit 451 (see the Acknowledgements in the RFC).
5xx server errors
The server failed to fulfil a request.
Response status codes beginning with the digit «5» indicate cases in which the server is aware that it has encountered an error or is otherwise incapable of performing the request. Except when responding to a HEAD request, the server should include an entity containing an explanation of the error situation, and indicate whether it is a temporary or permanent condition. Likewise, user agents should display any included entity to the user. These response codes are applicable to any request method.
- 500 Internal Server Error
- A generic error message, given 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 fulfil the request. Usually this implies future availability (e.g., a new feature of a web-service API).
- 502 Bad Gateway
- The server was acting as a gateway or proxy and received an invalid response from the upstream server.
- 503 Service Unavailable
- The server cannot handle the request (because it is overloaded or down for maintenance). Generally, this is a temporary state.[31]
- 504 Gateway Timeout
- The server was acting as a gateway or proxy and did not receive a timely response from the upstream server.
- 505 HTTP Version Not Supported
- The server does not support the HTTP version used in the request.
- 506 Variant Also Negotiates (RFC 2295)
- Transparent content negotiation for the request results in a circular reference.[32]
- 507 Insufficient Storage (WebDAV; RFC 4918)
- The server is unable to store the representation needed to complete the request.[9]
- 508 Loop Detected (WebDAV; RFC 5842)
- The server detected an infinite loop while processing the request (sent instead of 208 Already Reported).
- 510 Not Extended (RFC 2774)
- Further extensions to the request are required for the server to fulfil it.[33]
- 511 Network Authentication Required (RFC 6585)
- The client needs to authenticate to gain network access. Intended for use by intercepting proxies used to control access to the network (e.g., «captive portals» used to require agreement to Terms of Service before granting full Internet access via a Wi-Fi hotspot).[29]
Unofficial codes
The following codes are not specified by any standard.
- 419 Page Expired (Laravel Framework)
- Used by the Laravel Framework when a CSRF Token is missing or expired.
- 420 Method Failure (Spring Framework)
- A deprecated response used by the Spring Framework when a method has failed.[34]
- 420 Enhance Your Calm (Twitter)
- Returned by version 1 of the Twitter Search and Trends API when the client is being rate limited; versions 1.1 and later use the 429 Too Many Requests response code instead.[35] The phrase «Enhance your calm» comes from the 1993 movie Demolition Man, and its association with this number is likely a reference to cannabis.[citation needed]
- 430 Request Header Fields Too Large (Shopify)
- Used by Shopify, instead of the 429 Too Many Requests response code, when too many URLs are requested within a certain time frame.[36]
- 450 Blocked by Windows Parental Controls (Microsoft)
- The Microsoft extension code indicated when Windows Parental Controls are turned on and are blocking access to the requested webpage.[37]
- 498 Invalid Token (Esri)
- Returned by ArcGIS for Server. Code 498 indicates an expired or otherwise invalid token.[38]
- 499 Token Required (Esri)
- Returned by ArcGIS for Server. Code 499 indicates that a token is required but was not submitted.[38]
- 509 Bandwidth Limit Exceeded (Apache Web Server/cPanel)
- The server has exceeded the bandwidth specified by the server administrator; this is often used by shared hosting providers to limit the bandwidth of customers.[39]
- 529 Site is overloaded
- Used by Qualys in the SSLLabs server testing API to signal that the site can’t process the request.[40]
- 530 Site is frozen
- Used by the Pantheon Systems web platform to indicate a site that has been frozen due to inactivity.[41]
- 598 (Informal convention) Network read timeout error
- Used by some HTTP proxies to signal a network read timeout behind the proxy to a client in front of the proxy.[42]
- 599 Network Connect Timeout Error
- An error used by some HTTP proxies to signal a network connect timeout behind the proxy to a client in front of the proxy.
Internet Information Services
Microsoft’s Internet Information Services (IIS) web server expands the 4xx error space to signal errors with the client’s request.
- 440 Login Time-out
- The client’s session has expired and must log in again.[43]
- 449 Retry With
- The server cannot honour the request because the user has not provided the required information.[44]
- 451 Redirect
- Used in Exchange ActiveSync when either a more efficient server is available or the server cannot access the users’ mailbox.[45] The client is expected to re-run the HTTP AutoDiscover operation to find a more appropriate server.[46]
IIS sometimes uses additional decimal sub-codes for more specific information,[47] however these sub-codes only appear in the response payload and in documentation, not in the place of an actual HTTP status code.
nginx
The nginx web server software expands the 4xx error space to signal issues with the client’s request.[48][49]
- 444 No Response
- Used internally[50] to instruct the server to return no information to the client and close the connection immediately.
- 494 Request header too large
- Client sent too large request or too long header line.
- 495 SSL Certificate Error
- An expansion of the 400 Bad Request response code, used when the client has provided an invalid client certificate.
- 496 SSL Certificate Required
- An expansion of the 400 Bad Request response code, used when a client certificate is required but not provided.
- 497 HTTP Request Sent to HTTPS Port
- An expansion of the 400 Bad Request response code, used when the client has made a HTTP request to a port listening for HTTPS requests.
- 499 Client Closed Request
- Used when the client has closed the request before the server could send a response.
Cloudflare
Cloudflare’s reverse proxy service expands the 5xx series of errors space to signal issues with the origin server.[51]
- 520 Web Server Returned an Unknown Error
- The origin server returned an empty, unknown, or unexpected response to Cloudflare.[52]
- 521 Web Server Is Down
- The origin server refused connections from Cloudflare. Security solutions at the origin may be blocking legitimate connections from certain Cloudflare IP addresses.
- 522 Connection Timed Out
- Cloudflare timed out contacting the origin server.
- 523 Origin Is Unreachable
- Cloudflare could not reach the origin server; for example, if the DNS records for the origin server are incorrect or missing.
- 524 A Timeout Occurred
- Cloudflare was able to complete a TCP connection to the origin server, but did not receive a timely HTTP response.
- 525 SSL Handshake Failed
- Cloudflare could not negotiate a SSL/TLS handshake with the origin server.
- 526 Invalid SSL Certificate
- Cloudflare could not validate the SSL certificate on the origin web server. Also used by Cloud Foundry’s gorouter.
- 527 Railgun Error
- Error 527 indicates an interrupted connection between Cloudflare and the origin server’s Railgun server.[53]
- 530
- Error 530 is returned along with a 1xxx error.[54]
AWS Elastic Load Balancer
Amazon’s Elastic Load Balancing adds a few custom return codes
- 460
- Client closed the connection with the load balancer before the idle timeout period elapsed. Typically when client timeout is sooner than the Elastic Load Balancer’s timeout.[55]
- 463
- The load balancer received an X-Forwarded-For request header with more than 30 IP addresses.[55]
- 464
- Incompatible protocol versions between Client and Origin server.[55]
- 561 Unauthorized
- An error around authentication returned by a server registered with a load balancer. You configured a listener rule to authenticate users, but the identity provider (IdP) returned an error code when authenticating the user.[55]
Caching warning codes (obsoleted)
The following caching related warning codes were specified under RFC 7234. Unlike the other status codes above, these were not sent as the response status in the HTTP protocol, but as part of the «Warning» HTTP header.[56][57]
Since this «Warning» header is often neither sent by servers nor acknowledged by clients, this header and its codes were obsoleted by the HTTP Working Group in 2022 with RFC 9111.[58]
- 110 Response is Stale
- The response provided by a cache is stale (the content’s age exceeds a maximum age set by a Cache-Control header or heuristically chosen lifetime).
- 111 Revalidation Failed
- The cache was unable to validate the response, due to an inability to reach the origin server.
- 112 Disconnected Operation
- The cache is intentionally disconnected from the rest of the network.
- 113 Heuristic Expiration
- The cache heuristically chose a freshness lifetime greater than 24 hours and the response’s age is greater than 24 hours.
- 199 Miscellaneous Warning
- Arbitrary, non-specific warning. The warning text may be logged or presented to the user.
- 214 Transformation Applied
- Added by a proxy if it applies any transformation to the representation, such as changing the content encoding, media type or the like.
- 299 Miscellaneous Persistent Warning
- Same as 199, but indicating a persistent warning.
See also
- Custom error pages
- List of FTP server return codes
- List of HTTP header fields
- List of SMTP server return codes
- Common Log Format
Explanatory notes
- ^ Emphasised words and phrases such as must and should represent interpretation guidelines as given by RFC 2119
References
- ^ a b c «Hypertext Transfer Protocol (HTTP) Status Code Registry». Iana.org. Archived from the original on December 11, 2011. Retrieved January 8, 2015.
- ^ Fielding, Roy T. «RFC 9110: HTTP Semantics and Content, Section 10.1.1 «Expect»«.
- ^ Goland, Yaronn; Whitehead, Jim; Faizi, Asad; Carter, Steve R.; Jensen, Del (February 1999). HTTP Extensions for Distributed Authoring – WEBDAV. IETF. doi:10.17487/RFC2518. RFC 2518. Retrieved October 24, 2009.
- ^ «102 Processing — HTTP MDN». 102 status code is deprecated
- ^ Oku, Kazuho (December 2017). An HTTP Status Code for Indicating Hints. IETF. doi:10.17487/RFC8297. RFC 8297. Retrieved December 20, 2017.
- ^ Stewart, Mark; djna. «Create request with POST, which response codes 200 or 201 and content». Stack Overflow. Archived from the original on October 11, 2016. Retrieved October 16, 2015.
- ^ «RFC 9110: HTTP Semantics and Content, Section 15.3.4».
- ^ «RFC 9110: HTTP Semantics and Content, Section 7.7».
- ^ a b c d e Dusseault, Lisa, ed. (June 2007). HTTP Extensions for Web Distributed Authoring and Versioning (WebDAV). IETF. doi:10.17487/RFC4918. RFC 4918. Retrieved October 24, 2009.
- ^ Delta encoding in HTTP. IETF. January 2002. doi:10.17487/RFC3229. RFC 3229. Retrieved February 25, 2011.
- ^ a b «RFC 9110: HTTP Semantics and Content, Section 15.4 «Redirection 3xx»«.
- ^ Berners-Lee, Tim; Fielding, Roy T.; Nielsen, Henrik Frystyk (May 1996). Hypertext Transfer Protocol – HTTP/1.0. IETF. doi:10.17487/RFC1945. RFC 1945. Retrieved October 24, 2009.
- ^ «The GNU Taler tutorial for PHP Web shop developers 0.4.0». docs.taler.net. Archived from the original on November 8, 2017. Retrieved October 29, 2017.
- ^ «Google API Standard Error Responses». 2016. Archived from the original on May 25, 2017. Retrieved June 21, 2017.
- ^ «Sipgate API Documentation». Archived from the original on July 10, 2018. Retrieved July 10, 2018.
- ^ «Shopify Documentation». Archived from the original on July 25, 2018. Retrieved July 25, 2018.
- ^ «Stripe API Reference – Errors». stripe.com. Retrieved October 28, 2019.
- ^ «RFC2616 on status 413». Tools.ietf.org. Archived from the original on March 7, 2011. Retrieved November 11, 2015.
- ^ «RFC2616 on status 414». Tools.ietf.org. Archived from the original on March 7, 2011. Retrieved November 11, 2015.
- ^ «RFC2616 on status 416». Tools.ietf.org. Archived from the original on March 7, 2011. Retrieved November 11, 2015.
- ^ TheDeadLike. «HTTP/1.1 Status Codes 400 and 417, cannot choose which». serverFault. Archived from the original on October 10, 2015. Retrieved October 16, 2015.
- ^ Larry Masinter (April 1, 1998). Hyper Text Coffee Pot Control Protocol (HTCPCP/1.0). doi:10.17487/RFC2324. RFC 2324.
Any attempt to brew coffee with a teapot should result in the error code «418 I’m a teapot». The resulting entity body MAY be short and stout.
- ^ I’m a teapot
- ^ Barry Schwartz (August 26, 2014). «New Google Easter Egg For SEO Geeks: Server Status 418, I’m A Teapot». Search Engine Land. Archived from the original on November 15, 2015. Retrieved November 4, 2015.
- ^ «Google’s Teapot». Retrieved October 23, 2017.[dead link]
- ^ «Enable extra web security on a website». DreamHost. Retrieved December 18, 2022.
- ^ «I Went to a Russian Website and All I Got Was This Lousy Teapot». PCMag. Retrieved December 18, 2022.
- ^ a b c d Nottingham, M.; Fielding, R. (April 2012). «RFC 6585 – Additional HTTP Status Codes». Request for Comments. Internet Engineering Task Force. Archived from the original on May 4, 2012. Retrieved May 1, 2012.
- ^ Bray, T. (February 2016). «An HTTP Status Code to Report Legal Obstacles». ietf.org. Archived from the original on March 4, 2016. Retrieved March 7, 2015.
- ^ alex. «What is the correct HTTP status code to send when a site is down for maintenance?». Stack Overflow. Archived from the original on October 11, 2016. Retrieved October 16, 2015.
- ^ Holtman, Koen; Mutz, Andrew H. (March 1998). Transparent Content Negotiation in HTTP. IETF. doi:10.17487/RFC2295. RFC 2295. Retrieved October 24, 2009.
- ^ Nielsen, Henrik Frystyk; Leach, Paul; Lawrence, Scott (February 2000). An HTTP Extension Framework. IETF. doi:10.17487/RFC2774. RFC 2774. Retrieved October 24, 2009.
- ^ «Enum HttpStatus». Spring Framework. org.springframework.http. Archived from the original on October 25, 2015. Retrieved October 16, 2015.
- ^ «Twitter Error Codes & Responses». Twitter. 2014. Archived from the original on September 27, 2017. Retrieved January 20, 2014.
- ^ «HTTP Status Codes and SEO: what you need to know». ContentKing. Retrieved August 9, 2019.
- ^ «Screenshot of error page». Archived from the original (bmp) on May 11, 2013. Retrieved October 11, 2009.
- ^ a b «Using token-based authentication». ArcGIS Server SOAP SDK. Archived from the original on September 26, 2014. Retrieved September 8, 2014.
- ^ «HTTP Error Codes and Quick Fixes». Docs.cpanel.net. Archived from the original on November 23, 2015. Retrieved October 15, 2015.
- ^ «SSL Labs API v3 Documentation». github.com.
- ^ «Platform Considerations | Pantheon Docs». pantheon.io. Archived from the original on January 6, 2017. Retrieved January 5, 2017.
- ^ «HTTP status codes — ascii-code.com». www.ascii-code.com. Archived from the original on January 7, 2017. Retrieved December 23, 2016.
- ^
«Error message when you try to log on to Exchange 2007 by using Outlook Web Access: «440 Login Time-out»«. Microsoft. 2010. Retrieved November 13, 2013. - ^ «2.2.6 449 Retry With Status Code». Microsoft. 2009. Archived from the original on October 5, 2009. Retrieved October 26, 2009.
- ^ «MS-ASCMD, Section 3.1.5.2.2». Msdn.microsoft.com. Archived from the original on March 26, 2015. Retrieved January 8, 2015.
- ^ «Ms-oxdisco». Msdn.microsoft.com. Archived from the original on July 31, 2014. Retrieved January 8, 2015.
- ^ «The HTTP status codes in IIS 7.0». Microsoft. July 14, 2009. Archived from the original on April 9, 2009. Retrieved April 1, 2009.
- ^ «ngx_http_request.h». nginx 1.9.5 source code. nginx inc. Archived from the original on September 19, 2017. Retrieved January 9, 2016.
- ^ «ngx_http_special_response.c». nginx 1.9.5 source code. nginx inc. Archived from the original on May 8, 2018. Retrieved January 9, 2016.
- ^ «return» directive Archived March 1, 2018, at the Wayback Machine (http_rewrite module) documentation.
- ^ «Troubleshooting: Error Pages». Cloudflare. Archived from the original on March 4, 2016. Retrieved January 9, 2016.
- ^ «Error 520: web server returns an unknown error». Cloudflare.
- ^ «527 Error: Railgun Listener to origin error». Cloudflare. Archived from the original on October 13, 2016. Retrieved October 12, 2016.
- ^ «Error 530». Cloudflare. Retrieved November 1, 2019.
- ^ a b c d «Troubleshoot Your Application Load Balancers – Elastic Load Balancing». docs.aws.amazon.com. Retrieved May 17, 2023.
- ^ «Hypertext Transfer Protocol (HTTP/1.1): Caching». datatracker.ietf.org. Retrieved September 25, 2021.
- ^ «Warning — HTTP | MDN». developer.mozilla.org. Retrieved August 15, 2021. Some text was copied from this source, which is available under a Creative Commons Attribution-ShareAlike 2.5 Generic (CC BY-SA 2.5) license.
- ^ «RFC 9111: HTTP Caching, Section 5.5 «Warning»«. June 2022.
External links
- «RFC 9110: HTTP Semantics and Content, Section 15 «Status Codes»«.
- Hypertext Transfer Protocol (HTTP) Status Code Registry at the Internet Assigned Numbers Authority
- MDN status code reference at mozilla.org
BNAME.RU » Код ошибки HTTP 430 Would Block
Что означает ошибка 430 Would Block?
При просмотре списков кодов состояния HTTP можно заметить, что имеется разрыв между 429 Слишком много запросов и 431 Слишком большие поля заголовка запроса. Мне это показалось интересным, поэтому я немного покопался, и оказалось, что примерно в то же время 429 и 431 был другой код статуса, который никогда не входил в стандарт, определяющий блок 430 Will. Проект спецификации содержит несколько решений, позволяющих использовать HTTP/1.1 функции обработки трубопроводов. HTTP/1.1 конвейерная обработка — это функция, которая позволяет браузеру отправлять несколько запросов по одному и тому же TCP-соединению, прежде чем ему придется ждать ответа. Это потенциально может быть крупной оптимизацией, но реализация проблематична. С тех пор была введена HTTP/2, которая полностью решает эту проблему. Поддержка конвейерной обработки действительно существовала на многих клиентах и серверах, но часто скрывалась за флагом, который был отключен по умолчанию. С HTTP/2 года различные клиенты, такие как Curl, полностью удалили поддержку HTTP/1.1 конвейерной обработки, и маловероятно, что эта функция когда-либо вернется. Код 430 состояния должен блокировать код, который сервер может использовать для предотвращения конвейерной обработки нескольких запросов, для которых один из запросов заблокирован впоследствии в конвейере. В любом случае, я написал его в основном для исторического интереса. Не используй его.
HTTP status codes are three-digit responses a server returns at the request of a client (a browser or search engine). They are divided into five classes with multiple variants that convey different types of messages.
Every SEO out there should know at least the most common HTTP status codes by heart to quickly evaluate any situation:
- 200 OK
- 301 Moved permanently
- 302 Found / Moved temporarily
- 404 Not Found
- 410 Gone
- 503 Service Unavailable
- What are HTTP status codes?
- A note on timeouts and other connection errors
- Why are HTTP status codes important to SEO?
- What do HTTP responses look like?
- What do HTTP status codes look like?
- What are the most common HTTP status codes in SEO?
- How do you check HTTP status codes?
- How do you monitor HTTP status codes?
- The different types of HTTP statuses
- HTTP 1xx status codes
- HTTP 2xx status codes
- HTTP 3xx status codes
- HTTP 4xx status codes
- HTTP 5xx status codes
- Closing words
- Frequently Asked Questions
What are HTTP status codes?
HTTP status codes are three-digit responses that a server returns at the request of a client (a browser or search engine). There are five classes of status codes, and each class conveys a different type of message.
When you requested this page in your browser, you made dozens of requests to our server asking for all of the information needed to view and render the page. That all happened in a flash, without you noticing. HTTP status codes were instrumental in making it possible.
HTTP stands for Hypertext Transfer Protocol. It’s the protocol used by clients and servers to communicate and exchange data. HTTP status codes are part of the communication process.
Please note that we’ll use the terms «URL,» «page,» and «resource» interchangeably, depending on the context. At the end of the day, these are all resources.
Status codes are one of the clearest SEO indicators for site health, but it’s not always clear how to fix them the right way. Don’t let that backlog of problematic status codes creep up in your search console!
I personally see status code grooming as one of the most important elements of SEO hygiene and one of the most important ongoing processes.
Here’s why it’s important to understand HTTP status codes:
- We had many discussions over
301
vs302
with some of the biggest disparity between what Google officially says versus what practicality tells us. I suggest taking care of any302s
because even though they might pass PageRank in the same fashion as301s
, Google will not update your snippet in the SERPs. Keep that in mind with any type of migration.- Soft
404s
are one of the biggest enemies of large sites after my experience. They usually come down to empty pages and should be fixed, just like404s
.5xx
often occur on an ad-hoc basis and should be taken care of immediately because they’re followed by a decrease in crawl budget.Optimally, you’d involved your developer team in taking care of status codes because it’s just as much their job as it is yours. Shared goals are key here.
A note on timeouts and other connection errors
Timeout or connection errors unrelated to HTTP status code classes are not server responses. Errors like these mean that the client never reached the server.
As this is important to understand, but a confusing topic for most people, we’ll look at a few examples:
- Connection timeout errors, such as Google Chrome’s «This site can’t be reached,» are not status codes. The server wasn’t reached, so they can’t be server responses and aren’t classified as status codes.
- DNS lookup errors, such as Google Chrome’s «This webpage is not available». This error isn’t a server response either, as the client couldn’t connect with the server because of a DNS issue.
In all cases where you get a HTTP status code, this means the server was reached, and that it was able to issue a response.
Why are HTTP status codes important to SEO?
The goal of SEO is to drive organic traffic that’s likely to be interested in what you have to say.
In order to drive that traffic, you need to make sure your content is accessible to search engine crawlers. When they request your content, you want HTTP status 200 OKs
to be returned. What you don’t want is for HTTP status codes 5xx
and 4xx
to be returned, and you want to keep HTTP status codes 3xx
to a minimum as well.
Search engine crawlers and websites speak HTTP
. If you’re having a hard time understanding what they’re talking about, how are you going to be an effective SEO?
Not understanding HTTP status codes is like managing a restaurant in a foreign country where you don’t speak the language. You’ll see lots of things happening, but you don’t really know what’s going on, why it happens, and how to improve it.
If you’re using a CMS like WordPress with a Redirect Manager plugin like Yoast, setting up a 301 is easy. As a digital marketer, it’s really useful to also understand how this could be done without a plugin and why status codes you haven’t intentionally set-up may exist. Why? It helps you debug issues much faster and allows you to have more in-depth discussions with developers.
In a perfect world you have zero
404
errors or301
redirects within internal links of your website.The most common internal
404
errors are caused by human beings — using relative paths to refer to a different root domain, typing the URL wrong, and sometimes pasting invisible characters into your WYSIWYG editor.In a perfect world you would fix the root of these problems, and only upon not being able to fix the root of the problem, use
301
redirects as a patch. This is why301
redirects are fascinating for SEO’s — they’re often much more nefarious under the hood as they live on as patches of tech debt.
Don’t miss out on organic traffic
Make sure your content is accessible to search engines. Monitor your site with ContentKing and get alerts when HTTP status codes change.
What do HTTP responses look like?
The HTTP
responses sent by web servers usually consist of two parts: headers and a body payload.
The headers contain the HTTP status code and other information such as instructions on how long the client should cache the response.
The headers are not displayed to the user, but they do instruct the client on how to deal with the response and how to display the body payload (if any). You can see what HTTP
headers were returned by using Web Inspector or other browser tools.
When a body payload is present in the HTTP
response, it’s used to render and display the page to the user. When it comes to redirects, there is no body payload—and keep in mind that a body payload is optional for some errors.
What do HTTP status codes look like?
Let’s look at a simplified example of what your browser did when you requested to see this page:
GET /academy/http-status-codes/ HTTP/2
This breaks down into:
-
GET
: describes theHTTP
method used to get what you want from the server. -
/academy/http-status-codes/
: describes what URL the request is about. -
HTTP/2
: describes what protocol to communicate in.
And here’s the HTTP response header our server sent back:
HTTP/2 200 OK
-
HTTP/2
– describes what protocol to communicate in. -
200 OK
– the request was successful—this is what you want to see.
What are the most common HTTP status codes in SEO?
The most common HTTP status codes you’ll come across in daily SEO life are:
- 200 OK
- 301 Moved permanently
- 302 Found / Moved temporarily
- 307 Temporarily Redirect / Internal Redirect
- 404 Not Found
- 410 Gone
- 503 Service Unavailable
How do you check HTTP status codes?
You can see HTTP status codes right in your browser by using built-in tools, a browser plugin, or for instance Google Search Console’s URL inspection tool.
As these check types are all done on a page-by-page basis, they’re slow and inefficient if you want to check a large number of URLs. They’re even more tedious if you want to monitor those URLs. If that’s what you want to do, quickly skip to the next section.
Checking the HTTP status code in your browser using built-in tools
Checking the HTTP status code in your browser is pretty similar across different browsers.
Each browser comes with applicable built-in tools:
-
Google Chrome/Brave: open up Chrome DevTools, and select the
Network
tab to see network activity. Read more (opens in a new tab). -
Firefox: open up Inspector and select the
Network
tab to see network activity. Read more (opens in a new tab). -
Safari: open up Web inspector and select the
Network
tab to see network activity. Read more (opens in a new tab). -
Edge: open up Developer Tools and select the
Network
tab to see network activity. Read more (opens in a new tab).
Checking the HTTP status code using a browser plugin
If you find using the built-in functionality in browsers too difficult or not user-friendly enough, you can use a browser plugin.
One example of a popular Google Chrome plugin is: Redirect Path (opens in a new tab) by Ayima.
Checking the HTTP status code in Google Search Console
Within Google Search Console, you can request the HTTP status code of a URL using the URL Inspection feature. You’ll see the HTTP status code as the value for «Page fetch.»
For instance, when we request https://www.contentkingapp.com/academy/protect-staging-environment/
and open the «Coverage» pane, we see it returns «Successful»—which is really the 200 OK
status code.
When we request a nonexistent URL, we see the following:
When it comes to diagnose HTTP Status headers, one of the most common pitfalls I see, is when a server answers conditionally depending on the
User-Agent
.For example, I’ve seen cases where a server replies with a
404
status, when a browser tries to access the robots.txt file, but when you use a stateless browser, or command line tool that emulates Googlebot, the server will reply something entirely different. The worst-case scenarios, is when in fact, there’s an HTTP500
status, instead of the404
you saw in the browser.I usually test all the HTTP status via command line, and made a useful shortcut to run a line of code that looks like this:
$ curl -sIX GET --user-agent 'Mozilla/5.0 (Linux; Android 6.0.1; Nexus 5X Build/MMB29P) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/41.0.2272.96 Mobile Safari/537.36 (compatible; Googlebot/2.1; +http://google.com/bot.html)' http://yoursite.com
If you can, also modify this in order to output the HTML to a file.
So my tip here is: verify and ensure consistency in
HTTP
headers, independent of Browser or User-Agent. Don’t trust one source only, especially browser plugins. Also, unless you know what you’re doing, there’s no reason for a server to answer conditionally to a request.
How do you monitor HTTP status codes?
Unfortunate server issues aside, when you’re moving content around, consolidating or removing it completely leads to lots of HTTP status code changes. Checking them on a page-by-page level doesn’t cut it.
Therefore, we highly recommend monitoring the HTTP status codes of your URLs. You can do so by using ContentKing, which alerts you if important pages start to redirect (3xx
) or return client errors (4xx
) or server errors (5xx
).
And of course, you can see the HTTP status code of any URL at all times, as it’s updated in real-time.
Gain insight in your site’s HTTP Status Codes
Let ContentKing alert you if important pages start to redirect, or return client or server errors.
The different types of HTTP statuses
There are five classes of HTTP response status codes:
-
1xx – An informational response:
«We’ve received your request and are processing it. Please hold!» -
2xx – A success response
«We’ve successfully received your request; here’s what you asked for!» -
3xx – A redirection response
«Further action is needed to fulfill this request.» -
4xx – A client error response
«The request cannot be fulfilled; something is probably wrong on your end.» -
5xx – A server error response
«We’re having issues processing your valid request.»
HTTP 1xx status codes
HTTP 1xx
status codes are all informational. They indicate that a request was received and understood, but that it simply hasn’t been processed yet.
We’re not covering the 1xx
status codes, as they are only rarely seen.
HTTP 2xx status codes
HTTP 2xx
status codes indicate successful requests. Everything went according to plan.
From an SEO point of view, the most important status code to know in the 2xx
range is the HTTP status code 200
.
HTTP status code 200 OK
What does the HTTP status code 200 mean?
When a server sends the HTTP status code 200
as a response, it tells the client that the request was received successfully and replies with the requested content.
Please note that this is not an error code. The HTTP status 200 OK
means everything went OK!
An example of correct use of the HTTP status code 200
When a page that exists is requested and this HTTP status code is the response.
A common example of incorrect use of the HTTP status code 200
When a page that doesn’t exist is requested, and an HTTP status code 200
is served instead of either an HTTP status code 404 or HTTP status code 410. This is what we call a soft 404 error.
HTTP 3xx status codes
HTTP 3xx
status codes indicate that further action is needed. The request was received, but can’t be fulfilled yet. When the client receives a 3xx
status code, it needs to make a new request to the location the server returned along with the redirect. The HTTP status codes that we’ll describe in this section are all redirects.
This happens when a request is made for URL A, but URL A is redirected to URL B. So the request should actually be made to URL B.
Redirects are like bandaids, you use them if you want to quickly fix something. Putting bandaids on top of each other doesn’t work. Avoid doing the same with redirects. Don’t chain redirects; always redirect to the final destination of the redirect.
In this section we’ll cover the following HTTP status codes, because of their significance for SEO:
- 301: Moved permanently
- 302: Found / Moved temporarily
- 303: See Other
- 304: Not modified
- 307: Temporarily Redirect
- 308: Permanent Redirect
When reviewing redirection status codes in log analysis, via Chrome or Google Search Console’s Live Test, it is important not to conflate Google’s handling of 30X codes for HTML pages and page assets.
Google uses
30X
codes for pages in order to canonicalize and consolidate link equity.302
vs301
‘s on CSS or JS files have little impact since Google doesn’t need to understand the canonical version. Live or either cached assets by Google are used for rendering, not indexing.
301 status code: Moved permanently
What does the HTTP status code 301 mean?
The HTTP status code 301
, «301 redirect» for short, indicates that a resource has permanently moved to another location. The request and all future requests must be redirected to another URL instead of the requested source.
Because of its permanent nature, all signals from the requested URL that is being redirected are passed on to the destination URL. Please note that browsers will also cache 301 redirects to save an additional request in the future, which leads to a better user experience by displaying the page faster.
An example of correct use of the HTTP status code 301
When a website has migrated from HTTP
to HTTPS
, and each HTTP
URL is redirected to its HTTPS
version. 301 redirects are essential to the success of website migrations.
A common example of incorrect use of the HTTP status code 301
When a page is only temporarily inaccessible.
I tend to take Google’s advice with a grain of salt. It’s not that I think they are trying to pass on misinformation, I simply don’t believe the answers are always «complete».
Google’s search algorithm is proprietary and part of the SEO «game» is to test into components that positively/negatively impact rankings. I imagine Google sees diminishing returns pretty quickly when providing insights/confirmation to SEO theories so I don’t blame them for being vague or giving potentially incomplete answers to questions.
As to redirects specifically, I strictly use 301 redirects. I’ve seen too many migrations where non-301 redirects have been used with an immediate negative performance impact. Would a 302 or 307 redirect pass ranking/canonicalization value over time (per Google’s statement)?
Maybe.
Am I willing to wait and find out, nope!
When migrating websites, don’t forget to also implement 301 redirects for image files as Image Search is becoming increasingly more important, especially for e-commerce websites.
As Google ignores
rel="canonical"
tags for images, setting up 301 redirects is the only way to pass the authority of your old images to the new ones. Keep in mind that Google is still slow when it comes to seeing image related updates so make sure you create image sitemaps for the old and new images to help the search engine see the changes faster.It’s also important to note that Google will increase its crawl rate when discovering 301 redirects in general, so if you’re running a large e-commerce site make sure your hosting environment can handle the increased crawl rate when you’re migrating a full website!
302 status code: Found / Moved temporarily
What does the HTTP status code 302 mean?
The HTTP status code 302
, «302 redirect» for short, indicates that a resource has temporarily moved to another location.
Because of its temporary nature, no popularity and relevance signals from the redirected URL are passed on to the destination URL and the redirected URL will still rank instead of being consolidated. Please note that after a significant amount of time, 302 redirects can be treated as 301 redirects by search engines.
Simply put: when a 302 redirect has been in place for a long time, it’s treated as being permanent.
An example of correct use of the HTTP status code 302
You’re running a campaign, and for a short period of time, you want to send users landing on URL A to URL B instead. After three weeks the campaign ends, and you remove the 302 redirect.
A common example of incorrect use of the HTTP status code 302
When a website migration is done, and 302 redirects are implemented instead of 301 redirects. Signals from old URLs aren’t passed on to new URLs right away, so the new URLs will not be as successful as the old URLs. It can take a months before 302 redirects are considered to be actually 301 redirects.
303 status code: See Other
What does the HTTP status code 303 mean?
The HTTP status code 303
, «303 redirect» for short, indicates that the server is redirecting the request URL to a different URL. It can for instance be used to prevent users from accidentally re-submitting forms when using the «back» button in their browser, as the 303 redirect indicates that a follow-up request to the temporary URL should be made using the GET
HTTP method.
When Google’s Gary Illyes was asked whether 303 redirects pass popularity signals, he said «Yes» (opens in a new tab); it’s fine to use 303 redirects when it comes to forms, but don’t use them for redirecting content that isn’t related to forms.
Why?
Because Google has noted that 303 redirects also pass link equity (similar to 301 redirects), but what they haven’t noted is that it takes quite a while for this to happen.
An example of correct use of the HTTP status code 303
You’ve got a contact form on your website, and you want to keep users from accidentally re-submitting their input when they use the «back» button in their browser.
A common example of incorrect use of the HTTP status code 303
When content is permanently moved, and a 303 redirect is used instead of a 301 redirect.
Are redirects hurting your SEO performance?
Poorly configured redirects can seriously impact your SEO efforts.
Run a quick check with ContentKing and see what can be improved.
304 status codes: Not modified
What does the HTTP status code 304 mean?
The HTTP status code 304
, «304 redirect» for short, indicates that the requested resource hasn’t been modified since the last time it was requested; therefore it will not be returned to the client, and instead the cached version should be used.
Example: we’ve accessed a page on May 27th 2019 at 9:00 AM. On Thursday May 30th we’re accessing the page again, but we’re asking the server if the page has changed since the last time we accessed it. We can do so by adding this condition to the request.
If-Modified-Since: Mon, 27 May 2019 09:00:00 GMT
An example of correct use of the HTTP status code 304
Serving the HTTP status code 304
to users when content hasn’t changed is a best practice. From a search engine crawler point of view, you benefit most from the HTTP status code 304
with large websites, say 100,000 pages and up. When we’re talking at this scale, it’s really important to make sure search engine crawlers are efficiently using their crawl budget for your website.
A common example of incorrect use of the HTTP status code 304
Responding with an HTTP status code 304
when a page has actually changed.
307 status code: Temporarily Redirect / Internal Redirect
What does the HTTP status code 307 mean?
The HTTP status code 307
, «307 redirect» for short, is the HTTP 1.1 equivalent of the 302 redirect. A 302 redirect doesn’t guarantee that no changes are made to the HTTP method used, but a 307 redirect does. The 307 redirect was invented to make sure the HTTP method used to make a request doesn’t change when the server responds with a redirect. For instance, if the GET
HTTP method was used, then the GET
HTTP method is passed on as part of the redirect.
307 status code as Internal Redirect
The 307 redirect is also used as an internal redirect in cases where the browser knows HTTPS
is enforced. The browser may know this either because it was told so when making previous requests, or because the domain is on the HSTS Preload list.
The HSTS Preload list is a list of domains that are using HTTPS
. Even though a user may request the HTTP
version of a URL, the browser will use the internal 307 redirect to request the HTTPS
version of the URL. Doing so prevents unnecessary, unsafe requests.
This list is shared across browsers. See HSTS Preload List Submission (opens in a new tab) for more information.
An example of correct use of the HTTP status code 307
When a 307 Internal Redirect
is used to make sure a connection stays secure.
A common example of incorrect use of the HTTP status code 307
When content is permanently moved, and a 307 redirect is used instead of a 301 redirect.
308 status code: Permanent Redirect
What does the HTTP status code 308 mean?
The HTTP status code 308
, «308 redirect» for short, is the HTTP 1.1 equivalent of the 301 redirect, and it does not allow changing the request method from POST
to GET
.
At the moment it’s not very clear how much page authority the 308 redirect passes, so we recommend using the 301 redirect instead to indicate that content has moved permanently.
HTTP 4xx status codes
HTTP 4xx
status codes indicate there was an error on the client side. Possible reasons for these errors are: the requesting party’s not authorized to request a page, requesting nonexistent pages, and making too many requests.
In this section we’ll cover the following HTTP status codes, because of their significance for SEO:
- 401: Unauthorized
- 403: Forbidden
- 404: Not Found
- 410: Gone
- 418: I’m a teapot
- 429: Too many requests
- 430: Request Header Fields Too Large
- 451: Unavailable for Legal Reasons
401 status code: Unauthorized
What does the HTTP status code 401 mean?
The HTTP status code 401
is an error and describes that HTTP Authentication failed. The requested page requires either a username and password combination, and/or isn’t allowed access based on its IP address.
You’ll typically see the HTTP status 401
when crawlers try to access staging environments, and you’ve implemented HTTP Authentication to prevent this. An HTTP status code 401
is what you want to see; otherwise search engines could be indexing your staging environment, and third parties could be accessing privileged information.
An example of correct use of the HTTP status code 401
When HTTP Authentication is implemented and you reject bad requests with a 401
HTTP status code.
A common example of incorrect use of the HTTP status code 401
Using the HTTP status code 401
instead of the 403
to indicate that authorization failed.
403 status code: Forbidden
What does the HTTP status code 403 mean?
The HTTP status code 403
, «403 error» for short, indicates that it’s forbidden to request a URL. This status code is commonly used as a permanent measure to prevent (search engine) crawlers from making requests after misbehaving. It’s also returned in case the client provides the wrong login credentials.
Please note that the HTTP status code 401
and 403
are used in different situations.
An example of correct use of the HTTP status code 403
When rogue crawlers are requesting too many URLs on your site, and you respond with the HTTP status code 403
to stop them.
A common example of incorrect use of the HTTP status code 403
Using the HTTP status code 403
instead of the 401
to indicate that a client isn’t authorized to make requests.
404 status code: Not Found
What does the HTTP status code 404 mean?
The HTTP status code 404
, «404 error» for short, indicates that the requested resource couldn’t be found. It doesn’t explicitly say it could be found before, unlike the HTTP status code 410
, but it just says: «Hey, we don’t have what you’re looking for (anymore).»
The 404
status code is probably the most common status code for most people browsing the web, as it’s the one they see when clicking a broken link. For example, when the website owner removes a page, but there are still pages linking to it. You could say the returned 404
is not the actual problem—it’s the page linking to it.
404 errors can also incorrectly occur for still existing content, due to bugs introduced by developers or maintenance being done on the web server. Having URLs return 404 errors is bad if you didn’t remove the content.
While search engines won’t drop URLs returning 404 errors from their index after hitting a 404
once, they may do so after a few tries, so you need to monitor for 404 errors. If a URL consistently returns errors, why would they keep it in their index?
Search engines aside, 404 errors are bad from a user-experience point of view as well, as they create a dead end for users. Keep tabs on them!
An example of correct use of the HTTP status code 404
When you serve the HTTP status code 404
for all URLs that are requested that do not exist and have never existed.
A common example of incorrect use of the HTTP status code 404
Using the HTTP status code 404
on pages that exist and are actually working fine.
A word of caution… while
404
and soft 404 errors are common to see in Search Console, and often not cause for concern, DO NOT adopt a policy of redirecting 404 errors for URLs that have never existed!This has become a common negative SEO tactic where bad actors abuse URLs that could be valid (such as search results). They build spammy links to these pages, and expect that when you see the
404s
in Search Console, you will redirect them. Once you do that, those spammy links become accrued to whatever page you redirected to!
Many JavaScript-based platforms make it nearly impossible (or impossible) to properly deliver a
404
status code when a page doesn’t exist. Essentially, the REST API request is successful, but returns no content. Because of the «success» you receive a200
status code…but there is no page! A common work-around for this is to redirect to a URL that always returns a404
status status code.While this isn’t the cleanest solution, it ensures search engines are not misled or become distrusting when there are an infinite number of URLs that return a
200
status code.
410 status code: Gone
What does the HTTP status code 410 mean?
The HTTP status code 410
, «410 error» for short, indicates that the requested URL was permanently removed. This means the URL existed before, but it was explicitly removed and will not come back.
Search engines are quick to remove URLs from their index when the 410 error is returned. This makes it a powerful tool in any SEO’s toolbox, so harness its power—with care.
An example of correct use of the HTTP status code 410
When you serve the HTTP status code 410
for all URLs that were explicitly removed and will not come back.
A common example of incorrect use of the HTTP status code 410
Using the HTTP status code 410
for URLs that are temporarily unavailable.
The
4xx
status code grouping is used to indicate when a page is not available on the server. Most often, you will see this as a404
header with a note indicating «Page Not Found».The
410
status code is used to indicate that the content has been intentionally removed. While we occasionally see a company using this when they have removed inventory (such as a product or a real estate listing), this is typically not the recommended approach vs. redirecting to a relevant substitute.Most often we utilize the
410
status code when we have removed URLs that will do not feel will ever return for the domain. As an example, when a site has been hacked and suddenly there are spam urls generated or if we determine it is more advantageous to «cut bait» on a URL vs. continued attempts at link clean-up efforts.
418 status code: I’m a teapot
What does the HTTP status code 418 mean?
The HTTP status code 418
is a bit of a joke really, as it originates from a joke. On April 1st 1998, The Hyper Text Coffee Pot Control Protocol (HTCPCP) was defined in RFC 2324 as a communication protocol for controlling, monitoring, and diagnosing coffee pots.
It’s not an actual status code that does anything, but it’s occasionally used as an Easter Egg by Google, for example.
429 status code: Too many requests
What does the HTTP status code 429 mean?
The HTTP status code 429
, «429 error» for short, indicates that a client has been making too many requests to a server within a certain timeframe.
The 429 error can be seen as a temporary version of the HTTP status code 403, provided we’re talking about clients making too many requests. If the requests keep on coming in despite the 429 error being served, the server may decide to start responding with an HTTP status code 403
instead.
If the server keeps returning 429
HTTP status codes to Google for a longer period of time, Google may remove the content that they’re receiving 429
HTTP status codes for. All the more reason to make sure your hosting platform is solid, and to always return the right status codes for the right job.
Here’s what Google’s Gary Illes said about it on Twitter:
An example of correct use of the HTTP status code 429
When a client requests too many URLs within a certain timeframe, and with an HTTP status code 429
, the server sends a clear signal that the client should slow down.
A common example of incorrect use of the HTTP status code 429
Using the HTTP status code 429
, instead of the HTTP status code 403
, to fight off rogue crawlers.
430 status code: Request Header Fields Too Large (Shopify)
What does the HTTP status code 430 mean?
The HTTP status code 430
is an unassigned (unofficial) status code. This HTTP status code shouldn’t be used.
However, Shopify has mixed up their use of status codes, and incorrectly sends a 430
status code when they should actually be sending a 429
.
So when you’re monitoring a Shopify website, and you’re receiving 430 errors, that means you’re requesting too many URLs within a certain time frame. In this case, it’s best to decrease your monitoring speed.
An example of correct use of the HTTP status code 430
There is no correct use of this status code.
A common example of incorrect use of the HTTP status code 430
Shopify using the HTTP status code 430
instead of 429
.
451 status code: Unavailable for Legal Reasons
What does the HTTP status code 451 mean?
The HTTP status code 451
, «451 error» for short, indicates that the requested URL isn’t available due to legal reasons. It could for instance be served when you’ve been ordered (or just received a demand) to take down a certain page. The status code number 451
is a reference to the Fahrenheit 451 book (opens in a new tab).
ISPs can also intervene and respond with an HTTP status code 451
, which happens in a lot of countries when illegal torrent sites are requested.
When this response is received by the client, an explanation should be provided as well, detailing why the resource isn’t available, what legislation or regulation applies, and what it really applies to.
An example of correct use of the HTTP status code 451
When someone has blatantly copied content from another website and was subsequently ordered to remove it and thus returns 451 errors to clients that request the URL, while explaining what happened.
A common example of incorrect use of the HTTP status code 451
Serving 451 errors when people from the European Economic Area (EEA) are requesting resources from websites outside of the EEA, due to fears of GDPR repercussions.
HTTP 5xx status codes
5xx
HTTP status codes, «5xx errors» for short, are served when clients make valid requests, but servers can’t complete them for whatever reason. The website could for instance be too busy or temporarily down for maintenance.
If search engines often receive 5xx
errors (or 429
errors for that matter) when crawling a website, they may do a number of things—none of which are great from an SEO point of view:
- They may think the server can’t handle this many requests, so they’ll slow down crawling. This essentially means they’re assigning less crawl budget.
- They can also demote pages, or completely remove them from the index, as they think the issues are persistent. Search engines aim to provide users with a good user experience, and—similar to
4xx
errors—5xx
errors are the opposite of that.
In this section we’ll be covering the following status codes:
- 500: Internal Server Error
- 503: Service Unavailable
- 524: A timeout occurred
500 status code: Internal Server Error
What does the HTTP status code 500 mean?
The HTTP status code 500
, «500 error» for short, indicates that the server had issues processing the request, but isn’t able to explicitly state what went wrong.
An example of correct use of the HTTP status code 500
When an unexpected error cropped up while processing the request, and no other 5xx
error applies.
A common example of incorrect use of the HTTP status code 500
Serving a 500
error when the server is actually aware of the issue and should have responded with a more specific hint as to what’s wrong.
503 status code: Service Unavailable
What does the HTTP status code 503 mean?
The HTTP status code 503
, «503 error» for short, indicates that the server is temporarily unavailable, and will be available again later. This can be due to scheduled maintenance (although we strongly recommend against doing this) or when the server is too busy.
The 503 error allows the inclusion of a «Retry-After
» value in its response, basically saying: «Try again at a later time, I’ll be able to process your request then».
Similar to the HTTP status code 429, Google may remove content for which they’re receiving 503
HTTP status codes for a longer period of time.
Be alerted about 5xx errors
Don’t let mistakes cost you traffic and revenue. Monitor your site with ContentKing and be alerted in case of trouble.
An example of correct use of the HTTP status code 503
When the server is too busy, and can’t process the client’s request at this moment in time.
A common example of incorrect use of the HTTP status code 503
Serving a 503 error with a «Retry-After
» value in the past, or far into the future.
If your site goes down for any reason and pages become unavailable for an extended period of time, search engines will eventually remove the page from their index. To prevent this, use the
503
status code with theRetry-After
header with a specified time, telling crawlers to try accessing the page again after an X amount of time. You can also specify a date in cases when you have scheduled downtime and know precisely when the site will be available again.Code sample
Retry-After: Wed, 11 Nov 2019 23:59:59 GMT
This tells crawlers to try reaccessing the site after the specified date and time.
Retry-After: 7200
This tells crawlers to try reaccessing the site in two hours (time is in seconds 60 x 120 = 7,200 seconds, or 2 hours).
Keep in mind that you need to make sure your website is accessible again as soon as possible to prevent your pages from getting deindexed. Not even an
503
status code with the Retry-After header can keep search engines from deindexing pages if they’re unavailable for an extended period of time.
524 status code: A timeout occurred (Cloudflare)
What does the HTTP status code 524 mean?
The HTTP status code 524
doesn’t officially exist. It was made up by Cloudflare and is sent when the request’s origin times out. The issue isn’t on Cloudflare’s end; instead, the server that Cloudflare is relying on is the issue.
It is understandable for Cloudflare to have invented their own HTTP status code here, because when HTTP status codes were designed, companies like Cloudflare didn’t exist yet.
Closing words
HTTP status codes play a fundamental role in quickly getting a message across between clients and servers. It’s important for every SEO to know the most common ones by heart, as it makes them much more effective in their work: it lets them diagnose issues significantly faster.
Here’s the list of the most common HTTP status codes of all:
200 OK
301 Moved permanently
302 Found / Moved temporarily
404 Not Found
410 Gone
503 Service Unavailable
Learn them well!
Good luck, and please let us know (opens in a new tab) if you feel we missed a status code that’s important to SEO!
Frequently Asked Questions