# HTTP status codes explained

> Every HTTP status code that matters for websites and SEO — 200, 301, 404, 410, 429, 500, 503 and Cloudflare 52x — with causes, fixes and a free checker.

- [100 Continue](https://yes-seo.com/http-status-codes/100): 100 Continue is an interim response telling the client its request headers were accepted and it can go ahead and send the request body.
- [101 Switching Protocols](https://yes-seo.com/http-status-codes/101): 101 Switching Protocols confirms the server accepted an Upgrade request, typically switching the connection from HTTP/1.1 to WebSocket.
- [103 Early Hints](https://yes-seo.com/http-status-codes/103): 103 Early Hints is an interim response that lets a server send preload and preconnect hints before the final response is ready.
- [200 OK](https://yes-seo.com/http-status-codes/200): 200 OK means the request succeeded and the server returned the requested content; it is the status every indexable page should send.
- [201 Created](https://yes-seo.com/http-status-codes/201): 201 Created confirms that a request succeeded and created a new resource, which the Location header usually identifies.
- [202 Accepted](https://yes-seo.com/http-status-codes/202): 202 Accepted means the server received the request and queued it for processing, but the work is not finished and may never complete.
- [204 No Content](https://yes-seo.com/http-status-codes/204): 204 No Content means the request succeeded and the server deliberately sends no body, as is common for API updates and CORS preflights.
- [206 Partial Content](https://yes-seo.com/http-status-codes/206): 206 Partial Content means the server is sending only the byte range the client asked for, as used by video players and resumable downloads.
- [300 Multiple Choices](https://yes-seo.com/http-status-codes/300): 300 Multiple Choices says a resource has several representations and the client should pick one; it is rarely used on today’s web.
- [301 Moved Permanently](https://yes-seo.com/http-status-codes/301): 301 Moved Permanently sends visitors and crawlers to a new permanent URL and tells Google to consolidate ranking signals there.
- [302 Found](https://yes-seo.com/http-status-codes/302): 302 Found is a temporary redirect: the client goes to another URL for now, and Google usually keeps the original URL in search results.
- [303 See Other](https://yes-seo.com/http-status-codes/303): 303 See Other redirects the client to another URL that must be fetched with GET, typically after a form submission.
- [304 Not Modified](https://yes-seo.com/http-status-codes/304): 304 Not Modified tells a client its cached copy is still current, so the server sends headers only and no body.
- [307 Temporary Redirect](https://yes-seo.com/http-status-codes/307): 307 Temporary Redirect sends the client to another URL for now and requires it to repeat the same method and body there.
- [308 Permanent Redirect](https://yes-seo.com/http-status-codes/308): 308 Permanent Redirect moves a resource to a new URL for good and requires clients to repeat the same request method there.
- [400 Bad Request](https://yes-seo.com/http-status-codes/400): 400 Bad Request means the server refused to process a request it considers malformed, such as a broken URL, invalid headers or an oversized cookie.
- [401 Unauthorized](https://yes-seo.com/http-status-codes/401): 401 Unauthorized means the request lacks valid authentication credentials; the server must say how to authenticate in a WWW-Authenticate header.
- [403 Forbidden](https://yes-seo.com/http-status-codes/403): 403 Forbidden means the server understood the request but refuses to fulfill it, usually because of permissions, deny rules or a firewall.
- [404 Not Found](https://yes-seo.com/http-status-codes/404): 404 Not Found means the server has no page at the requested URL, or won’t reveal one; Google drops 404 URLs from its index.
- [405 Method Not Allowed](https://yes-seo.com/http-status-codes/405): 405 Method Not Allowed means the server knows the request method but the target URL doesn’t support it; the Allow header lists what does work.
- [406 Not Acceptable](https://yes-seo.com/http-status-codes/406): 406 Not Acceptable means the server has no version of the resource matching the client’s Accept headers and won’t send a default.
- [408 Request Timeout](https://yes-seo.com/http-status-codes/408): 408 Request Timeout means the server gave up waiting for the client to finish sending its request and closed the connection.
- [409 Conflict](https://yes-seo.com/http-status-codes/409): 409 Conflict means a valid request clashes with the current state of the resource, such as an edit collision or a name already in use.
- [410 Gone](https://yes-seo.com/http-status-codes/410): 410 Gone means a page was removed on purpose and won’t return; Google removes 410 URLs from its index just like 404s.
- [413 Content Too Large](https://yes-seo.com/http-status-codes/413): 413 Content Too Large means the request body, usually an upload, exceeds the size the server is willing to accept.
- [414 URI Too Long](https://yes-seo.com/http-status-codes/414): 414 URI Too Long means the requested URL is longer than the server will process, often because of redirect loops or runaway parameters.
- [415 Unsupported Media Type](https://yes-seo.com/http-status-codes/415): 415 Unsupported Media Type means the server refuses the request body because of its format, usually a missing or wrong Content-Type header.
- [418 I'm a Teapot](https://yes-seo.com/http-status-codes/418): 418 I’m a Teapot is an April Fools’ joke from RFC 2324; it isn’t standard HTTP, and RFC 9110 reserves the number so it stays unused.
- [422 Unprocessable Content](https://yes-seo.com/http-status-codes/422): 422 Unprocessable Content means the request is well-formed but its data can’t be processed, typically because it fails validation.
- [429 Too Many Requests](https://yes-seo.com/http-status-codes/429): 429 Too Many Requests means a client hit a rate limit; Googlebot treats it like a server error and slows its crawling.
- [451 Unavailable For Legal Reasons](https://yes-seo.com/http-status-codes/451): 451 Unavailable For Legal Reasons means access to a resource is denied because of a legal demand, such as a court order or national block.
- [500 Internal Server Error](https://yes-seo.com/http-status-codes/500): 500 Internal Server Error is the generic response when server-side code or configuration fails; the cause is always in the error log.
- [501 Not Implemented](https://yes-seo.com/http-status-codes/501): 501 Not Implemented means the server doesn’t support the functionality the request needs, most often an unrecognized request method.
- [502 Bad Gateway](https://yes-seo.com/http-status-codes/502): 502 Bad Gateway means a proxy or gateway got an invalid response, or none, from the upstream server it relies on.
- [503 Service Unavailable](https://yes-seo.com/http-status-codes/503): 503 Service Unavailable means the server is temporarily overloaded or down for maintenance; it’s the search-friendly code for planned downtime.
- [504 Gateway Timeout](https://yes-seo.com/http-status-codes/504): 504 Gateway Timeout means a proxy or gateway gave up waiting for a response from the upstream server behind it.
- [505 HTTP Version Not Supported](https://yes-seo.com/http-status-codes/505): 505 HTTP Version Not Supported means the server refuses the major HTTP version used in the request.
- [520 Web Server Returned an Unknown Error](https://yes-seo.com/http-status-codes/520): Cloudflare error 520 means your origin server sent an empty, malformed or unexpected response that Cloudflare couldn’t pass on.
- [521 Web Server Is Down](https://yes-seo.com/http-status-codes/521): Cloudflare error 521 means your origin server refused Cloudflare’s connection, usually because it is offline or a firewall blocks Cloudflare.
- [522 Connection Timed Out](https://yes-seo.com/http-status-codes/522): Cloudflare error 522 means Cloudflare’s connection to your origin server timed out, usually because the server is overloaded or traffic is dropped.
- [523 Origin Is Unreachable](https://yes-seo.com/http-status-codes/523): Cloudflare error 523 means Cloudflare found no network route to your origin server, usually because of a wrong DNS record or a routing problem.
- [524 A Timeout Occurred](https://yes-seo.com/http-status-codes/524): Cloudflare error 524 means Cloudflare connected to your origin, but no HTTP response arrived before the timeout, 100 seconds by default.

