Technical SEO guide

How to fix soft 404 errors

A soft 404 is a missing page that lies about itself — it says "not found" but returns a 200 OK status. Here is how to find them and fix them for good.

Updated May 2026 · All platforms · ~6 min read
Quick answer

A soft 404 is a page that should report "not found" but returns an HTTP 200 OK status instead of a real 404.

To fix it, make the server return a true 404 (or 410 Gone) status for missing URLs. The exact setting differs by platform, but the principle never changes: the status code must match reality. A page that is gone must say so in its status, not just in its text.

What a soft 404 is

Every HTTP response carries a status code — a number that tells browsers and search engines what happened. 200 means "here is the page you asked for." 404 means "that page does not exist." A soft 404 is the mismatch between the two: the page content says "not found," but the status code says 200 OK.

To a person it looks fine. To a search engine it is a contradiction — the crawler is told the page is valid and indexable, while the content is an error message with nothing to index. Google specifically flags these in Search Console under the label "Soft 404," because it has to guess what you actually meant.

How to find your soft 404s

There are three reliable ways to catch them.

1. Check the status code in your browser

Open a URL you know should not exist — for example yoursite.com/this-page-is-not-real. Open your browser's developer tools, go to the Network tab, reload the page, and click the first request. Look at the Status. If a clearly-missing page shows 200, that is a soft 404.

2. Use Google Search Console

In Search Console, open Indexing › Pages. Under "Why pages aren't indexed," look for the reason Soft 404. Google lists every URL it has classified that way — your exact to-fix list.

3. Run the free checker

The 404 Page Generator inspects your site as part of building a new 404 page: it requests a deliberately broken URL on your domain and reports whether the server answered with a real 404 or a soft 200 — so you find out in one step.

Why soft 404s hurt

The three common causes

1

Redirecting missing pages to the homepage

The most common cause. A plugin, rule, or "helpful" setting catches every unknown URL and redirects it to the homepage. That returns a 200 or 301 — so a missing page reports as found, and the visitor lands somewhere with no explanation of what happened.

2

JavaScript routing that returns 200

Single-page apps (React, Vue, and similar) often serve the same index.html with a 200 status for every path, then let client-side JavaScript decide what to render. When the router shows a "not found" view, the server already answered 200 — a soft 404 by construction.

3

Thin or empty pages

A page that loads successfully but has almost no content — an empty category, a search results page with zero results, an unfinished template — can be classified as a soft 404 even though you never intended it as an error page. The fix here is either real content or a real 404.

How to fix soft 404s on your platform

The goal is the same everywhere: missing URLs must return a real 404 status (or 410). Here is how, by platform.

Cloudflare Pages / Workers

Serve a 404.html and set not-found handling so unmatched routes return it with a 404 status. With Workers static assets, set not_found_handling = "404-page" in wrangler.toml.

Apache

In .htaccess, point the 404 handler at your error page — Apache returns the correct status with it:

ErrorDocument 404 /404.html

Nginx

In your server block, map the error to a real 404 response:

error_page 404 /404.html;
location = /404.html {
    internal;
}

Next.js

Ship app/not-found.tsx (App Router) or pages/404.js (Pages Router), and call notFound() for invalid dynamic routes. See the Next.js 404 guide.

WordPress

Let the theme's 404.php or block 404 template handle missing pages — both return a correct status. Remove any "redirect 404s to homepage" plugin or rule. See the WordPress 404 guide.

Single-page apps

The server, not the client, must answer with the status code. Use server-side rendering or prerendering so a missing route returns a real 404, or configure your host to serve the not-found document with a 404 status for unknown paths.

Watch out

Redirecting to the homepage is not a fix — it is the cause. Blanket-redirecting unknown URLs to / returns a 200/301 for missing pages, which is a soft 404. Only ever 301-redirect a URL to a genuinely equivalent replacement; otherwise serve a real 404.

404 or 410 — which status to use

Both resolve a soft 404; they signal slightly different things.

If you have deliberately deleted content for good — a discontinued product, a retired campaign — 410 is the cleaner choice. When in doubt, 404 is perfectly fine.

Don't waste the real 404

Returning the correct status fixes the technical problem. But a missing page is still a visitor about to leave. Once the status code is right, make the page itself worth landing on: orient the visitor, offer real escape routes, include working search, and keep your brand's voice. A correct 404 status plus a genuinely helpful 404 page turns a dead end into a recovery.

Fix the status — then fix the page

Enter your site and get a complete, on-brand 404 page tailored to your real colours, fonts, and navigation — with install steps that make it serve a correct 404 status.

Generate my 404 page →

Free · no account · no opt-in

Frequently asked questions

What is a soft 404 error?

A soft 404 is a page that should report "not found" but returns an HTTP 200 OK status instead of a real 404. The status code contradicts the content, so search engines flag it as a quality problem.

How do I check if a URL is a soft 404?

Open the URL, open your browser's developer tools, switch to the Network tab, reload, and check the status of the first request. A missing page that returns 200 is a soft 404. Google Search Console also lists them under Indexing › Pages.

Are soft 404 errors bad for SEO?

Yes. They waste crawl budget on pages with no real content, can put thin or empty pages into the index, and send search engines a confused signal. Returning a correct 404 resolves all of that.

Should I use a 404 or a 410 status?

Use 404 for a page that is not found and might return — the right default. Use 410 Gone for content you have permanently removed; it tells crawlers to drop the URL sooner. Both fix a soft 404.

Does redirecting a missing page to the homepage fix a soft 404?

No — it creates one. A redirect returns a 200 or 301 status, so the missing page still reports as valid, and the visitor lands somewhere confusing. Redirect only to a genuinely equivalent page; otherwise serve a real 404.

Related guides