An HTTP status code is a three-digit number in a server response that reports the result of processing a request. The codes critical for SEO are 2xx (success), 3xx (redirects), 4xx (client errors), and 5xx (server errors). This reference covers the main codes and their impact on indexing.
HTTP code structure
The first digit determines the category:
| Range | Category |
|---|---|
| 1xx | Informational |
| 2xx | Success |
| 3xx | Redirection |
| 4xx | Client error |
| 5xx | Server error |
Success codes (2xx)
200 OK
The request was successful and the resource was returned. This is the primary code for pages that should be indexed.
HTTP/1.1 200 OK
Content-Type: text/html204 No Content
The server processed the request but returns no content. This is rarely used for web pages.
Redirection codes (3xx)
301 Moved Permanently
Permanent redirection. The resource has moved to a new address. For Google, this is a strong signal to select the target URL as canonical; the code alone does not guarantee that rankings or traffic will be preserved.
HTTP/1.1 301 Moved Permanently
Location: https://example.com/new-pageUsage: changing domains, changing URLs, migrating to HTTPS. For details, see the redirect guide.
302 Found (Temporary Redirect)
Temporary redirection. The resource is temporarily available at a different address. For Google, this is a weaker signal to select the target URL as canonical than a permanent redirect. Choose the code according to the purpose of the redirect.
HTTP/1.1 302 Found
Location: https://example.com/temp-pageUsage: A/B tests, temporary promotions. For permanent changes, use 301.
307 Temporary Redirect
Like 302, but preserves the request method (POST remains POST). Recommended instead of 302 for temporary redirects.
308 Permanent Redirect
Like 301, but preserves the request method. Recommended instead of 301 when redirecting POST requests.
Client error codes (4xx)
400 Bad Request
The request syntax is invalid. The client sent malformed data. This rarely occurs during ordinary browsing.
401 Unauthorized
Authentication is required. The page is available after logging in. It is not indexed (the crawler does not authenticate).
403 Forbidden
Access is denied. The server understood the request but refuses access. If Googlebot receives 403, the content of this response is not used for indexing. Check which response the crawler itself receives: IP-based blocking may produce different results for visitors and crawlers.
404 Not Found
The resource was not found. This is the best-known error. The page does not exist. For details, see the guide to fixing 404.
HTTP/1.1 404 Not FoundActions: configure 301 to a relevant page or keep 404 with a custom page. For bulk checking, use the reChecker bulk checker.
410 Gone
The resource has been permanently removed. Unlike 404, this code explicitly indicates permanent removal. Google describes the same handling for 4xx responses, except 429; faster removal from the index is not guaranteed just because you choose 410.
429 Too Many Requests
The request limit has been exceeded (rate limiting). This is a temporary block and may affect crawling.
Server error codes (5xx)
500 Internal Server Error
An internal server error. Possible causes include application code, the database, or configuration. This is critical for SEO: the page is unavailable.
502 Bad Gateway
A proxy server received an invalid response from an upstream server. This often occurs due to problems with PHP-FPM or load balancers.
503 Service Unavailable
The service is temporarily unavailable due to maintenance or overload. Crawlers may return later. Retry-After is recommended.
HTTP/1.1 503 Service Unavailable
Retry-After: 3600504 Gateway Timeout
A timeout while waiting for a response from an upstream server. The server did not process the request in time.
Impact on SEO
| Code | Indexing | Action |
|---|---|---|
| 200 | Content may be considered for indexing; inclusion is not guaranteed | Check that the intended document was returned |
| 301 | Strong signal to select the target URL | Check the redirect chain and whether the new page is relevant |
| 302/307 | Temporary | Replace with 301 for permanent redirects |
| 404 | Excluded | Redirect or use a custom page |
| 410 | Handled like other 4xx codes, except 429 | For content that has been explicitly and permanently removed |
| 500, 502, 503, 504 | Problems | Fix the server |
The current handling of codes is described in Google's documentation. A successful server response does not confirm that a page is indexed; check the search console information for the specific URL.
Bulk status code checking
Batch checking is useful when you have hundreds or thousands of URLs. Bulk URL checking on reChecker shows the status codes received and the redirects it tracked. The redirect checker checks server-side HTTP redirects; JavaScript and meta refresh are not executed. A network failure or an untracked redirect does not confirm the response from the target page.
Informational codes (1xx)
100 Continue
The client can continue the request. Used with Expect: 100-continue. Rarely encountered in web development.
101 Switching Protocols
The server switches protocols (for example, to WebSocket). Used when upgrading a connection.
Additional 3xx codes
303 See Other
The result is available at another URL, using the GET method. Used after POST to prevent a form from being submitted again.
304 Not Modified
The resource has not changed since the last request. The client can use its cache. This is important for performance because it reduces data transfer.
305 Use Proxy (obsolete)
Indicated that a proxy should be used. Almost never used.
306 (not used)
Reserved and not used.
Additional 4xx codes
405 Method Not Allowed
The method is not allowed for the resource. GET is allowed, but POST is not. Check the server configuration for the API.
406 Not Acceptable
The server cannot return content in the format requested through the Accept headers. Rarely used for ordinary pages.
408 Request Timeout
The server did not receive the complete request in time. This may indicate network problems or overload.
409 Conflict
A conflict occurred while processing the request (for example, a version conflict). Common in APIs.
410 Gone
The resource has been permanently removed. Unlike 404, it explicitly indicates permanent removal. Google applies the general handling for 4xx codes, except 429. Choose the code based on the meaning of the response; do not assume it will speed up removal from the index.
429 Too Many Requests
Rate limiting. The client sent too many requests. Retry-After indicates when to try again. Aggressive scanning may affect crawling.
Additional 5xx codes
501 Not Implemented
The server does not support the functionality required by the request. This may be due to a configuration error or incomplete implementation.
502 Bad Gateway
A gateway server received an invalid response from an upstream server. This often occurs when PHP-FPM, Node.js, or load balancers fail. Check the upstream service logs.
503 Service Unavailable
The service is temporarily unavailable due to maintenance or overload. Retry-After helps clients and crawlers understand when to try again.
504 Gateway Timeout
A timeout while waiting for a response from an upstream server. Increase the timeouts or optimize slow requests.
505 HTTP Version Not Supported
The server does not support the HTTP version. Rare.
Checking with curl
# Простая проверка
curl -I https://example.com/page
# Следование редиректам (показать финальный код)
curl -I -L https://example.com/old-page
# Только код
curl -o /dev/null -s -w "%{http_code}\n" https://example.com/page
# С таймингом
curl -o /dev/null -s -w "Code: %{http_code}, Time: %{time_total}s\n" https://example.com/pageWebsite checklist
| Check | Recommendation |
|---|---|
| Important pages | 200 |
| Old URLs | 301 to current URLs |
| Nonexistent pages | 404 or 410 |
| Temporary redirects | Replace with 301 for a permanent move |
| 5xx errors | Fix them |
| Redirect chains | Reduce to a single 301 |
Logging and monitoring status codes
Server logs
Web server logs (Nginx, Apache) contain the response code for each request. Log analysis can reveal the frequency of 4xx and 5xx responses and problematic URLs. Tools include GoAccess, AWStats, and ELK Stack.
5xx alerts
Set up monitoring (Uptime Robot, Pingdom, or custom scripts) with alerts for 5xx responses. Detecting failures quickly is critical to minimizing downtime.
Dashboard metrics
Track the share of 200 vs. 4xx vs. 5xx, the top URLs by 404, and the top URLs by 5xx. Trends can help identify systemic problems.
Related materials
For fixing 404, see the guide to 404 errors. To optimize redirects, see the redirect guide. For bulk checking, see the bulk checker and the redirect checker on reChecker.