Soft 404 Errors: What They Are and How to Fix Them
A soft 404 happens when a page returns an HTTP 200 (success) status code but shows content that indicates the page does not really exist - like "product not found," "no results," or a generic error message. Googlebot sees the 200 status, fetches the page, reads it, and determines the content is not meaningful. In Google Search Console you will see these listed as "Soft 404" under the Pages report.
Why Soft 404s Are a Problem
Soft 404s waste crawl budget - Googlebot spends time on pages with no real content. They can also dilute your site quality signals. If Google consistently finds empty or low-value pages on your site, it may start crawling your good pages less frequently. They also create a poor user experience: someone searching finds your page, clicks, and lands on a "not found" message.
Common Causes of Soft 404 Errors
Empty search results pages
A URL like yoursite.com/search?q=xyzabc returns 200 with "no results found." Google crawls thousands of these. Fix: block search result pages in robots.txt with Disallow: /search or add a noindex tag to all search result pages. Either works - robots.txt is better for crawl budget, noindex is better if you want Google to understand the page exists but not index it.
Deleted products or posts still accessible at old URLs
Your CMS might display "this product is no longer available" at the original URL with a 200 status. Fix: when you delete or discontinue content, configure your server to return a 404 or 410 (gone) status code, or redirect the URL to the most relevant replacement page with a 301 redirect. A 410 tells Google the page is intentionally gone, which removes it from the index faster than a 404.
Empty category or tag pages
A category page with zero posts, or a tag page with one post, returns 200 but has almost no content. Google may classify these as soft 404s. Fix: either add content to those pages to make them genuinely useful, noindex them, or redirect them to the parent category if they are too thin to stand alone.
Out-of-stock product pages showing minimal content
A product page that is out of stock but still live, with no description, no images, and just "out of stock" text, may be flagged as a soft 404. Fix: keep out-of-stock pages with full product content and clear availability messaging, or redirect them if the product is permanently discontinued.
How to Find Soft 404s on Your Site
Check Google Search Console under Indexing, then Pages, and look for the Soft 404 status. You can click on it to see all affected URLs. Download the full list and prioritize fixing pages that were previously indexed and may have had traffic. Use the URL Inspection tool to check individual pages and see exactly what Google sees when it crawls them.
Soft 404 vs Crawled Not Indexed: Key Difference
Both statuses result in a page not being indexed, but they signal different things to Google. “Crawled — currently not indexed” means Google assessed the content and judged it low quality or duplicative — the page has real content but Google chose not to include it. “Soft 404” means Google found that the page response looked like a failure state — empty, error-like, or lacking substantive content entirely. Soft 404s are a stronger signal: Google is not just deprioritizing the page, it is treating it as if the resource does not actually exist.
The practical implication: soft 404s need a structural fix (real content or correct HTTP status), not just a content improvement. A page flagged as “crawled not indexed” might get indexed after adding 400 words of content. A page flagged as a soft 404 likely needs either a full content overhaul, a proper 404/410 HTTP response, or a 301 redirect to a relevant live page.
When to Use 410 Instead of 404
If a page is permanently gone and will never come back, use HTTP 410 (Gone) instead of 404 (Not Found). Google removes 410 pages from its index faster than 404 pages — typically within the next crawl cycle after receiving a 410, versus keeping 404 pages in the index for weeks while repeatedly checking if they come back. This matters for product discontinuation, content removal, and site migrations where old URLs should be cleared from Google's index quickly.
Configure 410 responses in your server config, .htaccess rules, or middleware. In Next.js, return notFound() from getStaticProps or use a Response with status 410 in a route handler. In WordPress, a plugin like Redirection can set 410 responses for individual URLs. After configuring 410, verify it with a curl command: curl -I https://yoursite.com/deleted-url should show HTTP/2 410.