Scrapeless Wiki

What Is a Soft 404? – Definition and How to Fix It

Troubleshooting P2 what is a soft 404

Learn what a soft 404 is, why returning 200 for a missing page harms indexing and data collection, how to detect one, and how to fix it properly.

A soft 404 is a page that tells a human "not found" while telling machines "200 OK". The status code and the content disagree, and everything automated believes the status code.

1. What Is a Soft 404?

A missing-content response served with a success status.

  • The visitor sees an error message, an empty state, or a redirect to the homepage.
  • The client receives 200 OK, so nothing signals a problem.
  • The consequence is that crawlers index emptiness and collectors store blanks.

2. How They Happen

  • A catch-all route rendering a generic template for any unmatched path.
  • A single-page application returning its shell for every URL, including invalid ones.
  • Redirecting missing pages to the homepage, which returns 200 for content that does not exist.
  • Empty search or category results rendered as a normal page.
  • A CMS placeholder for a deleted item, still returning the template.

3. Why It Matters

Consumer Effect
Search crawlers Thin or duplicate pages indexed, diluting quality signals
Data collection Empty records stored as if they were real
Monitoring Availability checks pass while the page is broken
Link checkers Dead links reported as healthy

For anyone building a pipeline, this is the failure that looks most like success β€” the one worth explicitly testing for.

4. How to Detect One

Do not trust the status alone. Add content assertions:

if response.status_code == 200:
    text = extract_main_text(response.text)
    if len(text) < 200 or "page not found" in text.lower():
        raise ValueError("soft 404: 200 status with empty or error content")

Useful signals include implausibly short extracted text, an empty or missing heading, a title that names an error, a canonical URL pointing elsewhere, and a rendered payload whose content fields are placeholders.

5. How to Fix It as a Site Owner

  • Return 404 for content that does not exist, and 410 where it was deliberately removed.
  • Return the correct status from the server, not only in client-side rendering.
  • Do not redirect missing pages to the homepage. Serve a real 404 with helpful navigation.
  • Distinguish empty results from missing pages. An empty search legitimately returns 200; a deleted product should not.

6. How to Handle It as a Collector

Treat any 200 whose content fails a plausibility check as a failed fetch. Record it as such rather than storing an empty record, and keep the raw response so the classification can be reviewed.

Where a site is known to soft-404, encode the site-specific marker β€” a phrase, a missing element, a byte-count floor β€” into the validation rather than relying on the status.

7. Real-World Examples

  • A single-page app returning its shell for every unmatched path.
  • A retired product page redirecting to a category listing with a 200.
  • A collector storing thousands of blank records because the source began soft-404ing after a redesign.
  • A monitoring check reporting a site as healthy while every product page renders empty.

8. Summary

A soft 404 is a missing page served with a success status, which misleads crawlers, collectors, and monitors alike.

Site owners fix it by returning honest status codes from the server. Collectors defend against it with content assertions, because the entire hazard is that the failure arrives labelled as success.