Soft 404 in Google Search Console: How to Fix

Updated April 2026·By SitemapFixer Team

A "Soft 404" in Google Search Console means the page returns HTTP 200 OK - so technically the server says "here's the page" - but the actual content looks like an error page, empty template, or placeholder. Google detects the mismatch and treats the URL as if it were a real 404, excluding it from the index. Soft 404s are especially common on e-commerce out-of-stock pages, JavaScript apps, and generic redirect-to-homepage setups.

Find soft 404s in your sitemap
We detect thin and empty pages masquerading as real content - free
Analyze My Sitemap

What this GSC status means

Google fetched the URL and received an HTTP 200 response, but the rendered page content looks empty, nearly empty, or explicitly signals "not found" (phrases like "Sorry, the page you requested", "Page not found", "We couldn't find what you're looking for"). Google's algorithm concludes the URL does not actually represent meaningful content and excludes it from the index - the same outcome as a real 404, but achieved through content analysis rather than status code.

Common causes

How it affects indexing

Soft 404 URLs are excluded from the index and get no organic traffic. They also waste crawl budget every time Google revisits them, and at scale they lower the site-level quality signal - sites with many soft 404s often see suppressed rankings on other pages too. For e-commerce, soft 404s on out-of-stock items specifically drain visibility from product inventory that never returns.

How to diagnose

Open Page indexing in GSC, click "Soft 404", and look at the URL pattern - are they all from the same template (product pages, category archives, search results)? Run URL Inspection on a sample and view the rendered HTML. Check: does the page have real content? Does it say "not found" or similar error phrases? Test with curl to confirm the HTTP status is 200 and not a proper 404. Fetch the page in an incognito browser and count the unique visible text.

How to fix

1. Pages that genuinely do not exist: return HTTP 404 (or 410 Gone for permanent removal), not 200. 2. Out-of-stock products: keep the page with real content and a status message, or 301 to a related product/category. 3. Custom error pages: make sure the server returns 404, not 200. Configure Apache, nginx, or your framework accordingly. 4. JavaScript apps: implement server-side rendering (SSR) or static generation (SSG) so Googlebot sees real content. 5. Remove phrases like "not found", "sorry", "does not exist" from live pages that are not actually error pages. 6. For thin pages: expand the unique content, or noindex, or consolidate with 301. 7. Empty category/search pages: noindex them or return 404 when no results exist. 8. Remove soft 404 URLs from sitemap.xml - only submit pages with real content. 9. In GSC Page indexing, after fixing, click "Validate Fix" to trigger Google recheck.

Frequently Asked Questions

Why does Google think my real page is a soft 404?
Most common reasons: the content is too thin (under a few hundred words), the page is JavaScript-rendered and Google sees mostly an empty shell, or the text literally contains phrases like "not found", "sorry", or "page does not exist" that Google reads as error signals.
Is a soft 404 worse than a regular 404?
For indexing purposes, yes - a regular 404 lets Google cleanly drop the URL and move on. A soft 404 wastes crawl budget because Google has to render the page only to decide it is not worth indexing, and the incorrect 200 status code confuses its quality signals.
How do I fix a JavaScript-rendered soft 404?
Make sure the server-rendered HTML contains the real content, not just a loading shell. Implement SSR, SSG, or dynamic rendering so Googlebot receives a fully-populated response. Test by using the URL Inspection tool and checking the rendered HTML view.
Uncover soft 404s hiding in your sitemap
Free scan - we detect thin, empty, and error-like pages masquerading as 200s
Analyze My Sitemap Free
Related GSC indexing statuses
All GSC indexing errors