# Soft 404

A soft 404 is a page that answers with a success status, 200, while being an error or an empty page to a reader. Google reads the page, decides it is not really there, and drops the URL from the index. The status code lying is the whole problem.

Updated 2026-09-15 · Source: https://porteur.ai/glossary/soft-404

## What makes a 404 soft

Google detects a soft 404 by reading the page, not by trusting the header. Four shapes trigger it.

- A page that prints "not found" or "this product is no longer available" and returns 200.
- A redirect to the home page in place of a missing page, which answers 200 on a page that has nothing to do with the URL requested.
- An empty category, an empty search result, or a listing with no items.
- A page whose content failed to load, leaving a shell that returns 200 with nothing in it.

> The last one is the trap on a JavaScript site: a failed data fetch renders an empty template, the server still answers 200, and Google files the URL as a soft 404.

## Where you see them

The Page indexing report in Search Console lists them under Not indexed, with the reason Soft 404 and a sample of up to a thousand URLs. The URL Inspection tool says the same thing for one URL.

One soft 404 on a page you deleted is noise. The same reason across twenty URLs of one template is a decision to make about that template.

## The fix, by cause

| What you have | What to return | Why |
| --- | --- | --- |
| A page that no longer exists | 404, or 410 when you deleted it on purpose | Google drops the URL cleanly instead of judging the page |
| A page with an equivalent elsewhere | 301 to that page | The old URL hands its standing to the new one |
| An empty category or list | 200 with real content, or noindex | A page with nothing on it earns nothing either way |
| A shell left by a failed fetch | A real error status from the server | A 200 on a broken render pollutes the index |
| Anything redirected to the home page | One of the four rows above | A blanket redirect to the home page is itself a soft 404 pattern |

## How to avoid creating them

1. **Make the framework answer with the right status** A missing record should render the not-found page and return 404, not a 200 with an apology on it.
2. **Never redirect missing pages to the home page** Redirect to the closest equivalent, or let the URL 404. A visitor who wanted /pricing does not want the home page.
3. **Give empty states a reason to exist** An empty category page can list the categories that do have items, or carry noindex until it does.
4. **Check after a deploy** Request one deleted URL with curl and read the status line. A crawler over the whole site catches the rest.

## Questions

### What does soft 404 mean in Search Console?

Google fetched the URL, got a success status, read the page, and concluded it is missing or empty. It reports the URL as not indexed with the reason Soft 404.

### Is a soft 404 bad for SEO?

It is not a penalty. It wastes crawling on URLs that answer nothing, and it hides real problems: a template that renders empty pages will show the same reason across many URLs.

### How do I fix a soft 404?

Decide what the URL should be. If the page is gone, return 404 or 410. If an equivalent exists, redirect to it with a 301. If the page should exist, give it content.

### Should I redirect a missing page to my home page?

No. Google treats a redirect to an unrelated home page as a soft 404, and the visitor loses the thread. Redirect to the closest equivalent page or return a real 404.

### Can an empty search results page be a soft 404?

Yes, and search result pages are usually better kept out of the index entirely with noindex, since they duplicate the pages they list.

## Read next

- [Soft 404: when a page says 200 and Google reads not found](https://porteur.ai/guides/soft-404): Soft 404 means your server says 200 but the page reads like an error or empty. See where it shows in Search Console and fix each case fast.
- [410 Gone](https://porteur.ai/glossary/410-gone): 410 Gone means you deleted a URL on purpose and it will not return. Here is when to use 410 vs 404 or 301, how Google treats it, and what to fix.
- [How to fix 404 errors reported in Search Console](https://porteur.ai/guides/how-to-fix-404-errors-in-google-search-console): Decide which 404s to fix, find the ones with links or traffic, choose redirect, restore or 410, clean internal links and sitemaps, and revalidate.
- [Index coverage](https://porteur.ai/glossary/index-coverage): Index coverage is the old name of the Search Console report now called Page indexing. What it lists, which reasons to act on, and how to read the trend.
- [Crawl error](https://porteur.ai/glossary/crawl-error): A crawl error is a failure to fetch a URL: a 5xx, a timeout, a DNS failure, an unreachable robots.txt. Which ones matter, where they show, and the fix.
- [Delete or redirect an old page: 301, 404 or 410](https://porteur.ai/guides/delete-or-redirect-old-pages): Decide per page: 301 if a clear equivalent exists, else 404 or 410. Check links and clicks first, avoid home page redirects, and monitor what Google drops.
- [Thin content](https://porteur.ai/glossary/thin-content): Thin content is a page with little value of its own. See why it drags a small site, how to spot it, and how to expand, merge or remove.

The free check reads your site the way a crawler does and names the pages that answer nothing, in about thirty seconds. Free check: https://porteur.ai/
