Diagnostic brief · SEO
Do not treat every flagged URL as a missing page. Reconcile the intended state, the HTTP response and the main content Google actually renders.
200 OKproves transport, not existenceGoogle can successfully fetch a URL and still conclude that the returned page looks empty, broken or equivalent to “not found.”- The intended state decides the repairUse 404 or 410 for a page that is gone, 301 for a true replacement, and keep 200 only when a useful page genuinely remains.
- Rendered main content is the missing observationA browser view and an origin header are insufficient when JavaScript, blocked resources or an upstream failure leave Google with a blank result.
- Validate a repaired pattern, not a hopeful exceptionFix every URL produced by the same template or rule before asking Search Console to validate the issue group.
A soft 404 in Google Search Console is often described as a wrong status code. That is only half the diagnosis. The server can return 200 OK, complete the request without a network error and still deliver a page whose visible meaning is “nothing useful exists here.” Google calls the response soft 404 because the transport layer says success while the interpreted page behaves like absence.
The distinction prevents two expensive mistakes. One is converting every affected URL to a hard 404, including pages that should exist but failed to render for Googlebot. The other is keeping 200 on deleted products, empty search results or placeholder profiles because the template itself loaded correctly. The right fix begins before the status code: decide what the URL is supposed to represent.
The server completed a request and supplied a response body.
The main content is absent, error-like or too empty to support the URL's claimed purpose.
A 200 response can still describe non-existence
Google's HTTP documentation says that a 2xx response passes content to the next processing stage; it does not guarantee indexing. If that content looks like an error, an empty page or a missing main experience, Search Console can classify the URL as soft 404. In other words, the classification is not a protocol contradiction. It is a content judgment made after a technically successful fetch.
This is why a command-line header check is necessary but not decisive. A head request may confirm 200 while the document body contains “No results,” the product component never hydrates, a profile has no public fields, or the application shell waits for an API that failed. A monitoring system that records only uptime sees success. A crawler that must decide whether a useful page exists sees absence.

The same label requires four different repairs
Start with the product or editorial decision, not Search Console. If the URL represents something permanently removed with no close replacement, return 404 or 410. Google treats both as evidence that the content does not exist and will remove an already indexed URL over time. A custom error page can still help visitors navigate, but the response must remain a real 404 rather than a friendly 200.
If the page moved and there is a genuinely equivalent destination, use a permanent 301 redirect. Do not redirect every discontinued product or deleted post to a category page merely to avoid a 404. A redirect is a statement that the destination replaces the requested resource. When that statement is false, users land on an irrelevant page and the original soft-404 ambiguity has only been moved into a different response.
If the page still exists, keep 200 and investigate what Google receives. Google's own guidance lists missing JavaScript, blocked resources, database problems and failed server-side includes among the causes. The rendered page may be blank only for a mobile crawler, only before consent state settles, or only when an API times out. This is a delivery defect, not a reason to delete the URL.
The final case is harder: the template works, but the main content is genuinely thin or empty. An internal search result with no matches, a location page with only a heading, or thousands of automatically generated combinations can all return 200 without answering a user need. The fix is not to add decorative words. Either give the page a distinct, useful purpose or stop asking Google to treat it as an indexable destination. This is where the broader inventory problem discussed in our analysis of zombie content begins, but it is not the starting diagnosis for every soft 404.
Three observations resolve the disagreement
Capture them for the same URL and the same test moment. Mixing an old Search Console crawl with today's browser response produces a false comparison.
Owner decision, inventory state and the closest legitimate replacement.
Final status, redirect chain, response body and any intermittent upstream error.
Google's screenshot, rendered HTML, loaded resources and console output.
Run the diagnosis on one representative URL
Search Console's Page indexing report groups URLs by a detected reason, but the example list is a sample rather than a complete inventory. Choose one URL from a coherent pattern: one product template, one search-results type, one location route or one JavaScript application state. Inspecting a mixture of unrelated URLs makes it impossible to connect one observation to one cause.
First record the indexed result and its last crawl date. Then run the live URL test and open the tested page. Compare the response, rendered HTML and screenshot. The live test is useful precisely because the indexed evidence may be older than the deployed fix. It does not, however, reproduce every indexing decision or promise that a valid page will enter the index.
Finally, verify the origin independently. Follow the full redirect chain, inspect the body returned to a mobile user agent and compare server logs for the inspection request. Server-log analysis can prove which URL Google requested and how the host answered; it cannot prove that the rendered content was meaningful. For JavaScript sites, pair the log with the rendering checks in our client-side rendering guide.
Representative-URL worksheet
What each observation can actually prove
| Observation | Capture | Useful conclusion | It cannot prove |
|---|---|---|---|
| Intended state | Owner decision, inventory record, replacement URL | Whether the URL should resolve, redirect or disappear | What Google rendered |
| Origin response | Final HTTP status, redirect chain, body, timing | Whether transport and routing match the intended state | Whether JavaScript created useful content |
| Google render | Live-test screenshot, HTML, resources, console | Whether meaningful main content reached the inspection renderer | Future indexing or ranking |
| Pattern sample | Several URLs from one generator or template | Whether a fix belongs in content, code or routing | That unrelated soft 404s share the cause |
Fix the generator before validating the examples
A soft 404 is often produced by a rule rather than by an isolated document. A faceted route generates empty combinations, an expired-item template always returns 200, a front-end router catches unknown paths, or an API failure leaves every profile shell blank. Repair the generator, then test a small set that includes a normal page, an empty case, a removed case and a moved case. The negative controls matter: a fix that makes every path return 200 is not a fix.
Only after the pattern behaves correctly should you click Validate fix. Search Console explains that validation checks known instances and can stop when it finds a remaining affected URL. Repeatedly restarting validation does not repair a template and can make the operational history harder to interpret. Deploy once, confirm representative URLs, then let the recrawl workflow evaluate the group.
Questions about soft 404 errors
Is a soft 404 the same as a 404 status code?
No. A normal 404 is an explicit server response. A soft 404 usually returns success while Google interprets the content as missing, empty or error-like.
Should every soft 404 return 404 or 410?
Only when the resource is truly gone with no suitable replacement. A moved page should redirect, while an existing page with broken rendering should keep 200 and have its content delivery repaired.
Can JavaScript cause a soft 404?
Yes. Google lists missing or unloaded JavaScript among possible causes. Inspect the rendered HTML, screenshot, resources and console rather than relying on the initial HTML shell.
How soon should I click Validate fix?
After the underlying pattern is fixed and representative live tests show the intended status and content. Search Console validation may take up to about two weeks or longer.
Official Google sources
Google materials checked 30 August 2026
- Troubleshoot Google Search crawling errors, Google Search Central, including the soft-404 diagnostic and remedies.
- How HTTP status codes affect Google's crawlers, Google Crawling Infrastructure, updated 4 February 2026.
- Page indexing report, Google Search Console Help, including the Soft 404 reason and validation workflow.
- URL Inspection tool, Google Search Console Help, including live rendering and test limitations.
- 404 (Page Not Found) errors, Google Search Console Help.




