Nothing exists at this URL.
When to use it
Unknown routes or IDs. Also used to hide resources the client may not know about.
Common causes and fixes
For a missing page, check for a typo or stale link, a route that exists only in the client-side router (deep links into an SPA need the server to fall back to index.html), case sensitivity on Linux, where About.html and about.html differ, a wrong root or alias in nginx, or a trailing slash mismatch. For APIs, verify the base path, version prefix, and that the ID exists in that environment.
For SEO, real 404s are normal: Google drops the URL after recrawling, and they don’t hurt the rest of the site. Use 410 for deliberate removals, and 301 only when a genuinely equivalent page exists; redirecting everything to the home page is treated as a soft 404. A custom 404 page with search and links helps users, but make sure it still returns status 404, not 200.
Client error (4xx)
4xx codes are client errors: the request itself is wrong, unauthorised or points at something that isn’t there. Retrying the same request won’t help.
What it looks like
HTTP/1.1 404 Not FoundHow to send it
| Node.js / Express | res.status(404).end() |
|---|---|
| Python / Flask | return '', 404 |
| nginx | return 404; |
How to check it
curl -s -o /dev/null -w "%{http_code}\n" https://example.com/