Soft 404s: What Google Actually Means, and the Correct Fix for Each Cause
· Royking Niba
A soft 404 is a page that tells a person it is missing and tells Google the opposite. The visitor sees a friendly “nothing here” message, the server quietly returns a 200 OK, and Google spends the next several months crawling a URL that has nothing on it. It is one of the cheapest technical problems to fix and one of the most common ones I find sitting untouched in an audit, usually on sites that have already been through a replatform or a product-catalogue cleanup.
What Google means by a soft 404
There is no ambiguity here, and it is worth reading the definition rather than the folklore. Google’s Page Indexing report documentation describes the status this way:
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 documentation
And the recommended action, from the same page:
We recommend returning a 404 response code for truly “not found” pages and adding more information on the page to let us know that it is not a soft 404.
Google, Page Indexing report documentation
Note the second half of that sentence, because most write-ups drop it. Google is describing two different failures under one label. One is a real missing page returning the wrong code. The other is a genuinely useful page that Google has misread as empty. The fix for the first is a status code change. The fix for the second is content. Applying the wrong one is how sites accidentally 404 pages that were working.
Why it costs you, in Google’s words
The crawl budget documentation is blunt about the consequence:
Soft 404 pages will continue to be crawled, and waste your budget. Check the Page Indexing report for soft 404 errors.
Google, Large site owner’s guide to managing your crawl budget
That page also states the reason it matters: “If Google spends too much time crawling URLs that it shouldn’t, Google’s crawlers might not explore the rest of your site.” A correct 404 tells Google to stop asking. A soft 404 tells Google to keep asking forever, on a URL that will never be worth an impression.
The honest caveat, which I make in more detail in my piece on crawl budget and who actually has a problem: Google scopes that guide to sites of roughly 10,000 pages and up. If you run a 400-page site, a handful of soft 404s is not costing you traffic. It is still worth fixing, because the same misconfiguration usually means your genuinely deleted pages are also returning 200, and those can sit in the index competing with the pages you want ranked.
The six things that generate soft 404s, and the correct response for each
Every soft 404 I have diagnosed falls into one of six buckets. The failure is nearly always in the template rather than in any individual page, which is why they arrive in the hundreds rather than the ones.
| Cause | What it returns now | What it should return | Why |
|---|---|---|---|
| Deleted page redirected to the home page | 301 to / | 404, or 301 to the closest genuine equivalent | A redirect to an unrelated page is itself treated as a soft 404. The home page is not the equivalent of a deleted product. |
| Out-of-stock or discontinued product page | 200 with “this item is no longer available” | 200 if the page keeps real content, 404 if it does not | This is the case where content, not status code, is the fix. Keep specifications, alternatives and history and it is a real page. |
| Empty internal search or filter result | 200 with “no results found” | 404, and noindex the search template | Infinite URL space with no content. The worst crawl-waste generator on most ecommerce sites. |
| Empty category, tag or archive page | 200 with an empty listing | 404, or remove the term entirely | WordPress tag archives with zero posts are the classic version of this. |
| Custom error page served at the wrong status | 200 with the error design | 404 | The page looks correct to a human and is invisible as a problem until you check headers. |
| Expired listing, event or job posting | 200 with a stub | 410 if it will never return, 404 if it might | Both are removed from the index. 410 is the clearer signal for permanent removal. |
404 or 410, and whether it matters
This question generates more argument than it deserves. Google’s HTTP status code documentation settles it:
All 4xx errors, except 429, are treated the same: Google crawlers inform the next processing system that the content doesn’t exist.
Google, How HTTP status codes and network errors affect Google Search
So 404 and 410 land in the same place. In practice I use 410 when a URL is permanently gone and I want the clearest possible signal, and 404 everywhere else, because 404 is what every CMS produces by default and a needlessly clever configuration is a future bug. What matters enormously more is that the code is in the 4xx family at all, rather than a 200 wearing a costume.
One thing worth knowing while you wait: the same documentation notes that Google continues attempting to crawl a 404 URL for some time after it first sees the code. A correctly returned 404 does not vanish from the Page Indexing report the same week. That is expected behaviour, not a failed fix.
How to find every one of them
- Search Console, Page Indexing report. The Soft 404 row is the authoritative list, because it is Google telling you what Google concluded. Export it. This is also where you will see “Crawled – currently not indexed”, which Google defines as a page that “was crawled by Google but not indexed”, and which frequently sits next to a soft 404 problem on the same templates.
- A crawl of your own site. Any crawler will flag URLs returning 200 with near-empty bodies or with an error phrase in the title. Search your crawl export for the literal strings your templates print: “not found”, “no results”, “no longer available”, “0 products”.
- Server logs. The only place you can see how often Googlebot is still requesting those URLs, and therefore what the waste actually costs. I cover the method in server log file analysis for SEO.
- A header check on your own error page. Request a URL you know does not exist and read the status line. If it says 200, every missing page on the site is a soft 404 and you have found a single-line fix worth more than the rest of the audit.
The fix order
- Fix the error template first. One change, and every genuinely missing URL on the site starts returning the right code.
- Noindex and, where possible, block internal search and filter URL space. This is usually the largest single block of wasted crawling.
- Sort the redirect-to-home-page URLs into two piles: those with a genuine equivalent, which get a targeted 301, and those without, which get a 404.
- Take the out-of-stock and expired pages last, because that is a content decision and a commercial one, not a technical one. Deciding to keep a discontinued product page alive with real content is a legitimate answer.
- Leave it alone for a month. Re-export the Page Indexing report and compare counts rather than eyeballing the graph.
What a soft 404 is not
It is not a penalty, and it is not a ranking factor being applied against you. Nobody at Google is deducting points because your 404 page returns 200. The damage is entirely mechanical: crawl attention spent on URLs that cannot earn anything, and occasionally an empty page sitting in the index where a real one should be.
I raise this because soft 404 counts climbing in Search Console is one of the signals that gets misread as evidence of a penalty during a traffic drop. It almost never is. If traffic has fallen and you are trying to work out why, the order of diagnosis matters far more than any single finding, and I set out the full sequence in how I diagnose and reverse a traffic collapse. Soft 404s appearing in bulk immediately after a replatform are a different matter, and usually mean the migration itself went wrong: the sequence that prevents that is in the SEO migration checklist.
If you want the whole technical picture in order of what actually moves traffic, the header check described above is check number nine in the 41-check audit sequence I run on paid work.
Sources
- Google Search Central, Page Indexing report documentation, for the soft 404 definition and recommended action.
- Google Search Central, Large site owner’s guide to managing your crawl budget, for the crawl waste statement and the site-size thresholds.
- Google Search Central, How HTTP status codes and network errors affect Google Search, for the treatment of 4xx codes.
Leave a Reply