HTTP Status Code
An HTTP status code is the three-digit number a server returns with every page request, telling the browser and search crawlers what happened. It is the difference between a page that loads fine, redirects, is gone, or has crashed, and crawlers read it on every single request.
Every time a browser or a crawler asks your server for a page, the server answers with a number before it sends a single byte of content. That number is the HTTP status code, and it is the most honest signal your site gives off. It cannot be faked by good copy or pretty design. Either the server says the page is fine, or it says something is wrong, and search engines treat that answer as gospel.
Most people never think about status codes until something breaks. That is a mistake. A site quietly leaking 404s, serving soft errors, or chaining redirects is bleeding crawl efficiency and ranking signals, and the only way to see it is to read the codes.
The five families
Status codes are grouped by their first digit, and once you know the families you can read any code on sight.
| Range | Meaning | Example |
|---|---|---|
| 1xx | Informational, request received | 100 Continue |
| 2xx | Success, the page loaded | 200 OK |
| 3xx | Redirection, the page moved | 301 Moved Permanently |
| 4xx | Client error, the request failed | 404 Not Found |
| 5xx | Server error, the server failed | 500 Internal Server Error |
The codes that matter for SEO
- 200 OK: the page loaded normally. This is what you want for every page you want indexed.
- 301 Moved Permanently: a permanent redirect that passes ranking signals to the new URL.
- 302 Found: a temporary redirect. Tells engines the move is not permanent, so use it only when it truly is.
- 404 Not Found: the page does not exist. Fine in moderation, a problem at scale.
- 410 Gone: the page is permanently deleted. A stronger, more deliberate signal than 404.
- 500 Internal Server Error: the server crashed handling the request. Pure red flag.
- 503 Service Unavailable: temporary downtime, the correct code to serve during maintenance.
Crawlers read the status code on every request. A page that looks fine to a human can be silently returning the wrong code, and the engine believes the code, not the pixels.
The soft 404 trap
Here is a problem that hides in plain sight. A page shows a friendly 'sorry, nothing here' message but the server returns a 200 instead of a 404. To a human it looks like a missing page. To a crawler it looks like a real, successful page worth indexing. Google calls this a soft 404, and it wastes crawl budget on empty pages while confusing your index. The fix is to make the server return the correct code that matches what the page actually is.
warningWATCH OUT
Never serve a 200 for a page that has no real content. If the page is missing, return 404 or 410. If it moved, return 301. The code must tell the truth about the page.
targetHow to read your own codes
You do not need fancy tools to check a code. Open your browser's developer tools, go to the Network tab, reload the page, and click the main document request. The status code sits right there. For a site-wide view, a crawler like Screaming Frog will list the code for every URL it finds, which is how you catch problems at scale.
The code is the truth
Search engines act on the status code, not on what the page appears to say. Make every page return the code that honestly describes its state, and audit your codes regularly to catch silent breakage.
For how status codes tie into crawl budget and overall site health, read my guide on technical SEO fundamentals.
RELATED TERMS
Want this handled by someone who has measured search for 20 years?
Work with me