Every HTTP status code, explained in plain English
An HTTP status code is the three-digit number a web server sends back with every response: 200 when a page loads, 301 when it has moved, 404 when it cannot be found and 500 when the server breaks. This reference lists all the standard HTTP status codes registered with IANA — from 100 Continue to 511 Network Authentication Required — plus the unofficial codes you will meet from nginx and Cloudflare.
Each code explains what it means, when servers use it and where it is defined. The errors people actually run into — 400, 401, 403, 404, 429, 500, 502, 503 and 504 — also list typical causes and step-by-step fixes, and redirects and errors carry notes on how search engines treat them. Search by number or by words like “timeout”, filter by class, and share a direct link to any code, such as #404.
How to use the HTTP Status Codes
- Type a code (404) or a few words (gateway timeout, rate limit) into “Search codes”. A single match opens automatically.
- Use the filter buttons to show all codes, only the common ones, or one class such as 4xx.
- Click any code to expand it and read its meaning, typical causes, fixes and SEO impact.
- Untick “Include unofficial codes” to hide nginx, Cloudflare and framework-specific codes.
- Press “Copy link” inside an entry to share a deep link like /http-status-codes/#503 with a colleague.
HTTP Status Codes features
Complete standard list
All codes defined in RFC 9110 and the related RFCs, including 103, 207, 208, 226, 308, 421, 422, 425, 426, 428, 429, 431, 451, 507, 508, 510 and 511.
Causes and fixes
Practical troubleshooting for the errors that break sites and APIs most often.
SEO impact
How Google and other search engines react to redirects, 404/410 and 5xx responses.
Instant search and filters
Matches numbers, names and descriptions as you type, with class and “common” filters.
Deep links
Every code has its own anchor, so a link to #429 opens that entry directly.
The five classes of status codes
- 1xx Informational — interim responses such as 101 for WebSocket upgrades and 103 Early Hints.
- 2xx Success — the request worked: 200 OK, 201 Created, 204 No Content.
- 3xx Redirection — go somewhere else (301, 302, 307, 308) or use the cached copy (304).
- 4xx Client errors — the request is wrong, unauthorised or for something that does not exist.
- 5xx Server errors — the request was fine but the server, or a gateway in front of it, failed.
301 vs 302 vs 307 vs 308
All four send the browser to the URL in the Location header. They differ in two ways: whether the move is permanent, and whether the client must keep the original method (a POST staying a POST). For web pages, use 301 for permanent moves and 302 for temporary ones; for APIs and forms that must keep the method, use 308 or 307. You can create server rules with the .htaccess redirect generator.
| Code | Permanent? | Keeps method and body? | Search engines |
|---|---|---|---|
| 301 Moved Permanently | Yes | Not guaranteed (POST may become GET) | Index the new URL; signals pass |
| 302 Found | No | Not guaranteed | Keep the old URL indexed |
| 307 Temporary Redirect | No | Yes | Keep the old URL indexed |
| 308 Permanent Redirect | Yes | Yes | Index the new URL; signals pass |
Status codes and SEO
- Return a real 404 or 410 for missing pages. A “not found” page that answers 200 is a soft 404 and wastes crawl budget.
- Use 503 with Retry-After for maintenance so search engines return later rather than dropping pages.
- Avoid redirect chains (A → B → C); point old URLs straight to the final destination.
- Watch for spikes of 5xx and 429 errors in Search Console — sustained errors make crawlers slow down.
- Check how a URL responds from the command line with
curl -I https://example.com/page, or in the browser’s developer tools under the Network tab.
HTTP Status Codes FAQ
What are HTTP status codes?
HTTP status codes are three-digit numbers a server returns with every response to say what happened: 2xx means success, 3xx a redirect, 4xx a problem with the request and 5xx a problem on the server. The full list of HTTP status codes is above, each with its meaning.
What is the difference between 401 and 403?
401 Unauthorized means the server does not know who you are — logging in or sending a valid token can fix it. 403 Forbidden means the server knows (or does not care) who you are and still refuses, so logging in again will not help without different permissions.
What is the difference between 502 and 504?
Both come from a gateway or proxy in front of the application. 502 Bad Gateway means the upstream server sent an invalid response or none at all, often because it crashed. 504 Gateway Timeout means it did not answer within the proxy’s time limit, usually because a request was too slow.
Which redirect is best for SEO?
For a permanent move, a 301 (or 308) passes ranking signals to the new URL and replaces the old one in search results. Use 302 or 307 only when the original URL should stay indexed, such as short campaigns or temporary maintenance pages.
Is 418 I’m a teapot a real status code?
It began as an April Fools’ joke in RFC 2324 (1998). It is not used by real HTTP servers for anything meaningful, but RFC 9110 now reserves the number so nobody can reuse it, and some sites return it playfully.
What is a soft 404?
A page that tells visitors “not found” while the server returns 200 OK. Search engines detect these and treat them as errors. Configure your server or framework to return a genuine 404 (or 410) status for missing content.