Technical SEO / indexing diagnosis

Soft 404 Errors: Diagnose the Page Before You Redirect It

Confirm what the server returns, what Google can render, and what the URL should do before restoring content, returning a true missing status, or redirecting it.

A hotel desk manager diagnosing a page that appears successful but contains no usable record

Direct answer: a soft 404 occurs when Google interprets a URL as an error page even though the response does not return a true missing-page status. The common pattern is 200 OK plus a “not found” message, an empty template, or no usable main content. Confirm the response and rendered page first. Then restore the intended content, return 404 or 410, redirect to a genuinely relevant replacement, or keep the page if the diagnosis is wrong.

This guide owns one narrow job: resolving a URL that behaves like a missing or empty page while its technical response suggests success. It is not a general HTTP status glossary, and it does not replace the broader Crawled - currently not indexed diagnosis for a complete, useful page.

Recognize the pattern before changing the URL

“Soft 404” is Google's interpretation of the page, not an HTTP status emitted by your server. Google says its systems can classify a page this way when the content indicates that the resource does not exist, when the page is empty, or when important content cannot load. That means the same report label can point to a real missing page, a template defect, a failed API request, or a page whose main value is absent during rendering.

Observed stateLikely meaningFirst action
200 plus a visible “not found” messageThe application presents an error while the server reports successDecide whether the URL is gone, moved, or should still exist
200 plus a shell with no main contentA template, data source, include, or rendered resource may have failedInspect the rendered HTML, screenshot, console, and network dependencies
200 plus a valid but intentionally sparse pageThe page may be valid, or Google may be reading weak error-like signalsVerify the purpose and whether the essential answer is actually present
301 to the homepage or an unrelated categoryThe redirect destination does not satisfy the old URL's intentChoose a relevant replacement or return a real missing status
Helpful custom error design plus actual 404The server and page agree that the resource is missingKeep it unless navigation or stale-link cleanup still needs work

A custom 404 page is not a soft 404 merely because it looks friendly. The problem is a mismatch between the response, rendered content, and real state of the resource.

1. Define the intended outcome

Before opening Search Console, state what should be true for a visitor requesting the exact URL. Does a current page belong there? Has the resource permanently moved? Is it intentionally gone? Is the route valid for users but not useful as a search landing page? The correct technical outcome follows that product and content decision.

Save the exact URL, expected page purpose, current owner, and closest possible replacement. Do not begin with “Where can I redirect it?” Redirecting is only one outcome, and it requires a destination that answers substantially the same need.

2. Capture the response and redirect chain

Request the exact production URL without relying only on the browser's visible design. Record the first response, every redirect hop, and the final response. Test representative variants if routing differs by trailing slash, letter case, parameters, device, language, authentication, or user agent.

Check headers and status outside the browser UI with your normal crawler, developer tools, or a command-line request. A polished error template can hide a 200; a visually normal shell can hide a failed main-content request.

3. Inspect what Google rendered

Open the exact URL in Search Console's URL Inspection tool and run a live test when the page may have changed. Use View tested page to inspect the screenshot, rendered HTML, and loaded resources. The indexed view can reflect an older crawl, while the live test shows whether Google can currently fetch and process the page. Neither view guarantees indexing.

Compare three versions side by side:

  1. The server response and initial HTML.
  2. The page after normal browser rendering.
  3. The HTML and screenshot shown by the live URL test.

Look for the actual heading, primary copy, product or category records, navigation context, and useful links. A title tag and shared layout are not enough if the main content is missing. Also look for explicit error phrases, zero-result messages, placeholder copy, and a canonical that points somewhere unexpected.

4. Find the cause behind the false success

Fix the cause that produces the empty or error-like response. Common failures include a missing server-side include, database lookup returning no record, a client-side request failing, blocked JavaScript or CSS, a route that always serves the application shell, and an internal search or category template that returns 200 for every empty result.

Reproduce the failure at the template or route level. If several URLs share it, repair the generator or server rule rather than editing examples one by one.

5. Choose the correct outcome

Real page stateCorrect outcomeImplementation
The intended content still existsRestoreRepair content, data, and required resources; return a complete 200
The resource is permanently gone and has no replacementRemoveReturn 404 or 410; remove stale sitemap entries and internal links
The resource permanently moved to a close replacementRedirectUse one server-side permanent redirect to the relevant final 200 URL
The page is valid for users but should not appear in searchKeep outside searchReturn useful content with 200, allow crawling, apply noindex, and remove it from the sitemap
The page is useful and the soft 404 classification appears wrongKeep and clarifyPreserve the URL, ensure the core answer renders, and remove misleading error-like signals

For a client-side application, prefer a server or edge response that returns the correct status for unknown routes. Google's JavaScript SEO guidance describes two fallbacks when that is not feasible: redirect the failed route to a server-handled 404 page, or add noindex dynamically on the error view. A real server status is easier to reason about and validate.

If the page is intentionally retired, use the old page decision framework to include demand, links, business value, and replacement intent. Do not preserve an empty 200 simply because the URL once had traffic.

6. Fix the template or inventory source

A complete repair aligns all systems that describe the URL. Update internal links, navigation, sitemap generation, canonicals, structured data, feeds, inventory records, and redirects to reflect the chosen outcome. A deleted URL should not remain in a canonical sitemap. A restored page should not keep an error heading. A redirect source should not remain the preferred internal destination.

For ecommerce and directory sites, define states explicitly. An out-of-stock item may remain useful when it contains real product information, availability context, and alternatives. A permanently discontinued item with no useful ongoing purpose may need removal. An empty category may need inventory restored, a useful explanation and alternatives, or a missing status if the category itself no longer exists.

7. Validate locally and in Search Console

Test the implemented outcome before asking Google to recrawl it. Confirm the first response and final destination, then inspect the rendered body at mobile and desktop sizes. Validate a representative set if a shared rule changed many URLs.

Then run a live URL test. Request indexing only for a restored or corrected page that should be indexed. For a removed URL, let the correct response and cleaned discovery signals communicate the change. Search Console reports can lag, so record the implementation date and verify the live state instead of repeatedly changing a correct fix.

Mistakes that create or preserve soft 404s

Legitimate 404 responses are normal web maintenance. The goal is not to eliminate every missing URL. The goal is to make the server, page content, and real resource state tell the same story.

Evidence basis

Google Search Central and Search Console documentation were checked on August 30, 2026. The diagnosis order and outcome matrix are FloxoLab implementation frameworks, not a claim that one report proves the underlying cause.

Need the false-success pages separated from real 404s?

FloxoLab can trace response, rendering, template, and inventory evidence, then map each URL pattern to the correct implementation.

Explore the SEO audit