Soft 404
A soft 404 is a page that answers with a success status, 200, while being an error or an empty page to a reader. Google reads the page, decides it is not really there, and drops the URL from the index. The status code lying is the whole problem.
By Théophile Louvart, founder of Porteur · Updated 15 September 2026 · Markdown
What makes a 404 soft
Google detects a soft 404 by reading the page, not by trusting the header. Four shapes trigger it.
- A page that prints "not found" or "this product is no longer available" and returns 200.
- A redirect to the home page in place of a missing page, which answers 200 on a page that has nothing to do with the URL requested.
- An empty category, an empty search result, or a listing with no items.
- A page whose content failed to load, leaving a shell that returns 200 with nothing in it.
Where you see them
The Page indexing report in Search Console lists them under Not indexed, with the reason Soft 404 and a sample of up to a thousand URLs. The URL Inspection tool says the same thing for one URL.
One soft 404 on a page you deleted is noise. The same reason across twenty URLs of one template is a decision to make about that template.
The fix, by cause
| What you have | What to return | Why |
|---|---|---|
| A page that no longer exists | 404, or 410 when you deleted it on purpose | Google drops the URL cleanly instead of judging the page |
| A page with an equivalent elsewhere | 301 to that page | The old URL hands its standing to the new one |
| An empty category or list | 200 with real content, or noindex | A page with nothing on it earns nothing either way |
| A shell left by a failed fetch | A real error status from the server | A 200 on a broken render pollutes the index |
| Anything redirected to the home page | One of the four rows above | A blanket redirect to the home page is itself a soft 404 pattern |
How to avoid creating them
Make the framework answer with the right status
A missing record should render the not-found page and return 404, not a 200 with an apology on it.
Never redirect missing pages to the home page
Redirect to the closest equivalent, or let the URL 404. A visitor who wanted /pricing does not want the home page.
Give empty states a reason to exist
An empty category page can list the categories that do have items, or carry noindex until it does.
Check after a deploy
Request one deleted URL with curl and read the status line. A crawler over the whole site catches the rest.
Questions
Google fetched the URL, got a success status, read the page, and concluded it is missing or empty. It reports the URL as not indexed with the reason Soft 404.
It is not a penalty. It wastes crawling on URLs that answer nothing, and it hides real problems: a template that renders empty pages will show the same reason across many URLs.
Decide what the URL should be. If the page is gone, return 404 or 410. If an equivalent exists, redirect to it with a 301. If the page should exist, give it content.
No. Google treats a redirect to an unrelated home page as a soft 404, and the visitor loses the thread. Redirect to the closest equivalent page or return a real 404.
Yes, and search result pages are usually better kept out of the index entirely with noindex, since they duplicate the pages they list.
Check my site, free
The free check reads your site the way a crawler does and names the pages that answer nothing, in about thirty seconds.
- Free check, no card
- Read-only, your own accounts
- Readable by your agent
Read next
- GuideSoft 404: when a page says 200 and Google reads not found
- Glossary410 Gone
- GuideHow to fix 404 errors reported in Search Console
- GlossaryIndex coverage
- GlossaryCrawl error
- GuideDelete or redirect an old page: 301, 404 or 410
- GlossaryThin content
- GuideThe Crawl stats report: how much Google fetches and where it struggles