HTTP Status Codes for SEO: Redirect and Error Checklist
Learn how Google treats 200, 301, 302, 404, 410, 429 and 5xx responses, then fix redirect chains, soft 404s and sitemap errors on a small site.
Every URL on your site answers a request with an HTTP status code before a single word of content is read. That three-digit number decides whether a search engine considers the page for indexing, follows it somewhere else, drops it, or slows down crawling across the whole site. Most ranking problems that look mysterious on small websites turn out to be ordinary status code mistakes: a redirect chain left behind after a redesign, a deleted page that still returns 200, or a temporary redirect that was meant to be permanent.
This checklist explains how Google treats the status codes you will actually meet, then walks through a practical review you can run on a small site in under an hour.
Quick answer
Pages you want indexed should return 200 at their final, canonical URL with no redirect in between. Moved pages should use one permanent redirect (301 or 308) straight to the closest relevant replacement. Removed pages with no replacement should return 404 or 410, not a redirect to the homepage. Temporary situations should use 302 or 307. Server errors (5xx) and rate limiting (429) should be rare and short-lived, because they make crawlers back off.
How Google handles the main status code groups
Google Search Central documents how its crawlers react to each class of response. The short version, based on Google's HTTP status code documentation:
- 2xx (success): the content is passed on for indexing consideration. Indexing is still not guaranteed. If a
200page looks empty or like an error message, Search Console may report it as a soft 404. - 3xx (redirection): Google's crawlers generally follow up to 10 redirect hops. Content on the redirecting URL is ignored and the final target is processed instead.
301and308are a strong signal that the target should be canonical;302and307are a weak signal. - 4xx (client errors): content is not used. Already indexed URLs that start returning
4xxare removed over time. All4xxcodes except429are treated the same way, so404and410lead to the same outcome. - 429 and 5xx (server errors): crawlers temporarily slow down. Already indexed URLs are kept for a while, but URLs that keep failing are eventually dropped.
Two practical conclusions follow. First, there is no SEO bonus for choosing 410 over 404; pick whichever your platform supports cleanly. Second, a few minutes of 503 during maintenance is harmless, but days of server errors are not.
1. Build a short URL inventory
You cannot check status codes without a list of URLs. For a small site, combine three sources:
- Every URL in your XML sitemap.
- The pages that receive clicks or impressions in Google Search Console.
- Old URLs you know about from previous redesigns, migrations, or slug changes.
If you do not have a sitemap yet, the XML Sitemap Generator can prepare the markup, but the final file should only list pages that are live and meant to be indexed.
2. Confirm every sitemap URL returns 200 directly
A sitemap should list final destinations, not URLs that redirect. Check each one and flag anything that does not return 200 on the first request.
- Redirecting sitemap URL: replace it with the final target URL.
- 404 or 410 in the sitemap: remove it, or restore the page if its removal was a mistake.
- 5xx in the sitemap: investigate the server or application error before anything else.
Watch the small variations too: http versus https, www versus the bare domain, and trailing slash versus no trailing slash. Each mismatch adds a redirect hop that the sitemap should not need.
3. Collapse redirect chains into one hop
A redirect chain happens when URL A redirects to B, which redirects to C. Chains usually build up over several redesigns. Google can follow them, but every extra hop slows users down, wastes crawl activity, and increases the chance that one link in the chain breaks.
- Update old redirect rules so they point straight to the current final URL.
- Update internal links so they point to the final URL and do not rely on redirects at all.
- Look for loops, where two rules send a URL back and forth.
To see each hop, run curl -sIL https://example.com/old-page from a terminal or open your browser developer tools, enable "Preserve log" in the Network panel, and load the URL. Each response in the chain is listed with its own status code and Location header.
4. Use permanent redirects for permanent moves
According to Google's redirect guidance, permanent redirects tell Google to show the new target in search results, while temporary redirects keep the source URL in results. Choose based on intent:
- Slug changed, page merged, or domain moved:
301or308. - Seasonal page, short promotion, or service temporarily unavailable:
302or307. - No server access: an instant meta refresh is treated as permanent, but a server-side redirect is the most reliable option.
A common mistake is a CMS or plugin that creates 302 redirects by default. If a move is permanent, check the actual status code instead of trusting the setting label.
5. Stop redirecting deleted pages to the homepage
When a page is removed with no close replacement, redirecting it to the homepage is tempting. It usually does not help. The homepage does not answer the same query, visitors land somewhere unexpected, and Google may treat the redirect as a soft 404 anyway.
Use this decision rule:
- A clearly equivalent page exists: permanently redirect to it.
- A closely related category or guide exists: redirect only if it genuinely satisfies the same need.
- Nothing comparable exists: return
404or410and show a helpful error page with search and navigation.
6. Find soft 404s
A soft 404 is a page that returns 200 but behaves like an error: an empty category, a "product not found" message, or a template with no main content. Search Console reports these in the page indexing report. Fix them by returning a real 404 or 410, by adding genuine content, or by redirecting to a truly equivalent page.
Thin placeholder pages created by themes and plugins are a frequent cause. If a page has no purpose for searchers, it should not answer with 200.
7. Check that error responses are real errors
Request a URL that definitely does not exist, such as /this-page-should-not-exist-2026. It should return 404 or 410. If it returns 200, your site is creating an unlimited number of soft 404s, and every typo or broken backlink becomes a thin indexable page.
Also check that real errors are not hidden behind redirects. A missing page that redirects to a /404 URL which then returns 200 is two problems at once.
8. Watch server errors and rate limits
Because 5xx and 429 responses make Google slow down crawling, recurring errors can delay the discovery of new content across the whole site. Review the server error rows in Search Console and your hosting or application logs. Common causes on small sites include exhausted PHP workers, overloaded shared hosting, aggressive security rules that rate-limit crawlers, and broken plugin updates.
For planned maintenance, a short 503 response with a Retry-After header is the standard approach. Avoid serving a 200 maintenance page, which can be indexed in place of your real content.
9. Review headers that change indexing
Status codes are not the only part of the response that matters. While you inspect each URL, also look for:
X-Robots-Tag: noindexsent as a header on pages that should be indexed.- A
Linkheader withrel="canonical"pointing to a different URL than the HTML canonical. - Unexpected caching headers that keep serving an old redirect after you changed it.
The Meta Tags Analyzer is useful for checking the HTML side of the same page, including the canonical and robots meta tags.
Using the SeoToolls HTTP Headers Checker for this review
The HTTP Headers Checker sends a HEAD request and follows redirects for you. It reports the final status code and the response headers of the final URL, along with notes on security, caching, and compression headers. That makes it a fast way to confirm that a URL ends on 200, or that a removed page really returns 404.
Know its limits before you rely on it:
- It does not list each intermediate hop. To audit a redirect chain hop by hop, use
curl -sILor browser developer tools as described above. - It stops after five redirects and returns an error instead of a result. If that happens, treat it as a sign the chain is too long.
- A few servers answer
HEADrequests differently from normalGETrequests. If a result looks wrong, confirm it in a browser.
A simple status code review log
Record each finding so fixes can be checked later. A spreadsheet with these columns is enough:
- URL checked
- Where you found it (sitemap, Search Console, old URL list, internal link)
- Final status code
- Number of redirect hops and final destination
- Expected outcome (
200, one permanent redirect,404/410) - Fix needed and owner
- Date fixed and date re-checked
Re-check after every redesign, plugin change, CMS migration, or URL structure change. Those are the moments when status code problems are introduced. For the wider audit around this step, see the technical SEO audit guide and the indexable page QA checklist.
Frequently asked questions
Is a 410 better than a 404 for SEO?
Google documents that all 4xx responses except 429 are treated the same way. Use 410 if you want to state that a removal is deliberate, but do not expect a different search outcome.
Do 301 redirects lose ranking signals?
Google treats permanent redirects as a strong signal that the target should be canonical. What usually hurts is redirecting to a page that does not match the original intent, or leaving long chains in place.
How long should I keep a redirect in place?
Keep permanent redirects for as long as people or other sites may still use the old URL. For most small sites, that means keeping them indefinitely unless they create a maintenance problem.
Why does a page show 200 in my browser but an error in Search Console?
The response may differ by user agent, location, time, or request method, or the error may have been temporary. Re-test the live URL in Search Console and compare your server logs for the crawl time.
Can fixing status codes guarantee better rankings?
No. Correct status codes remove technical obstacles to crawling and indexing. Rankings still depend on content quality, relevance, and many signals that no tool can control.
Related SEO guides
Indexable Page QA Checklist for Small Websites
Check crawl access, robots rules, canonicals, metadata, internal links, content value, mobile rendering, and conversion paths before publishing a page.
JavaScript SEO Renderability Checklist for Small Sites
Check whether Google can render your JavaScript pages: crawlable HTML, lazy loading, links, metadata, canonicals, screenshots, and SeoToolls fix priorities.
On-Page SEO Checklist: 23 Things We Check on Every Page
A working checklist from our actual workflow. No theory β just the checks we run before publishing anything.
