HTTP Status Codes Clearly Explained
Every request on the web is answered by the server with a status code. These three-digit numbers help decide crawling, indexing, and user experience.
What you will learn
- What HTTP status codes are and why they are central to SEO
- How the five status code classes (1xx to 5xx) are structured
- The most important codes from 200 through 301 to 404 and 500
- How search engines interpret the codes for crawling and indexing
- How to find and fix problematic status codes
What are HTTP status codes?
An HTTP status code is a three-digit number with which a server responds to every request from a client – for example a browser or search engine crawler. The code communicates whether the request was successful, whether a problem occurred, or whether further steps are necessary.
These codes are the primary means of communication between client and server. They are relevant not only for developers but also for SEO: search engines like Google interpret them to understand whether a page is available, has been moved, or has problems – and make decisions based on this about crawling and indexing.
The client sends a request, the server responds with a response including a status code.
Why status codes are important for SEO
The Googlebot uses status codes to classify the state of each URL:
- 2xx (success): The resource was retrieved successfully and is usually indexable.
- 3xx (redirect): Above all 301 and 302 signal that a URL has been moved. Correct usage is crucial in order to bundle link signals and avoid duplicate content.
- 4xx (client error): 404 and 410 signal that a resource does not exist. Frequent errors burden the crawl budget and can lead to removal from the index.
- 5xx (server error): Frequent or long-lasting server errors (500, 503) can lead Google to reduce crawling and, in the worst case, remove pages from the index.
Regular monitoring is therefore mandatory. Tools like the Google Search Console, log file analyses and SEO crawlers help to find problematic codes.
The five status code classes
HTTP status codes are standardized (among others in RFC 9110) and are divided into five classes according to their first digit:
Class | Meaning | Short description |
|---|---|---|
1xx | Informational | Request received, processing continues |
2xx | Success | Request successfully received and accepted |
3xx | Redirection | Further action needed, usually a redirect |
4xx | Client error | Request faulty or cannot be fulfilled |
5xx | Server error | Server cannot fulfill a valid request |
HTTP status codes are divided into five classes from 1xx to 5xx, each with its own meaning.
The most important codes in detail
1xx – informational responses
These intermediate responses signal that the request has been initiated. In everyday use they are barely visible. Examples: 100 Continue, 101 Switching Protocols and 103 Early Hints, which gives the browser early hints about needed resources.
2xx – successful responses
- 200 OK: The standard code for a successful request – the resource is delivered.
- 201 Created: The request led to the creation of a new resource, often as a response to POST or PUT.
- 204 No Content: The request was successful, but there is no data to send back.
3xx – redirects
- 301 Moved Permanently: permanently moved. The recommended code for permanent relocations, since it transfers most of the SEO value.
- 302 Found: temporarily moved. The original URL remains authoritative; link equity is usually not passed on.
- 304 Not Modified: The resource has not changed since the last retrieval – the cached version can be used.
- 307 Temporary Redirect: like 302, but the original HTTP method must be retained.
- 308 Permanent Redirect: the permanent equivalent of 307.
Which code you use when is explored in more depth in the article Redirects.
4xx – client errors
- 400 Bad Request: faulty request, e.g. invalid syntax.
- 401 Unauthorized: authentication required (technically “not authenticated”).
- 403 Forbidden: access denied – even with a login.
- 404 Not Found: The resource was not found at the URL – the best-known error code.
- 410 Gone: The resource was permanently removed. For search engines a stronger signal than 404 to remove the URL from the index for good.
- 429 Too Many Requests: too many requests in a short time (rate limiting).
- 451 Unavailable For Legal Reasons: access blocked for legal reasons.
5xx – server errors
- 500 Internal Server Error: a generic server error, often caused by errors in the application code.
- 502 Bad Gateway: a gateway/proxy received an invalid response from the upstream server.
- 503 Service Unavailable: server temporarily unavailable, usually due to overload or maintenance. Important for SEO: this state must not last too long.
- 504 Gateway Timeout: no timely response from the upstream server.
Monitoring and fixing status codes
Proactive monitoring keeps your website healthy. Proven steps:
- Use Google Search Console, server log files, and SEO crawlers to regularly search for 4xx and 5xx codes.
- Clarify the cause of 404 errors: for typos in internal links, correct them; for removed pages, set up a 301 redirect to a fitting alternative. If a page was deliberately and permanently removed, 410 is often the semantically cleaner response.
- Use 301 for permanent moves, 302 or 307 only for genuine temporary redirects. Avoid redirect chains.
- Analyze 5xx errors thoroughly: check server logs, load, database connections, and configuration. Long-lasting 5xx errors can strongly impair rankings.
A quick orientation for common errors:
Status code | Meaning | Possible action |
|---|---|---|
403 | Forbidden | Check permissions on the server and firewall rules |
404 | Not Found | Correct internal links, set up a 301 redirect, or set 410 |
429 | Too Many Requests | Reduce request rate, observe API limits and the Retry-After header |
500 | Internal Server Error | Check server logs, debug application code, check configuration |
503 | Service Unavailable | Check server load, wait out maintenance, review scaling |
Conclusion
HTTP status codes are far more than technical details. They are a fundamental language of the web that influences how browsers work, the efficiency of search engines, and the experience of users. A basic understanding of the 2xx, 3xx, 4xx, and 5xx classes is mandatory for anyone who runs or optimizes a website. Through careful monitoring and correct configuration, you ensure that users and crawlers have a clear, positive experience with your website.
FAQ
Frequently asked questions
The 301 Moved Permanently. It signals a permanent relocation and transfers most of the SEO value to the new URL. For temporary moves, you use 302 or 307 instead.
Both signal that a resource is not available. 410 Gone is more explicit: it states that the resource has been permanently removed. Search engines usually remove a 410 URL from the index faster than a 404 URL.
Yes, if they occur frequently or persistently. Google can then reduce crawling and, in the worst case, remove pages from the index because the website is considered unreliable. Short, rare 5xx errors, by contrast, are uncritical.
With the Google Search Console, server log files, and SEO crawlers like Screaming Frog. They uncover 4xx and 5xx errors that you can then fix specifically – for example through corrected internal links or fitting redirects.
Quiz
Test your knowledge
Five questions on HTTP status codes and their significance for SEO.
Question 1 of 5
What does the class of 3xx status codes stand for?