| Code | Name | Class | Meaning | SEO and caching | Source |
|---|---|---|---|---|---|
| 100 | Continue | 1xx Informational | The server got the request headers, so the client can go ahead and send the body. | Standard | |
| 101 | Switching Protocols | 1xx Informational | The server agrees to switch protocols, for example to WebSocket. | Standard | |
| 102 | Processing | 1xx Informational | WebDAV. The server accepted the request and is still working on it. Now deprecated. | Standard | |
| 103 | Early Hints | 1xx Informational | Sends Link headers early so the browser can preload resources before the final response. | Standard | |
| 200 | OK | 2xx Success | The request succeeded. | Indexable. Make sure a missing page does not return 200 (a soft 404). | Standard |
| 201 | Created | 2xx Success | The request succeeded and created a new resource, usually named in the Location header. | Standard | |
| 202 | Accepted | 2xx Success | The request was accepted for processing, but the work is not finished yet. | Standard | |
| 203 | Non-Authoritative Information | 2xx Success | Success, but a transforming proxy changed the response. | Standard | |
| 204 | No Content | 2xx Success | Success, with no body to return. | Nothing to index; fine for API and beacon endpoints. | Standard |
| 205 | Reset Content | 2xx Success | Success. The client should reset the document view, such as clearing a form. | Standard | |
| 206 | Partial Content | 2xx Success | The server is sending only part of the resource, in reply to a Range request. | Standard | |
| 207 | Multi-Status | 2xx Success | WebDAV. The body holds separate status codes for several resources. | Standard | |
| 208 | Already Reported | 2xx Success | WebDAV. These members were already listed earlier in the same response. | Standard | |
| 226 | IM Used | 2xx Success | The server applied instance manipulations, such as delta encoding, to the response. | Standard | |
| 300 | Multiple Choices | 3xx Redirection | Several representations are available and the client can choose one. | Standard | |
| 301 | Moved Permanently | 3xx Redirection | The resource has a new permanent URL. Clients may switch POST to GET when following it. | Permanent. Google passes ranking signals to the target and swaps the indexed URL. | Standard |
| 302 | Found | 3xx Redirection | The resource is temporarily at another URL. Clients may switch POST to GET. | Temporary. Google keeps the old URL indexed at first; long-lived 302s are treated like 301s. | Standard |
| 303 | See Other | 3xx Redirection | Fetch the result from another URL with GET. Common after a form POST. | Temporary; treated like 302 by search engines. | Standard |
| 304 | Not Modified | 3xx Redirection | The cached copy is still valid, so no body is sent. | Saves crawl budget: the crawler reuses its stored copy. | Standard |
| 305 | Use Proxy | 3xx Redirection | Deprecated. Browsers ignore it for security reasons. | Standard | |
| 307 | Temporary Redirect | 3xx Redirection | Temporary move. The method and body must stay the same. | Temporary, method kept. HSTS upgrades in browsers also show as 307. | Standard |
| 308 | Permanent Redirect | 3xx Redirection | Permanent move. The method and body must stay the same. | Permanent, method kept. Google treats it like 301. | Standard |
| 400 | Bad Request | 4xx Client Error | The server cannot process the request because it is malformed. | Not indexed. Check for broken links that build bad URLs. | Standard |
| 401 | Unauthorized | 4xx Client Error | Authentication is missing or failed. The response should include a WWW-Authenticate header. | Not indexed. Crawlers cannot log in. | Standard |
| 402 | Payment Required | 4xx Client Error | Reserved for future use. Some APIs use it for billing problems. | Standard | |
| 403 | Forbidden | 4xx Client Error | The server understood the request but refuses to allow it. | Not indexed. Blocking Googlebot by mistake removes pages from search. | Standard |
| 404 | Not Found | 4xx Client Error | Nothing exists at this URL, or the server will not say whether it does. | The URL drops out of the index over time. Fine for pages that never existed. | Standard |
| 405 | Method Not Allowed | 4xx Client Error | The method is not supported here. The Allow header lists the ones that are. | Standard | |
| 406 | Not Acceptable | 4xx Client Error | No version of the resource matches the request's Accept headers. | Standard | |
| 407 | Proxy Authentication Required | 4xx Client Error | Like 401, but the client must authenticate with a proxy. | Standard | |
| 408 | Request Timeout | 4xx Client Error | The server gave up waiting for the client to finish sending the request. | Standard | |
| 409 | Conflict | 4xx Client Error | The request conflicts with the current state of the resource, such as an edit conflict. | Standard | |
| 410 | Gone | 4xx Client Error | The resource was removed on purpose and will not come back. | Removed on purpose. Google may drop the URL a little faster than with 404. | Standard |
| 411 | Length Required | 4xx Client Error | The server requires a Content-Length header. | Standard | |
| 412 | Precondition Failed | 4xx Client Error | A condition in a header such as If-Match was false. | Standard | |
| 413 | Content Too Large | 4xx Client Error | The request body is larger than the server allows. Formerly called Payload Too Large. | Standard | |
| 414 | URI Too Long | 4xx Client Error | The URL is longer than the server is willing to handle. | Standard | |
| 415 | Unsupported Media Type | 4xx Client Error | The server does not accept the body's Content-Type. | Standard | |
| 416 | Range Not Satisfiable | 4xx Client Error | The requested Range is outside the size of the resource. | Standard | |
| 417 | Expectation Failed | 4xx Client Error | The server cannot meet the Expect request header. | Standard | |
| 418 | I'm a Teapot | 4xx Client Error | An April Fools' joke from RFC 2324. RFC 9110 reserves the number. Some sites use it to turn away bots. | Joke | |
| 421 | Misdirected Request | 4xx Client Error | The request reached a server that cannot answer for this host name. | Standard | |
| 422 | Unprocessable Content | 4xx Client Error | The syntax is fine, but the content fails validation. Formerly Unprocessable Entity. | Standard | |
| 423 | Locked | 4xx Client Error | WebDAV. The resource is locked. | Standard | |
| 424 | Failed Dependency | 4xx Client Error | WebDAV. The request failed because a request it depended on failed. | Standard | |
| 425 | Too Early | 4xx Client Error | The server will not process a request that might be replayed (TLS early data). | Standard | |
| 426 | Upgrade Required | 4xx Client Error | The client must switch to the protocol named in the Upgrade header. | Standard | |
| 428 | Precondition Required | 4xx Client Error | The server requires a conditional request, such as If-Match, to prevent lost updates. | Standard | |
| 429 | Too Many Requests | 4xx Client Error | Rate limited: too many requests in a given time. May include a Retry-After header. | Crawlers slow down. Long runs of 429 can reduce crawling and indexing. | Standard |
| 431 | Request Header Fields Too Large | 4xx Client Error | One header, or all headers together, are too large. | Standard | |
| 440 | Login Time-out | 4xx Client Error | Microsoft IIS. The client's session expired and it must sign in again. | IIS | |
| 444 | No Response | 4xx Client Error | nginx closes the connection without sending anything. It appears in logs, not in the browser. | nginx | |
| 449 | Retry With | 4xx Client Error | Microsoft IIS. The server needs more information before it can process the request. | IIS | |
| 451 | Unavailable For Legal Reasons | 4xx Client Error | Access is blocked for legal reasons, such as a court order. | Not indexed in the affected region. | Standard |
| 460 | Client Closed Connection | 4xx Client Error | AWS Elastic Load Balancer. The client closed the connection before the idle timeout ended. | AWS ELB | |
| 463 | Too Many Forwarded IPs | 4xx Client Error | AWS Elastic Load Balancer. The X-Forwarded-For header lists more than 30 IP addresses. | AWS ELB | |
| 494 | Request Header Too Large | 4xx Client Error | nginx. The request headers are larger than the large_client_header_buffers setting. | nginx | |
| 495 | SSL Certificate Error | 4xx Client Error | nginx. The client sent an invalid client certificate. | nginx | |
| 496 | SSL Certificate Required | 4xx Client Error | nginx. A client certificate was required but not sent. | nginx | |
| 497 | HTTP Request Sent to HTTPS Port | 4xx Client Error | nginx. A plain HTTP request reached a port that expects HTTPS. | nginx | |
| 499 | Client Closed Request | 4xx Client Error | nginx logs this when the client closed the connection before the response was ready. | nginx | |
| 500 | Internal Server Error | 5xx Server Error | A generic error: something failed on the server. | Crawlers retry. If errors persist, pages can drop out of the index. | Standard |
| 501 | Not Implemented | 5xx Server Error | The server does not support the feature needed, such as an unknown method. | Standard | |
| 502 | Bad Gateway | 5xx Server Error | A gateway or proxy got an invalid response from the upstream server. | Treated like 500. Check the upstream server or CDN origin. | Standard |
| 503 | Service Unavailable | 5xx Server Error | The server is overloaded or down for maintenance. May include a Retry-After header. | The right code for planned maintenance. Add Retry-After and keep it short (hours, not days). | Standard |
| 504 | Gateway Timeout | 5xx Server Error | A gateway or proxy did not get a response from the upstream server in time. | Treated like 500. Slow origins also cut crawl rate. | Standard |
| 505 | HTTP Version Not Supported | 5xx Server Error | The server does not support the HTTP version in the request. | Standard | |
| 506 | Variant Also Negotiates | 5xx Server Error | A server configuration error in content negotiation. | Standard | |
| 507 | Insufficient Storage | 5xx Server Error | WebDAV. The server cannot store what it needs to complete the request. | Standard | |
| 508 | Loop Detected | 5xx Server Error | WebDAV. The server found an infinite loop while processing the request. | Standard | |
| 509 | Bandwidth Limit Exceeded | 5xx Server Error | Used by Apache and cPanel hosting when a site uses up its bandwidth allowance. | Apache / cPanel | |
| 510 | Not Extended | 5xx Server Error | The request needs further extensions. Defined in RFC 2774, now historic. | Standard | |
| 511 | Network Authentication Required | 5xx Server Error | The client must sign in to the network first, as on hotel or airport Wi-Fi. | Standard | |
| 520 | Web Server Returned an Unknown Error | 5xx Server Error | Cloudflare got an empty, unknown or unexpected response from the origin server. | Crawlers see a 5xx error. Fix the origin, not Cloudflare. | Cloudflare |
| 521 | Web Server Is Down | 5xx Server Error | The origin server refused the connection from Cloudflare. | Cloudflare | |
| 522 | Connection Timed Out | 5xx Server Error | Cloudflare could not complete a TCP connection to the origin server. | Crawlers see a 5xx error. The origin is overloaded or firewalled. | Cloudflare |
| 523 | Origin Is Unreachable | 5xx Server Error | Cloudflare could not reach the origin server, for example because of DNS or routing problems. | Cloudflare | |
| 524 | A Timeout Occurred | 5xx Server Error | Cloudflare connected to the origin, but the origin did not send a response in time. | Crawlers see a 5xx error. The origin took more than 100 seconds. | Cloudflare |
| 525 | SSL Handshake Failed | 5xx Server Error | The TLS handshake between Cloudflare and the origin server failed. | Cloudflare | |
| 526 | Invalid SSL Certificate | 5xx Server Error | Cloudflare could not validate the origin server's certificate. | Cloudflare | |
| 530 | Origin DNS Error | 5xx Server Error | Cloudflare shows 530 together with a 1xxx error, often because the origin's DNS cannot be resolved. | Cloudflare | |
| 598 | Network Read Timeout Error | 5xx Server Error | Used by some HTTP proxies when reading from the upstream server times out. | Proxies | |
| 599 | Network Connect Timeout Error | 5xx Server Error | Used by some HTTP proxies when connecting to the upstream server times out. | Proxies |
How to use
Search or filter the codes
Type a code, name or word such as redirect or rate into the search box, or press Common, 1xx to 5xx, Unofficial or SEO notes to narrow the table.
Read the meaning and SEO note
Each row shows the code, its name, class, meaning, an SEO and caching note where one applies, and a Source column for non-standard codes from nginx, Cloudflare, IIS or AWS.
Copy, link or check a live URL
Press Copy next to a code, or click the code to get a link to that row. To see which code a real page returns, follow the HTTP Status Code Checker link above the table.
Why HTTP Status Codes List
- 83 codes, including unofficial nginx, Cloudflare, IIS and AWS load balancer codes, clearly marked.
- SEO and caching notes for the codes that affect crawling and indexing.
- Filters for common codes, each class and unofficial codes, plus search across everything.
- A shareable link for every code, and a live checker one click away.
How status codes affect SEO
Search engine crawlers read the status code before they read the page, and it decides what happens next. The notes below follow Google's documentation on how HTTP status codes affect its crawlers.
Use the right code for what really happened. A missing page that returns 200 with an error message, known as a soft 404, wastes crawl time and can be reported in Search Console. The SEO and caching column in the table repeats these notes next to each code, and the SEO notes filter shows only those rows.
| Code | What crawlers do |
|---|---|
| 200 OK | The page can be considered for indexing. |
| 301, 308 | Strong signal that the target URL should be indexed instead. |
| 302, 307 | Weak signal; the original URL usually stays indexed. |
| 304 Not Modified | Tells the crawler the content has not changed since its last visit. |
| 404, 410 | The URL is dropped from the index over time. This does not harm the rest of the site. |
| 429, 500, 503 | Crawling slows down. If the errors persist, URLs may be dropped. |
Unofficial codes you will meet in logs
Some servers and services use numbers the standard does not define. They never come from your application code, so knowing the source saves time when you debug.
| Codes | Source | Meaning in short |
|---|---|---|
| 444, 494 to 497, 499 | nginx | Connection closed, header too large, TLS problems, client gave up |
| 520 to 526, 530 | Cloudflare | Problems between Cloudflare and your origin server |
| 440, 449 | Microsoft IIS | Session expired, retry with more information |
| 460, 463 | AWS Elastic Load Balancer | Client closed early, too many forwarded IPs |
| 509 | Apache and cPanel hosting | Bandwidth allowance used up |
| 598, 599 | Some HTTP proxies | Upstream read or connect timeout |