404 Not Found
What HTTP 404 means, soft 404s, SEO impact, and how to catch broken URLs before users and search engines do.
404 Not Found — the server is reachable and working, but nothing lives at the requested URL. It makes no claim about whether the resource ever existed or might exist again; for a deliberate "gone forever" signal, 410 Gone is more precise (and search engines de-index 410s faster).
Common causes
- Broken internal links after a redesign or slug change without redirects
- Deploy gone wrong — assets built with hashed filenames deployed
partially, so
app.a1b2c3.js404s and the page white-screens - Case sensitivity —
/Aboutworks on Windows/macOS dev machines and 404s on Linux servers - Missing rewrite rules — single-page apps need a fallback to
index.html; without it every deep link 404s on refresh - Trailing-slash mismatches —
/docsvs/docs/treated as different resources by some servers - DNS or vhost misrouting — the request reached the wrong site, which correctly has no such path (the 404 page's branding gives it away)
Soft 404s
A "soft 404" is a page that says "not found" but returns 200. Search engines must guess it's an error page; monitoring tools think everything is fine. The inverse — valid content served with a 404 status — gets de-indexed. Always make the status code match the content.
SEO impact
Individual 404s are normal and don't hurt rankings by themselves. What hurts: inbound links pointing at 404s (lost link equity — redirect them with a 301), and error spikes that waste crawl budget. After any URL-structure change, keep old URLs redirecting.
Debugging and prevention
Check what a URL really returns — status, headers, redirect chain — with the free HTTP header checker. For URLs that must keep working (payment callbacks, deep-linked landing pages, sitemap entries), an HTTP monitor asserting on status 200 turns a silent 404 into an alert. The sitemap checker finds sitemap entries that have started 404ing — the fastest way to lose index coverage.