Soft 404 in Google Search Console: What It Means, How to Confirm It, and What to Fix First

A soft 404 shows up in Google Search Console when Google decides a page looks like an error page to users, even though the server returned a 200 OK status. The URL technically loads, but Google sees so little useful content that it treats the page as if it doesn't exist.

The tricky part: Google isn't always right. A legitimate page with thin above-the-fold content, a broken JavaScript bundle, or an empty product template can all trigger the label. Before you fix anything, confirm what Google actually rendered and why it made that call. Below is a triage-first workflow: find the flagged URLs, verify the diagnosis, pick the correct fix path, and validate only when you're ready.

Key Points

  • A soft 404 occurs when a server returns a 200 OK status code but Google's renderer finds so little useful content that it treats the page as non-existent, often because the page shows an explicit error message, an empty template shell, or content so thin it offers no value to users.
  • Before fixing any soft 404, use the URL Inspection tool's "Test Live URL" feature and check the rendered HTML screenshot to confirm whether Google misjudged a legitimate page or correctly identified an empty shell, because JavaScript rendering failures and thin above-the-fold content can trigger false positives.
  • Every soft 404 URL falls into one of three fix paths: return a real 404 or 410 if the page should not exist, set up a 301 redirect if the content moved to a true equivalent URL, or restore substantive content if the page should rank but Google saw it as broken due to rendering failure or misleading empty-state copy.
  • E-commerce sites commonly generate soft 404s when discontinued product pages still load a template with header, footer, and a one-line "no longer available" message at a 200 status, and faceted navigation creates thousands of filter combinations that return zero products but remain crawlable with 200 responses.
  • Only click "Validate fix" in the Page indexing report after you have addressed the soft 404 pattern across your entire site, because Google samples URLs from the flagged group during validation and one unfixed example will fail the entire validation, forcing you to wait before trying again.
  • Prioritize URLs that used to drive organic traffic, have external backlinks worth preserving, target keywords you want to rank for, or represent a template issue affecting hundreds of pages, and let low-value zero-demand URLs remain excluded if they are accurately dead ends.

What is a soft 404 in Google Search Console?

Google's Page indexing report groups every URL it knows about by indexing status. "Soft 404" is one of the "Not indexed" reasons, and it means Google looked at the rendered page and concluded it behaves like a dead end for the user.

The server says "here's your page" with a 200 status code. But when Googlebot renders the HTML, it finds one of these patterns:

  • An explicit "not found" or "no results" message in the visible text
  • A template shell with almost no unique content (think an empty product page that only shows the header, footer, and a "Sorry, this item is no longer available" line)
  • A page so thin that it's functionally identical to hundreds of other low-value URLs on your site

Google treats these pages as if they don't exist, which means they won't appear in search results regardless of the status code.

Soft 404 vs. true 404 vs. 410

A true 404 tells Google outright: "This page doesn't exist." A 410 says: "It existed once, but it's permanently gone." Both are honest HTTP responses, and Google handles them quickly by dropping the URL from the index.

A soft 404 is different because the server misleads. It says 200 OK, but the content tells a different story. Google has to make a judgment call, and that judgment sometimes misfires.

StatusHTTP CodeGoogle's BehaviorWhen to Use
True 404404Drops URL from indexPage never existed or was removed
Gone (410)410Drops URL faster than 404Page permanently removed, won't return
Soft 404200 (usually)Treats as not-found; won't indexNever intentional: it's a problem to fix
301 Redirect301Passes signals to new URLContent moved to a new location

If you're also seeing URLs in "Crawled – currently not indexed" or "Discovered – currently not indexed," those are separate issues with different fix paths. We've covered what "crawled, currently not indexed" means and how to fix it in a dedicated guide.

How to find soft 404s in the page indexing report

Open Google Search Console, then navigate to Indexing → Pages. Scroll down to the "Why pages aren't indexed" table and look for the row labeled "Soft 404."

Click that row. You'll see a list of example URLs Google flagged. The count at the top tells you how many URLs carry this label across your site, but the example list is capped. Focus on the examples first because they reveal the pattern.

Inspect a flagged URL

Pick one URL from the list and click the inspect icon (magnifying glass) to open the URL Inspection tool. You'll see two things that matter:

  1. The cached crawl result: what Google saw the last time it visited
  2. "Test Live URL": what Google sees right now if it re-renders the page

Always click "Test Live URL." The cached result might be weeks old, especially on large sites. The live test shows you today's reality.

Once the live test finishes, click "View Tested Page" and check the rendered HTML tab plus the screenshot. This is exactly what Googlebot saw. Look for the mismatch: does the page contain real content, or does it show an error message, an empty template, or a blank screen?

Confirmation checklist: is it really a soft 404?

Google can be wrong. Before you change anything, run through this checklist for each flagged URL pattern.

Check HTTP status vs. rendered content

Use the URL Inspection tool's live test or a command-line tool like curl -I to confirm the HTTP status code. If your server returns 200 but the rendered page says "Page not found" or "No results," you've confirmed the soft 404.

If your server returns 200 and the rendered content looks legitimate, Google may have misjudged. This happens more than you'd expect with JavaScript-heavy pages where Googlebot's renderer hit a timeout or a blocked resource.

Thin or empty template pages

E-commerce sites generate this pattern constantly. A product gets discontinued, but the URL still loads a template with a header, navigation, footer, and a one-line "This product is no longer available" message. Your server says 200. Google says soft 404. Google is right here because that page adds nothing for users.

The same thing happens with empty category pages, tag archives with zero posts, and internal search result pages that return no matches.

Parameter and filter URLs

Faceted navigation creates thousands of URL combinations. Many of those combinations return zero products. If those URLs are crawlable and return a 200 status, Google flags them as soft 404s. Should you care? Only if the volume is large enough to slow down crawling of your important pages.

The 200 OK shell after removal

Here's a scenario we see repeatedly on audits: a product page gets "removed" in the CMS, but the CMS renders a thank-you shell or a "check out similar items" page at the same URL with a 200 status. Google's developers documentation on troubleshooting crawl errors specifically calls out this mismatch as a common soft 404 trigger.

If the page is truly gone, return a real 404 or 410. Don't leave the shell up.

Decision tree for diagnosing a soft 404 flagged URL

Fix paths: a decision tree for every soft 404

Once you've confirmed the diagnosis, every soft 404 URL falls into one of three buckets. Which bucket determines your fix.

Path A: the page should not exist

Discontinued products, expired event pages, deleted blog posts with no replacement: these pages served their purpose and are done. Return a real 404 or 410 HTTP status code.

A 410 is slightly better if the page was indexed before, because it tells Google to stop rechecking. But a standard 404 works fine too. The difference is minor.

After setting the correct status code, remove the URL from your XML sitemap and clean up internal links pointing to it. Leaving dead links in your navigation or footer templates is how soft 404 counts creep back up after you think you've fixed them.

Path B: content moved to a new URL

If a product was replaced by an updated version, or a blog post was consolidated into a more comprehensive guide, set up a 301 redirect from the old URL to the new one.

One caveat: don't redirect to a loosely related page to "save link equity.A redirect from a discontinued running shoe to your homepage is a soft redirect that Google may treat as a soft 404. Redirect only to a true equivalent or replacement page.

Path C: the page should rank

This is the bucket that requires the most work. If the URL points to a page you want indexed, figure out why Google saw it as empty or broken.

Common culprits:

  • JavaScript rendering failure occurs because your page relies on client-side JS to load content, and Googlebot's renderer couldn't execute it, so check the 'More info' tab in URL Inspection for resource load errors.
  • Misleading empty-state copy is present as your page has real content, but a prominent 'No items found' or 'Check back soon' message above the fold convinces Google it's a dead end, so remove or rewrite that copy.
  • Thin content that needs depth exists as your page offers almost nothing unique, so add substantive content that justifies the URL's existence.

Content that decays over time, losing traffic and rankings gradually, often ends up thin enough to trigger soft 404 flags. If you're noticing a pattern of formerly healthy pages getting flagged, our guide on how to detect content decay in Google Search Console covers the diagnostic steps.

Three fix paths for soft 404 URLs with decision criteria and actions, Labels: Path A: Page should not exist (return 404/410)

What not to do with soft 404 errors

Resist the urge to click "Request Indexing" on every soft 404 URL. That doesn't fix anything. Google already saw the page, decided it looked dead, and labeled it accordingly. Asking Google to look again at the same broken page wastes your inspection quota.

Don't treat soft 404s as a crawl budget emergency either. Yes, Search Engine Journal reporting indicates soft 404s use crawl budget despite returning 200 OK, but for most sites under a few hundred thousand pages, crawl budget isn't the bottleneck. Fix soft 404s because they indicate real content or configuration problems.

And don't invent recovery timelines. Nobody can truthfully tell you that 'X% of soft 404s recover in Y days.' Recovery depends entirely on what you fix and how quickly Google recrawls after your fix.

How to validate fixes in Search Console

Here's the part most guides rush through: when should you actually click "Validate fix" in the Page indexing report?

Only after you've addressed all or most instances of the soft 404 pattern sitewide. Google's validation process samples URLs from the flagged group. If it picks one you haven't fixed yet, your entire validation fails, and you have to wait before trying again.

Post-fix checklist

  1. Verify the fix on individual URLs first: Use URL Inspection → Test Live URL on a few representative examples. Confirm the HTTP status is correct and the rendered page shows real content (or a proper 404/410).
  2. Update your XML sitemap by removing URLs that now return 404/410 and adding any new redirect destinations if they weren't already included.
  3. Audit internal links by searching your templates, navigation, and content for links pointing to URLs you've removed or redirected, as broken internal links will regenerate soft 404 signals.
  4. Check canonical tags to ensure that if a soft 404 page had a canonical pointing to itself and you've redirected it, the redirect destination's canonical is self-referencing.
  5. Click 'Validate fix' in the Page indexing report once you're confident the pattern is resolved across your site.

Validation typically takes a few days to a couple of weeks, depending on your site's crawl frequency. You'll see the status change to "Started" and eventually "Passed" or "Failed" in the report.

When soft 404s aren't worth fixing

Every soft 404 doesn't deserve your time. If you run an e-commerce site with thousands of expired product URLs that correctly show a "no longer available" message, and those URLs get no organic traffic and have no backlinks, the soft 404 label is accurate and harmless. Google already excluded them.

Focus your effort on URLs that meet at least one of these criteria:

  • Historical traffic value: The page used to drive organic traffic
  • Backlink equity: The page has external backlinks worth preserving
  • Keyword targeting: The page targets a keyword you want to rank for
  • Template-level impact suggests that the pattern affects a template used across hundreds of pages, so fixing the template fixes them all at once.

For tracking which pages still drive performance and which have slipped, tools like ClickFlow can surface GSC page performance data and flag content that's declining. It won't replace URL Inspection or fix your HTTP status codes, but it helps you prioritize which soft 404 pages are worth rescuing versus letting go.

Frequently asked questions

What is the difference between a hard 404 error code and a soft 404 error code?

A hard 404 is an actual HTTP 404 response that tells crawlers the page does not exist. A soft 404 typically returns 200 OK (or another non-404 code), but the page content looks like a dead end, so Google treats it as not found.

What does a soft 404 error mean in the Google Search Console?

It means Google believes the URL provides little or no useful content for users, even if your server says the page is OK. As a result, Google may exclude the page from indexing and search results.

What is the difference between 403 and 404?

A 403 means the server understood your request but refuses to authorize it; the content may exist but access is blocked. A 404 means the server cannot find the requested resource at that URL.

Should I return 404 or 403?

Return 404 when the resource does not exist, or you intentionally want it treated as not found. Return 403 when the resource exists but you are blocking access, for example behind permissions or a login wall.

How can I tell if Google labeled a page as a soft 404 because it could not render JavaScript?

Compare what you see in a normal browser to what Google sees using the URL Inspection tool's live test and the rendered screenshot. If the screenshot is blank or missing key content while your browser shows it, the issue is likely a rendering or resource-loading failure rather than the page being truly "empty."

How do I prioritize which soft 404 URLs to fix first when there are thousands?

Prioritize URLs that have valuable backlinks, historically drove organic traffic, or are generated by a widespread template issue that affects many pages. Deprioritize low-value, zero-demand URLs that are accurately "dead ends" and are not important to your business.

What monitoring should I put in place so soft 404s do not keep coming back after a cleanup?

Set up recurring checks for new soft 404 spikes in Google Search Console and track page templates that commonly produce empty states. Also monitor key page groups for sudden performance drops so you can catch content or rendering regressions before they cascade into indexing issues.

Address your soft 404 pattern at the source

Soft 404 errors in Google Search Console almost always point to a systemic issue: a CMS template that doesn't return proper status codes, a JavaScript dependency that breaks rendering, or a content lifecycle that leaves empty shells behind. Fixing individual URLs without addressing the root cause means you'll be back in the Page indexing report next month doing the same triage.

Start with the confirmation step. Use URL Inspection to verify what Google actually rendered. Sort every flagged URL into one of the three fix buckets: remove it, redirect it, or restore it. Then validate only after you've resolved the sitewide pattern.

Audit your CMS workflows so discontinued products return proper 404 or 410 codes instead of empty template shells. Review your JavaScript dependencies to ensure Googlebot can render your content reliably. Check your faceted navigation settings to prevent crawlable zero-result filter combinations. Address the pattern at its source, and your soft 404 count will stay low without constant manual intervention.

Ready to catch content decay before it becomes a soft 404 problem? Try ClickFlow and monitor your GSC performance trends automatically.