What is a soft 404?

A soft 404 is a page that looks like an error to a person but tells the browser and search engines that everything is fine. The server returns a 200 OK status code, while the page itself says something like "Product not found", "0 results", or shows almost nothing at all.

Google flags this mismatch. If a page returns a 2xx status but its content suggests an error, such as an empty page or an error message, Search Console reports it as a soft 404 [1]. Google's Page indexing report describes it as a page that returns a user-friendly "not found" message but not a 404 HTTP response code [2].

Example: a store deletes a product, but its platform keeps the URL live and shows "Sorry, this item is no longer available" on an otherwise empty template, with status 200. A user sees an error. Google sees a successful page with no content, and labels it a soft 404.

What is the difference between a soft 404 and a 404?

A 404 is an honest error, while a soft 404 is an error disguised as a working page. With a real 404 (or 410), the server's status code and the page content agree: the page is gone. Google stops processing a URL that returns 404 or 410 and gradually crawls it less often [1].

With a soft 404, the status code says success and the content says failure. Google has to infer the error from the content, so it keeps returning to check.

Real 404 or 410Soft 404
Status code404 or 410200 (or other 2xx)
Page contentError messageError message, empty template or thin page
Google indexes it?NoNo, once detected
CrawlingSlows down over time [1]Continues, wasting budget [4]
Search Console labelNot found (404)Soft 404

A real 404 is not a problem in itself. Removed pages should return 404. The problem is the disguise.

Why are soft 404s bad for SEO?

Soft 404s are bad for SEO because they waste crawling and can hide real pages behind false duplicates. Google's crawl budget guide says soft 404 pages will continue to be crawled and waste budget [4]. On a large site, thousands of empty URLs returning 200 can slow the discovery of real new pages, a crawl budget problem.

Soft 404s also disrupt canonicalization. Google's troubleshooting guide names identical soft 404 pages as a cause of wrong canonical selection [5]: when many different URLs return the same "not found" template, they look like duplicates of each other.

A soft 404 does not cause a penalty. The page simply is not indexed, and the crawl effort spent on it is lost.

What causes soft 404 errors?

Soft 404 errors are caused by templates that return 200 when they have nothing to show, or by pages so thin that Google reads them as errors. The common causes:

  • Deleted items on a live template. Out-of-stock or removed products, expired listings and deleted profiles that render an error message with status 200.
  • Empty search and filter pages. Internal search results or filter combinations with zero matches. Google's faceted navigation guide says that when a filter combination has no results (its example is no green fish in stock), users and crawlers should receive a 404 [6].
  • Programmatic pages with no data. A template built for every city, product or term that renders even when the database row is empty, leaving a page that is only boilerplate.
  • JavaScript apps. A single-page app usually returns 200 for every route and decides in the browser whether the content exists, so a missing item shows an error view on a 200 page [3].

Why are soft 404s common on programmatic pages?

Soft 404s are common on programmatic pages because the template renders whether or not the data behind it is good. A site that generates 5,000 location pages from a database will publish some with no listings, no reviews and only the city name swapped into stock text. Each looks like a successful page to the server and like an empty one to Google.

This is the practical risk for any programmatic SEO build or large glossary: the pages that fail are not the ones anyone checks by hand. The fix belongs in the template, not on individual pages: decide the minimum data a page needs, and return 404 (or do not generate the URL) when a record falls below it.

How do you find soft 404 errors?

To find soft 404 errors, open the Page indexing report in Search Console and look for the "Soft 404" status [2][4]. Click it to see example URLs.

Search Console shows a sample, not every URL, so two further checks help on large sites:

  1. Crawl the site with an SEO crawler and filter pages that return 200 but have very low word counts, or contain phrases such as "not found", "no results" or "0 items".
  2. Use log file analysis to see how often Googlebot keeps requesting URLs that should be gone.

Then test a sample URL with the URL Inspection tool to see the status code and the rendered page Google received.

How do you fix a soft 404?

Fix a soft 404 by making the status code tell the truth, or by giving the page real content. Pick the fix by what the page should be:

SituationFix
Content is permanently goneReturn 404 or 410 [4]
A true replacement exists301 redirect to that replacement, not to the home page
The page should exist but is thinAdd the missing content, or stop generating the URL
Empty filter or search resultReturn 404 for the empty combination [6], or block the URL pattern from crawling
Google misread a real page as an errorMake sure the main content renders; check URL Inspection

On a server-rendered site, sending a 404 is a one-line change in the template or route handler. On a JavaScript single-page app, the server may not know the item is missing. Google gives two options [3]: redirect to a URL where the server returns 404, or add a robots noindex meta tag with JavaScript when the item does not exist:

fetch(`/api/products/${productId}`)
  .then(response => response.json())
  .then(product => {
    if (product.exists) {
      showProductDetails(product);
    } else {
      const metaRobots = document.createElement('meta');
      metaRobots.name = 'robots';
      metaRobots.content = 'noindex';
      document.head.appendChild(metaRobots);
    }
  });

After fixing, inspect a few of the affected URLs with the URL Inspection tool to confirm they now return the intended status code.

What is known and what is not about soft 404 detection?

Google has not published how it decides a page is a soft 404. Its documentation says only that it looks at whether content suggests an error, an empty page or an error message [1]. There is no published word-count threshold, and any guide quoting one is guessing. Google can also label a genuine page as a soft 404, usually because the main content did not render or the page is close to empty. In that case the fix is the content, not the status code.

When should you fix soft 404s?

Fix soft 404s when the count is growing, when they cluster on one template, or when the site is large enough that crawling matters. A handful of soft 404s from expired listings is routine housekeeping. Hundreds from one template means the template is publishing pages it should not, and that is worth fixing before it scales further.