The page works. Start there, because it is the strangest part of this warning: open the listed address in your own browser — the text loads, the pictures arrive, the buy button works if there is one. And in Search Console’s Page indexing report, among the reasons under Why pages aren’t indexed — indexed meaning held in Google’s index, the collection its results are chosen from — that same address sits filed as Soft 404: a page you can see with your own eyes, recorded as not found. No other row does that: its neighbours dispute your site’s answers, its locks, its rules about who gets in; this one disputes the page itself.
One owner fitted the collision into a thread title. In Google’s help forum, in March 2024, a thread opened as:
The title of an owner’s thread in Google’s help forum
How to Resolve Soft 404 in GSC while the page still loads in the browser?
(“GSC” is owners’ shorthand for Google Search Console.) Inside, every outside check had answered fine, and the stakes were plain: “This was one of the most traffic generating pages for our client.”
What Google actually decided
Google’s help page for the Page indexing report defines the reason like this — read it once even if half its nouns are new — each is translated after:
Google’s help page, defining the reason
The page request returns what we think is a soft 404 response. This means that it returns a user-friendly “not found” message but not a 404 HTTP response code. We recommend returning a 404 response code for truly “not found” pages and adding more information on the page to let us know that it is not a soft 404. To see how Google sees the page, run a live URL inspection test against the page and click View tested page to see a screenshot showing how Google renders the page.
Three translations, and then the three words that matter most. When anything asks your site for a page — your browser, or Googlebot, the program Google uses to visit and read the web — the site’s reply arrives in two layers: a three-digit code no visitor ever sees, and the visible page itself. The code is the site’s own claim about what it is handing over — 200 claims here is the page; 404 admits nothing lives here. A soft 404 is Google’s name for the two layers disagreeing: the code claimed here it is, and the words on the page — as Google read them — said nothing here. To render a page is to assemble its code, pictures and small programs into what a person sees.
Now the three words: what we think. The detailed version of the reason, on Google’s troubleshooting page for this error, says where the verdict comes from: “When Google’s algorithms detect that the page is actually an error page based on its content, Search Console will show a soft 404 error in the site’s Page Indexing report.” Algorithms, detect, based on its content. A program read your page and concluded — with no person involved — that it amounts to an error message wearing a success code. That is why your browser cannot settle the argument: the browser proves the page opens, and opening was never in dispute. What Google filed is not a fact it observed but a conclusion it drew — its own sentence files it under think — and inferences can be checked.
Four questions, before anything else
Is it serious? Several rows in this report earn a “usually nothing is wrong”; this one has not. The same troubleshooting page states the cost: an error shown after a success code is “a bad user experience” — and “Such pages are excluded from Search.” On the Not found (404) row elsewhere in this report, the listed addresses are usually pages the owner deleted on purpose; here, it can be a page you want found — and then it is worth today, not someday.
Put your own number on “serious”, inside the same tool. Search Console’s Performance report counts what your pages earn from Google. Group its table by Pages, find the listed address, and read what it was bringing in before the row appeared. The answer cuts both ways: a page that was feeding the business makes “today, not someday” literal, and a flagged page that never had a click to lose lets you breathe while you fix it.
Did you cause it? Usually not. The same page’s own list of causes is machinery from top to bottom — a missing include file, a broken database connection, “An empty internal search result page”, an unloaded JavaScript file: files, connections and small programs that fail on their own. Not one is a thing an owner typed.
Do you need to pay someone? In the best-documented case in this article, the entire cure was deleting one sentence of text — owner’s work, no invoice. The diagnosis costs nothing either, because Google’s own definition prescribes a free check. Money enters only if the check points at machinery — a blocked Googlebot, a page Google cannot assemble — and that case’s message to send is written out below.
Why did the count jump — and does its size matter? As a scale of damage, no; as a hint about the cause, yes. In owners’ forum reports, this row moves in blocks — every category page at once, most of a store — because the cause is usually one thing repeated everywhere: a template sentence, one rule in front of the whole site. Which is good news about the size of the repair.
Three situations share this row
Google’s advice for fixing this error opens by splitting the situation in three — the page is gone, the page moved, or the page still exists:
- A real 404 The page and its content are gone for good. You removed it, nothing replaced it — and your site still answers here it is for the address. Shops that keep retired product addresses half-alive land here, and so does a plugin (an add-on program a site runs) that forwards every dead address to the home page. For this case the same page says to “return a 404 (not found) or 410 (gone) response (status) code for the page” — let a page that is gone say not found with the real code. What that looks like afterwards is the “Not found (404)” article’s territory.
- A forward The page or its content moved. Google’s advice here is to “return a 301 (permanent redirect) to redirect the user” — a forward — and point it at the page’s true successor, not at the home page. The forward’s own row has its own article.
- This article The page and its content still exist. The collision case — a good page, read wrongly. Everything below is for you.
One trap: the forward-everything plugin gives its owner the same collision feeling — the listed address opens fine. So after the page loads, look at the address bar — is it still the address you clicked? If the browser has quietly carried you somewhere else — the site’s front page, as a rule — the listed address itself is dead and forwarded: you belong in the first or second case.
For the third case, the same page names the suspects:
Google’s troubleshooting page, on the good page wrongly flagged
If an otherwise good page was flagged with a soft 404 error, it’s likely it didn’t load properly for Googlebot, it was missing critical resources, or it displayed a prominent error message during rendering.
None of the three shows up as a fault in your browser: a file that fails to load for Googlebot loads fine for you; a sentence that reads as an error to a program reads as furniture to a person. The only move that works: stop looking at your copy of the page, and go look at Google’s.
See how Google sees the page
A disclosure first: Soft 404 has never appeared on any site of mine. No worked example stands behind this article; what stands instead is quoted and linked at every step. So the walkthrough was built to be run, not read: open your own Search Console beside it.
Pick your page and ask for Google’s memory. The reason’s own page keeps an Examples table; take the address whose absence hurts most, paste it into the inspection bar at the top of Search Console — the tool is URL Inspection — and press Enter. What comes back is not a fresh look: Google’s documentation for the tool says the results are from the most recently indexed version of the page. One button here is a decoy: the memory view offers View crawled page, near-twin of a button coming in a moment, but there is no picture behind it — screenshots, the same document says, are “not available for the indexed URL”. Not finding one is the tool’s design, not your mistake. So press Test live URL: for the first time since the row appeared, Google is reading the page now, not remembering it.
Click View tested page, then the Screenshot tab. This is the render from earlier, photographed: “See a screenshot of how the Google-InspectionTool sees the page”, the same document promises, Google-InspectionTool being the name of the program the test sends. For the first time, you and Google are looking at the same copy of your page.
And if View tested page is nowhere on the screen, stop — that absence is a finding, not a failure to follow the steps. The same document says why the button can be missing: “If this option is not available it is typically because the page cannot be reached for the live test.” Your browser opens this page, and Google’s own test, run this minute, could not reach it. That is the second cause in the next section — the real Googlebot mistaken for a fake — demonstrating itself. There will be no picture from an unreached page; you do not need one. The failed test is your evidence: read that cause and send the developer message printed below it — today.
Read the picture — for presence, not polish. Google’s photograph does not have to match your browser’s view: judge it only on whether the page’s real content made it in. A rough picture that still shows your actual text and pictures has answered the question; the failure to look for is emptiness. If the screenshot is blank, nearly blank, or shows an error where your browser shows a full page, you have just watched the collision happen — the troubleshooting page: “If the rendered page is blank, nearly blank, or the content has an error message, it could be that your page references many resources that can’t be loaded […], which can be interpreted as a soft 404.” The panels beside the screenshot — raw code, error messages, the files it tried to load — are where the specific culprit shows, and they are written for whoever runs your site, not for you. The message to send is in the next section. And if the screenshot shows your page looking perfectly fine — read the first cause in the next section, because it photographs fine too.
Two limits, stated out loud:
- The screenshot exists only in the live test — Google’s documentation: “A screenshot is available only in a live test with a successful test result.” The picture shows today’s page, not decision day’s: a page that failed only then, or was fixed since, will photograph fine now and the row will stand anyway.
- A clean live result does not clear the row. One owner reported exactly this in 2019: live tests said his flagged addresses were available to Google; the rows stood. The live test is your evidence about the page; the row is Google’s record of a past decision, and it moves on Google’s schedule, not on the test’s.
These screens also carry a Request indexing button, and it will look like the fix. It isn’t: this verdict came from reading the page, so only the page can answer it — and the same document says “Submitting a request does not guarantee that the page will appear in the Google Index”. Change what Google read first; the button’s turn, if it ever comes, is after.
One half of Google’s claim needs no Google tool at all: the status code. Free checker sites read it out — search for “HTTP status code checker” and paste the address in. 200 is the exact combination the definition describes. And if the checker answers 301 — a permanent forward — the address is not serving a page at all but passing visitors to another one: the sorting section’s second case, the content moved, is yours whatever you remember doing.
The causes owners found
One sentence of default text. The best-documented case, and the one to check first because it hides in a screenshot that looks fine. In January 2022, Search Engine Roundtable reported a site whose soft-404 count had spiked across its category pages — working pages, open to any browser. The owner’s own account, in a tweet quoted in that article:
The site’s owner, in a tweet quoted by Search Engine Roundtable
All Category pages had “Sorry we don’t deliver to this location”. This was shown to customers entering a PIN code which we don’t deliver to, but was part of the page by default. Removed this text from the page and that fixed the soft 404!
One apologetic sentence — shown to shoppers entering a delivery PIN, a postal code — printed on every category page by default; and to a program deciding “is this an error page?” from content alone, sorry, we don’t reads as an answer. John Mueller of Google confirmed the mechanism in a reply quoted in the same article: “Yeah, if you make your pages look like they might be error pages, we might treat them as such.”
So the first move on a fine-looking page: read its words the way a machine would. Lines in the family of no results found, not available, we don’t deliver here, no products were found — a template will print one of these by default, and Google’s own cause list above already named the purest form: “An empty internal search result page.” Finding such a line and removing or rewording it is owner-level work; in the case above, it was the entire fix.
The real Googlebot, mistaken for a fake. Security that waves people through can filter Google’s reader out entirely. In October 2019, someone looking after a WordPress blog wrote that a long-standing, full page “had been classed as a soft 404” though nothing, she wrote, had changed. Three days later she came back with the cause, found in her own security plugin’s settings: “The issue was the fake Googlebot block set by the All In One WP Security & Firewall plugin. Unfortunately it also blocked genuine Googlebots from being able to crawl the sites.” One unticked checkbox later, the pages could be read again. If a security plugin or a firewall stands in front of your site, its settings are a place to look: rules aimed at fake visitors sometimes catch the real Googlebot — she found and fixed it herself, without touching code.
If the settings and the panels are not your world, this is the message to send whoever runs your site, whole: Search Console reports this address as Soft 404. Its live test either cannot reach the page at all, or renders it blank or wrong, while browsers show the full page — please check what Google-InspectionTool fails to load, and whether a firewall or security rule is blocking the real Googlebot.
Sold out, empty, none left — for now. Shops meet a gentler version of the row’s logic: a product page that answers here it is while announcing nothing is left. John Mueller, asked about out-of-stock products in one of Google’s public 2022 question-and-answer sessions, as quoted by Search Engine Journal, said Google can read them the same way: “… we will assume it’s more like a soft 404 error, where we will drop that URL from the search results as well.” And, in the same breath, that it is not automatic: with “a lot of information about that product anyway on those pages”, the page “can still be quite relevant”. For a product that is coming back, a page rich with real information is its own defence — often nothing to change; for one never coming back, you are in the first case of the sort above, and the honest code is the fix.
“Add more words” — what it can and cannot fix
The advice elsewhere tends to one prescription: make the page longer. Wix’s help page about pages missing from search results puts a number on it — pages without enough content “may return a soft 404”, and it recommends “including at least 250-400 words on the page”. Beside it belongs the sentence Google publishes in its own guidance on helpful content: “Are you writing to a particular word count because you’ve heard or read that Google has a preferred word count? (No, we don’t.)”
Keep what survives both. A page with almost nothing on it is a real shape of this row — Google’s troubleshooting page allows that a soft 404 “might be a page with no main content or empty page” — so giving Google’s program something real to read is a genuine fix there. But when the actual cause is an error-sounding sentence, a page Google failed to assemble, or a blocked Googlebot, adding paragraphs changes nothing — the verdict was never about how much the page said, but about what Google made of what it read.
Two proofs, two clocks
The clearest success on record is the one above: the owner removed one sentence, “and that fixed the soft 404”. That is the shape to aim for, because the page is the whole hearing — nothing Google documents offers an appeal channel, and a Product Expert (the badge Google’s forum gives its seasoned volunteer answerers, not a job at Google) said so plainly in the 2019 thread cited earlier (typos his): “But the soft-404 detector is an agorithm. Google dont provide a mechanism to report false detections.”
Once the cause is changed, you hold two proofs, on two clocks. The live test’s screenshot is yours the same day: run it again, and a page that rendered blank should now photograph whole; a page that carried the error-sounding sentence should no longer say it. That proves the page. The row is Google’s record, and it updates when Google next reads the page and draws a different conclusion — for which nothing documented promises a schedule, so I will not promise one either.
And if every check came back clean — the screenshot whole, no error-sounding line anywhere, the code an ordinary 200 — you are not at a dead end. The likeliest reading, offered as judgement, is that Google met your page on a bad day: one of the passing failures from its own cause list — a connection down, a file that didn’t load that once — that has since healed on its own. With today’s evidence in hand there is nothing left for you to repair, and the waiting rules above are now yours too: Google re-reads and re-decides on its own schedule, button or no button.
You do not have to press anything to make that happen — Google’s help page for the report says fixes count “whether or not you explicitly requested fix validation”. If you do press VALIDATE FIX, do it after the cause is fixed on every affected page, because the same page warns that one leftover sinks the batch: “If you missed a fix, validation will stop when Google finds a single remaining instance of that issue.” A template sentence lives on many pages at once; fix the template, not the one example you inspected.
And keep the two verdicts straight while you wait. Your browser said the page works; it was right, and it is still right. Google said the page reads like an error; it stated that as a thing it thinks. Between those two there was never a contradiction — only two programs reading the same address and answering different questions. The screenshot is where you watched Google’s answer being formed. The page is where a different answer gets written.
The part worth remembering
Your browser and the report were never looking at the same thing. The browser answers one question — does this page open for a person? Google answered another — did what it read look like a real page, or like an error dressed as one? — and filed its answer as what it thinks, not what it knows. The live test's screenshot is the one place the two of you finally examine the same copy. Make the page look like a page in that picture — and read like one — and you have answered the only reader whose opinion this row records.
Koval SEO Console reads the public pages of your site — the same ones Google sees — and explains each finding in plain words, with the evidence it read beside it, then answers fixed, not fixed, or couldn't confirm when you check again.
Check my site