Skip to main content

Status Codes & Redirects

HTTP status codes communicate the result of a URL request to search engines. Proper status code management ensures Google understands which URLs are valid, which have moved, and which no longer exist.

Learning Focus

After this lesson you can manage HTTP status codes and redirects — 200, 301, 302, 404, 410 — clean up redirect chains, prevent loops, and preserve link equity during migrations.

This lesson covers the seven status code and redirect areas (leaves 3.4.1–3.4.7): 200 status validation, 301 redirect mapping, 302 redirect review, 404 error handling, 410 removal handling, redirect chain cleanup, and redirect loop prevention.

Why This Matters

Core Concept
  • Incorrect status codes confuse search engines and users.
  • Redirects preserve (or dissipate) link equity when URLs change.
  • Poor redirect management (chains, loops, missing redirects) causes crawl inefficiency and lost rankings.

200 Status Validation

The 200 status code indicates a successful HTTP request. Pages that should be indexed should return 200.

What to validate:

CheckWhy It Matters
Important pages return 200If a page returns non-200, it may not be indexed
200 is not served for error pages (soft 404s)A page that says "page not found" but returns 200 confuses Google
200 is served quickly (not slow)Slow 200 responses affect crawl efficiency
HTTPS pages return 200HTTP pages should redirect to HTTPS before returning 200

How to validate:

  • Use Screaming Frog or browser dev tools to check status codes for your important pages.
  • Use GSC URL Inspection to confirm Google sees a 200 status.
  • Check for soft 404s: pages that return 200 but have minimal content or error-like messaging.

301 Redirect Mapping

A 301 redirect (Moved Permanently) tells search engines a URL has permanently moved to a new location. It passes most link equity to the new URL.

When to use 301 redirects:

ScenarioFrom URLTo URL
URL structure change/old-page//new-page/
Content consolidation/old-article//better-article/
Domain migrationold-domain.com/page/new-domain.com/page/
HTTP to HTTPShttp://example.com/page/https://example.com/page/
WWW consolidationwww.example.com/page/example.com/page/ (or vice versa)

301 redirect best practices:

PracticeReason
Redirect to the most relevant URLEvery redirect should point to the page that best matches the original content
Avoid redirecting to the homepage unless no alternative existsRedirecting /specific-product to homepage loses context and relevance
Use absolute URLs in redirect rulesRelative paths can break after CMS changes
Map every old URL to a new URLMass redirect patterns (regex) are acceptable but verify each key URL
Include redirects in sitemap (for new URLs only)The sitemap should list final destination URLs, not redirecting URLs

Redirect impact on link equity: 301 passes most (but not all) of the original page's link equity. The exact percentage is not published by Google, but 301 is treated as a strong signal of new permanent location.

302 Redirect Review

A 302 redirect (Found, or Moved Temporarily) tells search engines the move is temporary. Google may continue to index the original URL rather than the redirect target.

When to use 302 (and when NOT to):

Appropriate UseInappropriate Use
A/B testing where the old URL should remain canonicalPermanent URL changes (use 301)
Temporary page take-down (under maintenance)Content consolidation
User-specific redirect (after login)Redirects that should pass link equity permanently
Device-specific redirect (mobile to app)Site-wide restructuring

Why you should not use 302 for permanent moves:

  • Google may not pass link equity to the redirect target.
  • Google may continue showing the original URL in search results.
  • If the redirect remains in place for weeks or months, Google may eventually treat it as permanent, but the timing is unpredictable.

Auditing 302 redirects:

  • Crawl your site and find all 302 responses.
  • Review each 302: is it truly temporary? If not, change to 301.
  • Check GSC Indexing report: if URLs that should redirect permanently are still indexed, they may have 302 instead of 301.

404 Error Handling

A 404 status code (Not Found) indicates the requested URL does not exist. Managing 404s properly ensures users and search engines get a clear signal.

When to return 404:

SituationResponse
Content permanently removed, no replacement410 is preferred, but 404 is acceptable
URL changed but no redirect mapping availableReturn 404, then add a redirect as soon as practical
Accidental URL (typo, broken link from external source)Return 404

404 page best practices:

  • Design a helpful 404 page (navigation, search bar, popular links) — but still return a 404 status code.
  • Do NOT return 200 with an error message (this is a soft 404 and confuses search engines).
  • Do NOT redirect all 404s to the homepage (this dilutes user experience and may confuse Google).

Soft 404 detection:

  • GSC Indexing report lists soft 404s.
  • Symptoms: page returns 200, has thin content, and the title/description indicates an error (e.g., "Page Not Found", "Nothing Here").
  • Fix: return 404 or 410 for pages that genuinely do not exist.

410 Removal Handling

A 410 status code (Gone) indicates the requested URL has been permanently removed and will not return. Google treats 410 as a stronger removal signal than 404.

When to use 410 over 404:

SituationRecommended Code
Content intentionally and permanently removed410
Product discontinued with no replacement410
Event that has passed and will not recur410
Content removed for policy or legal reasons410

410 vs 404:

  • Google has stated that 410 signals are faster for removal from the index.
  • For most purposes, 404 is sufficient. Use 410 when you want to clearly signal "this will never come back."
  • 410 does not preserve any link equity (same as 404).

Redirect Chain Cleanup

A redirect chain occurs when URL A redirects to URL B, which redirects to URL C. Each redirect in the chain adds latency and may reduce link equity transfer.

Redirect chain problems:

ProblemImpact
Increased page load timeEach redirect requires an additional HTTP round trip
Reduced link equity transferEach redirect may dilute equity slightly
Crawl budget wasteGooglebot must follow each redirect to reach the final URL
Potential for breakageOne broken link in the chain breaks the entire path

How to clean up redirect chains:

  1. Crawl the site with Screaming Frog or similar — the Redirect Chain report shows URLs with multiple redirect hops.
  2. For each chain, identify the final destination URL.
  3. Update the original link (or create a direct redirect) from the entry URL directly to the final destination.
  4. Remove intermediate redirects (unless they serve other purposes).
  5. Monitor GSC Crawl Errors for new 404s created during cleanup.

Maximum redirect chain length: Google recommends keeping redirect chains under 3 hops. Ideally, every redirect is direct (1 hop).

Redirect Loop Prevention

A redirect loop occurs when URL A redirects to URL B, which redirects back to URL A. This creates an infinite loop that browsers and crawlers cannot resolve.

Common loop causes:

CauseExampleFix
WWW / non-www conflictwww.example.comexample.comwww.example.comEnsure consistent redirect direction (one or the other)
HTTP / HTTPS conflicthttp://https://http://Ensure all HTTPS URLs stay on HTTPS, no redirect back to HTTP
Trailing slash inconsistency/page/page//pageChoose one convention and redirect consistently
CMS plugin conflictsMultiple plugins each redirecting the same URLsAudit plugin redirect logic
Reverse proxy misconfigurationCDN redirect + origin server redirect conflictingReview CDN and server-level redirects

How to detect redirect loops:

  • GSC Crawl Errors may show URLs that fail during crawl due to redirect loops.
  • Screaming Frog will detect loops during crawl (they appear with a loop error status).
  • Browser testing: visit a URL and watch the address bar — if it changes back and forth, the loop is active.

Loop prevention best practices:

  • Document all redirect rules in a central location.
  • Use server-level redirects where possible (more predictable than plugin-based).
  • After adding a new redirect rule, test it by visiting the source URL in a browser.
  • Periodically audit redirect rules using a crawler.

Workflow

  1. Crawl for status code issues: Use Screaming Frog/Sitebulb to find all non-200 responses.
  2. Audit 301 redirects: Ensure each redirect points to the most relevant page.
  3. Review 302 redirects: Change to 301 if the redirect is effectively permanent.
  4. Check 404 handling: Verify soft 404s are corrected, and 404 pages provide a good user experience.
  5. Consider 410: Use 410 for permanently removed content that should be removed from the index faster.
  6. Clean up chains: Reduce redirect chains to 1 hop.
  7. Test for loops: Verify new redirect rules do not create loops.
  8. Monitor GSC: Check Crawl Errors report for new status code issues.

Common Mistakes

warning

Redirecting all 404s to the homepage: This confuses users and may signal to Google that the homepage is relevant for many different queries. Redirect to the most relevant specific page.

  • Using 302 for permanent moves: Passes less link equity and keeps the old URL in the index.
  • Creating redirect chains during migrations: Plan redirects to the final destination URLs in one step.
  • Not testing redirects after implementation: A misconfigured redirect can break access to important pages.
  • Ignoring soft 404s: A page that returns 200 but has no substantive content wastes crawl budget and may be treated as low quality.

Checklist

  • All important pages return 200 (not 3xx, 4xx, or 5xx).
  • 301 redirects point to the most relevant specific URL (not homepage).
  • 302 redirects are reviewed and changed to 301 if permanent.
  • 404 pages return actual 404 status (not soft 404).
  • 410 is used for permanently removed content where appropriate.
  • Redirect chains are 1 hop (no chain longer than 2 hops).
  • No redirect loops exist.
  • GSC Crawl Errors report shows no unexpected 4xx or 5xx increases.
  • Old URLs from migrations are mapped and redirected.

What's Next

References