TechnicalSEO

Soft 404: Why Google Flags It and the Fix

A soft 404 is a URL that looks like an error or an empty page to Google but returns a success status code, usually 200 OK. Google flags it in Search Console, treats it like a missing page, and leaves it out of the index. The fix is to make the status code and the page content tell the same story.

This guide is for site owners and marketers who opened the Page indexing report and found a “Soft 404” row. It shows the patterns that trigger the label, the correct status code for each, and how to confirm the fix. For the wider 404 triage, see 404 errors: when to fix, redirect or ignore.

On this page

What is a soft 404?

A soft 404 is a mismatch between what a page says and what the server says. The visitor sees “page not found”, an empty results list or a near-blank template. The server, meanwhile, replies 200 OK, which means success.

Search Console’s own wording is plain. Its Page indexing report describes the cause as a page that returns a user-friendly “not found” message but not a 404 HTTP response code. Google’s HTTP status code documentation adds the other half: if the content suggests an error, such as an empty page or an error message, Search Console shows a soft 404 for it.

The diagram below shows the mismatch in one line.

A soft 404 is a page that looks like an error but the server says success Three boxes left to right. The visitor sees a page saying sorry, we could not find that. The server responds 200 OK, meaning success. Google concludes the page is effectively an error, labels it a soft 404 and does not index it. Anatomy of a soft 404 The page and the status code disagree, so Google decides for itself 1. The visitor sees "Sorry, we could not find that page." or an empty results list 2. The server says 200 OK success, content delivered 3. Google decides Soft 404: treated as missing, not indexed shown in Search Console The fix is never to hide the label. It is to make the page and the status code agree. Either the page is really gone (send 404 or 410) or it is real (give it content).

Scroll the diagram sideways to see all of it.

Source: Ambeltek diagram based on Google's Search Console and HTTP status documentation, linked above.

Why does Google flag a page as a soft 404?

Google flags a soft 404 because a 200 response promises content and the page does not deliver any. Google’s documentation says a 2xx status “doesn’t guarantee indexing” and that it passes whatever it received on to the next processing step. It also says it does not index URLs that return a 4xx status. A soft 404 gets the same outcome without the honest status code.

Why does a status code matter that much? Crawlers cannot read your intent. Gary Illyes of Google described the problem in a LinkedIn post that Search Engine Journal reported in June 2024. His warning was that crawlers rely on status codes and may “happily go back to the same page again and again wasting your resources”. He also said such pages are unlikely to show up in search results because they are filtered out during indexing.

Two things follow from that. First, a soft 404 costs you crawler attention, which matters most on large sites (see crawl budget explained). Second, the label is Google’s judgment, not yours. A page can be perfectly valid to you and still be read as empty.

The patterns that trigger a soft 404, and the right status code

Most soft 404s come from five patterns, and each has one correct response. The status code is chosen by what the URL is for, not by what is easiest to configure.

PatternWhat Google seesCorrect response
Custom “not found” page served with 200An error message on a success statusReturn a real 404 (410 if the removal is deliberate)
Deleted page redirected to the homepageA redirect that behaves like a 404404 or 410, or a 301 to a close equivalent
Search or filter URL with zero resultsAn empty template404, noindex, or no crawlable link to it
Thin page with a heading and little elseAlmost no contentAdd real content, or merge it and 301
Error state in a client-rendered appA shell that renders “not found”Redirect to a URL that returns 404, or add noindex

The decision tree below puts the same logic in the order you would ask the questions.

Which status code to send for each situation that causes a soft 404 Five situations and their fix. Page removed with no replacement: return 404, or 410 if deliberate. Page moved or merged and a close match exists: 301 redirect to the close match. Search or filter URL with zero results: return 404 or noindex, never a blank 200. Thin page you want indexed: keep 200 and add real content. Error state in a single-page app: JavaScript redirect to a URL that returns 404, or add noindex. Situation to status code Pick the row that matches the URL, not the row that is easiest to deploy Page removed, no replacement 404, or 410 if deliberate Page moved, close match exists 301 to the close match Search or filter URL, zero results 404 or noindex, never a blank 200 Thin page you want indexed Keep 200, add real content Error state in a single-page app JS redirect to a 404 URL, or noindex

Scroll the diagram sideways to see all of it.

Source: Ambeltek diagram based on Google's Search Console, HTTP status and JavaScript SEO documentation, linked in this post.

The next three sections take the trickiest patterns in turn.

Redirects to the homepage

A redirect to the homepage is the most common self-inflicted soft 404. It feels tidy: no broken links, no 404s in the logs. To Google it can look like the page was removed and the visitor was dumped somewhere unrelated.

John Mueller made this point on a Google hangout in 2016, as Search Engine Roundtable reported. Expired product pages, he said, may be handled as soft 404s, and redirecting them to the home page, a category page or an unrelated product may also be treated as one. His advice was not to redirect thousands of such pages unless there is a clear replacement. It is a 2016 statement, so treat it as a long-standing pattern rather than a current rule. Google’s redirect behavior is documented more fully in redirects SEO: 301, 302, 307 and 308 compared.

The rule that holds up:

  • Close equivalent exists: 301 to it. A retired “2024 pricing” page can point to current pricing.
  • No equivalent: let the old URL return 404, or 410 if you removed it on purpose. The 410 Gone guide covers when 410 is worth the extra rule.
  • Never: a blanket rule that sends every unknown URL to the homepage.

Empty search and filter pages

An internal search page with no results is a soft 404 waiting to happen. The template renders, the header and footer are there, the main area says “0 results”, and the server says 200. To a crawler it is an empty page.

Treat the empty state as an error state:

  1. Return a 404 when the query or filter combination has no results. A visitor still sees your helpful “try another search” message. Only the status code changes.
  2. Stop linking to empty combinations. Faceted navigation that links to every possible filter mix creates thousands of empty URLs. Show only options that have results.
  3. Use noindex where a 404 is not practical. An empty page that must stay reachable can carry a robots meta tag so it never competes for the index.

Do not rely on the label alone to clean this up. If a crawler can reach 50,000 empty filter URLs, Search Console will eventually list a good share of them, and each fetch is wasted effort. These pages also overlap with the problems in duplicate content SEO, because near-identical templates differ only by a query string.

Thin pages and single-page apps

A thin page is a soft 404 only when it is thin enough to look empty. A heading, a one-line intro and a “check back soon” notice qualify. A short, genuinely useful page, like a contact page with an address and a form, does not.

Search Console’s guidance for valid pages is direct: if the page should exist, add more information so Google can tell it is not a soft 404. The Page indexing report suggests returning a 404 for truly missing pages and enriching the content otherwise. The useful questions to ask of any flagged thin page are:

  • Would a person who landed here get an answer?
  • Is the main content present when Google renders the page, or does it load only after a script that fails?
  • Is this URL needed at all, or should it be merged into a stronger page with a 301?

That second question is the subtle one. If your content is built by JavaScript and the render fails or times out, Google may see an empty shell. Google’s JavaScript SEO basics also covers a related case: in client-side rendered single-page apps, meaningful HTTP status codes can be impossible or impractical. Its two options to avoid soft 404s are a JavaScript redirect to a URL for which the server responds with 404, such as /not-found, or adding a noindex robots meta tag to the error page with JavaScript. For the wider rendering picture, see JavaScript rendering and AI crawlers.

How do you find and confirm a soft 404?

You find soft 404s in Search Console and confirm them by checking the raw status code against what the page shows. Open the Indexing, then Pages report and look for the “Soft 404” row. Illyes also recommended regularly checking crawl reports and logs for pages that return 200 but show error content.

Then test one URL at a time:

  1. Run the live test. In Search Console, use URL Inspection, run the live test and open “View tested page”. The Page indexing documentation points to this screenshot as the way to see how Google renders the page. If the screenshot shows an empty template, you have found the cause.
  2. Check the header yourself. From a terminal, curl -I https://example.com/some-url/ prints the status line. A “not found” page that prints HTTP/2 200 is a soft 404 in the making.
  3. Test a made-up URL. Request /this-page-should-not-exist-12345/. It must return 404. If it returns 200 or redirects to the homepage, your whole site has a catch-all problem, not one bad page.

The timeline below turns this into a repeatable routine.

Five steps to clear a soft 404 report Step 1, collect: export the soft 404 list from Search Console. Step 2, fetch: run curl -I on each URL and note the status line. Step 3, classify: match each URL to a pattern in the table. Step 4, change: fix the status, redirect or content, then deploy. Step 5, re-test: live-inspect a sample, then watch the report. The soft 404 clean-up routine Fix by pattern, not URL by URL 1 Collect Export the Soft 404 list from Search Console 2 Fetch Run curl -I on each URL and note the status line 3 Classify Match each URL to a pattern in the table above 4 Change Fix the status, redirect or content, then deploy 5 Re-test Live-inspect a sample, then watch the report Fixes are fast to deploy, but the report updates only as Google recrawls each URL.

Scroll the diagram sideways to see all of it.

Source: Ambeltek diagram.

Soft 404s are one entry in a longer list of crawl and index problems. The technical SEO issues guide ranks them by severity, and the XML sitemap guide explains why a sitemap should list only URLs that return 200 and deserve indexing.

Getting soft 404 errors fixed on your site

Fixing a soft 404 comes down to one decision per pattern. Decide whether the URL is gone, moved or real, and send the status code that says so. Gone means 404 or 410. Moved means a 301 to the closest match. Real means 200 with content a visitor could use.

Start with the catch-all. Request a made-up URL and make sure your server returns 404, because a single misconfigured error template can generate hundreds of soft 404s. Then clean up empty search and filter states, then thin pages. Re-test after each change instead of batching everything.

If your site is built on a framework that makes proper status codes awkward, this is a development task, not an SEO setting. Our web development service covers building sites where routing, error pages and rendering return the right codes by default. For the other checks that belong in the same review, the checklists library has step-by-step lists you can work through.

Frequently asked questions

What is a soft 404 error?

A soft 404 is a page that tells visitors the content is missing, or shows almost nothing, while the server still answers with a success status such as 200 OK. Google decides the page is effectively an error, labels it a soft 404 in Search Console, and does not index it.

How can I fix a soft 404 error?

First work out why Google thinks the page is empty. If the content is truly gone, return a real 404 or 410. If a close replacement exists, 301 redirect to it. If the page should exist, add real content so it is not treated as empty. Then re-test the URL with the URL Inspection tool.

What is error 404 on a website?

A 404 is the HTTP status code a server sends when it cannot find the requested URL. It is normal for URLs that never existed or were removed. Google does not index URLs that return a 4xx status, so a correct 404 is a clean signal, not a site-wide problem.

Does 404 mean blocked?

No. A 404 means the server found nothing at that address. A blocked request usually returns 403 Forbidden, or the URL is disallowed in robots.txt. Blocking and missing are different conditions, and Search Console reports them in different places.

Is error 404 good or bad?

It is neither. A 404 on a URL that should not exist is the correct, healthy answer. It becomes bad only when a live, valuable page returns it by mistake, or when many internal links point at dead URLs and send visitors nowhere.

Do soft 404s hurt my rankings?

They rarely hurt a page that is correctly excluded, but they waste crawler visits and hide real problems. The real damage comes when a page you want indexed is labeled a soft 404, because it then drops out of the index until the content or status is fixed.

Should I redirect every deleted page to the homepage?

No. Google's John Mueller said in 2016 that redirecting expired pages to the home page, a category or an unrelated product may be treated as a soft 404. Redirect only when a close equivalent exists. Otherwise let the old URL return 404 or 410.

OK

Olga Kunger

Founder & Lead Strategist, Ambeltek

Olga leads Ambeltek's web development, AI SEO, and GEO work — helping brands rank on Google and get cited by AI engines. More about Olga →

Want structured data that engines trust?

We audit, design and ship connected JSON-LD for your whole site, validated and monitored.