NoindexWatch
Guides / Search Console statuses

Soft 404 in Search Console: what it means and how to fix it

Updated

Search Console lists a URL under Soft 404 when the page looks like an error to Google but the server says everything is fine. Google's help page: the page "returns a user-friendly 'not found' message but not a 404 HTTP response code."

Google's documentation on status codes adds that it isn't only 'not found' text: "If the content suggests an error for Google Search, an empty page or an error message, Search Console will show a soft 404 error." Google doesn't index the page either way.

Shows the HTTP status code the server sends, every redirect, and any noindex. It doesn't judge the page content, so it can't tell you whether Google sees a soft 404. Free, no signup.

Soft 404 vs 404

  • 404: the server says the page doesn't exist, and it doesn't. The status code and the content agree. That is a correct answer, not a fault: "404 responses are not necessarily a problem, if the page has been removed without any replacement."
  • Soft 404: the server answers 200 OK (or redirects to a page that does), but the content reads as missing or empty. The code and the content disagree, and Google goes by the content.

Google's page on 404s calls them "confusing to both users and search engines". In practice the cost is small for a page that is really gone, and large for a page you want in Google that happens to look empty.

Step 1: is it a false alarm?

Open the URL in Search Console's URL Inspection tool and run a live test. Google's help page: "To see how Google sees the page, run a live URL inspection test". The screenshot of the tested page shows what Google rendered. Look for:

  • An empty or half-loaded page. If the content comes from JavaScript or an API call that failed for Googlebot, Google sees a shell. Fix the rendering, not the status code.
  • A real page that looks like an error. Out-of-stock product pages that say "not available", category pages with 0 products, search or filter pages with 0 results, pages with a few lines of text under a big header.
  • A page that is really gone. Your 'not found' template, served with 200.

Step 2: pick the fix

What the page isFix
Removed, nothing replaces itReturn 404 or 410. Google: "Currently Google treats 410s (Gone) the same as 404s (Not found)."
Moved, or replaced by a close equivalent"If your page has moved, use a 301 redirect to the new location." Point it at the matching page, not the home page: Google's 404 page says "Don't create fake content, redirect to your homepage, or use robots.txt to block 404s". A pile of old URLs sent to the home page tends to end up as soft 404s again.
Real and wanted, but thin or empty-lookingAdd real content. Google's help page recommends "adding more information on the page to let us know that it is not a soft 404." For an out-of-stock product that will come back, keep the description, price and specs on the page.
Real, but you don't need it in Google (empty filters, internal search, 0-result tags)Add noindex, or stop linking to the empty versions. A 404 is also fine if the page has no use
Single-page app route that should be 'not found'The server answers 200 for every route, so Google's JavaScript SEO guide gives two options: "Use a JavaScript redirect to a URL for which the server responds with a 404 HTTP status code (for example /not-found)." or "Add a <meta name="robots" content="noindex"> to error pages using JavaScript."

Don't block these URLs in robots.txt. Google then can't see the 404 or the noindex, and the URL can stay known to Google without its content.

Step 3: check what the server sends

After the change, check the answer Google will get. A removed page should show 404 or 410; a moved one a single 301 to the right page, and that page 200:

Or paste the URL into the redirect checker, which lists every hop and the final status code. If the old URL still lists in your sitemap, take it out; the sitemap checker shows each URL's status.

Step 4: validate, and which ones to leave

When the URLs you care about are fixed, click Validate Fix in the Page indexing report. "Validation typically takes up to about two weeks, but in some cases can take much longer."

You don't have to clear the list. Google's help page: "In general, we recommend fixing only 404 errors that you link to yourself or list in a sitemap." The same goes for soft 404s on old or junk URLs that nothing links to. Once a removed page returns a real 404, it moves to the Not found (404) row, and Google crawls it "less and less often".

If Google reports a 4xx that isn't a 404, read Blocked due to other 4xx issue. Old URLs that redirect correctly show up as Page with redirect, which is fine.

Hear when a page you need starts failing

NoindexWatch doesn't detect soft 404s: it reads status codes and tags, not what the page says. It watches the URLs you choose and tells you by email, Slack or Discord when one starts returning a 4xx or 5xx, gets a noindex, is blocked by robots.txt, or its canonical changes, and again when it recovers. The free plan covers 1 site with up to 20 URLs, checked once a day, no card; paid plans check every hour.

Sources: Google Search Console Help, Page indexing report and Fixing 404 errors; Google Search Central documentation on HTTP status codes and network errors and on JavaScript SEO basics. Related: Blocked due to other 4xx issue · Page with redirect · My site disappeared from Google.