Skip to content

Soft 404

The page loads, the server says 200, and Google still treats it as missing. How to see what Google saw, and the right fix for each cause.

Soft 404 means a URL returned 200 OK, the code for “here is the page”, but what Google received looked like an error, an empty page or a “not found” message. Google believes the content over the status code and leaves the URL out of the index. Google’s Page indexing help gives the two answers: return a real 404 for pages that are truly gone, and add content to pages that are real but look empty.

Which of the two applies depends on a question the report cannot answer for you: is this page supposed to exist?

First, see what Google saw

Open the URL in URL Inspection, run Test live URL, then View tested page. You get the HTML Google rendered and a screenshot. Compare it with what you see in a browser.

What the tested page showsWhat it means
A “not found”, “no results” or “unavailable” messageThe page is gone or empty, and says so. Google read it correctly
A blank page, or the layout with no content in itYour content is loaded by JavaScript that failed for Googlebot
The full page, as you see itThe page is thin: too little on it that is not template

The causes, and the fix for each

The page is gone, but the server still says 200

A deleted product, a removed post or an expired listing shows your “not found” template with a 200 status. This is the textbook case. Make the server return 404 for it; 410 works too, and Google treats the two the same. The URL then moves to Not found (404), which is the correct place for a page that does not exist.

If the content moved, 301 the old URL to the page that replaced it. Do not redirect it to the homepage or to a category that does not mention it: Google reads a redirect to an unrelated page as a soft 404 too.

A listing with nothing in it

A category with no products, a tag with no posts, an internal search with no results. They return 200 and show an empty grid. Either return 404 when the list is empty, or noindex these pages while they have nothing to show. Search result pages generally should not be indexable at all.

Out of stock

A product page that says “unavailable” and nothing else looks like an error. If the product is coming back, keep the page useful: the description, the specifications, a restock date, similar products. If it is gone for good, treat it as a removed page.

The content does not render for Google

The browser shows a full page; the tested page is empty. Common reasons are an API call that fails for Googlebot, a script or API path blocked in robots.txt, or content that loads only after a click or a scroll. Page resources and JavaScript console messages in the live test usually name the culprit. Fix the rendering, not the status code.

The page is real, just thin

The tested page matches the browser, and there is still very little on it: a heading, a stock photo, a contact form. Google has decided there is nothing to index. Add what the page is for, or merge it into a page that has it.

What not to do

  • Do not add filler. A few paragraphs of generic text around an empty listing do not make it a page anyone wants to find.
  • Do not leave error pages at 200. A site-wide “not found” template that returns 200 turns every typo and every dead link into a URL Google has to judge for itself.
  • Do not chase the count to zero. If the URLs are genuinely gone, a 404 moves them out of this report and into another one. That is the fix working.

After the fix

Run the live test again: a removed page should now report 404, and a real page should render with its content. For a real page, Request indexing once. Then check whether it actually came back, because a clean live test is not the same as being indexed. How to check if a page is indexed covers the ways to do that and which ones tell you the truth.

When the answer is a different status

If Google rendered the page fine and still left it out, see crawled – currently not indexed. If the URL redirects, the story is in page with redirect, and the full list of causes is in why is my page not indexed.

indexaction on Facebook Message indexaction on Telegram Email [email protected]