Technical SEO

How to Fix HTTP Status Code Issues: Complete SEO Guide 2026

16 min readTechnical SEOUpdated for Google's 2026 crawling behavior

HTTP status codes are the language your server speaks to search engines. A 200 OK says "this page exists, index it." A 301 says "this page moved permanently." A 404 says "this page is gone." When your server speaks incorrectly — returning 200 for error pages, chaining redirects, or throwing 5xx errors — Google wastes crawl budget, drops pages from the index, and your rankings suffer.

TL;DR — Quick Summary

  • Fix 404s on pages with backlinks or traffic using 301 redirects to relevant content
  • Eliminate redirect chains (A→B→C) by pointing all URLs directly to the final destination
  • Fix soft 404s — pages that return 200 OK but show error content — by returning actual 404 status
  • Use 301 for permanent moves, 302 for temporary — wrong redirect types lose link equity
  • 5xx server errors can cause deindexing within days — monitor and fix immediately

HTTP Status Code Reference

1xx

Informational

Processing

2xx

Success

200 OK, 201 Created

3xx

Redirection

301, 302, 307, 308

4xx

Client Error

404, 403, 410, 429

5xx

Server Error

500, 502, 503, 504

200

OK

Page indexed normally

Good
301

Moved Permanently

Full link equity transfer

Good
302

Found (Temporary)

Partial equity, old URL kept

Caution
307

Temporary Redirect

Same as 302, preserves method

Caution
308

Permanent Redirect

Same as 301, preserves method

Good
404

Not Found

Dropped from index over time

Fix
410

Gone

Faster removal from index

Intentional
500

Internal Server Error

Deindexed if persistent

Critical
503

Service Unavailable

Google retries later

Temporary
Complete HTTP status code reference — the nine codes most relevant to SEO and their impact on indexing

HTTP Status Code Categories

HTTP status codes are three-digit numbers returned by web servers in response to every request. They tell browsers and search engine crawlers what happened when they tried to access a URL. The first digit identifies the category:

RangeCategoryMeaningSEO Relevance
1xxInformationalRequest received, processing continuesRarely seen — no SEO impact
2xxSuccessRequest was successfully received and processedCritical — 200 OK is what every indexed page should return
3xxRedirectionFurther action needed to complete requestHigh — determines link equity transfer and index behavior
4xxClient ErrorRequest contains bad syntax or cannot be fulfilledHigh — 404s waste crawl budget and lose link equity
5xxServer ErrorServer failed to fulfill a valid requestCritical — persistent errors cause deindexing

Key Insight: Crawl Budget Impact

Google allocates a crawl budget to every site — the number of pages Googlebot will crawl per session. Every 404, redirect, and server error consumes part of this budget without adding pages to the index. For large sites (10,000+ pages), fixing status code issues can dramatically improve how quickly new content gets indexed.

The 9 Critical SEO-Relevant Status Codes

While there are dozens of HTTP status codes, only nine have significant SEO implications. Here is what each one means for your search visibility:

200 OK — The Goal

Every page you want indexed should return 200 OK. This tells Googlebot the page exists, the content is available, and it should be indexed. If a page returns 200 but the content is empty, thin, or shows an error message, Google may classify it as a soft 404 (covered in section 5).

301 Moved Permanently — The SEO-Safe Redirect

The 301 redirect signals that a page has permanently moved to a new URL. Google transfers approximately 100% of link equity to the destination (Google confirmed in 2016 that 301, 302, and 308 all pass full PageRank, though 301 is still preferred for permanent moves because it signals intent clearly). Use 301 for domain migrations, URL restructuring, and deleted pages with relevant replacements.

302 Found — Temporary Redirect

A 302 signals a temporary move. Google keeps the old URL in its index and may not immediately transfer link equity. Use 302 only for genuinely temporary situations: A/B testing, geographic redirects, or maintenance pages. Using 302 for permanent moves is one of the most common SEO mistakes.

307 and 308 — HTTP/1.1 Equivalents

307 is the HTTP/1.1 temporary redirect (like 302) and 308 is the permanent redirect (like 301). The key difference: 307 and 308 preserve the HTTP method — a POST request stays a POST. For most SEO purposes, 301 and 302 are sufficient and more widely supported.

404 Not Found — Page Does Not Exist

The server cannot find the requested page. Google will eventually remove 404 pages from its index, but this can take weeks. Not all 404s need fixing — they are a normal part of the web. Fix those with backlinks or traffic; leave the rest.

410 Gone — Permanently Deleted

A 410 explicitly tells Google the page is permanently deleted with no replacement. Google removes 410 pages from the index faster than 404 pages. Use 410 for content you have intentionally removed and do not want crawled again.

500, 503, 504 — Server Errors

Server errors tell Google your site has problems. 500 (Internal Server Error) indicates a code or configuration bug. 503 (Service Unavailable) means temporary downtime — Google will retry later if you include a Retry-After header. 504 (Gateway Timeout) means upstream servers are slow. Persistent 5xx errors on a page can cause Google to deindex it within 24-48 hours.

Redirect Chains — Wasted Crawl Budget

A redirect chain occurs when a URL redirects to another URL, which redirects to another URL, before finally reaching the destination. Example: /old-page/renamed-page/final-page. Each hop wastes crawl budget, adds latency, and Googlebot may stop following after 5-10 hops.

Redirect Chain vs Direct Redirect

Redirect Chain (Bad)
/page-v1→ 301/page-v2→ 301/page-v3→ 301/final-page

3 hops = wasted crawl budget, added latency, potential equity loss

Direct Redirect (Good)
/page-v1→ 301/final-page

1 hop = efficient crawling, full equity transfer, fast page load

Always point old URLs directly to the final destination — never chain through intermediate redirects

How to Fix Redirect Chains

  1. Crawl your site with InstaRank SEO or Screaming Frog to identify all redirect chains
  2. Map out each chain: identify the original URL and the final destination
  3. Update every redirect in the chain to point directly to the final URL
  4. Update all internal links to point to the final URL (bypassing the redirect entirely)
  5. Keep the intermediate redirects pointing to the final URL for external links
fixing redirect chains

# Before: Chain of 3 redirects

Redirect 301 /page-v1 /page-v2
Redirect 301 /page-v2 /page-v3
Redirect 301 /page-v3 /final-page

# After: All point to final destination

Redirect 301 /page-v1 /final-page
Redirect 301 /page-v2 /final-page
Redirect 301 /page-v3 /final-page

Redirect Loops — Pages That Can Never Load

A redirect loop occurs when URL A redirects to URL B, which redirects back to URL A — creating an infinite cycle. The browser shows "ERR_TOO_MANY_REDIRECTS" and the page never loads. For SEO, this is worse than a 404 because the page is completely inaccessible.

Common Causes

  • HTTP/HTTPS conflict: The server redirects HTTP to HTTPS, but the HTTPS config redirects back to HTTP
  • WWW/non-WWW conflict: One rule forces www, another removes it
  • CMS + server conflict: WordPress forces a redirect, but .htaccess has a conflicting rule
  • CDN misconfiguration: The CDN redirects to origin, origin redirects back to CDN

How to Diagnose and Fix

  1. Use curl -I -L url to trace the full redirect path — it will show the loop
  2. Check .htaccess/nginx config for conflicting redirect rules
  3. Check your CMS settings (WordPress: Settings → General → Site URL)
  4. Check CDN/proxy settings (Cloudflare SSL mode should be "Full (Strict)")
  5. Fix the conflicting rule and test with a fresh browser session (clear cookies first)

Critical: Redirect Loops Cause Immediate Deindexing

Unlike 404 errors (which Google tolerates for weeks), redirect loops make a page immediately inaccessible. Googlebot detects the loop and drops the URL from the index within its next crawl cycle. If your homepage has a redirect loop, your entire site can lose visibility within days.

Soft 404s — The Hidden SEO Killer

A soft 404 occurs when a page returns a 200 OK status code but displays error content — "Page not found," "No results," or essentially empty content. Google detects these through content analysis and reports them in Search Console as "Soft 404" errors.

Real 404 vs Soft 404

Correct: Real 404HTTP 404

404 - Page Not Found

The page you requested does not exist.

Server correctly returns 404 status. Google removes from index normally.

Problem: Soft 404HTTP 200

Sorry, nothing here!

Try searching for something else.

Server says 200 OK but content is an error. Wastes crawl budget, confuses index.

A soft 404 returns 200 OK but shows error content — Google flags these in Search Console and they waste crawl budget

Common Causes of Soft 404s

  • Custom error pages configured to return 200 instead of 404
  • Empty category pages with no products or articles
  • Search results pages with zero results (/search?q=xyzabc)
  • Dynamically generated pages with no matching content in the database
  • Product pages showing "Out of Stock" with no alternative or expected restock date

How to Fix Soft 404s

  1. Return a real 404 status: Configure your server/CMS to return HTTP 404 for pages that do not exist
  2. Add substantive content: If the page has SEO value, add real content instead of an error message
  3. 301 redirect to relevant content: Point the URL to the most relevant existing page
  4. Use meta noindex: For thin pages you want to keep (e.g., empty category archives) but not index

Important: Never Redirect All 404s to Your Homepage

Google's Martin Splitt has explicitly warned against this practice. Redirecting unrelated 404 pages to your homepage creates more soft 404s — Google detects that the homepage content does not match the original URL's topic and flags it as a soft 404 anyway. Only redirect to genuinely relevant content.

503 and 504 Errors — Temporary Problems with Permanent Consequences

Server errors (5xx) signal that your server is failing to process requests. While they are often temporary, persistent 5xx errors can cause Google to reduce crawl rate, skip your pages during indexing, or even deindex pages entirely.

503 Service Unavailable

The 503 status tells clients the server is temporarily unavailable — typically due to maintenance or overload. This is actually the correct status code for planned downtime. When you include a Retry-After header, Googlebot knows when to come back and will not penalize you for short outages.

# Nginx: Return 503 with Retry-After during maintenance

location / {
return 503;
add_header Retry-After 3600; # Come back in 1 hour
}

504 Gateway Timeout

A 504 means your server (or a proxy/CDN in front of it) timed out waiting for a response from an upstream server. Common causes include slow database queries, resource-intensive page generation, and network issues between your server and its dependencies.

Impact on SEO

  • Google reduces crawl rate for sites with frequent 5xx errors — new content gets indexed slower
  • If a page returns 5xx for more than a few days, Google may drop it from the index
  • Google Search Console sends email alerts for persistent server errors — act on these immediately
  • During extended outages, Google recommends returning 503 with Retry-After rather than serving error pages with 200 status

Critical: 500 Errors on Your Homepage

A 500 error on your homepage is a site-wide emergency. Googlebot starts crawling from the homepage — if it returns 500, Google may conclude your entire site is down and reduce crawl rate for all pages. Monitor your homepage uptime with tools like UptimeRobot or Pingdom and set up instant alerts.

How to Audit HTTP Status Codes Across Your Entire Site

A comprehensive status code audit involves crawling every URL on your site and checking what status code the server returns. Here are the tools and methods:

InstaRank SEO

Free: Crawls your site and checks status codes, redirect chains, soft 404s, and server errors in one audit. Scores your site on 11 HTTP status parameters.

Free

Google Search Console

The Pages report shows exactly which URLs Google has indexed, excluded, or flagged. Check "Not Found (404)" and "Server Error (5xx)" categories.

Free

Screaming Frog SEO Spider

Desktop crawler that exports all URLs with their status codes. Free for up to 500 URLs. Shows redirect chains, loops, and response times.

Freemium

HTTP Status Audit Decision Flow

Does the page return 200 OK?

Yes: Check for soft 404 (empty/error content)
No: Proceed to next check

Is it a 301/302 redirect?

Yes: Check for chains (>1 hop) and type mismatch
No: Proceed to next check

Is it a 404 or 410?

Yes: Check if page has backlinks or traffic to preserve
No: Proceed to next check

Is it a 5xx error?

Yes: Fix immediately — server config, code, or hosting issue
No: URL is healthy
Walk through this decision flow for every URL in your crawl report to systematically fix all status code issues

Step-by-Step Fix Guide for Each Status Code Issue

Here is the exact action to take for each type of status code problem:

IssuePriorityFixCode Example
404 with backlinksCritical301 redirect to relevant pageRedirect 301 /old /new
404 without backlinksLowLeave as 404 or return 410N/A
Redirect chainHighPoint all hops to final URLRedirect 301 /v1 /final
Redirect loopCriticalRemove conflicting redirect ruleCheck .htaccess conflicts
302 for permanent moveHighChange 302 to 301permanent: true
Soft 404HighReturn real 404 or add contentreturn res.status(404)
500 server errorCriticalFix code/config bugCheck error logs
503 extendedCriticalFix server + add Retry-AfterRetry-After: 3600

Best Practice: Create a Helpful 404 Page

When a 404 is the correct response (no relevant page to redirect to), make the 404 page helpful. Include a search box, links to popular pages, and clear navigation. A good 404 page recovers users who would otherwise bounce — and it must return a real 404 status code, not 200.

Key Takeaways

  • Every indexed page should return 200 OK — anything else is either intentional (301, 410) or a problem to fix
  • Use 301 for permanent moves, 302 only for genuinely temporary redirects
  • Redirect chains waste crawl budget — point all URLs directly to the final destination
  • Soft 404s are invisible in the browser but visible to Google — check Search Console regularly
  • 5xx errors can cause deindexing within days — monitor uptime and fix server issues immediately

Find all HTTP status issues on your site in one free audit:

Run Free Site Audit →

Frequently Asked Questions

Are 404 errors bad for SEO?
404 errors are not inherently bad — they are a normal part of the web. What hurts SEO is having 404 errors on pages with external backlinks (you lose all the link equity those backlinks provided), pages that still receive organic traffic (lost conversions and increased bounce rate), or pages linked from your own internal navigation (poor user experience signal). Fix 404s with backlinks or traffic using 301 redirects. For pages that were never valuable, 404 is the correct response.
What is the difference between 301 and 302 redirects for SEO?
A 301 redirect signals a permanent move and tells Google to transfer all link equity and indexing signals to the new URL. A 302 signals a temporary move — Google may keep the old URL in its index and delay full equity transfer. For permanent URL changes, always use 301. Google has confirmed that 301 and 302 both eventually pass PageRank, but 301 communicates the right intent and ensures faster index updates.
How long should I keep 301 redirects in place?
Keep 301 redirects permanently — or at least for 1+ years. External backlinks pointing to old URLs continue to send link equity through the redirect indefinitely. Removing a redirect causes those backlinks to hit a 404, losing all their SEO value. The server performance impact of 301s is negligible, so there is no practical reason to remove them.
What is a soft 404 and why does Google flag it?
A soft 404 is a page that returns HTTP 200 OK but displays error content like "Page not found" or has very thin/empty content. Google detects these through content analysis and flags them in Search Console because they waste crawl budget — the server says "this page exists" but the content says otherwise. Fix them by returning a real 404 status code, adding substantive content, or redirecting to a relevant page.
Should I redirect all 404 pages to my homepage?
No — Google explicitly warns against this. When you redirect unrelated 404 pages to your homepage, Google detects that the homepage content does not match the original URL's expected topic and classifies it as a soft 404 anyway. Only redirect to genuinely relevant content. If there is no relevant page, let the URL return a proper 404 with a helpful error page.
Do 5xx server errors cause deindexing?
Yes, persistent 5xx errors can cause Google to deindex a page. If Googlebot encounters a 500 error on a page for several consecutive crawl attempts over a few days, it may remove the page from the index entirely. Google reduces crawl rate for sites with many server errors, meaning new content gets indexed slower too. Monitor your server uptime and fix 5xx errors within hours, not days.
What is the difference between 404 and 410 status codes?
Both indicate the page does not exist, but they communicate different things. A 404 means "not found" — the page might return in the future. A 410 means "gone" — the page is permanently deleted and will not return. Google removes 410 pages from the index faster than 404 pages. Use 410 when you have intentionally and permanently removed content with no plans to restore it or create a replacement.
How do redirect chains affect page speed and SEO?
Each redirect in a chain adds 50-500ms of latency depending on server response time. A chain of 3 redirects can add 1-2 seconds to page load time before the user even starts receiving content. For SEO, chains waste crawl budget (Googlebot uses resources following each hop), and while Google says they follow up to 10 redirects, chains of 5+ hops are unreliable. Always flatten chains by pointing every URL directly to the final destination.