You click a link and land on it: 404 Not Found. It's the most recognised error on the web — so common it's become a meme. But behind the joke is a useful, specific message, and how you handle 404s says a lot about the quality of your site.
What a 404 actually means
A 404 is a client error (4xx) that means exactly one thing: the server is fine, but the thing you asked for doesn't exist here. The URL is wrong, the page was moved or deleted, or it never existed.
404 is not a server failure. Unlike a 500 or 502, nothing is broken — the server answered correctly. It's saying "that address has no page," not "I crashed."
When a 404 is fine (and when it's not)
| Situation | Verdict |
|---|---|
| Someone typo'd a URL | ✅ Totally normal |
| An old, intentionally-removed page | ✅ Fine (consider a redirect) |
| A page you deleted that still has inbound links | ⚠️ Fix with a redirect |
| A link inside your own site returns 404 | ❌ A broken link — fix it |
| A page that should exist but 404s | ❌ A real bug |
The first two are healthy. The last three are the ones worth hunting down — especially broken internal links, which frustrate users and hurt SEO.
Make a helpful 404 page
A default 404 is a dead end. A good one keeps people on your site:
- A clear, human message ("This page doesn't exist") — not a stack trace.
- A search box and links to popular pages.
- Your navigation so visitors can carry on.
- Matching your site's design, so it doesn't feel like an error from another planet.
404 vs 410 — a subtle SEO point
If a page is gone permanently and never coming back, 410 Gone tells search engines exactly that, so they drop it faster. A 404 says "not found right now" (might return); 410 says "deliberately gone." For most cases 404 is fine, but 410 is the cleaner signal for intentional removals.
The SEO angle
Search engines expect some 404s — they're normal. What hurts is:
- Internal links pointing to 404s (wastes crawl budget, frustrates users).
- Deleted pages that had traffic/backlinks returning a bare 404 instead of a 301 redirect to a relevant replacement.
So: let genuine "not found" be a 404, but redirect removed pages that people still reach.
How to catch the bad ones
You don't want to prevent all 404s — you want to catch the ones that matter: broken internal links and pages that should exist. Monitoring helps by watching your key URLs and alerting if a page that should return 200 suddenly returns 404 — turning a silent broken page into something you fix in minutes.
The bottom line
| In one line | |
|---|---|
| What | The page doesn't exist — the server is fine. |
| Normal? | Yes, for typos and old URLs. |
| Fix | Broken internal links; redirect removed pages with traffic. |
| Polish | A helpful 404 page with search and navigation. |
A 404 isn't something to fear — it's something to handle gracefully. Make the page helpful, redirect what deserves it, and monitor the URLs that should never 404.
More codes in HTTP status codes explained; watch your key pages with web monitoring.