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?
- Why does Google flag a page as a soft 404?
- The patterns that trigger a soft 404, and the right status code
- Redirects to the homepage
- Empty search and filter pages
- Thin pages and single-page apps
- How do you find and confirm a soft 404?
- Getting soft 404 errors fixed on your site
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.
Scroll the diagram sideways to see all of it.
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.
| Pattern | What Google sees | Correct response |
|---|---|---|
| Custom “not found” page served with 200 | An error message on a success status | Return a real 404 (410 if the removal is deliberate) |
| Deleted page redirected to the homepage | A redirect that behaves like a 404 | 404 or 410, or a 301 to a close equivalent |
| Search or filter URL with zero results | An empty template | 404, noindex, or no crawlable link to it |
| Thin page with a heading and little else | Almost no content | Add real content, or merge it and 301 |
| Error state in a client-rendered app | A 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.
Scroll the diagram sideways to see all of it.
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:
- 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.
- 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.
- 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:
- 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.
- Check the header yourself. From a terminal,
curl -I https://example.com/some-url/prints the status line. A “not found” page that printsHTTP/2 200is a soft 404 in the making. - 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.
Scroll the diagram sideways to see all of it.
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.