
A soft 404 is a page that tells Google everything is fine, usually with a 200 status, while its content looks like an error, an empty page or a dead end. Fix it with a real 404 or 410 for pages that are gone, a redirect to a close equivalent, or better content on pages you want to keep.
The HTTP Archive’s 2024 Web Almanac SEO chapter found that 83.9% of robots.txt files for mobile sites returned a 200 status code, and that robots.txt requests for 14.1% of mobile site visits returned a 404. Crawlers read status codes constantly, so a page that says 200 while showing an error sends a confusing signal.
The name is misleading. A soft 404 is not a special kind of error page. It is a mismatch between what your server says and what your page shows. The server says “here is a normal page”, and the page itself says “nothing found”, or has so little content that Google treats it as though nothing is there. Google then flags it in Search Console and generally leaves it out of the index.
This guide explains the definition, the usual causes, how to find affected URLs, the right fix for each situation, and the mistakes that make things worse. If a URL is excluded for a different reason, the sibling guides on crawled, currently not indexed and discovered, currently not indexed will help you tell the statuses apart.
What a soft 404 actually is
Google’s documentation on how HTTP status codes affect Google Search covers pages that return a 2xx success status. It explains that if the content suggests an error, such as an empty page or an error message, Search Console will show a soft 404 error. In plain terms, Google looks at what the page contains, not just the status your server sent, and if the two disagree it trusts the content.
Compare the three cases:
| Situation | Server status | Page content | How Google reads it |
|---|---|---|---|
| Proper not found page | 404 or 410 | Friendly “not found” message | The page is gone, as stated |
| Soft 404 | 200 | “Not found”, empty results, or almost nothing | Probably an error despite the status |
| Normal page | 200 | Useful, unique content | A candidate for indexing |
A soft 404 wastes crawling on a URL that has no value, may mean a page that should exist is being dropped from the index, and clutters your reports so that real problems are harder to see.
The usual causes
In audits, I see the same handful of patterns again and again.
- Custom error pages that return 200. A well-designed “page not found” template is good for visitors, but the server must still send a 404 status with it. Some setups and plugins send 200 by mistake.
- Empty category or tag pages. A category with no products or posts shows a header and a blank grid.
- Internal search results with no matches. If search pages are crawlable, every unusual query can produce a “no results” page with a 200 status.
- Out-of-stock or discontinued products. A product page stripped to a title and an “unavailable” message looks like an error.
- Thin pages. A page with a heading and a sentence, or a placeholder that was never finished.
- Redirects to the homepage. Mass redirecting removed URLs to the homepage is something Google’s guidance calls problematic, because the destination does not match what the old URL promised.
- Pages that fail to load content. A page that relies on scripts and renders only a blank shell or an error message, because a resource failed or was blocked.
Rather have an expert do this for you?
Hand it over and get back to running your business.
How to find soft 404 URLs
Start in Search Console. The page indexing report groups excluded and problem URLs by reason, and soft 404 appears as its own reason when Google has found any. If you want a primer on reading that report, see what the Search Console coverage report is. Click through to the list of affected URLs and export it.
Then inspect a sample:
- Open the URL in a browser. Does it show real content, or an error, a blank grid, or a no results message?
- Check the status code the server returns. A browser developer tool shows it in the network panel. Any 200 on an error looking page is your answer.
- Run the URL Inspection tool and view the rendered page and the live test. This shows what Google sees after rendering, which is vital when scripts build the page.
- Group the URLs by pattern, such as /category/, /search/ or /product/. Fixing a pattern at template level clears hundreds of URLs at once.
Also look for patterns you did not expect. A sudden jump in soft 404s after a migration, a plugin update or a stock clearance usually points to a cause you can reverse quickly.
Choose the right fix for each situation
There is no single fix, because the right answer depends on what the page is supposed to be. Use this decision table.
| If the page is… | Do this | Why |
|---|---|---|
| Permanently gone, no close equivalent | Return a 404 or 410 status, with a helpful error page | Tells Google the page is gone, as it is |
| Moved, or replaced by a very similar page | Use a permanent redirect to that specific page | Passes visitors and signals to the right destination |
| A page that should have content but is thin | Add genuinely useful, unique content, or merge it into a stronger page | Gives Google a reason to index it |
| An empty category or tag | Remove it, keep it out of crawlable links, or fill it with real items | Empty listings have no value to searchers |
| Internal search with no results | Return a 404 for zero results, or stop crawlers reaching search URLs | Prevents endless worthless URLs |
| A temporarily unavailable product | Keep the full page with details, availability and alternatives | It is still a useful page for returning buyers |
| A page broken by a failing script | Fix the rendering so the content loads for crawlers | The content exists, it just is not being delivered |
Google’s help page on 404 errors gives consistent guidance. For content that has been permanently removed, let the old URL return a 404 or 410. It warns that returning another code for a page that does not exist, or redirecting users to another page such as the homepage instead of returning a 404, can be problematic. For content that has genuinely moved, add a redirect.
Handling out-of-stock and discontinued products
Shops cause more soft 404s than any other kind of site, so this deserves its own rule set. The question to ask is whether a visitor would still find the page useful.
- Temporarily out of stock: keep the product page live with its full description, images and specifications, mark the stock status clearly and offer a way to be notified or to see alternatives. The page keeps its value.
- Discontinued, with a direct successor: redirect permanently to the successor product.
- Discontinued, with no real equivalent: return a 404 or 410, or redirect to the closest relevant category if that category genuinely helps someone looking for the old product. Do not redirect to the homepage by habit.
The test I apply is simple: would the destination satisfy a person who clicked the old URL? If yes, redirect. If not, let the URL return a not found status.
Mistakes that make soft 404s worse
- Redirecting everything to the homepage. It hides the problem, frustrates visitors, and Google’s guidance cautions against it. Redirect to a specific, relevant page or return a 404.
- Blocking error URLs in robots.txt. Google’s 404 guidance says not to use robots.txt to block 404s. Blocked URLs cannot be recrawled, so Google never sees that they are gone.
- Adding filler text to thin pages. Padding a page with generic paragraphs to dodge the label does not create value. Either make it useful or remove it.
- Chaining redirects as a workaround. Google notes that 300-level redirects used in place of a 404 can delay the recrawl, possibly for a long time.
- Ignoring the pattern. Fixing single URLs one by one while the template keeps producing more.
Check that the fix worked
After you change the status code, redirect or content, test the live URL with the URL Inspection tool and confirm the status and rendered content match your intention. Then use any validation option the report offers for the issue, and watch the count over the following weeks. Recrawling takes time and depends on how often Google visits the site, so I do not promise a date. If hundreds of URLs remain after the fix, you probably missed a pattern.
It is also worth checking whether links point at the URLs you have removed. The Search Console links report can show pages that still attract backlinks, and those are the removed URLs that most deserve a considered redirect instead of a plain 404. If many near-empty pages are inflating your index in general, the broader topic is covered in index bloat.
Soft 404 checks are routine in a technical SEO audit, and they appear in the list of reviews described in what a professional SEO audit includes.
Questions people ask about soft 404 errors
Are soft 404s bad for SEO?
They are a signal to fix, not a penalty. Google treats the URL as an error and usually does not index it, so if the page was meant to rank you lose that opportunity, and crawl effort is wasted on the rest. A small number on genuinely empty pages is not an emergency.
What is the difference between a 404 and a soft 404?
A 404 is an honest response: the server says the page does not exist. A soft 404 is a contradiction: the server says the page is fine while the content looks like an error or is almost empty. Google treats the contradiction as a problem to flag.
Should I use 404 or 410?
Either tells Google the page is gone. I use 410 when I am certain a removal is permanent and deliberate, and 404 for everything else. Both are far better than a 200 status on an error page.
Can a good page be flagged as a soft 404 by mistake?
Yes, usually because the page is thin, because scripts failed to load the main content for Google, or because it closely resembles an empty template. Inspect the rendered page. If it shows content, improve it and test again.
If your report shows soft 404s you cannot explain, or you are about to remove a large number of pages, send me the details through the contact page and I will include it in a free audit.
More in this series (SEO measurement and Search Console): start with What a Professional SEO Audit Includes (and Red Flags), then explore:
- Google Search Console Performance Report Explained
- Crawled Currently Not Indexed: Causes and Fixes
- Discovered Currently Not Indexed: Meaning and Fixes
- How to Use the URL Inspection Tool in Search Console
- Search Console Regex Filters: 12 Practical Examples
- SEO Dashboard Looker Studio: How to Build One in 7 Steps
- SEO KPIs: The Metrics That Actually Matter
- How to Calculate SEO ROI (With a Worked Example)
- Search Console Links Report: How to Use It
Request received
Thank you! Saad will contact you within the next 24 hours.
Keep an eye on your phone and inbox.
