Soft 404 (page returns 200 but looks empty)
Google judged a page as a "not found" experience even though the server returned HTTP 200, so it dropped the URL from the index.
What you see
Page indexing Why pages aren't indexed Soft 404 Reason: Soft 404
What’s actually happening
In Search Console's Page Indexing report a batch of URLs shows up under "Soft 404," and those pages aren't indexed. The pages load fine in a browser and return 200, which is exactly the problem — Google looked at the content, decided it reads like an error or empty page, and overrode your status code. This hits empty search-result pages, category pages with no products, deleted items that still resolve, and thin placeholder pages. The fix depends entirely on whether the page should exist at all.
Common causes
- A deleted or out-of-stock product/page still returns 200 with a "sorry, nothing here" message instead of a real 404 or 410
- Empty list pages — a category, tag, search, or filter URL that renders the template but has zero results
- Thin content: a page with almost no unique text, or boilerplate that matches hundreds of other pages
- JavaScript that renders the real content after load, but fails or times out for Googlebot, leaving an empty shell at crawl time
- A custom error page that's served with a 200 status instead of being wired to the correct HTTP code
How to fix it
- Decide the page's fate: keep, redirect, or killFor each flagged URL ask whether it should still exist. Genuinely useful but thin → improve it. Permanently gone → 410. Moved or has a close equivalent → 301. Don't mass-redirect everything to the homepage; Google treats that as a soft 404 too.
- Return the right status code for gone pagesConfigure the server or framework to send 404 (gone, may return) or 410 (permanently gone) for missing resources. Verify with curl -I https://example.com/dead-url and confirm the first line says 404 or 410, not 200. 410 gets the URL dropped faster.
- Add real content to pages worth keepingBeef up thin pages with unique copy, images, internal links, and relevant structured data so they no longer read as empty. For category/search pages, show related items or popular links instead of a blank state, or noindex them if they're inherently empty.
- Check what Googlebot actually seesUse the URL Inspection tool's "View crawled page" / rendered HTML. If your content is injected by JS and the rendered HTML is blank, fix the rendering path (SSR, prerender, or fallback markup) so the page isn't empty at crawl time.
- Validate the fix in Search ConsoleOnce status codes and content are corrected, hit "Validate Fix" on the Soft 404 issue. Reprocessing takes days to weeks; leave the validation running rather than re-submitting repeatedly.
Stop it recurring
Wire your CMS so deleted and empty pages emit 404/410 automatically, and audit for 200-returning empty templates during releases.