404 Error

No Comments

AI Summary

A 404 error is the HTTP status a server returns when a URL does not exist, telling browsers and crawlers the page was not found. Used correctly it is a healthy signal, and a genuine 404 will not harm the rest of your site.

  • A 404 means not found, so the URL has no content to serve.
  • Honest 404s are a normal part of the web and do not penalize your site.
  • Use 410 Gone to signal permanent removal, which Google honors faster.
  • A soft 404 returns 200 for a missing page and confuses search engines.
Comparison of 404, 410, and soft 404 responses for missing pages on seoprocheck. Com
How 404, 410, and soft 404 differ.

A 404 error is the server's way of saying "you reached me fine, but nothing lives at that address." It's the correct, honest answer when a page has been removed and has no meaningful replacement, and despite two decades of SEO folklore, a normal quantity of 404s harms nothing.

Where 404s actually cost you is in three specific situations: when URLs with backlinks or steady traffic die without a redirect (that equity is now unclaimed), when internal links point at missing pages (users hit walls, crawl cycles get burned on dead ends), and when the 404 page itself is a design afterthought that ejects visitors from the site. The status code isn't the problem. Untriaged 404s are.

What an honest 404 looks like

Verify the status, not the page design, plenty of "Page not found" screens secretly return 200:

curl -I https://example.com/this-never-existed/

HTTP/2 404
content-type: text/html; charset=UTF-8

A custom 404 page that keeps the correct status code, on Apache:

# .htaccess, path, never a full URL
ErrorDocument 404 /error-404.html

And on nginx, the internal keyword stops the error page being addressable directly:

error_page 404 /error-404.html;
location = /error-404.html {
    internal;
}

Careful with the Apache one: set ErrorDocument 404 https://example.com/error-404.html (a full URL instead of a path) and Apache issues a 302 redirect to the error page, which then returns 200. You've just converted every missing page into a soft 404 with one config line. What belongs on the error page itself, search box, category links, the stuff that recovers the visit, is covered in 404 page best practices and the implementation guide.

404 vs 410 vs soft 404: how each gets handled

404 Not Found410 GoneSoft 404
What it claimsNothing here (maybe ever, maybe temporarily)Deliberately and permanently removedSuccess (200), while showing error/empty content
Google deindexing speedAfter several confirming recrawls, days to weeksMarginally faster; the "permanent" claim is taken at face valueSlow and messy, Google must infer the truth from page content
Recrawl behaviorRetried occasionally in case it comes backRetried less; still verified sometimesRecrawled like a live page, ongoing crawl waste
Right situationDefault for anything missingBulk purges you're certain about, expired listings, deleted user contentNever. This is always a defect
User seesYour error pageYour error pageA confusing half-page pretending to be real

The 404-vs-410 decision gets its own treatment in 404 vs 410: handling removed pages the right way. The short version: the difference is real but small, and either honest code beats a dishonest 200 by a mile, the dishonest version is the soft 404, which has its own entry because it deserves one.

How to check it on your own site

  1. Confirm your error handling is honest: request a garbage URL (curl -I https://yoursite.com/xyz-$(date +%s)/) and confirm you get a literal 404 header, not a 200 or a redirect.
  2. Crawl the site with Screaming Frog, open Response Codes → Client Error (4xx), then use the Inlinks pane on each URL. A 404 with internal inlinks is your bug to fix; a 404 with zero inlinks that Google found in some ancient sitemap is usually noise.
  3. In Search Console, open Indexing → Pages → Not found (404) and export. Cross-reference against your backlink tool of choice, any 404 URL with referring domains is unclaimed equity begging for a 301 to the closest live equivalent.
  4. Check your access logs for 404 frequency by URL. A missing URL Googlebot hits daily deserves attention before one it hits yearly.
  5. Test the 404 template itself in a browser with DevTools open: does it load fast, keep navigation, offer search, and, critically, return 404 in the Network tab even when rendered by your JS framework?

Common mistakes

  • Blanket-redirecting all 404s to the homepage. Google classifies irrelevant redirects as soft 404s, users get teleported somewhere they didn't ask for, and you lose the diagnostic signal entirely. Fix: redirect only where a genuinely equivalent page exists; let the rest 404.
  • Panicking at the GSC 404 count. "Not found (404)" in the Pages report is informational, not a penalty ledger. Ancient URLs, scraper-mangled links, and long-dead parameters accumulate there harmlessly. Triage by inlinks, backlinks, and traffic, then ignore the rest.
  • An error template that returns 200. Especially common on single-page apps, where the router happily renders "Not found" over a 200 response. Fix: configure the server or prerender layer to send the real status; the JS layer alone can't.
  • Deleting pages during content pruning without checking backlinks first. The content was thin; the links pointing at it were not. Fix: backlink-check every URL on the kill list, 301 the linked ones to relevant survivors.
  • Letting internal links rot. Every internal link to a 404 is self-inflicted, you control both ends. Fix: make a 4xx-inlinks crawl part of your monthly routine and fix at the source, not with patch redirects.

FAQ

Do 404 errors hurt my rankings?

Not directly, Google has been explicit that 404s are a normal part of the web and don't count against the site. The indirect damage is real though: lost link equity from unredirected URLs and wasted internal-link value pointing at nothing.

Should I redirect a 404 or leave it?

Decision rule: does a page exist that satisfies the same intent? Yes → 301 to it. No → let it 404 (or 410 if it's permanently, deliberately gone). Redirecting to a weak substitute just creates a soft 404 with extra steps.

How fast does Google drop a 404 URL from the index?

It needs to see the 404 confirmed over multiple crawls, so figure days to a few weeks depending on how often the URL gets crawled. A 410 shaves a little off that. For urgent removals (legal, privacy), use GSC's Removals tool on top of the status code.

Can Google index my 404 page itself?

Only if it's misconfigured to return 200 at its own URL, which happens with the Apache full-URL ErrorDocument mistake and with SPA routers. Served correctly (as a response body on the missing URL, status 404), it can't be indexed.

Should I noindex pages instead of 404ing them?

Different jobs. Noindex is for pages that should keep existing for users but stay out of search. If the page shouldn't exist at all, the honest answer is 404/410, it ends recrawling eventually and doesn't leave a zombie URL to maintain.

Claude Vincent is a technical SEO consultant focused on crawlability, rendering, and AI-search visibility. He writes the field guides and case studies at SEO ProCheck, with a bias toward the durable, unglamorous work that decides whether search engines and AI answer engines can actually read and cite a site.

About SEO ProCheck

Technical SEO consulting and GEO strategy with 20 years of enterprise experience. Case studies, resources, and tools for search and AI visibility.

Work With Me

Technical SEO audits, GEO strategy, site migrations, and international SEO. Hourly consulting for teams who need hands-on support, not just reports.

Subscribe to our newsletter!

More from our blog