Soft 404
Definition
The status line and the page body disagree. A visitor sees 'Sorry, this page no longer exists', but the server sent 200 OK, so every machine reading the response treats the URL as a live page with content. Google detects this on its own and files the URL under 'Soft 404' in the Pages report of Search Console. It applies the same label to pages that return 200 with almost nothing on them, because an effectively blank page and a missing one look the same from outside. A redirect can earn the label too: sending every dead URL to the home page is treated as a soft 404, since the destination is not a replacement for what was asked for.
Why It Matters
Machines rely on the status code because it is the only part of the response they can trust without reading English. A correct 404 tells the crawler to stop coming back and tells a link checker the link is broken. A soft 404 tells them both that a real page exists, so the URL stays in the queue and gets refetched for months. On a site with a few dead URLs that is invisible; on one with thousands — an out-of-stock catalogue, a decommissioned docs section — it is a steady drain on crawl budget spent on pages that will never have content.
How It Works
Return 404 when the URL has no content and you are not saying why, or 410 Gone when you removed it deliberately and it is not coming back; Google treats 410 as slightly more final but processes both similarly. Serve a helpful body with that status — a custom 404 page with a search box and links to the main sections is perfectly compatible with a 404 code, since the status is in the headers and the body is free. Where a genuine successor exists, use a 301 redirect to that specific page, not a blanket redirect to the home page. The classic source of the problem is client-side routing: an SPA fallback that serves index.html for every unmatched path returns 200 for every address on the site by design, and the router then draws a not-found screen inside a successful response.
Real-World Example
A team uploads a single-page app to 99helpers at ferrous-app.99helpers.site, where any unknown path falls back to index.html so the client-side router can handle it. Six weeks later Search Console lists 400 soft 404s, all of them mistyped or long-dead URLs that returned 200 with a 'Page not found' panel drawn by JavaScript. Replacing the catch-all with a real 404 response for paths that are not routes cuts the list to nothing, and the crawler stops revisiting addresses that were never pages.
Common Mistakes
- ✕Redirecting every dead URL to the home page — Google classifies that as a soft 404 too, because the home page does not answer the request
- ✕Assuming a friendly error page means a correct response — the words on the page and the status in the header are independent, and only the header is read by machines
- ✕Blocking the failing URLs in robots.txt — the crawler then cannot see the 404 either, so the URLs linger instead of dropping out
- ✕Publishing category or listing pages with no items yet — an empty page returning 200 gets the same label as a missing one
Related Terms
Crawl Budget
Crawl budget is the number of URLs a search engine is willing and able to fetch from one site in a given period. For most sites it is not a real constraint.
Custom 404 Page
A custom 404 page is the page a site shows when someone asks for an address that does not exist, written by you rather than left to the host's default. It is returned with a 404 status code.
HTTP Status Code
An HTTP status code is the three-digit number a server returns at the head of every response, saying what happened to the request. It is the first thing on the first line — a 200 means here is the file, a 404 means there is nothing at that address.
SPA Fallback
An SPA fallback is a host rule that returns the site's index.html for any path matching no real file, so a single-page application can handle the address itself. It is what stops a deep link returning a not-found error.
301 Redirect
A 301 redirect is a response telling the browser that a page has moved permanently and giving the new address. The old URL keeps working for anyone who follows the old link, but everything that matters now lives at the new one.
Put a file online in seconds
Drop in a document, an image, a page or a whole static website and share the link — free, with no build step and no server to set up.
Host a file free →