404 Not Found

All status codes
4xx · Client errorterminal

404Not Found

The requested resource could not be found but may be available in the future.

What this code obliges you to do

Retry

Do not retry automatically

Repeating the same request produces the same result. A retry loop here just multiplies load and hides the real fault.

Caching

Cacheable by default

RFC 9110 lists this code as heuristically cacheable, so a cache may store it even with no Cache-Control header. Send explicit headers if that is not what you want.

Response body

Body allowed

You may return a payload explaining the outcome — for an error, a machine-readable problem document is worth the effort.

What usually causes it

3
1

Broken hyperlinks

2

Deleted products/records

3

Server path misconfiguration

Effect on search

Normal part of web operation but causes ranking drops if high-value pages randomly disappear. 'Soft 404s' (returning 200 for a not-found page) severely harm SEO.

How to send it

2
Node.js (Next.js)
import { notFound } from 'next/navigation';
notFound();
Rust (Actix)
HttpResponse::NotFound().body("Page missing")

Codes people confuse with this one

2
Class4xx
RetryNo
CacheDefault
BodyAllowed