HTTP Status Codes Explained (With Real Examples)

By , Senior Technology Editor · Published 2026-07-24 · Last reviewed July 2026 · 9 min read · Editorial standards · Reviewed by Maya Chen
HTTP Status Codes Explained (With Real Examples)

Every time a browser or app talks to a web server, the server answers with a three-digit HTTP status code. Most people only ever notice the famous 404, but there are dozens of codes, and knowing the handful that matter will save you hours of debugging. Here is the practical version, grouped the way I actually think about them when a page misbehaves.

The five families (the first digit is everything)

Status codes are grouped by their first digit, and once that clicks, the rest is easy. 1xx is informational (rare, mostly protocol chatter). 2xx means success. 3xx means redirection — the resource lives somewhere else now. 4xx means the client (you, the browser, the request) did something wrong. 5xx means the server broke. When triage starts, the first question is simply: is the first digit a 4 or a 5? A 4xx is your problem to fix; a 5xx is the server’s.

The codes you will actually meet

CodeMeaningWhen you see it
200OKNormal successful page or API response.
201CreatedA POST created a resource (e.g. a new record).
301Moved PermanentlyURL changed for good; search engines pass link equity to the new URL.
302 / 307Temporary redirectShort-term move; keep the old URL indexed.
304Not ModifiedCached copy is still fresh; saves bandwidth.
401UnauthorizedYou are not logged in / no valid credentials.
403ForbiddenYou are authenticated but not allowed.
404Not FoundThe URL does not exist on the server.
410GoneDeliberately removed — a stronger signal than 404.
429Too Many RequestsRate limited; slow down or back off.
500Internal Server ErrorUnhandled exception on the server.
502 / 503 / 504Bad Gateway / Unavailable / TimeoutUpstream server down, overloaded, or too slow.

301 vs 302: the one that hurts SEO

This distinction trips up more site owners than any other. A 301 tells Google “this moved permanently, transfer the ranking”; a 302 says “temporary, keep indexing the old one.” If you permanently retire a URL and use a 302, you leak ranking signals. When we consolidate old pages, we always use 301s. You can verify with a quick command: curl -sI https://example.com/old-page | head -1 should print HTTP/2 301 and a Location: header pointing to the new URL.

Fixing the common ones

A 404 usually means a broken link or a deleted file — fix the link or add a 301 to the correct page. A 403 is nearly always file permissions or a directory-index restriction on the server. A recurring 500 means you need to read the server log, because the code alone tells you nothing about the cause. A 503 during traffic spikes points at capacity, and a 429 means an API is throttling you — add exponential backoff rather than hammering the endpoint.

How to inspect codes yourself

In the browser, open DevTools → Network tab and watch the Status column as pages load. From the terminal, curl -I shows only headers, which is perfect for checking redirects and cache behaviour without downloading the whole page. For monitoring a live site, tools like UptimeRobot or a simple cron job that curls your key URLs and alerts on anything that is not 200/301 will catch problems before your visitors do.

Frequently asked questions

Is a 404 bad for SEO?

A few 404s are normal and harmless. The problem is many internal links pointing to 404s, which wastes crawl budget and hurts user experience. Fix internal links or 301-redirect deleted pages to a relevant one.

What is the difference between 401 and 403?

401 means you are not authenticated (no valid login). 403 means you are authenticated but not permitted to access that resource.

Should I use 301 or 302 when moving a page?

Use 301 for a permanent move so search engines transfer ranking signals. Use 302 only for genuinely temporary redirects.

What does a 429 status mean?

Too Many Requests — a server or API is rate-limiting you. Slow the request rate and add exponential backoff before retrying.