A soft 404 is a page that returns an HTTP 200 OK status code — telling browsers and crawlers the request succeeded — but contains little or no useful content. Google identifies these pages as effectively not-found, excludes them from the index, and treats crawl time spent on them as wasted. Common culprits include empty search results pages, sold-out product pages, and homepage redirects from retired URLs.
The name is counterintuitive: a soft 404 is not a 404. The server returns 200 — success. But Google's crawler reads the page, finds nothing useful, and makes an editorial decision to exclude it from the index. You cannot see a soft 404 from the HTTP response alone; you have to look at content, Search Console, and crawl behaviour to catch them.
What is a soft 404?
To understand a soft 404, it helps to understand what a real 404 is. A true 404 (Not Found) is an HTTP status code the server returns when a requested URL does not exist. Google sees the 404 and knows definitively: this URL has no content. It removes it from the index or stops trying to crawl it.
A soft 404 happens when the server returns 200 — everything is technically fine — but the page delivered has no meaningful content. This creates a mismatch: the status code says "this page exists and has content," but the page itself proves otherwise.
Google identifies soft 404s by analysing what it finds at a 200-status URL. Signs that trigger the soft-404 classification include:
- Page text that says "no results found," "page not found," "product unavailable," or similar
- Pages with very low unique word counts — just navigation, header, footer, and a brief message
- Pages that are nearly identical to a large number of other pages on the site
- Pages where the main content area is empty or populated only by boilerplate
Google Search Console flags soft 404s explicitly in the Coverage report under the "Excluded" tab. If you have more than a handful flagged, it is worth investigating the pattern — they are rarely isolated incidents. A site with thousands of soft 404s is typically experiencing a structural content problem, not individual page issues.
Common causes of soft 404s
Most soft 404s fall into one of five categories:
1. Empty search results pages
Your site's internal search returns a 200 with a message like "No products found for 'blue widget'" — and that URL gets crawled and indexed. These are the most common source of soft 404s on e-commerce sites and can number in the thousands for large catalogues. Fix: use the noindex meta tag on all search results pages, or block the search URL pattern in robots.txt.
2. Out-of-stock product pages
A product page that loads correctly but shows only "Out of stock — check back later" with no product description, no images, no specifications. Google sees a 200-status page with essentially no content. Fix: keep full product content on the page even when out of stock, show related products, and give an expected restock date if possible.
3. Homepage redirects from retired URLs
When a site retires 200 old pages and redirects all of them to the homepage rather than to relevant replacement content, Google treats those redirects as soft 404s. The homepage has nothing relevant to offer visitors who were looking for the specific content that lived at the old URL. Fix: map retired URLs to the closest content match, or return a genuine 410 Gone.
4. Faceted navigation and filter pages
Category pages filtered to a combination that returns zero products — /shoes/red/size-47/ — can produce soft 404s if the page still returns 200. Fix: noindex filter combinations that produce empty results, or use JavaScript to prevent empty filter combinations from generating crawlable URLs.
5. Deleted or drafted CMS content
A blog post or product that was unpublished from the CMS but whose URL still loads a shell template (with header, footer, sidebar, and no body content) instead of returning 404 or 410.
How soft 404s impact SEO
Soft 404s cause damage in three distinct ways:
- Wasted crawl budget. Googlebot spends time crawling URLs that will never rank. On large sites with limited crawl budget, this displaces crawling of pages that should be indexed. Fresh content goes unindexed while Googlebot cycles through empty filter pages.
- Diluted content quality signals. Google assesses site quality in part by the ratio of useful to useless content it finds. A site with 10,000 pages but 3,000 soft 404s is signalling that 30% of its URL space has no value. This can suppress rankings across the entire domain, not just the affected pages.
- Lost indexing. The specific pages flagged as soft 404s are excluded from Google's index and cannot rank for any query. If those pages represent genuine inventory, services, or content, their exclusion represents direct organic traffic loss.
How to find soft 404s
Three methods for identifying soft 404s on your site:
Method 1: Google Search Console
Go to Search Console → Indexing → Pages → scroll to the "Why pages aren't indexed" section. Look for "Soft 404" in the list of exclusion reasons. Click through to see the affected URLs. This is the authoritative list of what Google has actually flagged — it may lag the current state of your site by days or weeks.
Method 2: Site crawl with word count filter
Use Screaming Frog or Sitebulb to crawl your site. Filter the results to show 200-status pages with a word count below 200 (or whichever threshold is appropriate for your content type). Review these low-word-count pages — the ones with only template elements and no real content are soft 404 candidates.
Method 3: Log file analysis
Review your server logs for URLs that Googlebot visits repeatedly over months but that never appear in Search Console's indexed pages report. If a URL is being crawled regularly but never indexed, it is almost certainly a soft 404 or a noindex/nofollow issue.
How to fix soft 404s
The right fix depends on the page type and the reason the content is missing:
| Situation | Recommended fix |
|---|---|
| Empty search results page | Add noindex meta tag to all search result URLs |
| Out-of-stock product — will return | Keep full product content, add "out of stock" notice + related products |
| Out-of-stock product — discontinued | Return 410 Gone or 301 to closest replacement |
| Bulk 301s to homepage | Map each retired URL to a relevant content match or return 410 |
| Empty filter/facet pages | Noindex empty combinations; block in robots.txt if possible |
| Deleted CMS content with empty shell | Fix CMS to return 404 or 410 for deleted content |
| Thin page with real intended content | Add substantive content to meet the page's actual purpose |
Adding noindex to a soft 404 page removes it from the index — but it does not fix the underlying problem that the page has no content. For pages that should have content, noindex is a patch, not a fix. Reserve noindex for pages that genuinely should not be indexed (search results, filter combinations, utility pages). Pages with real purpose need real content.
Soft 404 vs. true 404 vs. 410
Understanding when to use each response code is a core technical SEO skill:
- 200 OK — use only when the page has genuine, useful content that serves the visitor. If the page is empty or has placeholder content, fix it before returning 200.
- 404 Not Found — use when a page no longer exists and may return at some point (e.g., temporarily out of stock). Google eventually stops crawling 404s but may retry occasionally.
- 410 Gone — use when a page is permanently gone with no intention of returning. Stronger signal than 404 — Google deprioritises recrawling 410 URLs faster. Use for discontinued products, deleted content, and retired blog posts with no replacement.
- 301 Moved Permanently — use when the content has moved to a specific replacement URL with equivalent content. Do not use 301 to point removed content at the homepage.
Preventing soft 404s
- Noindex your internal search results. Add a blanket noindex to all internal search URLs via robots.txt or meta robots tag. Search results pages are almost never worth indexing.
- Build product page permanence into your CMS. Out-of-stock products should keep their content — only the availability status changes. Build this as the default behaviour in your product management system.
- Redirect specifically, not generically. When retiring content, invest the time to create specific redirect mappings to equivalent content. Homepage redirects are rarely an acceptable solution.
- Audit after every content refresh. Any time you remove, unpublish, or restructure content, audit what those URLs now return. A CMS "unpublish" often produces a soft 404, not a proper 404.
- Monitor Search Console monthly. Set a monthly reminder to check the Coverage report for new soft 404s. Catching them early prevents them from accumulating into a crawl budget and quality signal problem.
Frequently asked questions
A soft 404 is a page that returns an HTTP 200 OK status code but has little or no useful content — so Google identifies it as effectively not-found even though the server did not return a 404. This prevents the page from ranking and wastes crawl budget on URLs that deliver no value.
Soft 404s waste crawl budget, dilute a site's overall content quality signals, and prevent affected pages from ranking. At scale — particularly on e-commerce sites — they can signal to Google that the site has poor content quality overall, suppressing rankings domain-wide.
Check Google Search Console's Coverage report under the Excluded tab — soft 404s are flagged explicitly. You can also crawl your site with Screaming Frog and filter for 200-status pages with very low word counts, or review server logs for pages Googlebot visits but never indexes.
The fix depends on the page type. If the page should exist: add real, useful content. If the content is temporarily unavailable: keep the page with context and related content. If permanently gone: return a proper 404 or 410. If it was a misrouted 301 to the homepage: create a targeted redirect or return 404.
A true 404 returns an HTTP 404 Not Found status code — Google recognises the page as missing immediately. A soft 404 returns a 200 OK status but has no useful content. Google has to infer it is effectively empty rather than being told by the status code, making soft 404s harder to handle automatically.
