Soft 404 errors
The status-code lie behind the flag, the four things that trigger it, and the honest 404 or precise 301 that resolves each case.
A soft 404 is a page that tells people it is missing or empty while telling Google it is perfectly fine. It returns an HTTP 200 OK status — the code for a healthy page — even though there is nothing useful on it. Google notices the mismatch between the status code and the content, and excludes the page as a “soft 404.” The fix is almost always to make the status code tell the truth.
What triggers a soft 404
A missing page served with 200. The most common case: a page that no longer exists shows a “not found” message to visitors but still returns 200 OK. To Google the status says “this is a real page,” while the content says otherwise.
Empty or near-empty content. An empty category, a tag page with no posts, a search-results page with no results, or an out-of-stock product with nothing else on it can all read as “no real content here” even though the URL works.
A JavaScript app that never loads its content. If a page renders an empty shell and fills it in with JavaScript that fails, times out, or is blocked, Google may see a blank page and call it a soft 404 — see JavaScript SEO and rendering.
A blanket redirect to the homepage. Redirecting every dead URL to the homepage looks tidy but backfires: Google recognizes that the target is not an equivalent page and files the original as a soft 404 anyway.
Why Google flags it
Crawling costs Google resources, and a soft 404 spends them on a page with nothing to offer. Left unchecked, these pages clutter the index with dead or empty URLs and waste the crawl budget your real pages need. Flagging them is Google’s way of declining to index a page whose status code is not honest about its state.
How to fix it, by cause
The page is genuinely gone. Return a real 404 (not found) or 410 (gone) status. This is correct, not something to avoid — a real 404 tells Google to stop crawling a dead URL, which is exactly what you want.
The content moved. Use a 301 redirect to the specific equivalent page, not a blanket redirect to the homepage. A precise redirect passes the signals along; a homepage catch-all becomes a soft 404.
The page should exist but is thin. Add the real content it is missing. If it is a legitimately empty state you want to keep — an out-of-stock product you will restock — either add genuine value (related items, alternatives) or noindex it until it has something to say.
The content is rendered by JavaScript. Make sure the main content is in the server-rendered HTML or that Google can render it, so the page is not a blank shell when crawled.
Verify the status code
You cannot tell a soft 404 from a healthy page by looking at it — the whole problem is invisible in the browser. Use the HTTP header checker to read the status code the server actually returns: a page that should be missing must return 404 or 410, not 200. Confirm the page is otherwise indexable once you expect it to rank, and use the broken link checker to find the dead internal links that are sending crawlers to these URLs in the first place.
For how soft 404s sit alongside real 404s and the other statuses, see the Page indexing report reference, or run a full site check.
Frequently asked questions
- What is a soft 404?
- A soft 404 is a page that looks empty or missing to visitors but returns an HTTP 200 OK status to Google instead of a real 404. Google detects the mismatch between the healthy status code and the absent content, and excludes the page rather than indexing it. The fix is to make the status code match reality.
- What causes a soft 404?
- Four common causes: a missing page that shows a 'not found' message but still returns 200; an empty or near-empty page such as an empty category or out-of-stock product; a JavaScript page that renders a blank shell because its content fails to load; and a blanket redirect of all dead URLs to the homepage, which Google treats as a soft 404 because the target is not an equivalent page.
- How do I fix a soft 404?
- Match the status code to reality. If the page is gone, return a real 404 or 410. If the content moved, use a 301 redirect to the specific equivalent page rather than the homepage. If the page should exist but is thin, add real content or noindex it. If the content is rendered by JavaScript, make sure it is present in the HTML Google can read.
- Is returning a 404 bad for SEO?
- No. A real 404 or 410 for a page that genuinely no longer exists is correct and healthy — it tells Google to stop crawling a dead URL and consolidates attention on your live pages. The problem is not the 404 itself; it is serving a 200 OK for a page that has no content. An honest 404 is the fix, not the fault.
- Why is redirecting dead pages to my homepage a problem?
- Because Google recognizes that the homepage is not an equivalent replacement for the missing page and classifies the original as a soft 404 anyway, so the redirect gains you nothing. Redirect a moved page to its specific equivalent, and let genuinely dead pages return a real 404 or 410 instead of funneling them all to the homepage.
- How do I check whether a page is a soft 404?
- Check the HTTP status code the server returns, because the problem is invisible in the browser. Use an HTTP header checker: a page that should be missing must return 404 or 410, not 200. If an empty or missing page returns 200 OK, that is the soft 404, and correcting the status code or adding real content resolves it.