WatchFor
ReferenceHTTP Status Codes

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.js 404s and the page white-screens
  • Case sensitivity/About works 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/docs vs /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.

On this page