Every response a web server sends back carries a three-digit status code, telling the requester (usually a browser, but also search engine crawlers and other tools) what happened. The first digit places it in one of five categories.
The five categories
- 1xx — Informational. Rare to see directly; the request is still being processed.
- 2xx — Success. The request worked. `200 OK` is by far the most common.
- 3xx — Redirection. The resource has moved; follow the Location header.
- 4xx — Client error. Something about the request itself was wrong.
- 5xx — Server error. The server failed to fulfill a valid request.
Codes genuinely worth knowing
| Code | Meaning | Notes |
|---|---|---|
| 200 | OK | Standard successful response |
| 301 | Moved Permanently | Search engines transfer ranking signals to the new URL |
| 302 | Found (temporary redirect) | The old URL should stay indexed, not be replaced |
| 304 | Not Modified | Browser's cached copy is still valid |
| 401 | Unauthorized | Authentication required |
| 403 | Forbidden | Server understood but refuses — often a permissions issue |
| 404 | Not Found | No resource at that URL |
| 429 | Too Many Requests | Rate limiting in effect |
| 500 | Internal Server Error | Something broke server-side |
| 503 | Service Unavailable | Server temporarily can't handle the request (often overload or maintenance) |
Why the distinction between 301 and 302 matters
This is one of the most common real-world mistakes: using a 302 (temporary) redirect for something that's actually permanent tells search engines the old URL might come back, so they're slower to fully transfer ranking signals to the new one. If a page has genuinely moved for good, a 301 is almost always the right choice.
How to check it yourself
Our HTTP Status Checker shows the exact status code, final URL after redirects, and response time for any URL. For a full redirect chain hop-by-hop, use Redirect Checker.