Check a URL
ENRU
Open the bot Open bot

Soft 404 errors: what they are and how to fix them

A soft 404 is a page that says "everything's fine" with a 200 status code while showing something that looks like an error or an empty page. Google treats it as missing and leaves it out of the index. Here's how to spot the causes and fix them the right way.

Updated 7 min readIndex Forge

A soft 404 is a URL that returns status 200 but shows content that looks like an error, an empty result or almost nothing. Google detects this and treats the page as not found, so it isn't indexed. Fix it by returning a real 404 or 410 for pages that don't exist, redirecting moved content to its new URL, or adding real content to pages that should exist.

Why soft 404s happen

CauseExampleFix
Custom "not found" page with status 200The template shows an error but the server says OKReturn a real 404 status
Empty category or search result"No products found"Noindex empty states, or 404 when the category no longer exists
Out-of-stock product with no contentOnly a title and "unavailable"Keep useful content, link to alternatives, or redirect if gone for good
Very thin pagesA few words and a templateAdd real content or remove the page
Redirects to the homepageDeleted pages sent to /Redirect to a relevant page, or return 404/410
Content loaded only by JavaScript, failing for GooglebotRendered page is emptyServe key content in the HTML; check the rendered view

How to find soft 404s

  1. Open the Page indexing report in Search Console and look for Soft 404.
  2. Open a few examples with URL Inspection and look at the rendered page.
  3. Group them by template: categories, products, search pages, old articles.
  4. Fix the template, not each URL one by one.

Choosing the right fix

  • The page should exist and has value: add substantial content, then request reindexing.
  • The content moved: 301 redirect to the specific new URL, not to the homepage.
  • The content is gone for good: return 404 or 410. That's a correct answer, not an error to hide.
  • The page is useful for users but not for search: keep it and add noindex.

Why redirecting everything to the homepage doesn't help

It's a common shortcut after a site cleanup. Google often treats mass redirects of unrelated pages to the homepage as soft 404s anyway, so you gain nothing and confuse users who expected the original content.

Soft 404s and indexing services

Status-code checks can't catch soft 404s, because the server says 200. That's a limit of any automated check, including ours: @IndexForgeBot filters real 404s, redirects, noindex, robots.txt blocks and foreign canonicals, but a page that returns 200 with almost nothing on it will pass the check and still likely be dropped by Google. Fix thin and empty pages before sending them.

Soft 404 or crawled – not indexed?

The two are related. A soft 404 is Google saying "this looks like an error page". "Crawled – currently not indexed" is Google saying "this is a real page, but not worth keeping". Thin pages can land in either one. See the guide on crawled – not indexed for the quality side.

How to test a template before it goes live

Most soft 404s come from templates, so test the template states, not individual URLs. Open an empty category, a search with no results, a deleted product and a removed article on a staging copy, and check two things for each: the status code the server returns, and what the rendered page actually shows. Every state that shows "nothing here" should either return a real 404 or 410, or carry noindex if users need it. Fixing this once in the template prevents thousands of soft 404s later.

Validating the fix

After you change the template, use "Validate fix" on the Soft 404 issue in Search Console. Google rechecks the affected URLs over the following days or weeks. URLs that now return 404 move to "Not found", which is the correct outcome for pages that don't exist. Pages that got real content should move into the index after recrawling.

Soft 404s in online shops

Shops produce soft 404s at scale: discontinued products, empty filters, seasonal categories, search pages. A sensible policy:

  • Discontinued product with a replacement: 301 to the replacement.
  • Discontinued with no replacement but useful information: keep, mark unavailable, link alternatives.
  • Gone with nothing useful: 404 or 410.
  • Temporarily out of stock: keep the page as is, with a clear status.
  • Empty filter results: noindex, or don't link to empty combinations.

Soft 404s on JavaScript sites

If content is loaded by JavaScript and the request fails for Googlebot, or takes too long, the rendered page can look empty. Google then flags it as a soft 404 even though users see everything. Check the rendered HTML and screenshot in URL Inspection. Serving the main content in the initial HTML avoids the problem.

Is a real 404 bad for SEO?

No. A 404 for a page that doesn't exist is the correct answer. Google drops it from the index and moves on. Problems come from 404s on pages that should exist, and from links pointing to 404s, which waste the link. Converting real 404s into fake 200s only creates soft 404s.

Finding soft 404 candidates before Google does

  • Crawl your site and sort pages by word count. Very short pages are candidates.
  • Look for identical titles like "Not found" or "No results" on 200 pages.
  • Check templates for empty states: categories, tags, search, out-of-stock products.

When Google gets it wrong

Occasionally a legitimate short page, like a contact page or a product with little text, is flagged. Add context that makes the page clearly useful, then request reindexing. If it's flagged again and the page is fine for users, it may simply not be valuable enough to index, which is Google's call.

Status codes and what Google does with them

StatusGoogle's reaction
200Indexes the content, unless it looks empty (soft 404)
301, 308Indexes the target; treats the move as permanent
302, 307Follows; may keep the original URL longer
404, 410Drops the URL from the index
5xxRetries later; slows crawling if frequent

Custom 404 pages, done right

  • Return a real 404 status, not 200.
  • Explain that the page doesn't exist, in plain words.
  • Link to the homepage, search and main sections.
  • Keep the site's navigation so visitors don't leave.

A page that links to you can be a soft 404 too: an expired listing, an empty profile, a removed article replaced by a generic "not available" message. The server still returns 200, so automated checks pass, but Google treats the page as missing and your link with it. When a backlink stays unindexed and every technical check passes, open the page and look at what it actually shows.

Soft 404 checklist

  • Missing pages return 404 or 410, not 200
  • Empty states are noindexed or not linked
  • Deleted content redirects to a relevant page, not the homepage
  • Thin pages get real content or are removed
  • Main content is present in the initial HTML

Soft 404s after a site migration

Migrations produce soft 404s in two ways. Old URLs without a matching new page get redirected to the homepage or a top category, which Google often treats as a soft 404. And new pages that load content from an API that isn't ready yet show empty templates for the first crawls. Map old URLs to their closest real equivalent, return 404 or 410 when there isn't one, and check rendered pages on the live site, not only on staging, right after the switch.

How soft 404s affect crawling

Each soft 404 is a URL that Google fetches, renders and then discards. On a small site this costs little. On a site with thousands of empty filter pages or expired listings, it takes crawl time away from pages that should be indexed, and new content gets discovered more slowly. Returning real status codes lets Google stop visiting those URLs as often.

Soft 404s in search features

Pages flagged as soft 404 don't appear in regular results, image results or other features. If you notice an important page missing everywhere, check the Page indexing report for this status before looking for ranking problems.

A quick test with curl

curl -s -o /dev/null -w "%{http_code}\n" https://yoursite.com/this-page-does-not-exist

If a made-up URL returns 200 instead of 404, your site creates soft 404s for every mistyped link. Fix the server or CMS setting before anything else.

Common questions

Are soft 404s bad for my site?

They waste crawl time and keep those URLs out of the index. A handful is normal; thousands point to a template problem.

Should I return 404 or 410 for deleted pages?

Both work. 410 says "gone on purpose" and may drop out slightly faster. 404 is fine for most cases.

Can a soft 404 come back as indexed?

Yes, once the page has real content and Google recrawls it.

Why does Google flag a page that has content?

The content may be too small relative to the template, or the rendered version Googlebot sees may differ from what you see in a browser.

Have links stuck outside the index?The bot checks every URL first and charges $0.01 only for links that go through. 10 free to start.

Open the bot

Your next 10 links
are on us

Open the bot, paste links and see what passes the check. No card, no sign-up form.

Open the bot · 10 links free