Why Soft 404s Are Worse Than Real 404s for SEO

On this page

A soft 404 is a URL that returns 200 OK while its content says there is nothing here: a removed-product page left up with a “no longer available” placeholder, an empty pagination page after the posts were deleted, a thin parameter or AMP variant that renders an empty template. The status code claims success; the content contradicts it. That contradiction is exactly why a soft 404 is worse for SEO than an honest 404. Google has to crawl the URL, render it, and classify it as empty before discarding it, spending crawl budget and adding ambiguity, whereas a real 404 or 410 tells Google to stop in a single unambiguous response. The fix is to make the status code match reality: return 404 or 410 for gone content, redirect only to genuinely equivalent pages, and repair the systemic generators.

Definition and detection

The fastest way to find them is the Soft 404 grouping in Search Console’s Page indexing report, which lists URLs Google fetched successfully but judged to be error or empty pages. Supplement that with a manual look: a soft 404 is any URL that loads with a 200 but tells the user the content is gone, is empty, or never had substance. The defining trait is the mismatch between the server saying success and the page saying nothing here.

Two confirmation steps make the diagnosis concrete. First, check the actual status code, not what the browser shows you, by requesting the URL directly (for example with curl -I against the URL) and reading the status line; a soft 404 will report HTTP/2 200 for a page that is plainly empty. Second, look at the rendered content the way Google does, using the URL Inspection tool’s “View crawled page,” and ask whether a person landing cold would find anything of value. If the answer is no and the status is 200, you have a soft 404 regardless of whether Search Console has flagged it yet, because the report samples and lags rather than catching every instance the moment it appears.

Why it is worse than a real 404

A real 404 or 410 is a clean instruction. Google requests the URL, receives an error status, and knows to stop treating it as a live page. There is nothing to render and nothing to evaluate.

A soft 404 forces work. The server returns 200, so Google cannot take the status at face value; it must fetch the page, render it, and analyze the content to decide it is actually empty, and it will recheck periodically because a 200 implies a live page that might gain content later. That repeated crawl-render-analyze cycle is wasted budget, multiplied across every soft 404 on the site, and it leaves the URL in an ambiguous limbo where it is crawled but never indexed, producing noise without value. The honest error resolves in one response; the soft 404 keeps costing you.

On a small site the crawl-budget angle rarely bites, but the ambiguity does regardless of size. A real 404 is a fact Google can act on once; a 200 that renders empty is a contradiction Google has to keep resolving, and a large inventory of such contradictions reads as a site that does not manage its own URLs well. That is the cumulative quality cost, and it accrues whether or not crawl budget is your bottleneck. The honest status code removes the contradiction at the source.

The common generators

Most soft 404s come from a handful of systemic sources rather than one-off mistakes:

  • Deleted content left up as a placeholder. The product or article is gone, but the URL still returns a 200 with a “this item is no longer available” template.
  • Empty pagination. /blog/page/4/ still resolves to 200 after the posts that filled it were removed, rendering an empty list.
  • Parameter and faceted variants. Filter combinations that match no items return an empty results template at a 200 status.
  • Stale AMP variants. An AMP URL that renders broken or empty after the AMP setup was abandoned.

The fix per cause

Match the response to the truth of each case:

  • Dead individual pages: return 404 (gone, may or may not return) or 410 (gone, permanently). Either is unambiguous; 410 signals permanence more strongly.
  • Empty pagination: have the pagination return a 404 when a page number has no content, or redirect to page 1 only when that is genuinely the equivalent destination.
  • Parameter and facet variants that produce empties: address the URL generation so empty-result combinations are not crawlable, rather than leaving them to return empty 200s.
  • Unused AMP: remove it. AMP is no longer required for ranking or for Top Stories, so there is no reason to keep broken AMP URLs alive; do not preserve them for an SEO benefit that no longer exists.

The principle behind every one of these is the same: the status code is a statement of fact about the resource, and a soft 404 is a false statement. Returning 200 for an empty page tells Google the page is fine and worth keeping, which is precisely the wrong message. Returning 404 or 410 tells the truth and lets Google act on it once, rather than re-confirming the emptiness on every visit. When you are unsure which fix applies, ask what is true about the URL: if the content is gone with no equivalent, the truthful response is an error code, not a 200 and not a redirect to something unrelated.

The redirect-to-homepage trap

The most common bad fix is redirecting every dead URL to the homepage to avoid showing 404s. Google treats a redirect to an irrelevant destination, the homepage being the classic example, as a soft 404, because the intent of the original URL does not match the page the user lands on. A request for a discontinued blue running shoe that lands on the homepage has not been satisfied; Google reads that as the same empty signal as the placeholder you were trying to avoid, and the redirected URLs sit in a soft-404 state, crawled but not indexed, often losing the rankings they previously held.

Redirect only to a genuinely equivalent page: the discontinued product to its direct replacement, the moved article to its new location, the merged category to the category that absorbed it. When there is no equivalent, return 404 or 410. The honest error is better than a redirect that lands the user somewhere unrelated.

Prioritization

Fix in order of harm. Start with soft 404s that currently have impressions or clicks, because those are actively reaching users, wasting real traffic on dead ends, and damaging the brand experience for people who clicked expecting content. Next, fix the systemic generators (empty pagination handling, parameter URL generation, abandoned AMP) because each one produces soft 404s continuously, so fixing the generator stops the bleeding at scale. Last, clean up the individual stragglers that no generator produces. This order spends your effort where the crawl waste and user harm are concentrated, rather than starting with the long tail of one-off dead URLs.

Frequently Asked Questions

Is a soft 404 a penalty?

No. It is not a manual action. It is crawl-budget waste plus a cumulative quality signal: a site full of 200-status empty pages presents itself as low quality, and Google spends crawl resources confirming each one is empty. The cost is efficiency and site-wide quality, not a formal penalty to appeal.

Should I redirect dead pages to the homepage to avoid 404s?

No. Redirecting a specific dead URL to the homepage is treated as a soft 404 because the destination does not match the original intent. Redirect only to a genuinely equivalent page; otherwise return 404 or 410.

Sources

Google Search Central, Fix Search Console errors (soft 404 / status codes): https://developers.google.com/search/docs/crawling-indexing/http-network-errors
GSQI (Glenn Gabe), 301 redirects to less-relevant pages are seen as soft 404s [case study]: https://www.gsqi.com/marketing-blog/redirects-less-relevant-pages-soft-404s/
Google Search Central, Page indexing report: https://support.google.com/webmasters/answer/7440203