What Is Soft 404?
A soft 404 is a URL that returns a success HTTP status code — typically 200 OK — while its content signals that the page does not exist, such as an empty page or a “not found” message. Because the status code and the visible content disagree, Google labels the URL a soft 404 and treats it as missing rather than indexing it.
- A soft 404 is defined by a contradiction: a success status code (200 OK) paired with content that indicates an error or missing page.
- Google flags soft 404s in Search Console’s Page Indexing report; the report describes the reason as a page that returns a user-friendly ‘not found’ message without an actual 404 HTTP response code.
- The fix is almost always to make the server return a real
404or410status code for the missing URL, so the header matches the content. - Common causes include thin or empty pages, soft error pages, mass-redirecting deleted URLs to the homepage, and out-of-stock or expired listings that render as blank.
- Soft 404s waste crawl budget, because Google must fetch and evaluate a page it ultimately decides is missing anyway.
How a Soft 404 Works
A soft 404 is not a status code — it is a diagnosis. It happens when a URL returns a success response, almost always 200 OK, while the content of the page communicates that there is nothing there. Google’s documentation describes the situation plainly: a soft 404 is shown when the content “suggests an error for Google Search, an empty page or an error message,” even though “the server responds with a 2xx success code.” The header and the body are telling opposite stories, and Google resolves the conflict by believing the body.
To understand why this matters, remember how a real 404 error is supposed to behave. The status code in the HTTP header is the machine-readable signal that a page is missing; Googlebot reads that code and drops the URL from the index cleanly. A soft 404 breaks that mechanism. The crawler receives a 200, which normally means “here is a valid page, index it” — but the content looks like an error. So Google cannot take the status code at face value, has to evaluate the content, and ultimately files the URL under “Soft 404” in the Page Indexing report rather than indexing it.
The cost is crawl budget. A clean 404 lets Google request a URL less and less over time. A soft 404 keeps looking like a live page, so the crawler keeps treating it as one — fetching it, rendering it, and re-evaluating it — spending resources it could have spent discovering pages you actually want in the index.
Common Causes of Soft 404s
Most soft 404s trace back to a handful of patterns:
- Blanket redirects to the homepage. Deleting pages and 301-redirecting all of them to
/produces a soft 404 for each, because the request for a specific dead URL now resolves to an unrelated 200-status page. - Empty or thin pages. A page that renders with no meaningful content — a bare template, a category with zero items — reads as an error to a crawler.
- Custom error pages served with a 200. A designer builds a nice “Page not found” page, but the server delivers it with a success code instead of a 404. The message says missing; the header says fine.
- Expired or out-of-stock listings. Product or event pages that render a blank shell after the item is gone look empty to Google even though the server returns 200.
Example of a Soft 404
The clearest documented example is the label itself, in Google Search Console’s Page Indexing report. When Google encounters a URL that fits the pattern, it lists it under the not-indexed reasons with the name “Soft 404.” The Help documentation defines that entry as a page that returns “a user-friendly ‘not found’ message without an actual 404 HTTP response code” — the exact contradiction described above, surfaced as a diagnosable status you can act on.
Walk through how a URL lands there. Suppose an e-commerce site discontinues a product at /shop/vintage-lamp and, instead of returning a 404, keeps the URL alive but renders an empty product template — no title, no price, no description, just the site chrome. The server sends HTTP/1.1 200 OK. Googlebot fetches the page, sees a success code, but finds content that reads as missing. Rather than index an empty page, Google files /shop/vintage-lamp under Soft 404 in the Page Indexing report and leaves it out of the index. The owner, checking the report, sees the flag and now has a concrete fix: configure the server to return a real 404 or 410 for discontinued products, or — if the lamp was replaced — 301 the URL to the genuine successor product, not the homepage. Either way, the header and the content stop contradicting each other, and the soft 404 clears.
The trap almost nobody sets on purpose but everybody falls into is the blanket homepage redirect. A developer deletes a batch of URLs, doesn’t want the "ugly" 404s, and 301s all of them to the homepage. Every one of those is now a soft 404 in Google’s eyes: the request for a specific dead page resolves to a 200-status homepage that has nothing to do with it. I have seen sites with thousands of these, all quietly draining crawl budget while the owner congratulates themselves on a clean error report. The other frequent culprit is subtler — an out-of-stock product page that renders an empty template with no product and no message. To a crawler that reads like an error even though the server proudly returns 200. When content says "nothing here," the status code has to agree. Anything else is a soft 404 waiting to be flagged.
Fixing Soft 404s
Every fix comes down to making the status code tell the truth about the content. If the page is genuinely gone, serve a real 404 error or, for permanent removals, a 410 Gone. If the content moved, 301-redirect the old URL to its true equivalent — the specific replacement page, never a catch-all homepage redirect. And if the page was only accidentally empty, add the content that should have been there so it is no longer error-like. Once the header and the body agree, Google can either index the page or drop it cleanly, and the soft-404 flag in your Page Indexing report disappears on the next crawl.
Frequently Asked Questions
What causes a soft 404?
How do I fix a soft 404?
Where does Google report soft 404s?
Do soft 404s hurt SEO?
The Bottom Line
A soft 404 is a lie the server tells by accident: the header says 200 OK while the page says there is nothing here. Google resolves the contradiction by trusting the content, flagging the URL as a soft 404 and declining to index it. The cure is to stop the contradiction — return a genuine 404 or 410 for pages that are gone, redirect moved pages to their real equivalents, and fill in pages that were only accidentally empty.
Sources
- Page Indexing report — Search Console Help — Google Search Console Help
- How HTTP status codes, and network and DNS errors affect Google Search — Google Search Central
Roborank audits your site for technical issues like soft 404s and misfiring redirects, and shows you which URLs return the wrong status code so you can serve an honest one.
Audit your status codes →Rank & Cash — the weekly SEO breakdown
One practical teardown a week on ranking in search and getting cited by AI. No fluff.
