A soft 404 error is a page that looks empty, missing, or “not found” to a user and to Google, but the server still answers with an HTTP 200 OK status instead of a real 404 or 410. Google catches the mismatch, labels the URL “Soft 404” in Search Console, and quietly drops it from the index. The fix is almost always to make the status code tell the truth: return 404/410 for gone pages, redirect when there’s a real replacement, or beef up the thin page if it deserves to exist.
Soft 404 Error
A soft 404 error is when a server returns a success status (typically 200 OK) for a page that is actually missing, empty, or shows a “not found” message, causing search engines to treat the URL as nonexistent despite the positive HTTP response.
Why the Status Code Mismatch Matters
Search engines lean on HTTP status codes as a primary signal for what to crawl, index, and keep. A 200 OK is a promise: this URL has real content, index it. A soft 404 breaks that promise. The body says “Sorry, this page doesn’t exist,” but the header says everything’s fine.
Google’s systems are good enough to read the page and notice the contradiction — that’s exactly what the “Soft 404” label in Search Console means. But detection is heuristic and inconsistent. Some soft 404s get caught and excluded fast; others linger in the index for weeks, competing with your real pages and burning crawl budget you’d rather spend on URLs that convert.
This isn’t a cosmetic problem. We see soft 404s wreck indexation on large catalogs and pSEO builds more than almost any other technical issue, precisely because they’re invisible in a browser — the page loads, so nobody notices until rankings slide.
A
200on a dead page is the SEO equivalent of a fire alarm that’s been disconnected. Everything looks fine right up until it isn’t.
Soft 404 vs. Hard 404 vs. Redirect
The cleanest way to think about it: a hard 404 (or 410 Gone) is the correct “this is missing” response. A soft 404 is a broken version of that response. And a redirect is what you use when there’s somewhere better to send the visitor.
| Scenario | Correct response | What a soft 404 does instead |
|---|---|---|
| Page deleted, no replacement | 410 Gone (or 404) | Returns 200 with a “not found” template |
| Page moved to a new URL | 301 redirect to the new URL | 200, or 301 to the homepage |
| Out-of-stock product, will return | 200 + status messaging, or 404 if discontinued | Empty 200 template with no content |
| Empty search / filter result | 200 (it’s a valid empty state) but noindex | Indexable 200 flagged as soft 404 |
| Temporarily down for maintenance | 503 + Retry-After | 200 on a broken/empty page |
The trap is “soft redirects” — sending every removed URL to the homepage with a 200. Google explicitly treats a redirect to an irrelevant page (usually the homepage) as a soft 404, because the destination doesn’t match what the user asked for. If there’s a genuinely relevant replacement, redirect to that specific page. If there isn’t, let it die honestly with a 404/410. For deeper redirect mechanics, see our note on not-found 404 pages and avoiding a tangled redirect chain.
How Soft 404s Happen
Most soft 404s come from a handful of repeatable causes:
- CMS and framework defaults. Many themes, plugins, and SPA routers render a generic “page not found” view for unknown URLs while keeping a
200status — especially common in JavaScript apps that never set a real header. If you run a JS-heavy stack, our guide on JavaScript SEO covers how to surface correct status signals. - Thin and empty pages. Auto-generated category pages with zero products, expired listings, placeholder pages, or thin content returning
200get reclassified as soft 404s even though they technically “exist.” - Faceted navigation and parameters. Sort, filter, and session-ID URLs spawn near-empty, near-duplicate pages at scale. Combined with crawl budget limits, these flood the crawler with low-value
200s. - Soft redirects to the homepage. Bulk-redirecting old URLs to
/instead of relevant targets. - Proxy, CDN, and cache layers. A reverse proxy or stale edge cache serving an old “not found” snippet with a
200, masking the origin’s correct response. - Botched content removals. Workflows that strip the visible content but leave the URL live and answering
200.
Soft 404s on out-of-stock and seasonal pages
E-commerce is the worst offender. A discontinued product that returns an empty 200 page is a textbook soft 404. The right call depends on intent: if the product is gone forever, 301 to the closest live alternative or the parent category; if it’s coming back, keep it 200 with clear “currently unavailable” messaging and related products so the page still earns its place. Never dump it to the homepage.
How to Detect Soft 404s
You need three lenses, because no single tool catches everything:
- Google Search Console. The Pages report (under Indexing) lists URLs excluded as “Soft 404.” This is your ground truth for what Google itself has flagged — start here.
- Server logs. Filter for
200responses on URL patterns you know should be gone (deleted products, old campaign pages). A200where you expected a404is a smoking gun. - A site crawler. Screaming Frog, Sitebulb, or Ahrefs Site Audit will surface near-empty
200pages, “not found” text on indexable URLs, and orphaned thin pages. Cross-reference against orphaned content, which often overlaps.
A fast manual spot-check: open the suspect URL, then check the response in your browser’s DevTools Network tab (or run curl). If the page says “not found” but the status is 200, that’s a soft 404.
# Check the real HTTP status code an unfortunately-named URL returns
curl -I -s -o /dev/null -w "%{http_code}\n" https://example.com/old-product-page
# A deleted page should print 404 or 410 — if it prints 200, it's a soft 404
How to Fix Soft 404s
Match the response to reality. There’s no universal fix — there’s a correct fix per case:
- Gone for good, no replacement → return
410 Gone(preferred — it’s the explicit “permanently removed” signal) or404. - There’s a real replacement →
301redirect to that specific page, not the homepage. - The page should exist but is thin → improve it. Add unique, useful content, or merge it into a stronger pillar page within the relevant topic cluster.
- Valid empty states (empty search, filters) → keep
200but addnoindex. See how to noindex URLs in WordPress for the practical implementation. - Fix the layer that’s lying. If a CDN, proxy, or JS router is suppressing the real header, fix the configuration so the origin status passes through to the crawler.
After fixing, use the Validate Fix button in the GSC Pages report to ask Google to re-crawl the affected URLs. Then keep an eye on log files and GSC over the following weeks — soft 404 cleanup is rarely one-and-done at scale.
Soft 404s and AI Overviews
In the AI-search era, the stakes are slightly different but not lower. Google’s AI Overviews and other generative surfaces draw from the indexed corpus — a soft 404 simply never makes it in, so it can’t be cited or summarized either way. More importantly, a sprawl of low-quality 200 pages drags on the site-level quality signals that influence whether your strong pages get surfaced at all. Clean status codes are table stakes for both classic ranking and AI visibility. If technical debt like this is piling up, a structured technical and content audit is usually where we start — and it’s a core part of our AI SEO services.
Frequently Asked Questions
What is a soft 404 error?
A soft 404 is a page that appears missing, empty, or shows a “not found” message but returns an HTTP 200 OK status instead of a proper 404 or 410. Search engines detect the mismatch between the empty content and the success code, treat the URL as nonexistent, and exclude it from the index.
How do I find soft 404 errors on my site?
Start with the Google Search Console Pages report, which lists URLs excluded as “Soft 404.” Cross-check with server logs (look for 200 responses on URLs that should be gone) and a crawler like Screaming Frog or Ahrefs. For any suspect URL, confirm the real status code in your browser’s DevTools Network tab.
Is a soft 404 bad for SEO?
Yes. Soft 404s waste crawl budget on dead URLs, can keep low-value pages indexed where they compete with real content, and drag down site-level quality signals. They also create poor user experiences. Detection is inconsistent, so soft 404s often linger and cause unpredictable indexation until you fix the underlying status codes.
What’s the difference between a soft 404 and a hard 404?
A hard 404 (or 410 Gone) correctly returns a 404/410 status for missing content, telling search engines to drop the URL. A soft 404 returns a 200 OK for missing content, which lies to crawlers. Hard 404s are the correct way to mark gone pages; soft 404s are broken and need fixing.
Should I redirect a soft 404 to my homepage?
No. Google treats redirects to an irrelevant destination — usually the homepage — as soft 404s, because the page doesn’t match user intent. Redirect only to a genuinely relevant replacement page. If no relevant alternative exists, return 410 or 404 so the URL is removed cleanly instead.