What Are HTTP Status Codes? Complete Guide for SEO
Every time you visit a webpage, the server sends back a three-digit number called an HTTP status code. Most people never see these codes. But if you manage a website, run SEO campaigns, or maintain any kind of web presence, understanding HTTP status codes is not optional β it is foundational.
Status codes tell search engine crawlers whether your pages are live, moved, broken, or temporarily down. The wrong status code on the wrong page can quietly destroy your rankings. This guide covers every status code that matters for SEO, what each one means, and exactly what to do when you encounter them.
How HTTP Status Codes Work
When a browser or search engine bot requests a URL, the server responds with a status code in the HTTP response header. The first digit of the code defines the category:
- 1xx β Informational: the request was received, processing continues
- 2xx β Success: the request was received, understood, and accepted
- 3xx β Redirection: further action is needed to complete the request
- 4xx β Client Error: the request contains bad syntax or cannot be fulfilled
- 5xx β Server Error: the server failed to fulfill a valid request
Search engines like Google interpret these codes to decide what to index, what to drop, and how to transfer ranking signals between URLs. A misconfigured status code can mean the difference between a page ranking on page one and disappearing from search entirely.
Complete HTTP Status Code Reference Table
Before diving into details, here is a quick reference table of the most important HTTP status codes and their SEO impact:
| Code | Name | SEO Impact |
|---|---|---|
| 200 | OK | Page is indexed normally |
| 201 | Created | Minimal (API responses) |
| 204 | No Content | Minimal (API responses) |
| 301 | Moved Permanently | Passes link equity to new URL |
| 302 | Found | May not pass full link equity |
| 307 | Temporary Redirect | Same as 302, preserves method |
| 308 | Permanent Redirect | Same as 301, preserves method |
| 400 | Bad Request | Page will not be indexed |
| 401 | Unauthorized | Page will not be indexed |
| 403 | Forbidden | Page will not be indexed |
| 404 | Not Found | Page dropped from index over time |
| 410 | Gone | Page dropped from index faster |
| 429 | Too Many Requests | Crawl rate reduced |
| 500 | Internal Server Error | Temporary: minor. Persistent: deindexed |
| 502 | Bad Gateway | Same as 500 |
| 503 | Service Unavailable | Tells crawlers to come back later |
| 504 | Gateway Timeout | Same as 500 |
Use a URL status checker to see what status code any page returns right now. For checking multiple pages at once, use a broken link checker.
1xx Informational Codes
The 1xx class of status codes is purely informational. The most common is 100 Continue, which tells the client that the initial part of the request has been received and the client should continue sending the body.
You will rarely encounter 1xx codes in SEO work. Search engine crawlers handle them automatically, and they have no impact on indexing or rankings. If you see them during URL checking, they are safe to ignore.
2xx Success Codes
A 2xx status code means the request was successful. This is what you want to see for every page you intend to have indexed.
200 OK
What it means: The server successfully returned the requested page. Everything is working as expected.
When it happens: On every normal page load. This is the default success response for web pages.
SEO impact: A 200 response tells search engines the page exists and should be crawled and indexed (assuming no noindex directive). This is the status code you want on every page you care about ranking.
What to watch for: Soft 404s. These are pages that return a 200 status code but display error content like βpage not foundβ or an empty page. Google can sometimes detect soft 404s, but not always. They waste crawl budget and confuse your site structure.
Common Mistake: Soft 404s
If your CMS returns a 200 status code for URLs that do not exist instead of a proper 404, search engines will try to index those error pages. This wastes crawl budget and can dilute your site quality signals. Always configure your server to return a real 404 for pages that do not exist.
201 Created
What it means: The request was fulfilled and a new resource was created. Common in REST APIs after a POST request.
SEO impact: None. You will not see 201 codes in normal web crawling. They are relevant for API integrations, not for pages you want indexed.
204 No Content
What it means: The server processed the request successfully but is not returning any content. Used for actions like saving a form without navigating away.
SEO impact: None for typical websites. If a page that should have content returns 204, that is a server configuration problem.
3xx Redirection Codes
Redirects are where HTTP status codes have the most direct impact on SEO. The difference between a 301 and a 302 can determine whether your new URL inherits the ranking power of the old one.
301 Moved Permanently
What it means: The requested URL has been permanently moved to a new location. All future requests should use the new URL.
When to use it: When you change a URL permanently β restructuring your site, changing a slug, consolidating pages, or migrating to a new domain.
SEO impact: A 301 redirect passes the vast majority of link equity (ranking power) from the old URL to the new one. Google has confirmed that 301 redirects pass full PageRank. This is the correct redirect for any permanent URL change.
What to do: Use 301 redirects for all permanent URL changes. After implementing them, verify the redirects are working with a URL status checker. Monitor your rankings for the affected pages over the following weeks.
SEO Tip: 301 Redirects During Site Migrations
During a website migration, 301 redirects are your most critical SEO safeguard. Every old URL that had rankings or backlinks needs a 301 pointing to the equivalent new URL. Missing even a handful of high-authority pages can cause significant ranking drops. See our website migration guide for a full checklist.
302 Found
What it means: The requested URL has been temporarily moved to a different location. The client should continue using the original URL for future requests.
When to use it: When a page is temporarily unavailable and you are sending users to an interim page β A/B tests, seasonal content swaps, or temporary maintenance pages.
SEO impact: A 302 tells search engines to keep the original URL in their index. In theory, it does not pass link equity to the target URL. In practice, Google has said they will eventually treat long-running 302s as 301s, but relying on this is risky. If your redirect is permanent, use a 301.
Common Mistake: Using 302 Instead of 301
This is one of the most frequent SEO mistakes. Many CMS platforms and server configurations default to 302 redirects. If you moved a page permanently and used a 302, search engines may keep trying to index the old URL and may not pass full link equity to the new one. Always verify your redirect type after implementation.
307 Temporary Redirect
What it means: Same as 302, but with a strict guarantee that the HTTP method (GET, POST) will not change during the redirect. Introduced in HTTP/1.1 to clarify ambiguity in 302 behavior.
SEO impact: Functionally identical to 302 for SEO purposes. Search engines treat 307 the same as 302. Use it when you need method preservation (common in API contexts), but for standard webpage redirects, 302 works fine.
308 Permanent Redirect
What it means: Same as 301, but with the same strict method preservation guarantee as 307. The redirect is permanent and the HTTP method will not change.
SEO impact: Functionally identical to 301 for SEO purposes. Google treats 308 the same as 301 for link equity and indexing. Use 308 when you need method preservation on a permanent redirect, otherwise 301 is standard.
Check Your Redirects in Bulk
Upload a list of URLs and see every status code, redirect chain, and final destination. 300 free checks, no credit card required.
Check URLs Free4xx Client Error Codes
Client errors mean the request itself was the problem β the URL is wrong, the user lacks permission, or the resource does not exist. These codes have significant SEO implications because they determine how search engines handle missing or restricted content.
400 Bad Request
What it means: The server cannot process the request because of malformed syntax. The URL itself, headers, or request parameters are invalid.
When it happens: Corrupted URLs with broken query parameters, oversized cookies, or malformed request headers. Often caused by broken links with encoding issues.
SEO impact: Google will not index pages returning 400. If legitimate pages are returning 400 errors, fix the server configuration. If only malformed URLs trigger 400s, that is correct behavior.
401 Unauthorized
What it means: The request requires authentication. The user (or bot) has not provided valid credentials.
SEO impact: Pages behind authentication will not be indexed. This is usually intentional β you do not want private dashboards or account pages in search results. If a public page is accidentally returning 401, fix it immediately.
403 Forbidden
What it means: The server understood the request but refuses to authorize it. Unlike 401, providing credentials will not help β access is denied entirely.
When it happens: Blocked IP addresses, server-level access restrictions, or misconfigured permissions. Also returned by some CDNs and WAFs (Web Application Firewalls) when they block a request.
SEO impact: Pages returning 403 will not be indexed. More importantly, if your server returns 403 to Googlebot due to aggressive bot blocking, your entire site could lose rankings. Make sure your firewall and CDN rules do not block legitimate search engine crawlers.
404 Not Found
What it means: The server cannot find the requested URL. The page does not exist, either because it was removed or the URL was never valid.
When it happens: Deleted pages, changed URL structures, typos in links, or external sites linking to pages that no longer exist.
SEO impact: Google will eventually remove 404 pages from its index, but this is a gradual process. The page may remain in search results for weeks or months, sending users to a dead end. Any backlinks pointing to a 404 page are wasted β their link equity is lost.
What to do: If the content moved to a new URL, set up a 301 redirect. If the content is permanently gone and there is no equivalent page, a 404 is the correct response. For high-traffic 404 pages, consider creating new content at that URL to capture the existing traffic and backlinks.
Regularly audit your site for 404 errors using a broken link checker. For a detailed walkthrough, see our guide on how to find broken links on any website.
404 vs 410: Which to Use
This is one of the most common questions in technical SEO. Both codes indicate a page is gone, but they send different signals to search engines.
404 vs 410: The Practical Difference
A 404 says βI cannot find this pageβ β it might come back. A 410 says βthis page is permanently gone β stop looking for it.β Google deindexes 410 pages faster than 404 pages. Use 410 when you deliberately removed content and want it out of search results quickly. Use 404 when a page simply does not exist or may return.
410 Gone
What it means: The resource has been intentionally and permanently removed. Unlike 404, a 410 explicitly states the page will not be coming back.
When to use it: Discontinued products, expired promotions, retracted content, or any page you deliberately removed and want deindexed quickly.
SEO impact: Google processes 410 responses faster than 404s when removing pages from its index. John Mueller from Google has confirmed that 410 results in faster deindexing. If you need content removed from search results promptly, 410 is the right choice.
429 Too Many Requests
What it means: The client has sent too many requests in a given time period. The server is rate-limiting the client.
When it happens: Aggressive crawling, automated scraping, or high-traffic bursts that trigger rate limiting.
SEO impact: If Googlebot receives 429 responses, it will slow down its crawl rate for your site. This is actually the correct way to handle crawl budget pressure β it is better than returning 503 errors. However, persistent 429s to Googlebot can mean your pages are crawled less frequently, leading to slower indexing of new and updated content.
What to do: Ensure your server can handle Googlebot's crawl rate. If needed, use Google Search Console to reduce the crawl rate rather than relying on 429 responses.
5xx Server Error Codes
Server errors mean your server failed to process a valid request. These are the most urgent status codes from an SEO perspective because they indicate your site is broken, not just a single page.
500 Internal Server Error
What it means: A generic error indicating the server encountered an unexpected condition that prevented it from fulfilling the request.
When it happens: Application bugs, database connection failures, misconfigured server settings, or unhandled exceptions in your code.
SEO impact: Temporary 500 errors during a brief outage are not catastrophic β Google will retry and usually recover the page. But persistent 500 errors will cause pages to be deindexed. If your entire site returns 500 for an extended period, you risk losing rankings across all your pages.
What to do: Fix the underlying cause immediately. Check server logs for the specific error. If the fix will take time, return a 503 with a Retry-After header instead (see below).
502 Bad Gateway
What it means: The server, acting as a gateway or proxy, received an invalid response from an upstream server.
When it happens: Common with reverse proxy setups (Nginx in front of a Node.js app, for example), load balancers, or CDN configurations where the origin server is down or unresponsive.
SEO impact: Same as 500. Temporary 502 errors are tolerated; persistent ones lead to deindexing. Often indicates infrastructure problems rather than application bugs.
503 Service Unavailable
What it means: The server is temporarily unable to handle the request. This is the only 5xx code that explicitly signals a temporary condition.
When to use it: Planned maintenance, server overload, or any situation where the downtime is expected to be temporary.
SEO impact: A 503 with a Retry-After header tells search engines to come back later without penalizing the page. This is the correct status code for planned downtime. Google will retain the page in its index and revisit after the specified time.
SEO Tip: Use 503 for Planned Maintenance
When you need to take your site down for maintenance, always return a 503 status code with a Retry-After header β not a 404 or 500. This tells Google your downtime is temporary, preserving your rankings. A 500 error during maintenance can trigger unnecessary deindexing if it lasts more than a day or two.
504 Gateway Timeout
What it means: The server, acting as a gateway or proxy, did not receive a timely response from the upstream server.
When it happens: Slow database queries, unresponsive backend services, or network issues between your proxy/CDN and origin server.
SEO impact: Same as 500. If pages consistently time out, Google will eventually stop trying to crawl them. Investigate whether the timeout is caused by slow server-side rendering, heavy database queries, or infrastructure bottlenecks.
How to Check HTTP Status Codes
There are several ways to check what status code a URL returns:
- Browser DevTools: Open the Network tab in Chrome DevTools, navigate to the page, and check the Status column. This works for individual pages but does not scale.
- Command line: Run
curl -I https://example.comto see the response headers including the status code. Good for quick checks. - Online URL checker: Use a URL status checker to check individual URLs without any setup.
- Bulk checking: For checking hundreds or thousands of URLs, upload a CSV to a bulk URL checker and get a complete report with every status code, redirect chain, and response time.
Status Codes and Redirect Chains
A redirect chain occurs when one URL redirects to another, which redirects to another, and so on. For example: URL A (301) redirects to URL B (301) redirects to URL C (200). That is a two-hop chain.
Why redirect chains matter for SEO:
- Link equity loss: While Google says 301 redirects pass full PageRank, each hop in a chain adds processing time and a small risk of the chain breaking.
- Crawl budget waste: Each redirect in the chain consumes a crawl request. Long chains mean Google spends more of your crawl budget on redirects instead of actual content.
- Page speed impact: Each redirect adds latency. A three-hop chain can add 500ms or more to page load time, hurting Core Web Vitals.
Best practice: Keep redirect chains to a maximum of one hop. If URL A redirects to URL B, and you later move B to URL C, update the redirect so A points directly to C.
HTTP Status Codes and Crawl Budget
Crawl budget is the number of pages Google will crawl on your site in a given time period. Status codes directly affect how Google spends that budget:
- 200 pages use crawl budget productively β Google crawls and indexes your content.
- 301/302 redirects consume crawl budget on the redirect itself, plus an additional request for the destination URL.
- 404/410 pages waste crawl budget. Google still crawls them periodically to check if they have returned.
- 500 errors waste crawl budget and may cause Google to reduce your overall crawl rate.
For large sites with tens of thousands of pages, cleaning up unnecessary redirects and eliminating 404 errors can meaningfully increase the number of valuable pages Google crawls per day.
Find Every Broken Link and Redirect on Your Site
Upload up to 75,000 URLs. Get a full report with status codes, redirect chains, and response times. 300 free checks to start.
Check Your URLs FreeBest Practices for HTTP Status Codes
- Return 200 for every live page. Verify that all pages you want indexed actually return a 200 status code, not a soft 404 or an accidental redirect.
- Use 301 for permanent moves, 302 for temporary. Never default to 302 when a 301 is appropriate. Double-check your CMS and server configuration.
- Prefer 410 over 404 for deliberately removed content. It signals intent and speeds up deindexing.
- Use 503 with Retry-After for planned downtime. Never let your site return 500 errors during maintenance.
- Eliminate redirect chains. Audit your redirects quarterly and flatten any chains to single hops.
- Monitor status codes continuously. Pages that return 200 today can break tomorrow. Set up regular crawls to catch new 404s and 500s before they impact your rankings.
- Fix 5xx errors immediately. Server errors are the most damaging status codes for SEO. Every hour of 500 errors is a risk to your rankings.
- Do not block search engine crawlers. Make sure your firewall, CDN, and rate limiting rules do not return 403 or 429 to Googlebot.
Summary
HTTP status codes are the language servers use to communicate with browsers and search engines. For SEO, the most critical takeaways are:
- 200 is the goal for every page you want ranked.
- 301 is the correct redirect for permanent URL changes β it passes link equity.
- 302 is for temporary redirects only β do not use it for permanent moves.
- 404 means a page is not found and will eventually be deindexed.
- 410 means a page is permanently gone and will be deindexed faster.
- 503 is the right code for temporary downtime β it protects your rankings.
- 500 errors need immediate attention β persistent server errors destroy rankings.
The only way to know what status codes your pages are returning right now is to check them. Use a URL status checker for individual pages, or upload your full URL list to a bulk checker for a comprehensive audit. For finding broken links across an entire site, see our guide on how to find broken links on any website.
Related Articles
How to Check for 404 Errors on Your Website β
Find and fix 404 errors hurting your SEO with Google Search Console, crawlers, and bulk checkers.
Free vs Paid Broken Link Checkers β
When free tools are enough and when you need a paid broken link checker.
How to Find Broken Links on Any Website (2026 Guide) β
Free methods, browser tools, and bulk checking to find and fix broken links on any website.