404 vs 410: Not Found vs Gone

404 and 410 can look similar in logs, but they tell clients, crawlers, and API consumers different things.

AspectHTTP 404 โ€” Not FoundHTTP 410 โ€” Gone
DefinitionThe server found no resource matching the requested URL. It does not indicate whether the resource ever existed or whether it might exist in the future.Unlike 404, a 410 explicitly tells clients and crawlers that the resource is gone for good. Search engines delist 410 pages faster than 404s.
Plain-language summaryThe server cannot find any resource at the requested URL. The URL may have never existed, the resource may have been deleted, or the URL may be typed incorrectly. The server makes no guarantee about whether the resource might exist in the future.The resource existed at this URL and has been permanently and intentionally removed. Unlike 404 which is ambiguous, 410 explicitly signals permanent deletion. Search engines deindex 410 pages faster than 404 pages.
When to useReturn 404 when no resource exists at the requested URL. Use 410 Gone when the resource existed and has been intentionally, permanently removed (helps crawlers delist faster). Use 403 when the resource exists but access is denied. Avoid soft 404s (returning 200 with "page not found" content) โ€” search engines treat them as indexed pages.Use 410 when you have definitively removed a resource and do not plan to replace it. Use 404 when you are uncertain about the history or cannot confirm permanent removal. Use 301 when the content moved to a new URL. Do not use 410 for temporarily unavailable resources โ€” that is 503.
Client behaviorNo automatic retry. Browser displays the 404 error page. Crawlers record the URL as not found and typically delist it after repeated 404 responses. API clients should surface the error and not retry.Do not retry. Crawlers record the permanent removal and dereference the URL from their index faster than they would for a 404.
Caching behaviorMay be cached if the server includes a Cache-Control header, but this is rarely appropriate. Most servers do not cache 404s. CDNs may cache 404s if Cache-Control: max-age is present โ€” be careful with CDN 404 caching for dynamic routes.May be cached. Clients can cache 410 responses to avoid re-requesting a permanently gone resource.
SEO / crawler impactSearch crawlers interpret 404 (client-errors) for indexation and link equity accordingly.Search crawlers interpret 410 (client-errors) for indexation and link equity accordingly.
API / backend impactAPI clients branching on 404 expect Not Found semantics.API clients branching on 410 expect Gone semantics.
Safe to retry?Only after fixing the underlying causeOnly after fixing the underlying cause

Common real-world scenarios

When you see HTTP 404

A baseline of 404s is normal (bad links from external sites, typos, old URLs). Alert on: sudden spikes in 404s (deployment broke routes), 404s on URLs that were recently 200 (routing regression), and systematic 404s on specific URL patterns (broken redirect or routing rule).

When you see HTTP 410

Use 410 for: deprecated API endpoints, permanently archived content, products that have been discontinued. In Search Console, 410s are processed and deindexed faster than 404s โ€” relevant for SEO operations where you want to remove pages from Google quickly.

Decision rule

Use 404 when the response should communicate not found behavior; use 410 when gone is the accurate protocol signal.

A frequent mistake is swapping 404 and 410 for convenience; that causes client retry bugs, incorrect cache signals, and misleading monitoring data.

Use 404 when the correct protocol signal is Not Found. Use 410 when the correct signal is Gone. Returning either code for the wrong reason breaks client expectations, cache behavior, and monitoring accuracy.

FAQ

What is the biggest difference between 404 and 410?

404 communicates Not Found, while 410 communicates Gone. Choosing the right one keeps clients and intermediaries predictable.

Do 404 and 410 have SEO or caching impact?

Yes. Search engines and caches interpret status classes differently. Use each code according to its semantics to avoid accidental indexing, stale responses, or crawl inefficiency.

Can APIs safely return 404 instead of 410?

Only when it matches contract semantics. API clients often branch logic by exact code, so swapping them can break retries, auth handling, or user-facing errors.

Full guides

HTTP 404 Not Found โ€” full guide ยท HTTP 404 status reference ยท HTTP 410 Gone โ€” full guide ยท HTTP 410 status reference ยท All comparisons

Related comparisons