A soft 404 is a page that tells a human it does not exist while telling a search engine that everything is fine. Google’s definition is precise: it happens when a page “returns a user-friendly ‘not found’ message but not a 404 HTTP response code”.
That mismatch is the whole problem. Your visitor sees “sorry, nothing here”. Googlebot sees a 200 OK and a page worth considering for the index.
What Google actually says
Two pieces of Google documentation matter here, and between them they cover both the cause and the fix.
On causes, Google describes a server returning a 2xx success status while the content “suggests an error for Google Search, an empty page or an error message”. In that case, Search Console will report a soft 404. Source: Google Search Central.
On the fix, Google is direct. It recommends “returning a 404 response code for truly ‘not found’ pages”. For pages that are not actually missing, it advises “adding more information on the page to let us know that it is not a soft 404”, and suggests running a live URL inspection and clicking View tested page to see how Google renders it. Source: Search Console Help.
That second branch is the one people miss. Not every soft 404 is a missing page. Sometimes it is a real page that Google has decided looks empty.
Soft 404 versus a real 404
A hard 404 is a page that is gone and says so correctly, with a 404 status code. That is not an error to fix. It is the right answer to a request for something that does not exist, and a site with no 404s at all is usually doing something wrong.
A soft 404 is the same situation reported incorrectly. The damage is that Google keeps crawling and evaluating a page you consider dead, and may index it, so your index fills with addresses that lead nowhere useful.
There is also a 410, which means permanently gone rather than simply not found. Google says 4xx responses cause it to stop using a URL over time and to remove already-indexed URLs, so either code eventually does the job.
The common causes
- A custom error page served with a 200. The classic case. Someone built a nice “page not found” design and the server never got told to send the right status.
- Redirecting everything to the homepage. When a deleted page redirects to the homepage, Google often treats that as a soft 404, because the destination does not answer the request.
- Empty category, tag or search result pages. A listing page with nothing in it looks like an error even though the template rendered fine.
- Out of stock or expired items that still return a page saying the thing is unavailable.
- Thin pages Google judges as empty, even when you consider them real. This is the branch where the fix is to add substance, not a 404.
- Hosting and control panel pages. Worth checking, because these appear without anyone publishing them. On our own site the two soft 404s Search Console reports are
/cgi-sys/suspendedpage.cgi, a cPanel account-suspended page, and one old post URL.
The report may be describing a problem you already fixed
Check this before you change anything, because it will often save you the work entirely.
Search Console’s soft 404 list is built from the last time Google crawled each URL, which can be months ago. The report tells you what Google saw then, not what your server does now.
Our own example makes the point. Search Console reports two soft 404s, first detected in August 2022, with last crawl dates in June. Checking both URLs directly, they already return a proper hard 404 with the right status code. The problem was fixed at some point and the report simply has not caught up.
So the first step is never to start editing. It is to check what the URL returns right now.
You can do that with a live URL inspection in Search Console, which fetches the page fresh, or from a terminal with curl -I https://example.com/the-url and reading the status line. If it already says 404, there is nothing to fix and you move to validation instead.
How to fix them, by cause
The page should be gone. Make the server return a real 404, or a 410 if you want to signal permanence. On WordPress this usually means letting the theme’s 404 template handle it rather than redirecting the URL somewhere.
The page moved. Redirect it with a 301 to the specific replacement, not to the homepage. A redirect to a page that does not answer the original request is one of the most common ways to manufacture soft 404s.
The page is real but thin. Take Google’s second branch and add enough substance that it clearly is not an error. An empty category page needs either content or a noindex, not a 404.
The page is a listing that is sometimes empty. Decide what empty should mean. If the category will have posts again, keep it and noindex it while bare. If it never will, remove it properly.
It is a hosting artefact. Block it or let it 404. Nobody searches for your control panel’s suspension page.
Validating the fix, and how long it takes
Once the URLs return the right status, open the Soft 404 report in Search Console and click Validate Fix. Google’s guidance is to do this when you have fixed all instances of the issue, which then tells it to recheck.
Be patient afterwards. Google states that validation “typically takes up to about two weeks, but in some cases can take much longer”. The count will not drop the next morning, and starting validation again does not speed it up.
While you wait, resist re-editing the pages. If validation fails, Google tells you which URL it failed on, and that is far more useful than guessing.
How much should you care?
Proportionally. A handful of soft 404s on a small site is housekeeping, not an emergency, and fixing two of them will not change your traffic.
It becomes worth real attention when the number is large relative to your site, because then crawling is being spent on pages that lead nowhere, and that competes with the pages you want indexed. If your indexed count is well below your published count, this belongs on the list alongside the causes in crawled, currently not indexed.
Check it as part of a periodic content audit rather than reacting every time the number moves by one, alongside the rest of your technical SEO checklist.
Frequently asked questions
What is a soft 404?
A soft 404 is a page that shows a user-friendly “not found” message without returning a 404 HTTP response code, so the server reports success while the content says the page is missing. Google also reports a soft 404 when a page returns a 2xx status but the content looks like an error or an empty page. The mismatch means Google keeps crawling and may index a page you consider dead.
How do I fix a soft 404?
It depends on the cause. If the page is genuinely gone, Google recommends returning a 404 response code, or a 410 to signal permanence. If the page is real but looks empty, Google’s advice is to add more information so it is clearly not an error. If it moved, redirect it to the specific replacement page rather than to the homepage.
Are soft 404s bad for SEO?
They are a housekeeping problem rather than a penalty, and the harm scales with how many you have. A couple on a small site is not worth worrying about. A large number means crawling is being spent on pages that lead nowhere, which competes with the pages you actually want indexed.
Why does Search Console still show a soft 404 I already fixed?
Because the report reflects the last time Google crawled that URL, which can be months ago, rather than what your server returns today. Always check the current response first, with a live URL inspection or by reading the status code directly, before editing anything. If the URL already returns a proper 404, the fix is done and you only need to validate it.
How long does Validate Fix take for soft 404s?
Google says validation typically takes up to about two weeks, and in some cases considerably longer. Start it only once every affected URL returns the right status, then leave it alone, since restarting validation does not make it faster. If it fails, Google names the URL that failed, which is more useful than guessing.
Does redirecting a deleted page to the homepage cause a soft 404?
Often, yes. Google tends to treat a redirect to a page that does not answer the original request as a soft 404, because the destination is not a replacement for what was asked for. Redirect to the closest genuine equivalent, and if there is no equivalent, let the URL return a proper 404 instead.
