404 Not Found

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 Found

How to send it

Node.js / Expressres.status(404).end()
Python / Flaskreturn '', 404
nginxreturn 404;

How to check it

curl -s -o /dev/null -w "%{http_code}\n" https://example.com/

Open HTTP Status Codes