HTTP status codes explained
What each code means, what causes it, how to fix it and how it affects search. 42 codes covered.
GO DEEPERWhat do you want to uncover next?
Informational
1xx codes tell the client to continue or switch protocol. You rarely see them.
Success
2xx codes mean the request worked.
200 OKThe request succeeded and the server returned the content.201 CreatedThe request succeeded and a new resource was created.202 AcceptedThe request was accepted for processing, but is not finished.204 No ContentThe request succeeded and there is no body to return.206 Partial ContentThe server is returning only part of the resource.
Redirection
3xx codes send the visitor or crawler somewhere else. Use 301 or 308 for permanent moves.
301 Moved PermanentlyThe URL has permanently moved to a new location given in the Location header.302 Found (Temporary Redirect)The URL is temporarily at a different location.303 See OtherThe client should fetch the result at a different URL using GET.304 Not ModifiedThe cached copy is still valid, so no body is sent.307 Temporary RedirectLike 302, but the request method and body must not change.308 Permanent RedirectLike 301, but the request method and body must not change.
Client error
4xx codes mean the request could not be fulfilled as sent: wrong address, no permission or too many requests.
400 Bad RequestThe server could not understand the request.401 UnauthorizedAuthentication is required and missing or invalid.403 ForbiddenThe server understood the request but refuses to allow it.404 Not FoundThe server cannot find the requested resource.405 Method Not AllowedThe HTTP method (GET, POST...) is not allowed for this URL.406 Not AcceptableThe server cannot produce a response matching the Accept headers.408 Request TimeoutThe server timed out waiting for the request.409 ConflictThe request conflicts with the current state of the resource.410 GoneThe resource was permanently removed and will not return.413 Payload Too LargeThe request body is larger than the server allows.414 URI Too LongThe URL is longer than the server will accept.415 Unsupported Media TypeThe server does not support the format of the request body.418 I am a teapotAn April Fools joke code from RFC 2324; some sites use it to refuse bots.429 Too Many RequestsThe client sent too many requests in a given time (rate limiting).451 Unavailable For Legal ReasonsAccess is denied because of a legal demand.499 Client Closed Request (nginx)The client closed the connection before the server replied. An nginx-specific code.
Server error
5xx codes mean the server failed to handle a valid request. These are the ones that take sites down.
500 Internal Server ErrorThe server hit an unexpected condition.501 Not ImplementedThe server does not support the functionality required.502 Bad GatewayA gateway or proxy received an invalid response from the upstream server.503 Service UnavailableThe server cannot handle the request right now.504 Gateway TimeoutThe gateway did not get a timely response from the upstream server.
Cloudflare errors
Codes 520 to 530 are Cloudflare-specific and describe a failure between Cloudflare and your origin server.
520 Web Server Returned an Unknown Error (Cloudflare)Cloudflare received an empty, invalid or unexpected response from your origin server.521 Web Server Is Down (Cloudflare)Cloudflare could not connect to your origin server.522 Connection Timed Out (Cloudflare)Cloudflare connected to nothing: the TCP handshake with your origin timed out.523 Origin Is Unreachable (Cloudflare)Cloudflare cannot reach your origin server.524 A Timeout Occurred (Cloudflare)The origin accepted the connection but did not reply within 100 seconds.525 SSL Handshake Failed (Cloudflare)Cloudflare could not complete a TLS handshake with your origin.526 Invalid SSL Certificate (Cloudflare)Cloudflare could not validate the SSL certificate on your origin.530 Origin DNS Error (Cloudflare)Cloudflare could not resolve your origin hostname. Often shown with error 1xxx.
Related guides
Downtime & ErrorsFix 500 Internal Server Error: A Practical Guide for Site OwnersTrack down a 500 Internal Server Error with error logs, .htaccess and PHP checks, permission fixes and WordPress debugging, plus when your host must step in.9 min readDowntime & ErrorsHow to Fix a 502 Bad Gateway Error (nginx, Apache, PHP-FPM, CDN)What a 502 Bad Gateway really means, how to find the failing upstream with logs and curl, and fixes for nginx, Apache, PHP-FPM, Node and Cloudflare setups.8 min readDowntime & Errors503 Service Unavailable: What It Means and How to Fix It Step by StepDiagnose a 503 Service Unavailable error from overload, maintenance mode, exhausted workers or a dead backend, with fixes for WordPress, nginx, Apache and IIS.8 min readDowntime & ErrorsHow to Fix a 504 Gateway Timeout: Causes, Logs and TimeoutsFind out why a proxy gave up waiting on your backend, how to spot slow queries and stuck workers, and which nginx, Apache, PHP and CDN timeouts to change.9 min readWeb BasicsHTTP Redirects Explained: 301, 302, 307, 308 and Fixing LoopsChoose between 301, 302, 307 and 308, canonicalize http, https and www, avoid chains and loops, and test every hop with curl. With nginx and Apache examples.8 min read