What is a soft 404?
Every time a browser or Googlebot asks for a page, your server answers with a status code. "200" means "here is the page". "404" means "not found". "410" means "gone for good".
A soft 404 is a mismatch: the server says 200, but the page itself says, or looks like, "nothing here". Google defines it as "a URL that returns a page telling the user that the page does not exist and also a 200 (success) status code" (Google, Troubleshoot crawling errors, updated December 2025).
In Search Console, Google's wording is: "The page request returns what we think is a soft 404 response. This means that it returns a user-friendly 'not found' message but not a 404 HTTP response code" (Google, Page indexing report help).
Note the words "what we think". Google guesses from the content. So a real page with very little on it can also be flagged.
Soft 404 vs 404 vs 410
| Status | What the server says | What Google does | When to use it |
|---|---|---|---|
| 200 with real content | "Here is the page" | Can index it | Any live page |
| 200 that looks empty (soft 404) | "Here is the page", but there is nothing there | Reports a soft 404, does not index it | Never on purpose |
| 404 Not found | "This page does not exist" | Drops the URL from the index over time | Page deleted, no replacement |
| 410 Gone | "This page is gone for good" | Treated much like a 404 | Page deleted on purpose |
| 301 redirect | "This page moved here" | Indexes the new URL instead | Page moved or merged |
A real 404 is not a problem in itself. Google says 404 and 410 pages are removed from the index and crawled less over time (Google, HTTP status codes, updated February 2026). The soft 404 is the one to fix, because it sends mixed signals.
What causes soft 404 errors
These are the cases we see most often:
- Empty category or collection pages. A Shopify collection or WooCommerce category with no products left shows only a header and "No products found".
- Sold-out or deleted products that still load. The page returns 200 but shows "This product is unavailable" with no details.
- Internal search and filter pages with no results. "0 results for blue tents" is a soft 404 to Google.
- Custom "not found" pages that return 200. Some themes and page builders show a friendly error page but forget to send the 404 code.
- Pages that need JavaScript that fails to load. Google lists missing server-side includes, broken database connections, empty search results and JavaScript files that do not load as common causes (Google).
- Very thin pages. A tag page with one post, or a location page with only an address.
How to see what Google saw
Before you fix anything, look at the page the way Googlebot did:
- In Search Console, open URL Inspection and paste the URL.
- Click Test live URL.
- Click View tested page, then Screenshot. Google's help page recommends this step for soft 404s.
- Check the More info tab for resources that failed to load.
If the screenshot is blank or shows an error message, Google is right. If it shows the full page, the page may be too thin, or the problem was temporary.
How to fix soft 404s: 3 cases
Google splits the fix into three cases (Google):
| Case | Fix |
|---|---|
| The page and content are gone, with no close replacement | Return a 404 or 410. Keep a helpful error page with links to your main sections |
| The page or content moved | 301 redirect the old URL to the new one, or to the closest match |
| The page should exist and stay | Add real content, and fix any scripts or resources that failed to load |
Do not redirect every dead URL to your homepage. Google can treat a redirect to an unrelated page as a soft 404 too.
Soft 404 by platform
- Shopify: add products or a real description to empty collections, or delete the collection and redirect it in the URL redirects screen (Content > Menus > View URL redirects). Deleted products already return a 404; if one sold-out product page keeps showing as a soft 404, add details and related products, or redirect it to its collection.
- WordPress: check that your theme's 404 page really returns a 404 code (open the page with a status checker). Empty categories and tag pages with one post can be set to noindex in Yoast or Rank Math, or merged.
- Webflow: empty CMS collection pages and test items are the usual cause. Fill them, unpublish them, or draft the items.
- Wix: check dynamic pages built from empty dataset rows, and store category pages with no products.
You can test any URL's status code with our free redirect checker.
Validate the fix
When every flagged URL is fixed, open the Soft 404 row in Indexing > Pages and click Validate Fix. Google says validation "typically takes up to about two weeks, but in some cases can take much longer." If you missed one URL, validation stops, so check the full example list first.
The free 13-page Page indexing fix guide has a card like this for every reason, with a triage tree and a printable tracker.
How to use this with an AI assistant
Connect SEOmatic at https://seomatic.ai/mcp and ask: "Sign me in with connect_seomatic, then inspect these soft 404 URLs with gsc_indexing (action: batch_inspect). For each, use site_pages (action: crawl) to see what the page shows and tell me whether it should return a 404, redirect, or get more content. Stage the redirects and content fixes for my approval." Fixes need the trial, and nothing goes live until you approve.
More from the page indexing fix guide
- The checklistPage indexing: why pages aren't indexed, and how to fix each reason
- GuideCrawled - currently not indexed: what it means and how to fix it
- GuideDiscovered - currently not indexed: why it happens and how to fix it
- Guide"Page with redirect" in Search Console: is it a problem?
- GuideAlternate page with proper canonical tag: what it means
- GuideDuplicate without user-selected canonical: how to fix it


