Summarize this article with AI

Your browser loads the page just fine, and still Google calls it a soft 404. Now and then Google has it right: the page really is a dead end. Other times the content exists and simply never reached Google.

Below, soft 404s get sorted into Google's three cases (gone, moved, still there). You'll also see where the report lives now that the old "Submitted URL" labels are gone, plus fixes by page type and a dev ticket template to copy. It's built from Google's own documentation and the checks I run in technical audits.

What's a soft 404, and where do you start?

Google uses "soft 404" for a page that answers with HTTP 200 (OK) yet looks like an error page, or has no main content at all. It is not a server status code.1 Pages tagged as soft 404s stay out of Search. A redirect to some unrelated page, the homepage for instance, can earn the same label.

First, check whether the content is gone, moved, or still available.1 Next, see if the HTTP status code agrees with that answer, and if Google's render does too. Your browser being happy with the page settles nothing. Google can still file it under soft 404.

What should happen at this URL? What to do next Result
The content is permanently gone, with no similar replacement Return 404 or 410 and remove the sitemap entry The missing page stays out of Search
The content moved or has a clear replacement Return a 301 to that replacement Google processes the destination
The page and content still exist Inspect the rendered content and HTTP response Useful content is accessible to Google
Users need the page, but it should stay out of Search Consider noindex and remove the sitemap entry The live page is excluded intentionally

Key takeaways: every change waits until you know the URL's intended job. Leaving a missing page unindexed can count as a successful soft 404 fix. Pages you want in Search need their own indexing check.

Where to find soft 404s in Search Console today

In Google Search Console, open Indexing > Pages > Why pages aren't indexed, then select Soft 404. The current Page indexing report uses Indexed and Not indexed statuses.2 "Soft 404" is a reason under Not indexed.

Older instructions for finding soft 404 errors refer to the Index Coverage report and "Submitted URL seems to be a Soft 404." That label belonged to the old Error/Excluded split. Today, use the sitemap filter to separate submitted pages from unsubmitted pages.2

Sitemap filter What it covers Suggested use
All known pages Pages Google knows about Review the overall pattern
All submitted pages Pages in submitted sitemaps Start with pages you asked Google to index
Unsubmitted pages only Pages outside submitted sitemaps Investigate unexpected or unwanted URLs
A specific sitemap Pages in that sitemap Narrow the investigation and validation scope

A page counts as submitted when it appears in a sitemap submitted through the Sitemaps report or robots.txt.2 That remains true if Google also discovered it another way. Sitemap submission is a hint, not a guarantee of indexing.3

The Export option downloads chart and table data, not a complete inventory of soft 404 errors. The examples table is limited to 1,000 rows and may not contain all affected URLs.2 Record the report count separately from your exported sample. Check the Source column. Issues sourced to "Website" are generally yours to fix, Google says.

Soft 404 vs. 404 and 410: how do they differ?

The difference is how each signals a problem: a hard 404 is an HTTP status code, while a soft 404 is Google's interpretation of a page.1 Returning 200 won't get a page indexed on its own. Google treats the 404 and 410 status codes the same, so choosing 410 does not give you a faster-removal advantage.4

Signal HTTP status What Google does
Hard 404 404 Not Found Removes already-indexed pages returning this response; crawling gradually decreases
Gone page 410 Gone Handles it the same as 404
Soft 404 200 OK, or a redirect to an irrelevant page Excludes the page from Search based on its content

A genuine 404 status code is appropriate for deleted content without a replacement.1 Googlebot may keep trying the URL for a while, with decreasing frequency.2 Bringing back an empty 200 page only to clear a "Not found (404)" entry in Search Console is the wrong trade.

What causes soft 404 errors, and the fix for each

The page is gone but returns 200

Your custom 404 page displays an error message ("Page not found," "This page doesn't exist") but your server returns a 200 status code instead of 404 or 410.1 A template can look exactly like an error page and lie about it. Test the missing-page route directly.

The missing-page route must return an actual 404 or 410 status. These responses tell search engines the page does not exist and should not be indexed.1 Then remove these URLs from your XML sitemap.3 Internal links pointing at the deleted page are the other loose end. Those need finding and updating too.

Soft 404 caused by a Page not found message served with a 200 OK status, corrected to 404 or 410
A missing page should return 404 or 410 instead of 200 OK. Google re-evaluates the response when it recrawls the page.

For a custom 404 page, keep the site's navigation and visual style, explain that the page is missing in friendly language, and offer useful links.1 Google even recommends giving visitors a way to report the broken link. Nice design is for people. The server still has to send 404.

The content moved, but the redirect goes somewhere irrelevant

Funnel a pile of deleted pages into one unrelated spot, like the homepage, and users get confused. Google says these redirects might be treated as soft 404 errors.4 Redirects make sense when content moved or has an obvious replacement, which includes a page that merges the old content.

Fix: Redirect to the most relevant alternative page.1 Use a 301 for this permanent move.5 No close replacement? Then letting it return 404 or 410 is the right call.

Soft 404 redirect decision: send a deleted URL to a relevant replacement or return 404/410 rather than an irrelevant homepage
Redirect moved content to a relevant replacement. Google might treat redirects to an irrelevant destination, such as the homepage, as soft 404s.

Pair each old page with its replacement before anyone writes a redirect rule. Once that's done, I look at the redirect response itself and at whether the new page really carries the content. For help picking the status code and checking that it took, there's a separate walkthrough. See 301 vs. 302 redirects.

Live page, empty main content (or just an error message)

Google documents empty internal search results, missing server-side include files, broken database connections, and missing JavaScript files as examples.1 Show a prominent error message during rendering and the page can pick up a soft 404 label as well. Find out what's missing before anyone rewrites the copy.

If the page is meant for Search, the soft 404 fix is putting back content that helps the visitor get their task done. Temporarily unavailable item? Keep its details accurate, and show relevant alternatives where they'd help. Swapping "no longer available" for "currently unavailable" doesn't add any useful content.

A lone unavailability message compared with a page offering useful alternatives
A lone unavailability message leaves visitors at a dead end. Keep a temporarily unavailable page useful with accurate information and relevant alternatives.

Use the thin content workflow when a live page needs a content review. Keep that review separate from the decision about whether a deleted page should exist at all.

Soft 404 fixes by page type

The table below matches each page type to a response, based on its job for visitors. Treat it as triage. Page type by itself can't tell you if the page is a soft 404. Confirm the server response code and rendered content before applying a template-wide change.

Page type or condition Recommended action What to verify
Deleted blog post or discontinued product without a replacement Return 404 or 410 Missing-page response; no sitemap entry
Relocated content or discontinued product with a clear replacement Send a 301 to the relevant page Redirect response and destination content
Empty tag or category that should contain content Restore the main content Content appears in the live render
Empty internal search results users still need Consider noindex Google can crawl and read the directive
Temporarily unavailable product you want in Search Keep the page useful with accurate details and alternatives Page content remains visible and useful
Paginated URL past the last page Return 404 if that page does not exist The nonexistent page returns 404
Client-side error route returning 200 Use a server-backed 404 destination or add noindex to the error view The chosen response or directive reaches Google

Keeping a page live for users but out of Search? Noindex can live in a robots meta tag on the page or in an X-Robots-Tag HTTP header. Google treats them the same and removes the page from Search when it sees the directive.6 Pull it from the sitemap, yet let Google keep crawling it, because a noindex it never reads does nothing. What about noindex in robots.txt? Google doesn't support that.

Google still requests noindexed pages, so noindex controls indexing rather than eliminating crawl requests.6 Content that's gone for good gets a 404 or 410. For pagination rules beyond missing pages, see pagination SEO.

Soft 404s on JavaScript sites

Compare the browser with Google's rendered page

Googlebot queues 200 pages for rendering unless a robots meta tag or header tells it not to index them.7 Google uses the rendered HTML for indexing, so an empty initial response alone does not explain a soft 404 error. Inspect whether the content loads in Google's render.

  1. Use URL Inspection > "Test Live URL" > view the rendered screenshot8
  2. Check if content appears in the rendered HTML7
  3. Compare the result with the page in your browser.

In a successful live test, open View tested page: the Screenshot and HTML tabs show what Google rendered, and More info lists the page resources and JavaScript output. For the indexed result rather than the live test, View crawled page shows the recorded HTTP request and response and the returned HTML.8

Soft 404 spot-check: the same URL full of content in the browser but empty in Google's rendered view
Compare the browser view with the URL Inspection live test screenshot. Missing main content in the live render is a reason to investigate resource loading.

If the rendered page is blank, nearly blank, or shows an error, Google says the page may reference many resources that can't be loaded. Google lists these reasons for failed loads: resources blocked by robots.txt, too many resources on a page, server errors, and slow or oversized resources.1

Google Search does not render JavaScript from blocked files or on blocked pages, so start with failed resources when a page that should work renders without content. Google also calls server-side rendering or pre-rendering a great idea, because it makes pages faster for users and crawlers, and not all bots run JavaScript.7

As an audit check, inspect whether a bot-protection or location-based page returns 200 in place of the main content. A 401 or 403 response belongs to a different indexing reason.2 Route a confirmed 403 problem through the access-forbidden workflow.

Handle missing routes in single-page apps

For soft 404 errors on missing client-side routes, Google documents two options when meaningful status codes are impractical.7 Apply the chosen strategy to error views, then test a missing route and a valid route.

  • Redirect with JavaScript to a URL where the server returns a 404 status code, such as /not-found.7
  • Add <meta name="robots" content="noindex"> to the error page using JavaScript.7

For the redirect option, verify that the server-backed destination returns 404. Going with noindex? Confirm the directive shows up in the rendered error view, and keep that view crawlable.

Diagnosing soft 404s the same way every time

Start with pages you want indexed

Filter Google Search Console to All submitted pages, open the "Soft 404" row, and group the examples by route or template. Buckets for the investigation can be patterns like /tag/, /search?q= or pagination past the last page. When many URLs share a pattern, test the template behind them. Prove it on one before you apply it to the whole group.

Finding Suggested priority Next action
Page intended for Search, especially one with past search traffic High Investigate response, content, and rendering
Submitted page no longer intended for Search Medium Correct its response or directive and sitemap entry
Unsubmitted page intentionally kept out of Search Lower Confirm it should stay out before spending effort
Repeated missing-page template returning 200 High Correct the route or template and test the affected pattern

If a soft 404 page belongs out of Search anyway, don't spend time getting it indexed. Still correct missing pages returning 200 as a maintenance task. A repeated mismatch is a reason to repair the route or template.

Record evidence before changing a pattern

Pull a few representative pages per group, ideally one useful page and one error view. Suspect a soft 404? Line up four things: what the browser shows, the server response, the indexed inspection result and a live render. Inspections and live tests have daily limits per Search Console property, so sample deliberately.8

Make one copy of this worksheet per soft 404 pattern and fill in what you actually observe. For the server's current response, a header checker does the job. Google's recorded and live views come from URL Inspection. Your audit tools need to surface both response codes and content. Knowing a page returned 200 tells you nothing about Google's soft 404 verdict.

Pattern: [route or template]
Sample URL: https://example.com/sample-page
Desired outcome: [indexed / redirect / removed / live but noindex]
Submitted sitemap: [name or unsubmitted]
Browser main content: [present / empty / error message]
HTTP response: [code and redirect destination, if any]
Indexed inspection result: [reason and crawl details]
Live test: [rendered content, resources, response]
Proposed change: [route / content / resources / directive]
Expected result after recrawl: [result appropriate to this change]

Where the evidence supports it, fix the shared route or template rather than page by page. Example: a deleted URL that answers 200. Test it beside a working page first, and only then change the missing-page handler. Once the change ships, test both pages again. If the healthy one changed too, you broke something. Internal links to moved or deleted content need cleaning up. As for the sitemap, keep it to canonical pages you want in Search.

How to tell a soft 404 fix worked

Confirm the current implementation

After deployment, the Search Console live test tells you if the soft 404 fix took. The indexed result is worth another look after Google recrawls. The live test does not cover all indexing issues and does not guarantee indexing.8 Each page's success looks different, depending on which outcome you picked for it.

  • If 404/410: URL is removed from XML sitemap3
  • If 404/410: the URL responds with 404 or 410 when fetched, and no longer with 200.
  • If redirected: the 301 sends people to a relevant page with real main content.
  • If kept for Search: useful content appears in the rendered HTML.
  • If noindexed: Google can crawl the page and read the directive.8
Change What Search Console should show after recrawl
Removed page returning 404 or 410 A 4xx reason such as Not found (404) instead of Soft 404
Permanent redirect Old URL reported as Page with redirect; inspect the destination separately
Page intentionally noindexed URL marked 'noindex'
Content page restored for Search Indexed result for the page you want indexed

"Crawled - currently not indexed" means the page was crawled but remains unindexed.2 It is not indexing success. Restored page landed in that bucket? Carry on with the crawled-but-not-indexed diagnosis.

Separate Validate fix from Request indexing

Validate fix checks instances of the soft 404 issue, not whether all those pages should be indexed. Fix all instances within the validation scope before starting: validation stops when Google finds a remaining instance. Without a sitemap filter, it covers all instances of that issue; filtered to a specific sitemap, it covers that sitemap's pages.2

Pages that are removed, noindexed or otherwise unavailable can all count as fixed soft 404 instances. Validation typically takes up to about two weeks, but it can take much longer.2 The instance count changes whenever Google crawls pages with known issues, validation or no validation.

Request indexing asks Google to crawl an individual page. You get a limited number per day, and asking again won't make Google crawl sooner. The action is unavailable when the live test says the page is non-indexable.8 For many pages you want indexed, submit a sitemap.3

Crawling can take days or weeks after a request, and a request alone never secures a place in Search. Write down what you deployed and what inspection showed, then compare after the recrawl. A passing live test, successful validation, and inclusion in Search are separate outcomes.

Do soft 404s hurt SEO?

A soft 404 isn't a manual action. It's an indexing outcome. The affected page is excluded from Search, so it cannot appear as a search result while classified this way.1 And an error page that claims 200 annoys users and muddles things for search engines.

Google says soft 404 errors cause continued crawling that wastes crawl budget.6 That crawl-budget guidance targets large or fast-changing sites, though. A handful of unwanted pages on a smaller site doesn't warrant the same urgency. Google adds that 4xx responses, 429 aside, don't waste crawl budget, which makes a real 404 the right end point for content deleted for good.

Pages you want indexed and repeating template problems come before any push for a zero count. Compare past clicks when deciding which pages to investigate first. Track indexing status and traffic separately.

Dev ticket template for soft 404 errors

This soft 404 ticket template hands your developer the evidence, the behavior you want and the acceptance criteria. Totals and exported examples go in separate fields, and the follow-up date is agreed up front.

Title: Correct soft 404 behavior for [pattern]

Context:
Search Console reason: Soft 404
Soft 404 count: [count in the selected view]
Sitemap filter: [all known / submitted / unsubmitted / specific sitemap]
Exported examples: [sample count; may not represent the entire issue]
Affected pattern: [route or template]
Evidence: [response, rendered content, failed resources]
Desired outcome: [indexed / 301 / 404 or 410 / noindex]

Requirements:
- [ ] Implement [specific route, resource, content, or directive change]
- [ ] Update sitemap entries to match the desired indexing status
- [ ] Update internal links to moved or deleted pages
- [ ] Test an affected page and a valid page using the same template

Acceptance:
- [ ] Current HTTP response matches the desired outcome
- [ ] Live test content or directive matches what the page should do
- [ ] Redirect destination is relevant, if used
- [ ] Check indexed results separately after recrawl

Owner: [name]
Deployment date: [date]
Follow-up date: [date]

Soft 404 audit notes template

Log what you observed in one place and your guesses at the cause in another, with this soft 404 audit log. When the browser and the live test disagree, investigate. Calling it a false positive comes later, if ever.

Soft 404 findings: [site and audit date]

Scope:
- Search Console sitemap filter: [selected view]
- Soft 404 count: [count]
- Exported examples reviewed: [count]
- Submitted pages reviewed: [count]
- Unsubmitted pages reviewed: [count]

Pattern | Evidence | Intended outcome | Change | Priority
[route] | [response and render] | [outcome] | [action] | [level]

Pages intended for Search:
- [URL]: [content/rendering evidence and proposed repair]

Pages intentionally removed or excluded:
- [URL]: [404/410 or noindex; sitemap change]

Follow-up:
- Deployment: [date]
- Live test result: [result]
- Validation scope and status: [sitemap or full issue; status]
- Indexed result after recrawl: [result]
- Next review: [date]

Frequently asked questions

What does a soft 404 mean in Google Search Console?

Your server reports success, yet when Google reads the page it finds an error page, or no main content to speak of. That's a soft 404. It's a judgment about content, which is why you won't find it among HTTP status codes. In the current Page indexing report, "Soft 404" appears under Not indexed.

How is a hard 404 different from a soft 404?

With a hard 404, your server itself sends back an HTTP 404 status. Soft 404, on the other hand, is a verdict Google reaches by reading the page. Think of a custom "Page not found" screen that still goes out with a 200. That's the mismatch. Is 410 any better than 404? Not to Google. Google handles both identically, so switching to 410 won't speed up removal.

How do soft 404 errors get fixed?

It depends on where the content went. Maybe it's gone, maybe it moved, or maybe it's still on the page. Each answer has its own repair. A page that's gone with no replacement should return a 404 or 410. Content that moved to a relevant page gets a 301. Still there and meant for Search? Look at what Google rendered next to what the server returned, and fix the broken part, whether that's missing content or a resource that didn't load.

Why does a page with content get flagged as a soft 404?

Two usual stories: Google's render never got the content, or it caught a big error message instead. Missing resources, blocked JavaScript and server errors are the common causes, and resources that are too big or too slow can trigger it as well. Run the URL Inspection live test, and if it succeeds, put its screenshot and HTML next to your browser's version of the page. Rewriting the copy can wait until after that comparison.

What if my soft 404 pages are outside the sitemap?

Whether it's in the sitemap has nothing to do with whether it needs fixing. Want an unsubmitted page in Search? Investigate it. Pages you excluded on purpose can wait when it comes to indexing recovery. There's one exception, though, which is a missing-page template sending 200 rather than 404 or 410. That one you fix regardless.

Does a soft 404 report mean Google penalized my site?

A soft 404 is an indexing outcome rather than a manual action. The page stays out of Search, though, and soft 404 pages keep getting crawled, wasting crawl budget, according to Google. Look first at pages you want indexed and at template errors that repeat. A large count in the report doesn't automatically mean large damage.

Should I noindex a soft 404 page that needs to stay live?

Yes. Noindex fits a page users still need that shouldn't be in Search, like one showing empty internal search results. It has to stay crawlable so Google can read the robots meta tag or X-Robots-Tag header, but it can come out of the sitemap. After processing, expect the label "URL marked 'noindex'", which counts as fixed when you validate. Noindexed pages still get requested, though.

How long does it take to confirm a soft 404 fix?

Search Console validation typically takes up to about two weeks, but it can take much longer. After you request it, crawling may take anywhere from a few days to a few weeks, and the request itself guarantees nothing about Search. Verify the live implementation first, then review the indexed result after recrawl against your intended outcome.

Not sure which soft 404 pages deserve your time first? SEO Heatmap shows Search Console clicks for every page and site section over 16 months, so you can start with the pages that used to earn traffic and watch the fixed ones pick it back up. It's free for one Search Console property.

Sources (8)

SEO Heatmap Knowledge relies on primary sources: Google's documentation, web standards, peer-reviewed research, and vendors' own pages for their pricing and features. Our editorial standards

  1. Google Search Central. “Troubleshoot Google Search crawling errors.”
  2. Google Search Console Help. “Page indexing report.”
  3. Google Search Central. “Build and submit a sitemap.”
  4. Google Search Console Help. “404 (Page Not Found) errors.”
  5. IETF. “RFC 9110: HTTP Semantics.”
  6. Google Crawling Infrastructure. “Optimize your crawl budget.”
  7. Google Search Central. “Understand the JavaScript SEO basics.”
  8. Google Search Console Help. “URL Inspection tool.”
Alex Gorovenko

About the author

Alex Gorovenko

Founder of SEO Heatmap

I've had to sort soft 404s from real dead ends while diagnosing indexing issues on growing content sites. I also checked redirects during a CMS migration, where the destination mattered as much as whether the URL loaded. My rule is simple: send a dead URL to a relevant replacement or return a real 404. A homepage redirect just hides the problem.