Technical SEO · Article 10

HTTP Status Codes and Redirects: 200, 301, 302, 404, 410 and Soft 404

~15 min read Updated 2026-06-24 MagicSEO Editors · Human Reviewed Foundation

Every time a browser or crawler requests a URL, the server returns a three-digit HTTP status code indicating "how did this request go." This number directly affects how search engines treat your page: whether to index it, transfer ranking signals, or remove it from the index. Understanding status codes and using redirects correctly is key to handling page migrations, deletions, and errors without losing traffic.

Status Code Classification Overview#

HTTP status codes are divided into five major categories based on their first digit. SEO focuses primarily on 2xx, 3xx, 4xx, and 5xx:

CategoryMeaningSEO-Relevant Codes
2xxSuccess200
3xxRedirection301, 302, 304, 307, 308
4xxClient Error404, 410, 403, 429
5xxServer Error500, 503

200: Success#

200 OK indicates successful request and normal page return. This is the status code you want all important content pages to return. For a page to be indexed, the first threshold is stably returning 200 (assuming indexing is allowed and content has value—see Crawling and Indexing Principles).

3xx: Redirection#

3xx indicates the requested resource is located elsewhere and requires a redirect. This is the category requiring the most precise usage in SEO.

Status CodeMeaningSEO Use Case
301Permanent RedirectPermanent move, transfer indexing and signals to new URL (most common)
302Temporary RedirectTemporary jump, keep original URL indexed
307Temporary Redirect (preserve method)Strict version of 302, common with HSTS
308Permanent Redirect (preserve method)Strict version of 301
304Not ModifiedCache negotiation, content unchanged, saves bandwidth and crawling

301 vs 302: The Most Important Distinction

This is the most easily misused and costly choice in SEO.

  • 301 (Permanent): Tells search engines "the old URL has permanently moved to the new URL." Index and ranking signals transfer to the new URL, and the old URL is eventually replaced by the new one.
  • 302 (Temporary): Tells search engines "the old URL is only temporarily redirected and will be back." Search engines keep the old URL indexed and don't transfer signals.
ScenarioUse
Domain change, URL restructuring301
HTTP to HTTPS migration301
Deleted page with equivalent alternative301
Merging duplicate pages301
Limited-time campaign page redirect302
A/B testing temporary split302
Region/language temporary redirect302
Cost of MisuseUsing 302 for permanent moves makes search engines think the change is temporary, delaying signal transfer to the new URL. The new page won't rank well while the old page remains indexed. Many servers and frameworks default to 302 redirects—always explicitly specify 301 during migrations.

4xx: Client Errors#

Status CodeMeaningSEO Handling
404Not FoundNormal occurrence; redirect if alternative exists, otherwise keep
410GoneStronger deletion signal, faster removal
403ForbiddenCheck if Googlebot is blocked by mistake
429Too Many RequestsOverly strict rate limiting blocks crawling—relax it

404 and 410: Page Does Not Exist

Many people have unnecessary fear of 404s. The reality: 404 is a normal part of the web and doesn't hurt overall site rankings by itself. Pages get deleted, links break—this is normal. The key is "should this be handled differently":

  • Has equivalent alternative content → Use 301 redirect to the alternative page, preserving signals and UX.
  • Content is gone, no alternative → Keeping 404 or 410 is correct, don't force a 301.

Difference between 404 and 410: 404 means "not found now" (may exist later), 410 means "permanently gone." 410 is a stronger deletion signal and Google typically removes it faster, but in practice their final results are similar. A friendly 404 page should retain site navigation, search box, and homepage link to help users find their way.

Don't 301 All 404s to HomepageMass 301-redirecting deleted pages to homepage makes Google treat this as soft 404 (because the target is unrelated to original content). Only use 301 when a truly relevant alternative exists; otherwise, honestly return 404/410.

Soft 404: The Most Insidious Trap#

Soft 404 occurs when a page actually returns a 200 success status code, but the content says "page doesn't exist/no content". Status code and content contradict each other, confusing search engines, which will classify it as soft 404 and refuse to index it.

Typical Soft 404ProblemCorrect Approach
"Sorry, page not found" returns 200Status contradicts contentReturn actual 404/410
Empty search results page returns 200No substantive content seen as soft 404noindex or return appropriate status
Discontinued product page shows shell, returns 200Thin content301 to category page or return 404
Deleted page redirects to homepage (200)Unrelated target, judged as soft 404No alternative? Return 404 directly

Soft 404s appear in Google Search Console's Page Indexing report. The core fix: ensure truly non-existent or content-less pages return status codes matching reality.

5xx: Server Errors#

5xx indicates the server itself encountered an error. It's far more damaging to SEO than 404—because it means the server can't even "respond normally."

  • 500 Internal Server Error: Code or server configuration error. Occasional occurrences are acceptable; persistent occurrences lead to page downgrading or removal from index.
  • 503 Service Unavailable: Server temporarily overloaded or under maintenance. Planned maintenance should actively return 503 (with Retry-After header), telling crawlers "come back later" and preventing them from treating the maintenance page as real content or an error.
Use 503 for Maintenance, Not 200If your site returns 200 with a "maintenance mode" page during maintenance, Googlebot may crawl this empty content and update the index, causing ranking fluctuations. Correct approach: temporarily return 503 + Retry-After site-wide, restore 200 after maintenance.

Redirect Chains and Loops#

Redirects used correctly are medicine; used poorly they're a burden. Two common problems:

  • Redirect Chains: A→B→C→D, requiring multiple hops to reach the final page. Each hop adds latency, consumes crawl budget, and overly long chains may cause search engines to stop following mid-chain.
  • Redirect Loops: A→B→A infinite loop, page never loads—a dead end for users and crawlers alike.
Eliminating Redirect Chains
# Bad: Multi-hop chain
/old      → /interim   (301)
/interim  → /newer     (301)
/newer    → /final     (301)

# Good: Each old URL direct to final target
/old      → /final     (301)
/interim  → /final     (301)
/newer    → /final     (301)

Additionally, update internal links on the site to point directly to final URLs rather than relying on redirect hops—a principle emphasized throughout URL Structure and Site Migration.

Redirects, canonical, and noindex: Their Roles#

These all affect how search engines handle URLs, but solve different problems—don't confuse them.

ToolPage Accessible?Use Case
301 RedirectNo, jumps to targetOld URL no longer needed, permanent move
canonicalYes, all accessibleMultiple URLs to keep, index only one
noindexYesPage for users, not search results
404 / 410No, doesn't existContent permanently deleted, no alternative

The boundaries between these three are covered in more detail in Canonical Tags.

How to Check Status Codes#

  • Browser DevTools: Network panel shows Status for each request.
  • Command-line curl: curl -I https://example.com/page to view response headers and status code; -IL tracks full redirect chain.
  • Google Search Console: URL Inspection tool shows status Googlebot received; Page Indexing report batches by "Not found 404", "Page with redirect", "Soft 404", etc.
  • Screaming Frog and other crawlers: Crawl entire site, batch-list all status codes, redirect chains, and soft 404s.
Using curl to Track Redirects
$ curl -IL https://example.com/old-page

HTTP/2 301
location: https://example.com/new-page

HTTP/2 200
content-type: text/html; charset=utf-8

This Site's Status Code Strategy#

Site DemoMagicSEO ensures all official content pages stably return 200; HTTP requests uniformly 301 permanently redirect to HTTPS (see HTTPS and Site Security); non-existent paths return actual 404 with friendly error pages retaining navigation—never returning 200 with "not found" fake pages creating soft 404s. As a pure static site, URLs correspond one-to-one with files, naturally avoiding the soft 404 and redirect loop issues common on dynamic sites.

Status Code and Redirect Checklist#

  • Important content pages stably return 200
  • Permanent moves/changes/HTTP→HTTPS always use 301
  • Use 302 only for temporary redirects, don't confuse
  • Deleted pages with alternative: 301; without: 404/410
  • Don't batch 301 unrelated pages to homepage
  • Non-existent pages return actual 404/410, eliminate soft 404s
  • Maintenance returns 503 + Retry-After, not 200
  • Eliminate redirect chains, old URLs one hop to final target
  • No redirect loops
  • Internal links point directly to final URLs
  • Regularly check for abnormal status codes via GSC / crawlers

Frequently Asked Questions#

What is the difference between 301 and 302 redirects?

301 is a permanent redirect, telling search engines that the old URL has permanently moved to a new URL. Search engines should transfer indexing and ranking signals to the new URL and eventually replace the old URL with the new one. 302 is a temporary redirect, indicating that the old URL is only temporarily redirected and will be used again in the future, so search engines keep the old URL indexed. Permanent moves (domain changes, URL restructuring, HTTP to HTTPS) must use 301; temporary campaign pages, A/B testing, etc., should use 302. Using the wrong one prevents proper signal transfer.

What is the difference between 404 and 410? Do 404s need to be fixed?

404 means "Not Found", while 410 means "Gone" (permanently deleted). 410 is a stronger deletion signal, and Google typically removes 410 pages from its index faster, but in practice the results are similar. 404 itself doesn't hurt overall site rankings; it's a normal part of the web. Whether to fix depends on the situation: if a page has equivalent alternative content, use 301 redirect to the alternative page; if the content is truly gone with no replacement, keeping 404 or 410 is correct—don't force a 301 to the homepage.

What is a soft 404?

A soft 404 occurs when a page actually returns a 200 success status code, but the content says "page not found/no content" (such as empty search result pages, or pages showing "Sorry, not found" while returning 200). This confuses search engines: the status code says success, but the content indicates error. Google will classify it as a soft 404 and refuse to index it. The correct approach is to make truly non-existent pages return actual 404 or 410 status codes.

Do redirect chains affect SEO?

Yes. Redirect chains (A→B→C→D) slow down page loading, waste crawl budget, and overly long chains may cause search engines to stop following them mid-chain. Best practice is to make each old URL redirect directly to the final destination in one hop (A→D), and update all internal links on the site to point directly to the final URL rather than relying on redirects.