404 vs Soft-404: The Real Difference and How to Fix Both
A hard 404 clearly reports a missing page; a soft-404 returns 200 for one. Learn to detect both and the fix order that stops soft-404s slipping through.
The real difference between a 404 error and a soft-404 problem is not just technical — it directly affects how users experience your site and how reliably tools interpret your pages. A large share of websites carry at least one broken link at any given time, which means most sites are quietly leaking traffic and trust without realizing it.
Key takeaways
| Question | Answer |
|---|---|
| What is the real difference between a 404 error and a soft-404 problem? | A 404 error correctly returns a “not found” status; a soft-404 shows a missing or empty page but returns a “200 OK” status. |
| Why do soft-404 problems matter? | They confuse crawlers and tools, making broken links harder to detect and fix. |
| How do I find broken links on my website? | Use a link checker that crawls pages and flags dead links and bad status codes. |
| What is the fastest way to test broken links? | Run a full crawl to build a complete inventory before fixing anything. |
| Should I fix 404s or soft-404s first? | Identify the type, build the inventory, fix the content, then apply redirects. |
| Do WordPress sites handle this differently? | Yes — WordPress often produces soft-404s via permalinks, themes, or plugins after a migration. |
Start here: figure out which kind of broken you have
Before you touch anything, figure out which kind of broken you are dealing with, because the fix is different for each.
A 404 error is explicit: the server returns a proper “not found” response, so both users and tools see the page is gone. A soft-404 is misleading: the page looks like an error or an empty page, but the server still returns 200 OK, signaling that everything is fine when it is not.
| 404 error | Soft-404 | |
|---|---|---|
| Status code | Correct (404/410) | Wrong (200) |
| Detected by status-code checkers | Yes | No |
| User experience | Clear failure | Confusing — page looks broken but “works” |
| Persistence | Usually fixed quickly once found | Often lingers, since it doesn’t trip alerts |
That distinction matters because most link checkers rely on the status code first. If the code lies, your inventory is incomplete before you even start fixing anything.
Why soft-404s cause missed issues
Soft-404 problems are the reason many teams think their site is clean when it is not. A standard broken-link checker flags hard 404s immediately by status code. A soft-404 slips through unless something also evaluates the page’s actual content, which not every tool does.
This creates a gap between what is genuinely broken and what your reports show. Common soft-404 scenarios include:
- Empty category or archive pages that still return
200 - Search results pages with no results but no error code
- Deleted products that quietly redirect to a generic “shop” page
- Thin placeholder pages left over from a migration
Guessing which pages fall into this bucket wastes hours. You want a full inventory before you start fixing anything.
How to find broken links and catch soft-404s accurately
Reliably finding broken links takes more than a basic status-code crawler. Look for a check that reports:
- Status codes — 404, 410, 301, 302, and non-transient 5xx
- Where a link actually redirected to, not just whether it “worked”
- Internal and external dead-link detection across the whole site
SitesRadar’s free checker crawls a site’s internal and external links and reports which ones are genuinely broken versus rate-limited, gated, or transient — no signup required. That gives you a reliable inventory of true 404s and dead links fast.
If you would rather start from a plain URL box than read further, the website checker runs that crawl and reports the status code behind every internal link it finds.
Status-code checking alone will not surface soft-404s, since the server is telling the truth about those being 200. Catching soft-404s means pairing an automated crawl with a manual pass over pages that look thin, empty, or templated — search results, category pages, and anything generated by a plugin are the first places to look.
Why users react differently to 404s vs soft-404 pages
A proper 404 at least sets expectations — the visitor knows the page is gone. A soft-404 creates confusion, because the page looks broken but claims to be valid, and internal navigation keeps pointing at it as if nothing is wrong.
Most visitors abandon a site immediately after hitting an error page and do not come back to try again. Soft-404s add a second failure mode on top of that: because the page doesn’t look like an obvious error, users click through, get nothing useful, and leave without ever registering it as “broken” — which means the underlying issue never gets reported either.
Fix in this order
Fixing this properly requires sequence — do not jump straight to redirects.
- Identify the type. Separate true 404s (bad status code) from soft-404s (200 but effectively empty).
- Build the inventory. Crawl the full site so you have every affected URL in one place before changing anything.
- Fix content first. Restore missing pages, remove genuinely invalid ones, or flesh out thin placeholder content.
- Apply redirects, only where warranted. Map old URLs to a real, relevant destination — not a blanket redirect to the homepage.
- Re-test. Confirm both the status code and the actual page content before calling it fixed.
If the root cause is thin or placeholder content, a redirect alone will not fix it — the page itself needs to be corrected or removed. Use 301 permanent redirects rather than 302s so link signals consolidate on the right destination and search engines update accordingly.
WordPress edge cases: soft-404s after migrations
WordPress sites frequently produce soft-404s after a migration, especially when permalink structures or database content end up inconsistent.
If all internal WordPress links started returning 404s after a migration, go to Settings → Permalinks and click Save Changes. That flushes WordPress’s rewrite rules and is the fastest fix for the common “homepage works but every post or page 404s” problem — see broken links after a WordPress migration for the full breakdown, including hardcoded-URL and serialized-data pitfalls.
Soft-404 patterns in WordPress specifically tend to come from:
- A theme returning
200for a missing template instead of a real 404 - A plugin generating an empty archive page that still resolves
- Hardcoded URLs inside
post_contentthat point at content which no longer exists
Re-run a crawl after any permalink or plugin change to confirm nothing regressed.
Preventing future 404 and soft-404 issues
Prevention is mostly about visibility and consistency:
- Run scheduled link scans instead of one-off audits
- Map redirects deliberately during any migration, rather than after the fact
- Validate new content before publishing, especially templated or bulk-generated pages
- Dry-run bulk updates or database changes before applying them site-wide
For ongoing coverage, SitesRadar’s plans start at $19/month for up to 10 sites, or $39/month for 30, with alerts when a link that was working starts failing. A check that runs on a schedule catches new 404s from content updates or plugin changes long before a client complaint — soft-404s still need periodic manual review, since no automated status-code check can fully replace judgment about whether a “working” page is actually useful.
Conclusion
The real difference between a 404 error and a soft-404 problem comes down to honesty in signaling: one clearly reports failure, the other hides it. Skip that distinction and your broken-link inventory will always be incomplete. Build a full inventory, fix content first, then apply redirects, and validate everything with a reliable link checker.
If you want to see where your own site stands, run a free link and status check — no signup required.
Frequently asked questions
What is the real difference between a 404 error and a soft-404 problem, in simple terms? A 404 error correctly tells browsers and tools that a page is missing. A soft-404 shows a missing or empty page but incorrectly reports it as working, which makes it far harder to detect.
How can I find broken links on my website, including soft-404s? An automated crawl reliably finds true 404s and dead links by status code. Soft-404s need a manual or content-aware pass on top of that, since the server itself reports them as successful.
Why are soft-404 problems harder to detect than normal 404 errors?
Because they return a valid 200 status code, most status-code-based checkers never flag them. You need to look at the actual page content, not just the response code.
Do WordPress sites create more soft-404 problems? Yes, especially after migrations, theme changes, or plugin updates that generate empty archive or search pages. Re-crawling after any such change catches most of them.
Should I redirect all 404 errors and soft-404 pages? No. Only redirect when there is a genuinely relevant destination. Otherwise, let the page return a proper 404 so your site’s status codes stay accurate.
What is the best way to test for broken links regularly? Run scheduled scans with a link checker rather than a one-time audit, so new issues from content updates or plugin changes get caught before they accumulate.
Can a single tool detect both 404 and soft-404 issues? A crawler reliably catches true 404s and dead links by status code. Soft-404s, by definition, look fine to that same check, so they still call for a periodic manual or content-based review alongside automated scanning.