Quick answer
A soft 404 is a URL that returns HTTP 200 OK while showing a “not found” message or almost no content, so search engines cannot rely on the status code. Google also flags thin pages it judges to be errors as soft 404s.
What is a soft 404?
A soft 404 is a page that tells users "this doesn't exist" (or has almost nothing on it) but returns an HTTP 200 OK status code instead of 404 Not Found or 410 Gone. Browsers display it normally, but search engines see a successful response for a page that is effectively empty or missing.
Google also labels a page as a soft 404 when the status is 200 and its own systems judge the content to be an error page or too thin to be useful, even if your template does not literally say "not found". Search Console reports these under Page indexing › Soft 404.
Hard 404 vs soft 404
| Hard 404 | Soft 404 | |
|---|---|---|
| Status code | 404 (or 410) | 200 |
| What the user sees | A "not found" page | A "not found" page, or an empty template |
| What a crawler concludes | The URL does not exist; drop it | Unclear; must guess from content |
| Indexing | Removed over time | Excluded as soft 404, after wasted crawls |
| Is it a problem? | No, a correct signal | Yes, wastes crawl budget and confuses reporting |
Common causes
| Cause | Example |
|---|---|
| Custom error page served with 200 | The server rewrites missing URLs to /not-found and returns 200 |
| Single-page applications | Every route returns the same HTML shell with 200; the app then renders "page not found" in the browser |
| Empty search or filter results | /search?q=zzz or a category filter with zero products |
| Out-of-stock or discontinued products | Product page kept live with no price, no description, "unavailable" |
| Redirecting all 404s to the homepage | Google treats many irrelevant redirects to the homepage as soft 404s |
| Thin placeholder pages | Location or tag pages with a heading and nothing else |
Worked example
An online store has 4,800 product URLs. 640 products were discontinued last year, and their pages now show "This product is no longer available" with a 200 status. Search Console's page indexing report lists 590 of them as soft 404s (sample data).
Fix plan:
| Group | URLs | Action |
|---|---|---|
| Discontinued, with a direct successor | 210 | 301 redirect to the successor product |
| Discontinued, with a close category | 300 | 301 to the most relevant category, not the homepage |
| Discontinued, nothing relevant | 130 | Return 410 Gone |
| Temporarily out of stock | (separate) | Keep 200, but keep the full page: description, specs, alternatives, back-in-stock signup |
Within a few weeks the soft 404 count drops, and crawl activity shifts back to live products.
How to fix soft 404s
- Return the right status code. If the page does not exist, send 404 or 410. Your custom error template can still look friendly.
- Redirect only to a genuinely relevant page. A 301 to the closest replacement is fine; blanket redirects to the homepage are not.
- Add real content if the page should exist. Thin pages need substance, or should be merged or removed; see content pruning.
- Fix SPA routing. Have the server return 404 for unknown routes, or, if you cannot, render a
noindexrobots meta tag on the client's not-found view. See single page application SEO. - Keep empty search and filter pages out of the index with
noindexand avoid linking to them.
How to find soft 404s
- Search Console: Page indexing report, "Soft 404" reason.
- A crawler: flag 200 pages with very little text, or whose title or H1 contains "not found".
- Your analytics: a page with many entrances, a near-100% bounce rate and almost no time on page is often an empty page.
- Server logs: compare the status codes crawlers receive for URLs your app treats as missing; see log file analysis.
In TapCub
Add data-404="true" to the TapCub script tag on your not-found template, and visits to missing pages appear on the 404 pages tab of the pages report with the requested path and referrer. That shows where broken links come from even when the server returns 200. Crawler fetches that hit 404 or 5xx are on the crawl health report when server-side records are imported. Paths that appear in both lists are the first to fix. See crawl errors.
See also: Check crawl health.
Sources
- Google Search Central. Soft 404 errors.
- Google Search Central Blog (2008). Farewell to soft 404s.
- MDN Web Docs. 404 Not Found.
Was this explanation clear?
We use your answers to fix and expand this page.
Couldn’t send. Please try again in a minute.
Thanks for the feedback. We’ll use it to improve this page.You’ve already sent feedback on this page. Thanks.

Customer Experience Consultant
Writes about live chat, visitor conversations, and self-service, sharing practical ways to make customer communication clearer and more effective.