
An HTTP (Hypertext Transfer Protocol) status code is issued by a server in response to a client’s request made to the server. Consequently, the HTTP status code becomes part of the HTTP response. As a result, it indicates the status of the request.
The HTTP status codes are classified into five different categories. The classification system is not too complicated. Each category indicates a different type of message regarding the request.
What are HTTP Status Codes?
HTTP statuses codes are three-digit numeric codes that are issued by a server in response to a browser request.
When you click a link or type in a particular URL in the web browser and hit the enter key, the browser sends that request to the web server you are trying to access. Afterward, the server receives the request, processes it, and finally returns the requested resource, along with an HTTP header.

Although status codes are provided every time your browser requests a web page or resource, generally, you do not see them. However, the only time you would see one in your browser is when something has gone wrong. In essence, this is the server’s way of saying: “Something is not right. Here is a code to explain what has gone wrong.
If you’re looking for the status codes that your browser does not show, there are many ways to access them. For instance, there are browser add-ons for developer-friendly browsers like Chrome and Firefox. Additionally, there are many web-based header-fetching utilities available as well.
To see HTTP status codes with one of these tools, look for the line that appears towards the top of the report that says “Status: HTTP 1.1”. This line will be followed by the status code that was returned from the server.
List of HTTP Status Codes
1xx – Informational Responses
STATUS CODE 39955_fd5e98-9b> |
MEANING 39955_f11d82-8b> |
---|---|
100 39955_a5fab5-9a> |
Continue 39955_4c0dbe-33> |
101 39955_811f20-5f> |
Switching Protocols 39955_ef8213-3f> |
102 39955_f13a69-da> |
Processing 39955_77d5bb-5b> |
103 39955_c334e0-bb> |
Early Hints 39955_58f45d-65> |
2xx – Successful Responses
STATUS CODE 39955_57bfd8-37> |
MEANING 39955_3cd88e-41> |
---|---|
200 39955_baf75d-0c> |
OK 39955_dfd5cb-b2> |
201 39955_24f711-90> |
Created 39955_2dfa40-7f> |
202 39955_7d31c4-c3> |
Accepted 39955_df38c9-f6> |
203 39955_fe127d-76> |
Non-Authoritative Information 39955_06ef92-98> |
204 39955_b21311-60> |
No Content 39955_3a90aa-88> |
205 39955_ed2295-98> |
Reset Content 39955_8327b9-eb> |
206 39955_75ec8d-15> |
Partial Content 39955_630bad-a3> |
207 39955_00f6ef-19> |
multi-status 39955_9a68ce-6f> |
208 39955_ddd124-62> |
Already Reported 39955_c0d9fd-4a> |
226 39955_5feaca-77> |
IM Used 39955_3f509d-b8> |
3xx – Redirection
STATUS CODE 39955_9a1038-ed> |
MEANING 39955_3644ba-00> |
---|---|
300 39955_fc7d9c-56> |
Multiple Choices 39955_24aa14-87> |
301 39955_6f29f1-b5> |
Moved Permanently 39955_b30d84-bc> |
302 39955_dd074b-16> |
Found 39955_bfb3ea-f0> |
303 39955_67e736-24> |
See Other 39955_ec6294-5f> |
304 39955_505b68-3b> |
Not Modified 39955_57ecc5-d5> |
305 39955_21786e-8d> |
Use Proxy 39955_af2da3-4b> |
307 39955_0e6115-a4> |
Temporary Redirect 39955_0c4086-8d> |
308 39955_b4003e-77> |
Permanent Redirect 39955_91e898-34> |
4xx – Server Error
STATUS CODE 39955_959adc-52> |
MEANING 39955_4f17da-af> |
---|---|
400 39955_25f58a-2c> |
Bad Request 39955_295402-37> |
401 39955_452167-5f> |
Unauthorized 39955_7ce31d-ca> |
402 39955_ba3ff9-97> |
Payment Required 39955_2d8759-84> |
403 39955_11b74c-ba> |
Forbidden 39955_44e3fa-df> |
404 39955_a006a2-e3> |
Not Found 39955_be0484-61> |
405 39955_c20a48-33> |
Method Not Allowed 39955_f7aed8-d8> |
406 39955_89542c-d7> |
Not Acceptable 39955_2c5d29-c2> |
407 39955_c68398-7e> |
Proxy Authentication Required 39955_3c7e6f-0e> |
408 39955_d5d14c-5b> |
Request Timeout 39955_8e062c-6a> |
409 39955_d0e053-45> |
Conflict 39955_6b72f8-18> |
410 39955_74b2c7-51> |
Gone 39955_59ddf3-c3> |
411 39955_13f976-f8> |
Length Required 39955_f2a7c8-e9> |
412 39955_9439f0-96> |
Precondition Failed 39955_538027-c9> |
413 39955_4932ae-ce> |
Payload Too Large 39955_0f32f1-18> |
414 39955_d9ac8f-a8> |
URI Too Long 39955_c3e88a-ca> |
415 39955_9a8c72-79> |
Unsupported Media Type 39955_f910ab-76> |
416 39955_0060c8-f7> |
Range Not Satisfiable 39955_2d3d11-a1> |
417 39955_e582c3-06> |
Expectation Failed 39955_6b5716-cb> |
418 39955_5568a5-76> |
I’m a teapot 39955_b54221-0b> |
421 39955_6de3d7-bb> |
Misdirected Request 39955_73b915-3a> |
422 39955_5e9f7d-11> |
Unprocessable Entity 39955_d2882a-43> |
423 39955_36b98f-09> |
Locked 39955_f5f506-b5> |
424 39955_dc38e0-d4> |
Failed Dependency 39955_5a38bb-0f> |
425 39955_c6710e-4c> |
Too Early 39955_34d6df-6b> |
426 39955_8d7c41-7f> |
Upgrade Required 39955_86a233-06> |
429 39955_32184b-c3> |
Too Many Requests 39955_266167-23> |
431 39955_f6adb6-8d> |
Request Header Fields Too Large 39955_594ff9-50> |
451 39955_ca8369-f9> |
Unavailable for Legal Reasons 39955_96bd23-12> |
5xx – Server Error
STATUS CODE 39955_f92f6e-2c> |
MEANING 39955_5b8ecc-1c> |
---|---|
500 39955_67fe3c-af> |
Internal Server Error 39955_5d3e9e-c9> |
501 39955_440ef7-a2> |
Not Implemented 39955_c50a16-8f> |
502 39955_77148d-10> |
Bad Gateway 39955_faddd8-d4> |
503 39955_2d1346-53> |
Service Unavailable 39955_401c55-9a> |
504 39955_683cb0-ae> |
Gateway Timeout 39955_f77344-e0> |
505 39955_bc508e-bc> |
HTTP Version Not Supported 39955_ba7866-b5> |
506 39955_a9273a-51> |
Variant Also Negotiates 39955_3e85df-73> |
507 39955_6187ca-4b> |
Insufficient Storage 39955_f10923-3f> |
508 39955_193e3c-54> |
Loop Detected 39955_a65d12-77> |
510 39955_220051-7c> |
Not Extended 39955_a72cdf-55> |
511 39955_bdb6b9-b1> |
Network Authentication Required 39955_b5527d-23> |
Types of HTTP Status Codes:
- 1xx – Informational Response: The server has received the request, and the process continues.
- 2xx – Successful Response: The server successfully receives, understands, and accepts the request.
- 3xx – Redirection: The server requires further action to fulfill the request.
- 4xx – Client Errors: The request has bad syntax or cannot be fulfilled.
- 5xx – Server Errors: The server failed to fulfill a valid request.
1xx – Informational Responses
These codes indicate that the server has received the request and is continuing the process. Modern web applications rarely use them.
- 100 Continue: The server has received the request header and the client should proceed to send the request body.
- 101 Switching Protocols: This status code indicates that the server is switching to a different protocol as requested by the client. For example, it may involve switching from HTTP/1.1 to HTTP/2.
- 101 Switching Protocols: This status code indicates that the server is switching to a different protocol as requested by the client. For example, it may involve switching from HTTP/1.1 to HTTP/2
- 102 Processing: This status code indicates that the server has received the request and is currently processing it. However, no response is available yet. WebDAV commonly uses it.
2xx – Successful Responses
These status codes illustrate that the server successfully processed the request.
- 200 OK: The request succeeded, and the server sent back the requested data.
- 201 Created: This status code indicates that the request succeeded, and as a result, the server created a new resource.
- 202 Accepted: This status code indicates that the server has accepted the request for processing. However, it has not yet acted on the request.
- 203 Non-Authoritative Information: This status code indicates that the server processed the request successfully. However, the information may be sourced from a cached copy.
- 204 No Content: This status code indicates that the request was successful. However, there is no content to be returned.
- 205 Reset Content: The server has processed the request successfully but the client should reset the view of the document.
- 206 Partial Content: The server is delivering a portion of the resource as requested by the client using range.
- 207 Multi-Status: This status code is used in WebDAV when the server wants to return multiple status codes for different operations. Consequently, it allows the server to communicate the status of each operation separately.
- 208 Already Reported: The members of a DAV binding and are already listed in a previous reply.
- 226 IM Used: The server has fulfilled a request for the resource, and the response is an instance-manipulation.
3xx – Redirection
These status codes indicate the client must take additional action to complete the request.
- 300 Multiple Choices: Multiple options for resource the client can choose from.
- 301 Moved Permanently: The resource has been permanently moved to a new location (URL).
- 302 Found: This status code indicates that the resource is temporarily located at the new URL. However, the client should continue using the original URL for future requests.
- 303 See Other: Client should follow the alternate URL to the resource (used with POST requests).
- 304 Not Modified: This status code indicates that the resource at this URI has not been modified since the last request. Consequently, the server tells the client to use the cached version of the resource.
- 305 Use Proxy: Access to the requested resource must be through the proxy provided.
- 307 Temporary Redirect: This status code indicates that the resource is temporarily located at a different URL. However, the client should continue using the original URL for future requests.
- 308 Permanent Redirect: The resource has permanently moved to a new URL, and the client should use the specific URL for future requests.
4xx – Client Errors
This indicates that the client has made an improper request, and that the server will not be able to process it.
- 400 Bad Request: This status code indicates that the server could not understand the request due to malformed syntax. Therefore, the server is unable to process the request. Consequently, the issue arises from the incorrect structure of the request.
- 401 Unauthorized: This status code indicates that authentication is required but has either failed or has not been provided. Consequently, the server denies access to the requested resource. Therefore, you must provide valid authentication credentials to gain access.
- 402 Payment Required: This status code is reserved for future use, such as for digital payment systems. Consequently, it is not currently in widespread use.
- 403 Forbidden: Although the server understood the request, it is refusing to authorize it.
- 404 Not Found: The server cannot find the requested resource.
- 405 Method Not Allowed: The request method is known by the server; however, it is not supported for the requested resource. For example, this can occur when attempting to use POST on a read-only resource. Consequently, the server responds with this status code to indicate that the method is not allowed for the specific resource.
- 406 Not Acceptable: This status code indicates that the server can only generate a response that, therefore, is not acceptable by the client’s requested resource. Consequently, the server is unable to fulfill the request as expected.
- 407 Proxy Authentication Required: The client must first authenticate itself with the proxy.
- 408 Request Timeout: The server timed out waiting for the client’s request.
- 409 Conflict: The request could not be completed due to a conflict with the current state of the target resource. Consequently, the server cannot process the request as expected.
- 410 Gone: The requested resource is no longer available and will not be available again.
- 411 Length Required: The server refuses to accept the request without a defined Content-Length header.
- 411 Length Required: The server refuses to accept the request without a defined Content-Length header.
- 412 Precondition Failed: The server does not satisfy one of the preconditions stated by the client.
- 413 Payload Too Large: The request is larger than the server is willing or able to process.
- 414 URI Too Long: The URI provided was too long for the server to process.
- 415 Unsupported Media Type: The request entity has a media type which the server or resource does not support.
- 416 Range Not Satisfiable: The server cannot provide the requested range of the resource.
- 417 Expectation Failed: The server cannot satisfy the requirements of the Expect request-header field.
- 418 I’m a teapot: This is an April Fools’ joke in the HTTP/1.1 specification (RFC 2324). It is not used in actual HTTP responses.
- 421 Misdirected Request: The request was directed at a server that is not able to produce a response.
- 422 Unprocessable Entity: The server understands the content type and the content encoding of the request, but was unable to process the contained instructions due to semantic errors. In this case, this code is used in WebDAV. Consequently, the server cannot fulfill the request, even though it understands the content.
- 423 Locked: The resource is locked (WebDAV).
- 424 Failed Dependency: The request failed due to a previous request’s failure (WebDAV). Consequently, the server could not process the request as expected.
- 425 Too Early: the server doesn’t want to process a request that could be replayed (HTTP/2).
- 426 Upgrade Required: client should switch protocols (e.g., HTTP/2).
- 428 Precondition Required: the server has certain conditions for processing a request.
- 429 Too Many Requests: the user has sent too many requests during a particular time period (rate limiting).
- 431 Request Header Fields Too Large: the headers in the request are too large for the server to process.
- 451 Unavailable for Legal Reasons: the resource is unavailable for legal reasons.
5xx – Server Error
The server failed to fulfill a valid request.
- 500 Internal Server Error: A generic error message used when the server fails to process a valid request.
- 501 Not Implemented: The server does not support the functionality required to fulfill the request.
- 502 Bad Gateway: The server received an invalid response from the upstream server while trying to fulfill the request.
- 503 Service Unavailable: The server is currently unable to handle the request due to temporary overloading or maintenance of the server.
- 504 Gateway Timeout: The server did not receive a timely response from the upstream server.
- 505 HTTP Version Not Supported: The server does not support the HTTP protocol version that was used in the request.
- 506 Variant Also Negotiates: The server has an internal configuration error with regards to content negotiation.
- 507 Insufficient Storage: The server is unable to store the representation needed to complete the request (WebDAV).
- 508 Loop Detected: The server detected an infinite loop while processing the request (WebDAV).
- 510 Not Extended: Further extensions to the HTTP protocol are required to fulfill the request.
- 511 Network Authentication Required: The client needs to authenticate to gain network access.
Why do HTTP Status Codes and Errors Matter for Search Engine Optimization (SEO)
HTTP status codes and errors are important for Search Engine Optimization (SEO), as they impact how search engines crawl and index your site, and how they rank it. Search engines depend on status codes to classify your site as healthy and crawling accessible.
For example, while a 200 OK will indicate the pages that were successful and ready to be indexed by a search engine; a 404 Not Found or 500 Internal Server Error will tell search engines there is a broken page, which could result in penalties or de-indexing.
If you have a lot of broken links (404 errors) or server issues (500 errors), you’ll open yourself up to a negative user experience, high bounce rates, and wasted crawl budget, which means the search engine will waste time getting to your good content.
Generic HTTP Status Codes 200, 404, and 500 are important because, as a result, how your site responds to these messages makes it easier or harder to index your website, thereby improving or worsening user experience, and ultimately enhancing the SEO performance of your website.
Summary
In the realm of SEO, you need to do a lot more than just correcting HTTP status codes, you also have to enhance the crawlability of your page, ensure your users have the best experience possible, and make it so that search engines can understand and index your pages easily. You’ll certainly want to also keep an eye on HTTP errors on your site.
But in SEO, it is about fixing the errors, correctly directing the errors, correcting your server, and configuring clear URLs. As a result, this will hopefully lead to you having a healthier site and, eventually, increasing your rank in search engine results.