HTTP 404 in Netlify

The path isn't in the published deploy — a missing `_redirects` rule or a broken pretty-URL config.

Why Netlify returns 404

The path isn't in the published deploy — a missing `_redirects` rule or a broken pretty-URL config.

How to fix it

Add a `/* /index.html 200` rule to `_redirects` for SPAs, or confirm the file is in the publish directory.

Where this surfaces in Netlify

Netlify's function logs, deploy summary, or the browser DevTools network tab.

Netlify — Jamstack hosting with edge functions.

What HTTP 404 means generally

The requested resource could not be found on the server — the page may have been deleted, moved, or the URL was typed incorrectly.

HTTP 404 Not Found is the most recognised error code on the web. It tells the client that the server reached but could not find anything matching the requested URL. A 404 does not mean the server is broken — it simply means the path doesn't map to a resource. A small number of 404s is unavoidable (mistyped URLs, expired campaign links, scraper noise). A large or growing number is a warning sign: deleted pages without redirects, broken internal links, a botched migration, or a CMS misconfiguration.

Other common causes of 404

SEO impact

High SEO impact. 404s waste crawl budget (Googlebot stops crawling broken paths but keeps re-checking them), drop the link equity of inbound backlinks (a backlink to a 404 page gives you nothing), and erode user trust. Google does not penalise sites for having some 404s — it expects them — but it does penalise sites with a high proportion of broken internal links or large numbers of previously-indexed pages now returning 404 without redirects. Sites that migrate without redirects routinely lose 40-80% of organic traffic.

How to catch it next time

LemWatch crawls your site continuously, catches new 404s the moment they appear, and groups them by source (which page links to the broken URL). It also monitors that pages previously returning 200 don't silently start returning 404 — a classic sign of a botched deploy.