HTTP Status Codes Explained: 200, 301, 404 and What They Mean
Every time a browser or tool requests a web page, the server responds with a three-digit HTTP status code before anything else — and that code tells you exactly what happened, whether you ever see it or not. Understanding these codes is essential for debugging broken links, redirects, and SEO issues. This guide covers what the common codes actually mean and when to worry about them.
The Five Status Code Categories
| Range | Category | Meaning |
|---|---|---|
| 1xx | Informational | Request received, still processing (rarely seen directly) |
| 2xx | Success | The request worked as expected |
| 3xx | Redirection | The resource has moved; follow the new location |
| 4xx | Client Error | Something's wrong with the request (often a bad or missing URL) |
| 5xx | Server Error | Something's wrong on the server's end |
The Codes You'll Actually See Most Often
200 OK
The request succeeded and the page loaded normally. This is what you want for every live, indexable page on your site.
301 Moved Permanently
The resource has permanently moved to a new URL. Search engines transfer most ranking signals to the new URL, making this the correct choice for permanent redirects (like after a URL structure change or domain migration).
302 Found (Temporary Redirect)
The resource has temporarily moved. Search engines generally keep indexing the original URL rather than the new one, since the move is expected to be temporary. Using 302 for a redirect that's actually permanent is a common SEO mistake.
404 Not Found
The server couldn't find anything at the requested URL. A reasonable number of 404s is normal (users mistype URLs, old links break), but a large number of 404s on pages that should exist signals a real problem — broken internal links, a bad migration, or accidentally deleted content.
500 Internal Server Error
Something broke on the server itself — a bug, a misconfiguration, or a resource limit. This is not something a visitor caused; it needs to be fixed server-side.
503 Service Unavailable
The server is temporarily unable to handle the request, often due to maintenance or overload. Unlike a 500 error, this is usually expected and temporary.
Why This Matters for SEO
Search engines treat status codes as instructions. A 404 on a page that should exist means that page effectively disappears from search results. A 302 used where a 301 belongs can dilute ranking signals during a migration. A site returning 500 errors intermittently can get crawled less frequently and rank worse overall, since crawlers deprioritize unreliable sites.
How to Check a URL's Status Code
- Open the HTTP Status Code Checker
- Enter the URL you want to check
- View the returned status code and, for redirects, the full redirect chain
If you're auditing an entire site for broken links rather than checking one URL at a time, use the Broken Links Finder instead.
Less Common But Important Codes
- 403 Forbidden — the server understood the request but refuses to authorize it, typically due to permissions. Different from 401 (unauthorized), which specifically means authentication is required and hasn't been provided.
- 429 Too Many Requests — rate limiting in action; the client has sent too many requests in a given time window. Common when scraping a site too aggressively or hitting an API without respecting its rate limits.
- 503 Service Unavailable — the server is temporarily unable to handle the request, often due to maintenance or being overloaded. Unlike a generic 500 error, a well-configured 503 can include a Retry-After header telling clients when to try again.
- 308 Permanent Redirect — functionally similar to 301, but strictly preserves the original request method (important for POST requests, where a 301 technically permits the redirect to switch to GET).
How to Check a Page's Status Code
Browser address bars don't show status codes directly — a redirected page just loads at its final destination without indicating it passed through a 301 or 302 along the way. To actually see the code, you need either a browser's developer tools Network tab (which shows the status for every request), a command-line tool, or a dedicated HTTP Status Code Checker, which is the fastest way to check a URL's status, including full redirect chains, without needing to dig through developer tools.
Frequently Asked Questions
Is a 404 page bad for SEO?
A 404 on a URL that genuinely no longer exists is fine and expected — it's the correct response. It becomes a problem when pages that should be live are returning 404s, or when many internal links point to non-existent pages.
Should I use 301 or 302 for a redirect?
Use 301 if the move is permanent (you don't intend to move the content back). Use 302 only for genuinely temporary situations, like an A/B test or short-term maintenance page. When in doubt for a real migration, use 301.
What does a redirect chain mean and why does it matter?
A redirect chain happens when URL A redirects to B, which redirects to C, and so on. Each hop adds latency and can dilute SEO signal. Where possible, redirect directly from the original URL to the final destination instead of chaining multiple redirects.
Related Guides
What's your reaction?
Written by
JayDev is an independent developer who builds and maintains SEO Stack Tools. Tool descriptions and blog content are drafted with AI assistance, then reviewed and edited by JayDev for accuracy before publishing. Questions or corrections go straight through the Contact page.