← Back to blog

Technical SEO · July 12, 2026 · 7 min read

Soft 404s: The Invisible Error Wasting Your Crawl Budget Right Now

Soft 404 errors return HTTP 200 but signal empty content to Google, silently draining crawl budget. Here's how to find and fix them.

By FluxWriter Team

Soft 404s: The Invisible Error Wasting Your Crawl Budget Right Now

Soft 404 errors are one of the most misunderstood problems in technical SEO — pages that return HTTP 200 but signal to Google that they carry no real content. Unlike hard 404s, they leave no obvious trace in server logs, and they can silently drain your crawl budget for months before anyone notices.

What Is a Soft 404, Exactly?

A soft 404 happens when a page returns a 200 OK status code but its content is thin, missing, or functionally empty. Google's crawler visits the URL, reads the response headers, sees "success," but then evaluates the body and concludes the page has no meaningful content — so it treats it like a 404 anyway.

This matters because Googlebot operates within a crawl budget: a rough ceiling on how many pages it will fetch from your site in a given period. Every soft 404 that gets crawled is a wasted slot. On a site with thousands of filtered product pages, empty search result URLs, or poorly handled redirects, those wasted slots compound fast.

How Google Detects Them

Google doesn't just look at your status code. Its classifier evaluates:

Google's John Mueller has confirmed that Googlebot uses machine learning models to classify page quality at crawl time, not just at indexing. A page that looks successful to your server can still be flagged before it ever enters the index.

Common Sources of Soft 404s

1. Empty or Near-Empty Search Result Pages

E-commerce and content sites frequently index their internal search results. A URL like /search?q=discontinued-widget returns 200 but renders "0 results found" — a textbook soft 404. These pages often get linked to internally from autocomplete or faceted navigation, making them discoverable by Googlebot.

Fix: Block search result pages in robots.txt or add <meta name="robots" content="noindex"> to any page that renders fewer than a threshold of results (typically 1–3).

2. Faceted Navigation Combinations

A clothing site might have /womens/dresses/red/size-xs/brand-acme that returns no matching products because that combination doesn't exist in inventory. The page structure is intact — header, footer, sidebar — but the product grid is empty.

Fix: Either block parameter combinations via robots.txt (if your server can't determine at render time whether results exist), or dynamically return a proper 404 or 410 status when the product count hits zero.

3. Deleted Content Without Status-Code Updates

A blog post gets deleted. The developer removes it from the database but the URL still hits a catch-all route that renders a "content not found" message — with a 200. This is the most fixable variant and the most often missed.

Scenario Returned Status Should Return
Post deleted, catch-all route active 200 404 or 410
Out-of-stock product, page still live 200 200 (with proper content) or 404
Empty search results page 200 200 + noindex, or 404
Redirect chain destination is thin 200 Review content or 404

4. Template Pages Without Data

CMS migrations sometimes produce pages where the template loads but the data binding fails silently. The result is a page with a title tag like {{ page.title }} or an empty <main> element — no error thrown, just an empty shell at a valid URL. These are particularly problematic because they can accumulate in the hundreds across a large site migration.

5. Thin Affiliate and Doorway Pages

Programmatically generated pages that pull minimal data from an API — one sentence of product description, a price, and a link — often trigger soft 404 classification even with real content. Google's quality threshold isn't just about whether content exists; it's about whether the content provides distinct value.

Finding Soft 404s Before Google Does

Google Search Console surfaces soft 404s under Coverage > Excluded > "Soft 404." Check this report weekly on any site above 500 pages. But GSC has a lag — it reflects what Google has already indexed or attempted to index, not what's live right now.

For proactive detection, crawl your own site with a tool like Screaming Frog or Sitebulb and look for:

You can also query your server logs directly. Any URL that returns 200 but logs no database queries (or very few) is a candidate for investigation.

A Real-World Example

An online furniture retailer had 12,000 URLs in GSC's soft 404 report. Investigation revealed two root causes: (1) a faceted filter generating /sofas/fabric/unavailable-color URLs that returned zero products, and (2) a discontinued item template that rendered a header and footer but left the product data block empty because the SKU had been archived.

After adding dynamic 404 responses to zero-result filter pages and properly deleting archived SKUs, their GSC coverage report dropped to under 300 soft 404s within six weeks. More importantly, their crawl rate on high-value category pages increased measurably — Google was spending more budget on pages worth crawling.

Fixing Soft 404s: The Decision Tree

If the page has no meaningful content and never will: Return 410 Gone (preferred over 404 for permanently removed content). This signals to Google that the removal is intentional and accelerates deindexing.

If the page has no content now but might in the future (e.g., a seasonal product): Return 404 temporarily, or keep the page live with a proper noindex tag and substantive placeholder content that justifies the URL.

If the page has thin content that could be expanded: Treat it as a content problem, not a status-code problem. Add unique value — real descriptions, user reviews, specifications — until the page can stand on its own.

If the page is an empty search result or filter combination: Block with robots.txt, add noindex, or return 404 based on how important the URL structure is to your internal linking.

The 410 vs 404 Question

Google treats both as "gone," but 410 removes pages from the index faster because it communicates intent. Use 410 when you've permanently deleted content. Use 404 when you're not certain. Either beats a soft 404.

FAQ

How long does it take Google to stop crawling a soft 404 after I fix it? It depends on your crawl rate and the age of the URL. For high-authority pages, expect Googlebot to revisit within days to a week. For low-priority URLs, it can take several weeks. Submitting the corrected URL (or the 410 redirect target) via GSC's URL Inspection tool speeds this up marginally, but crawl budget ultimately dictates the timeline.

Can soft 404s hurt my rankings directly? Rarely in isolation. A single soft 404 on an obscure URL won't tank a site. The ranking impact is indirect: soft 404s waste crawl budget that could be spent on valuable pages, they can suppress PageRank flowing through internal links to those URLs, and if they accumulate in large numbers they signal overall site quality issues to Google's algorithms.

Does adding noindex to a soft 404 page fix the crawl budget problem? Partially. Google will still crawl noindex pages periodically to check whether the directive has changed. It won't index them, but it will visit them. A proper 404 or 410 status with no body is the most efficient solution — it tells Googlebot to stop revisiting the URL entirely.


Soft 404 errors reward the engineers and SEOs who look past the HTTP status code and ask what Google actually sees when it reads the page. Audit your GSC Coverage report, cross-reference with your server logs, and fix the status-code/content mismatch at the source — that combination eliminates the problem more reliably than any surface-level tweak.

If you're building or managing content at scale, a tool like FluxWriter can help keep page content above the thin-content threshold that typically triggers soft 404 classification, but the status-code fixes described here need to happen at the server layer regardless.



← All posts