Understanding HTTP status codes isn’t just for developers. If you care about how your website performs in search, you need to know what these codes are telling you. They reveal how your server responds to users and search engines, and when something breaks, these are the signals that explain why.
This guide goes deeper than just listing what each code means. It’s about knowing what to do with that information. Whether you're managing redirects, cleaning up crawl errors or trying to work out why Google isn’t indexing a page, this is where you start making sense of it.
If you're serious about keeping your site healthy and competitive in search, this is the kind of knowledge that quietly makes a big difference. Let’s get into it.
100: Continue
101: Switching Protocols
102: Processing
103: Early Hints
200: OK
201: Created
202: Accepted
203: Non-Authoritative Information
204: No Content
205: Reset Content
206: Partial Content
207: Multi-Status
208: Already Reported
226: IM Used
300: Multiple Choices
301: Moved Permanently
302: Found (Previously "Moved Temporarily")
303: See Other
304: Not Modified
305: Use Proxy
306: Switch Proxy
307: Temporary Redirect
308: Permanent Redirect
400: Bad Request
401: Unauthorized
402: Payment Required
403: Forbidden
404: Not Found
405: Method Not Allowed
406: Not Acceptable
407: Proxy Authentication Required
408: Request Timeout
409: Conflict
410: Gone
411: Length Required
412: Precondition Failed
413: Payload Too Large
414: URI Too Long
415: Unsupported Media Type
416: Range Not Satisfiable
417: Expectation Failed
418: I'm a Teapot
421: Misdirected Request
422: Unprocessable Entity
423: Locked
424: Failed Dependency
425: Too Early
426: Upgrade Required
428: Precondition Required
429: Too Many Requests
431: Request Header Fields Too Large
451: Unavailable For Legal Reasons
500: Internal Server Error
501: Not Implemented
502: Bad Gateway
503: Service Unavailable
504: Gateway Timeout
505: HTTP Version Not Supported
506: Variant Also Negotiates
507: Insufficient Storage
508: Loop Detected
510: Not Extended
511: Network Authentication Required
Getting familiar with how servers respond puts you in a stronger position to fix issues before they impact performance. These aren’t just technical signals, they’re clues to how Google and other search engines experience your site. And when you know what to look for, you can make better, faster decisions that keep your site healthy and discoverable.
This isn’t a guide you’ll only need once. Bookmark it, keep it handy, and refer back when you hit the next unexplained issue. It’ll probably save you a few hours down the line.
This guide goes deeper than just listing what each code means. It’s about knowing what to do with that information. Whether you're managing redirects, cleaning up crawl errors or trying to work out why Google isn’t indexing a page, this is where you start making sense of it.
If you're serious about keeping your site healthy and competitive in search, this is the kind of knowledge that quietly makes a big difference. Let’s get into it.
Complete List of HTTP Status Codes
1xx Informational
The 1xx range of HTTP status codes is often overlooked, but it's the quiet handshake between a browser and a server that keeps things moving smoothly. These aren’t errors or successes, they’re more like signals that something’s in progress. If you're working on performance, speed, or complex integrations, these early indicators help you understand how requests are flowing before a full response is even on the table. They don’t appear often in day-to-day SEO, but when they do, they’re worth knowing.100: Continue
- Meaning: The server has received the request headers, and the client should proceed to send the request body.
- Use case: Often seen in web applications, when the client is sending a large POST request and needs to know whether the server is willing to accept it.
101: Switching Protocols
- Meaning: The client has asked the server to switch protocols, and the server is acknowledging that it will comply.
- Use case: Used when transitioning from HTTP/1.1 to a newer protocol like WebSockets.
102: Processing
- Meaning: The server has received and is processing the request, but no response is available yet.
- Use case: Typically used in WebDAV applications to indicate that the server is working on the request, which might take a while.
103: Early Hints
- Meaning: The server is sending some headers to the client before the final response.
- Use case: Useful for improving page load times by allowing the client to start preloading resources while the server prepares the final response.
2xx Successful
The 2xx status codes are what you want to see. They’re confirmation that everything worked as expected, the server understood the request and returned exactly what was asked for. Whether it’s loading a page, submitting a form, or fetching data, these codes are the green lights that keep the web running. If you’re monitoring performance or debugging crawl issues, 2xx responses are usually a sign things are behaving as they should.200: OK
- Meaning: The request was successful, and the server returned the requested resource.
- Use case: The standard response for successful HTTP requests, like fetching a webpage or submitting a form.
201: Created
- Meaning: The request was successful, and a new resource was created as a result.
- Use case: Commonly seen when uploading a new file or creating a new user in a system.
202: Accepted
- Meaning: The request has been accepted for processing, but the processing is not complete.
- Use case: Used when an asynchronous process is initiated, such as submitting a long-running job in a web application.
203: Non-Authoritative Information
- Meaning: The server is returning information from a third party, but it is not the original source.
- Use case: When a proxy server modifies the response from an upstream server.
204: No Content
- Meaning: The server successfully processed the request, but is not returning any content.
- Use case: When an update to a resource is successful but there is no need to return updated content.
205: Reset Content
- Meaning: The server successfully processed the request, and the client should reset the view that sent the request.
- Use case: Used after form submissions to indicate that the form should be cleared.
206: Partial Content
- Meaning: The server is delivering only part of the resource due to a range header sent by the client.
- Use case: Used for resuming interrupted downloads or splitting a large download into smaller chunks.
207: Multi-Status
- Meaning: The response provides status for multiple independent operations.
- Use case: Frequently used in WebDAV applications to convey the status of multiple sub-requests.
208: Already Reported
- Meaning: The members of a DAV binding have already been enumerated in a previous reply to this request, and are not being included again.
- Use case: Reduces duplication of information in multi-status responses.
226: IM Used
- Meaning: The server has fulfilled a GET request for the resource, and the response is a representation of the result of one or more instance-manipulations applied to the current instance.
- Use case: Used in situations where a Delta Encoding in HTTP is applied, allowing clients to receive changes to resources instead of the whole resource.
3xx Redirection
3xx status codes let browsers and search engines know that a page has moved or that there's a different location to go to. They handle redirection behind the scenes, keeping things running smoothly when URLs change or when you're migrating a site. Used properly, they make sure users and search engines end up in the right place without confusion.300: Multiple Choices
- Meaning: The request has more than one possible response, and the user or user agent should choose one.
- Use case: When different formats of a document are available, and the server provides options to the client.
301: Moved Permanently
- Meaning: The resource requested has been permanently moved to a new URL provided by the Location header.
- Use case: Commonly used in SEO URL redirection to indicate that a page has a new permanent location.
302: Found (Previously "Moved Temporarily")
- Meaning: The resource requested has been temporarily moved to a different URL, but future requests should use the original URL.
- Use case: Used when redirecting a client to a temporary location, such as during maintenance.
303: See Other
- Meaning: The response to the request can be found under another URL using the GET method.
- Use case: Often used after a PUT or POST operation to redirect the client to a different resource.
304: Not Modified
- Meaning: The resource has not been modified since the last request.
- Use case: Allows the browser to use its cached version of the resource, saving bandwidth and improving load times.
305: Use Proxy
- Meaning: The requested resource must be accessed through the proxy given by the Location field.
- Use case: Instructs the client to fetch the resource through a specified proxy server.
306: Switch Proxy
- Meaning: This code was used in a previous version of the HTTP specification, but is no longer used and reserved.
- Use case: Historically indicated a requested proxy change but is no longer in use.
307: Temporary Redirect
- Meaning: The requested resource resides temporarily under a different URL, but future requests should still use the original URL.
- Use case: Redirects the client temporarily while maintaining the original request method (e.g., POST).
308: Permanent Redirect
- Meaning: The resource has been permanently moved to a new URL, and future requests should use the new URL.
- Use case: Similar to 301 but ensures that the request method and body are not changed when redirected.
4xx Client Error
4xx status codes show up when something’s gone wrong on the client side. That might be a broken link, a mistyped URL, or a request that simply isn’t allowed. These codes help identify issues with how users or bots are trying to access your site. Understanding them makes it easier to fix common problems that affect usability and SEO.400: Bad Request
- Meaning: The server could not understand the request due to invalid syntax.
- Use case: Commonly returned when the client sends malformed request syntax, invalid request message framing, or deceptive request routing.
401: Unauthorized
- Meaning: The client must authenticate itself to get the requested response.
- Use case: Returned when the request requires user authentication, such as accessing a restricted resource.
402: Payment Required
- Meaning: This status code is reserved for future use.
- Use case: Originally intended for digital payment systems but is not currently used in practice.
403: Forbidden
- Meaning: The client does not have access rights to the content.
- Use case: Returned when the client’s credentials are understood but they do not have permission to access the resource.
404: Not Found
- Meaning: The server can not find the requested resource.
- Use case: Returned when the requested resource is not found on the server, often due to a mistyped URL or a moved resource.
405: Method Not Allowed
- Meaning: The request method is known by the server but is not supported by the target resource.
- Use case: Returned when a client uses an HTTP method that the resource does not support, such as using POST on a read-only resource.
406: Not Acceptable
- Meaning: The server cannot produce a response matching the list of acceptable values defined in the request's proactive content negotiation headers.
- Use case: Returned when the server cannot return a response that matches the content-type specified by the client.
407: Proxy Authentication Required
- Meaning: The client must first authenticate itself with the proxy.
- Use case: Similar to 401, but authentication is required to be done by a proxy.
408: Request Timeout
- Meaning: The server did not receive a complete request message within the time that it was prepared to wait.
- Use case: Returned when the client takes too long to send a request, often due to network issues or server overload.
409: Conflict
- Meaning: The request could not be completed due to a conflict with the current state of the target resource.
- Use case: Returned when there is a conflict in the request, such as an edit conflict between multiple simultaneous updates.
410: Gone
- Meaning: The requested resource is no longer available at the server and no forwarding address is known.
- Use case: Similar to 404, but indicates that the resource is permanently gone and will not be available again.
411: Length Required
- Meaning: The server refuses to accept the request without a defined Content-Length header.
- Use case: Returned when the server requires a Content-Length header but it is not provided in the request.
412: Precondition Failed
- Meaning: One or more conditions given in the request header fields evaluated to false when tested on the server.
- Use case: Returned when a precondition specified in the request headers is not met, such as If-Match or If-Unmodified-Since.
413: Payload Too Large
- Meaning: The request entity is larger than the server is willing or able to process.
- Use case: Returned when the client sends data that is too large, exceeding the server’s capacity or limits.
414: URI Too Long
- Meaning: The URI requested by the client is longer than the server is willing to interpret.
- Use case: Returned when the request URI is too long, often due to too many query parameters or an overly long URL.
415: Unsupported Media Type
- Meaning: The media format of the requested data is not supported by the server.
- Use case: Returned when the server does not support the format of the request payload, such as sending XML data to a JSON API.
416: Range Not Satisfiable
- Meaning: The range specified by the Range header field in the request can't be fulfilled.
- Use case: Returned when the client asks for a portion of the file that is outside the available range.
417: Expectation Failed
- Meaning: The server cannot meet the requirements of the Expect request-header field.
- Use case: Returned when the server cannot meet an expectation specified in the request’s Expect header.
418: I'm a Teapot
- Meaning: This code was defined in 1998 as an April Fools' joke, but it is still sometimes used.
- Use case: Used as an Easter egg in some services, referring to the IETF April Fools' joke about a teapot.
421: Misdirected Request
- Meaning: The request was directed at a server that is not able to produce a response.
- Use case: Returned when a request is sent to the wrong server, often due to misconfigured DNS or routing.
422: Unprocessable Entity
- Meaning: The request was well-formed but was unable to be followed due to semantic errors.
- Use case: Used in WebDAV when the server understands the content type and syntax but was unable to process the instructions.
423: Locked
- Meaning: The resource that is being accessed is locked.
- Use case: Used in WebDAV to indicate that the resource is currently locked and cannot be modified.
424: Failed Dependency
- Meaning: The request failed due to failure of a previous request.
- Use case: Used in WebDAV when a previous request failed, causing the current request to also fail.
425: Too Early
- Meaning: The server is unwilling to risk processing a request that might be replayed.
- Use case: Used to prevent replay attacks, indicating that the server wants the client to wait before retrying the request.
426: Upgrade Required
- Meaning: The client should switch to a different protocol such as TLS/1.0.
- Use case: Returned when the server requires the client to upgrade to a different protocol.
428: Precondition Required
- Meaning: The origin server requires the request to be conditional.
- Use case: Returned when the server requires that the request include a conditional header like If-Match to prevent accidental modifications.
429: Too Many Requests
- Meaning: The user has sent too many requests in a given amount of time ("rate limiting").
- Use case: Commonly returned when a user exceeds the rate limits set by the server.
431: Request Header Fields Too Large
- Meaning: The server is unwilling to process the request because its header fields are too large.
- Use case: Returned when the request’s header fields are too large, often due to excessive cookies or headers.
451: Unavailable For Legal Reasons
- Meaning: The server is denying access to the resource as a consequence of a legal demand.
- Use case: Returned when the server cannot provide access to the resource due to legal reasons, such as censorship or DMCA takedown requests.
5xx Server Error
5xx status codes signal that something has failed on the server's end. These aren’t caused by users, but they still affect the experience. Whether your server is down, misconfigured, or overwhelmed, these errors can stop pages from being crawled or indexed. Knowing what they mean is the first step toward getting your site stable and responsive again.500: Internal Server Error
- Meaning: The server encountered an unexpected condition that prevented it from fulfilling the request.
- Use case: A generic error message when the server throws an exception or encounters an unexpected condition.
501: Not Implemented
- Meaning: The server does not support the functionality required to fulfill the request.
- Use case: Returned when the server does not recognize the request method or lacks the capability to fulfill it.
502: Bad Gateway
- Meaning: The server, while acting as a gateway or proxy, received an invalid response from the upstream server.
- Use case: Often seen when a reverse proxy cannot get a valid response from the backend server.
503: Service Unavailable
- Meaning: The server is not ready to handle the request.
- Use case: Returned when the server is temporarily unable to handle the request, often due to maintenance or overload.
504: Gateway Timeout
- Meaning: The server, while acting as a gateway or proxy, did not receive a timely response from the upstream server.
- Use case: Returned when a reverse proxy times out waiting for a response from the backend server.
505: HTTP Version Not Supported
- Meaning: The server does not support the HTTP protocol version used in the request.
- Use case: Returned when the client uses an HTTP version that the server does not support.
506: Variant Also Negotiates
- Meaning: The server has an internal configuration error: the chosen variant resource is configured to engage in content negotiation itself, leading to a circular reference.
- Use case: Rarely used; indicates a misconfiguration in content negotiation.
507: Insufficient Storage
- Meaning: The server is unable to store the representation needed to complete the request.
- Use case: Used in WebDAV when the server cannot save the requested resource due to lack of storage space.
508: Loop Detected
- Meaning: The server detected an infinite loop while processing the request.
- Use case: Used in WebDAV to indicate that the server terminated an operation because it encountered an infinite loop.
510: Not Extended
- Meaning: Further extensions to the request are required for the server to fulfill it.
- Use case: Indicates that the request needs further extensions or additional information to be processed.
511: Network Authentication Required
- Meaning: The client needs to authenticate to gain network access.
- Use case: Commonly used by captive portals to require network authentication before granting access.
Getting familiar with HTTP status codes
Understanding HTTP status codes isn’t about memorising a load of numbers and their meanings. It’s about recognising what they’re telling you when your site isn’t behaving as expected. If a page is struggling to rank, loading inconsistently, or dropping out of the index, chances are one of these codes is quietly at play.Getting familiar with how servers respond puts you in a stronger position to fix issues before they impact performance. These aren’t just technical signals, they’re clues to how Google and other search engines experience your site. And when you know what to look for, you can make better, faster decisions that keep your site healthy and discoverable.
This isn’t a guide you’ll only need once. Bookmark it, keep it handy, and refer back when you hit the next unexplained issue. It’ll probably save you a few hours down the line.
Attachments
Last edited: