Soft 404: what it means and how to fix it

A soft 404 is a page that tells visitors the content is not there, or shows almost nothing, while the server answers with status 200 OK. Google expects a missing page to answer 404 or 410. When the status says “fine” but the page looks like an error, Google labels it a soft 404 and keeps it out of the index.

In Search Console it appears in Indexing → Pages as Soft 404. Of the 24 sites SignalCrawler audited in September and October 2026, 4 answered 200 for any address that does not exist, which turns every mistyped or deleted link into a soft 404.

Soft 404 or real 404?

Real 404 Soft 404
Status code 404 (or 410) 200
What the visitor sees “Page not found” “Page not found”, an empty listing, or the homepage
What Google does Drops the URL, no harm to the site Treats the page as low value, wastes crawling on it

Common causes

  • The site answers 200 for any address. Many single-page apps and some CMS setups show a “not found” view without changing the status code.
  • Missing pages redirect to the homepage. Google often treats a redirect of many unrelated URLs to the homepage as a soft 404.
  • Empty listings. A category, tag or search page with no items still answers 200.
  • Out-of-stock or expired items with the content removed but the page kept.
  • Very thin pages, for example a template that loaded without its data.

How to find them

  1. Export the URLs from the Soft 404 reason in Search Console.
  2. Open a few in a browser: is the content really missing, or is it there and Google misread the page?
  3. Test how the site answers an address that cannot exist, such as /this-page-does-not-exist-123. Check the status in your browser's developer tools (Network tab) or with curl -I. Anything other than 404 or 410 is a problem for the whole site.

How to fix it

For pages that are really gone: return 404, or 410 if they will never come back. If a close replacement exists (a newer product, a merged article), use a 301 redirect to that specific page instead, never a blanket redirect to the homepage.

For a site that answers 200 for everything: fix it at the server or framework level. In a single-page app, the server must know which routes exist and send 404 for the rest; prerendering a dedicated 404 page and serving it with status 404 is a common solution.

For empty listings: either return 404 when a filter or tag has no items, add noindex to empty states, or stop linking to them.

For pages that are real but thin: add the missing content. If the template failed to load its data, that is a bug to fix, not an SEO setting.

How to check that it worked

  • A request to a nonsense URL answers 404 or 410.
  • URL Inspection of a fixed page says the page is indexed or, for removed pages, that it returns 404.
  • The Soft 404 count in the Pages report drops after Validate fix.

What SignalCrawler checks here

Every audit requests an address that cannot exist and reports a site that answers it with 200. It also flags pages that look like “not found” pages but answer 200, linked URLs that serve a copy of the homepage, canonical tags that point to such pages, and the “not found” page itself when it gives visitors no way back.