Skip to content
SEO Optimizer is live, Audit on page SEO and AI-search readiness. Try it free
Anmelden

How to Fix Soft 404 Errors

A soft 404 is a page that tells visitors it does not exist, or shows almost nothing, while telling search engines everything is fine with a 200 OK status. Google notices the mismatch, treats the URL as an error anyway, and reports it as a soft 404 in Search Console. Soft 404 errors waste crawl budget, keep real pages out of the index and confuse your reporting. The fix is to make the status code tell the truth.

What Is a Soft 404?

Every HTTP response has a status code. A missing page should return 404 Not Found (or 410 Gone if it was removed on purpose). A soft 404 returns 200 OK instead, so to a crawler it looks like a real, working page, until Google reads the content and sees "Page not found", "No results" or an almost empty template.

Real 404Soft 404
Status code404 or 410200 OK
What the visitor seesA not-found pageA not-found page, or an empty or thin page
What Google doesDrops the URL from the index over timeDetects the error itself, reports a soft 404, and may keep recrawling
Is it a problem?No, it is correct behaviorYes, it wastes crawls and muddies index data

A real 404 is not something to fear. Removed pages should return one. The HTTP status codes guide explains when to use each code.

Common Causes of Soft 404 Errors

  1. Single-page apps with a catch-all route. The server returns index.html with status 200 for every path, and the JavaScript router renders a "not found" view. This is the most common cause of soft 404 errors on modern sites.
  2. Custom 404 pages served with status 200. A CMS or server config shows a friendly error page but forgets to set the status.
  3. Empty search, category or tag pages. "0 results found" pages with nothing else on them.
  4. Out-of-stock or discontinued products that show a near-empty template.
  5. Redirecting everything to the homepage. Mass-redirecting removed URLs to the homepage instead of a relevant page; Google often treats those as soft 404s too.
  6. Thin pages. Pages with so little content that Google reads them as an error, even though nothing is technically missing.

How to Fix a Soft 404

Start in Search Console under Indexing, Pages, then the "Soft 404" row. Export the list and sort each URL into one of three groups: the page is really gone, the page moved, or the page should exist and be indexed. Each group has a different fix.

1. The page is really gone: return a real 404 or 410

Make the server send the correct status. Use 410 Gone when you removed the content on purpose and it is not coming back; Google tends to drop 410s a little faster. In frameworks with server rendering, this is usually one function call:

app/products/[slug]/page.tsxNext.js: return a real 404 when the record does not exist
import { notFound } from "next/navigation";

export default async function ProductPage({ params }: { params: Promise<{ slug: string }> }) {
  const { slug } = await params;
  const product = await getProduct(slug);
  if (!product) notFound(); // renders not-found.tsx with a 404 status
  return <ProductView product={product} />;
}

2. Fix the single-page app catch-all

If your app is client-rendered, the server needs to know which paths exist. Options, from best to simplest: server-render or pre-render your routes so unknown paths get a real 404; configure the host so only known routes fall back to index.html; or, as a last resort, add <meta name="robots" content="noindex"> in the client-side not-found view so Google at least does not index it.

3. The page moved: use a 301 to the closest match

Redirect to the most relevant replacement (the new version of the product, the parent category), not to the homepage. Keep redirects to a single hop; check them with the redirect checker and the redirect chain guide.

4. The page should exist: give it real content

If Google flagged a page you want indexed as a soft 404, it looks too thin. Add the content that makes the page useful: product details, alternatives for out-of-stock items, popular results on empty search pages, or a description on empty category pages. For a filtered or search page that should not be indexed, add noindex instead.

5. Stop linking to dead URLs

Internal links to removed pages keep sending crawlers back. Update or remove them; see how to fix broken links and scan your site with the broken link checker.

6. Validate the fix

Check each fixed URL's status code, then use "Validate fix" on the soft 404 row in Search Console. Validation takes days to weeks.

Soft 404 vs Crawled Currently Not Indexed

Both mean Google read the page and did not index it. A soft 404 means Google thinks the page is an error; crawled currently not indexed means Google thinks it is a real page that is not worth indexing yet. Thin pages can land in either bucket, which is why the content fix overlaps. See how to fix crawled currently not indexed for the quality side.

How Scanverra Helps

Scanverra does not label pages as soft 404s, because that is Google's judgment and needs Search Console data. It does cover the checks you need around a soft 404 fix: the redirect checker shows the exact status code and redirect chain a URL returns, so you can confirm a removed page now sends a 404, 410 or a single 301; the broken link checker finds internal links that still point at dead URLs; and the SEO Optimizer flags thin content and noindex settings on pages you want indexed.

FAQ

Häufig gestellte Fragen

A soft 404 is a URL that returns a 200 OK status code but shows a not-found message or almost no content. Google detects the mismatch and reports it as a soft 404 error in Search Console.

They waste crawl budget and can keep Google recrawling URLs that should be gone, and a page you want indexed that is flagged as a soft 404 will not rank. They are worth fixing, especially on large sites.

Both are correct for missing pages. Use 410 Gone when content was removed on purpose and will not return; Google may drop it slightly faster. Use 404 for anything else.

Usually not. Google often treats redirects to an unrelated homepage as soft 404s. Redirect to the closest relevant page, or return a 404 or 410 if there is no good replacement.

Many single-page apps return the same index.html with status 200 for every path and render the not-found view in JavaScript. The server needs to return a real 404 for unknown paths, usually through server rendering or host routing rules.

Kostenlos - keine Anmeldung nötig

Check this on your own site

Run a free scan and see exactly where you stand - no sign-up required.

Kostenlosen Audit starten