Soft 404: What It Means and How to Fix It

A soft 404 is a page that answers 200 OK but looks missing or empty to Google. What a soft 404 error means, how to find it in Search Console and how to fix it.

Soft 404: What It Means and How to Fix It

A soft 404 is a URL that returns a 200 (OK) status code but looks to Google like a page that does not exist: a "not found" message, an empty page, or a page with almost no main content. Google does not index soft 404 pages, and Search Console lists them as Soft 404 under Why pages aren't indexed. To fix a soft 404, make the server return a real 404 or 410 for pages that are gone, 301 redirect pages that moved to their closest replacement, and for real pages, make sure Google can see the content when it crawls.

That covers most cases. The rest of this guide shows how to tell which case you have, the exact Search Console screens to use, fixes for WordPress and Next.js, and the soft 404 Google reported on one of our own pages in October 2026, a page with more than 1,300 words on it.

What is a soft 404 error?

A soft 404 error means the server and the page disagree. The server sends 200, which says "here is your page". The page itself says, or looks like it says, "there is nothing here". Google trusts what it sees, treats the URL as missing, and keeps it out of the index.

It is called "soft" because nothing technically failed. A real (hard) 404 is a status code the server sends on purpose. A soft 404 is Google's judgment about the content, so you will not find it in your server logs or in a status code checker.

Google's documentation on HTTP status codes describes two forms:

  • A "not found" page with a 200 status. The shop shows "Sorry, this product is no longer available", the CMS shows its error template, or a JavaScript app renders "Page not found", and the server answers 200 for all of them.
  • A page with no main content. An empty category, a search results page with zero results, a placeholder, or a page whose content Google could not load or see.

404 vs soft 404: what's the difference?

The difference between a 404 and a soft 404 is who decides that the page is missing. With a 404, your server says so. With a soft 404, Google concludes it on its own, despite a 200 from your server.

404 (Not found)Soft 404
Status code the server sends404 (or 410 for gone)200 OK
Who decides the page is missingYour serverGoogle, from the content it sees
Name in Search ConsoleNot found (404)Soft 404
Indexed?NoNo
Is it a problem?No, if the page was removed on purposeYes: either an error page that hides its status, or a real page Google misread
Usual fixNothing, or a 301 if there is a replacementReturn a real 404 or 410, redirect, or make the content visible

A clean 404 is the correct answer for a page that is gone, and Google handles it fine. A soft 404 is always worth a look, because it is either a page that should be a 404 and pretends not to be, or a page you want in search that Google thinks is empty.

What causes a soft 404?

Most soft 404 errors come from one of six causes:

  1. The error page returns 200. A custom 404 template, a CMS setting or a single-page app's catch-all route shows "not found" without sending the 404 status.
  2. Empty listing pages. Category, tag, filter and internal search pages with zero items. Out-of-stock product pages that only say "unavailable" fall here too.
  3. Redirects to an unrelated page. Removed URLs that all 301 to the homepage, or to a generic category, are often treated as soft 404s, because the target is not a replacement for what was there.
  4. Content that depends on JavaScript. The page fills itself in with JavaScript, and for Googlebot the script fails, times out or calls an API that blocks it. Google renders an empty shell.
  5. Content hidden in the HTML. The text is in the page, but invisible when Google renders it: collapsed, transparent or waiting for an animation. This is what happened to us (more below).
  6. Thin placeholder pages. "Coming soon", a heading with two lines under it, or a template with only boilerplate. Google sees navigation and a footer and little else.

The first three are status code problems: the server should say something different. The last three are visibility problems: the page is real, and Google does not see enough of it.

How to find soft 404 errors in Google Search Console

Search Console reports soft 404s in the Page indexing report and explains them one URL at a time in URL Inspection.

  1. Open Google Search Console and select your property.
  2. In the left menu, under Indexing, click Pages.
  3. Scroll to the table Why pages aren't indexed. If there is a Soft 404 row, click it. No row means Google found no soft 404s on the URLs it knows.
  4. The Examples table lists the affected URLs (up to 1,000). Use Export to get them into a spreadsheet and group them by template: product pages, tag pages, blog posts.
  5. Click a URL, then Inspect URL in the side panel. URL Inspection shows URL is not on Google and, in the Page indexing card, Page is not indexed: Soft 404, with the date of the last crawl.
  6. Click Test live URL, then View tested page. The Screenshot tab shows what Google rendered, the HTML tab the rendered code, and More info the HTTP response and any page resources that could not be loaded.

If the screenshot is blank, nearly blank or shows an error, you have a visibility problem. If it shows a "not found" message or an empty list, you have a status code problem. Our URL Inspection tool guide explains the rest of the fields on that screen.

One quick test catches the most common cause on any site. Request a URL that cannot exist, such as yourdomain.com/this-page-does-not-exist-123, with the free Google index checker: it shows the HTTP status your server sends. Anything other than 404 or 410 means every broken link on your site is a potential soft 404.

How to fix soft 404 errors, step by step

Pick the fix by what the URL should be. This table covers every case:

The URL isFixWhat Google then reports
Gone, with no replacementReturn 404 (or 410 if it is gone for good)Not found (404), which is fine
Moved, or replaced by a close equivalent301 redirect to that one page, not to the homepagePage with redirect, and the target gets indexed
An empty list (category, tag, search, filter)Add items or real content, or add noindex while it is emptyIndexed once it has content, or Excluded by 'noindex' tag
A real page Google sees as blankMake the main content visible in the HTML and loadable for GooglebotIndexed after the next crawl
A thin placeholderPublish the real content, or keep the URL out of your sitemap and links until it existsIndexed once it is a real page

Then, for each group of URLs:

  1. Fix the cause in the template, not URL by URL. One template usually produces all the soft 404s in a group.
  2. Run Test live URL in URL Inspection on one fixed URL. For a real page, the screenshot should show the content. For a removed page, More info should show the 404 or 410 status.
  3. Ask for a crawl of the real pages. For the ones that matter, click Request indexing in URL Inspection. There is a daily quota, so start with the important ones.
  4. Click Validate Fix. Back in the Soft 404 row of the Page indexing report, click Validate Fix. Google rechecks the URLs; Google says validation usually takes up to about two weeks, sometimes longer.
  5. Clean your sitemap. Remove the URLs that now return 404, 410 or a redirect, so Google stops spending crawls on them.

How to fix soft 404 errors in WordPress

WordPress itself sends a real 404 for missing pages, so soft 404s on WordPress usually come from a theme, a plugin or empty archives:

  • Check the 404 status. Run a made-up URL through the Google index checker. If it shows 200, a theme or plugin is overriding WordPress's 404 handling.
  • Remove "redirect all 404s to the homepage" plugins. They turn every broken URL into a soft 404. Redirect removed pages one by one to real replacements and let the rest return 404.
  • Handle empty tag and category archives. Delete tags with no posts, or set empty archives to noindex in your SEO plugin.
  • Keep internal search results out of the index. Check that search result pages carry noindex.

How to fix a soft 404 in Next.js and other JavaScript apps

  • Next.js App Router: when the data for a page does not exist, call notFound() from next/navigation. Next.js renders your not-found.tsx and sends the 404 status.
  • Next.js Pages Router: return notFound: true from getStaticProps or getServerSideProps.
  • Client-side apps (React, Vue and others): a catch-all route that renders "not found" in the browser always returns 200. Google's JavaScript SEO basics gives two fixes: redirect to a URL where the server returns 404, or add a noindex robots meta tag to the error view with JavaScript.
  • Ship the main content in the server HTML. Render it on the server, and do not leave it invisible until an animation or a script runs. Our guide to JavaScript rendering and indexing covers how Google renders pages and where it goes wrong.

The soft 404 we found on our own site

On October 28, 2026 we ran URL Inspection on all 71 URLs in the sitemap of indexmachine.co. 68 were indexed, 2 were "Crawled - currently not indexed", and 1 was a Soft 404: our comparison page Google Search Console vs Rapid URL Indexer.

Nothing about the page looked empty. Our own crawler got HTTP 200 and 1,346 words of main content. The page had a comparison table, pricing, two "how it works" sections, a verdict and an FAQ. Here is what URL Inspection showed over the next days:

Date (2026)What happenedCoverage state in URL Inspection
Oct 27Googlebot smartphone crawls the page. Page fetch: Successful. Indexing allowed: Yes.Soft 404
Oct 28We inspect all 71 sitemap URLs: 68 indexed, 2 crawled but not indexed, this one Soft 404.Soft 404
Oct 28, eveningGooglebot smartphone crawls the page again. Our next check, on Oct 31, shows the result: indexed, with the Google-selected canonical matching ours.Submitted and indexed
Oct 31We change the page so its server HTML shows all of the content, not only the first section.Submitted and indexed

What set it apart from our indexed comparison pages was what its server HTML showed before JavaScript ran. Every block after the page's opening section sat inside a fade-in animation that started at opacity: 0. The text was in the HTML, but transparent: about 100 visible words (the heading, a two-line intro that promised a comparison, and a closing call to action) against more than 1,300 hidden ones. It was the least visible page of its kind that Google had recrawled recently, and to a renderer it read like an empty template.

Two things surprised us. First, a soft 404 is a verdict about one crawl: Google crawled the page again a day later and indexed it, before our fix shipped. Second, nothing but URL Inspection caught it. The status code was 200, the word count was high, and in a browser the page looked complete.

We fixed it anyway, because the cause stays until you remove it and the next crawl could have gone the same way. On October 31 we changed the comparison pages so that the server HTML holds the content in its final, visible state. Visitors see exactly the same page; Google no longer has to wait for an animation to see the content.

The lessons for any site: judge a page by the Screenshot in URL Inspection, not by your browser; check every template that starts content invisible; and recheck a page after a fix, since its state can change with every crawl.

How common are soft 404 errors?

Less common than most indexing problems, and usually limited to one page. On October 31, 2026, the 1,513 sites connected to IndexMachine listed about 1.17 million sitemap URLs. 1,250 of them (0.1%) were Soft 404, on 44 sites (2.9% of sites). Most of these sites are on free accounts, where IndexMachine has not requested anything yet, so the numbers show where sites stand before indexing is turned on. Aggregate counts only, with no site or URL named:

Soft 404 URLs on the siteSitesSoft 404 URLs in total
12626
2 to 51128
6 to 50454
More than 5031,142

Most affected sites had a single soft 404 URL, typically one page that went wrong. Three sites held 91% of all the soft 404 URLs, one of them 949. When hundreds of URLs on one site share the state, look at the template they share before you look at any single page. For the indexing states you are more likely to meet, our list of reasons a URL is not on Google covers each one with its fix.

Do soft 404 errors hurt SEO?

A soft 404 hurts the page, not the site. The URL is not indexed, so it cannot rank or bring traffic. If it is a page you want in search, that is lost traffic until you fix it. If it is a page that should be gone, the cost is smaller: Google keeps recrawling a URL that answers 200 instead of dropping it, which on a large site takes crawling away from your real pages. Returning a proper 404 or 410 ends that.

Catch soft 404s early and get fixed pages back on Google

The Page indexing report shows soft 404s in bulk, but it is refreshed slowly and only shows examples. You find out late, and after the fix you still have to ask Google to crawl each page again, one URL at a time.

IndexMachine shows the coverage state, last Google crawl, clicks and impressions of every page in your sitemap in one table, so a Soft 404 shows up next to the URL it belongs to. Once you have fixed the page, its Chrome extension presses Google's own Request indexing button in your Search Console, on autopilot, every day, for the pages that still need it, using your full daily Google quota on every site. Every requested page is tracked until Google indexes it, and pages that later drop out of the index are requested again automatically. Every other engine gets unlimited IndexNow, and 404 alerts flag pages that start returning 404.

See which of your pages Google calls a soft 404

A free IndexMachine account imports your Search Console sites and shows which pages Google has not indexed and why, page by page. Fix them, then turn on daily Request Indexing in your own Search Console plus unlimited IndexNow.

FAQs

What does soft 404 mean in Google Search Console?

It means Google crawled the URL, got a 200 (OK) status, and decided the page is effectively missing: it shows a "not found" message, is empty, or has too little main content. Google does not index the URL and lists it under Why pages aren't indexed as Soft 404.

How do I fix soft 404 errors in Google Search Console?

Fix the cause on your site first: return 404 or 410 for removed pages, 301 redirect moved pages to their replacement, and make real pages show their content to Google. Then open the Soft 404 row in the Page indexing report and click Validate Fix, and use Request indexing in URL Inspection for the important pages.

Why does Google report a soft 404 on a page that has content?

Because Google judges the rendered page, not your source files. If the content loads through JavaScript that fails for Googlebot, depends on blocked resources, or is hidden until a script or animation runs, Google can see an almost empty page. Run Test live URL and look at the Screenshot to see what Google saw.

How long does it take for a soft 404 to clear?

The page's state changes when Google crawls it again, which can take days or weeks. Validate Fix in the Page indexing report usually takes up to about two weeks. Requesting indexing for a fixed page in URL Inspection can bring the crawl sooner.

Should I add noindex to a soft 404 page?

Only if the page should exist but should not be in search, like an empty category you will fill later or an internal search page. For a page that is gone, return 404 or 410 instead. For a page you want in search, fix the content and leave indexing allowed.

Elevate your digital presence

Getting your pages indexed by Google is the first crucial step in your search engine optimization journey.
Fix indexing issues. Let the SEO magic begin.

Try free, see which pages Google hasn't indexed

Free account. Import may take a while for big sites, Google rate-limits Search Console.

See pricing