Soft 404 vs Real 404

Why the status code matters — and what Google actually acts on

The Difference in One Line

The distinction between a real 404 and a soft 404 comes down entirely to the HTTP status code returned by the server — not what the page displays to the user.

✅ Real 404

The server answers with status 404 (not found) or 410 (gone). Google treats the URL as missing and does not use its content.

⚠️ Soft 404

The server answers with 200 (success), but the page tells the user the content does not exist — or the page has no main content at all.

Google calls returning 200 in this situation a bad user experience and excludes soft 404 pages from Search. Search Console reports them as soft 404 errors.

Typical Causes

Soft 404s arise in several common scenarios where the server and the page content are out of sync:

CMS Template Mismatch

A CMS template shows "no results" or "product unavailable" but keeps the 200 status code.

Single-Page Applications

A single-page application renders an error message on the client while the server still answers 200.

Empty Archive Pages

Empty category, tag, or search pages with no items still return a 200 status.

Failed Content Load

Pages whose main content failed to load for Googlebot because critical resources were missing or blocked.

How Google Says to Fix It

The correct fix depends on the actual state of the page and its content. Google recommends three distinct approaches:

1

Content Is Gone

Return a 404 (not found) or 410 (gone) status code to signal permanent removal.

2

Content Moved

Return a 301 permanent redirect to the new location of the content.

3

Content Still Exists

The page likely did not load properly for Googlebot. Check whether critical resources are blocked or failing, and ensure the rendered page shows its main content.

Quick Test: Is It a Soft 404?

Follow these three steps to diagnose whether a URL is returning a soft 404:

1

Check the Page Message

Open the URL in a browser and note what the page says to the user.

2

Check the HTTP Status Code

Check the HTTP status code of the same URL — for example with your browser's developer tools (Network tab).

3

Compare the Two

If the page says "not found" and the status is 200, it is a soft 404. Change the server response, not just the text.