404 error (not found)

A 404 error is the HTTP status code a server returns when the requested URL does not exist. For users it means a dead end; for Google it means the page should leave the index. A 404 is not a penalty and is often the correct answer. It becomes a problem only when a page that should exist returns it, or when a missing page returns 200 instead.

A 404 error means the server found no resource at the requested URL. Google removes such URLs from the index and crawls them less often, so a 404 is only a bug when the page was supposed to exist.

How it looks

A 404 is a status line in the HTTP response, not the content of the page. The HTML that follows it can be anything, including a nicely designed "page not found" screen.

HTTP/1.1 404 Not Found

HTTP/2 404

curl -I https://example.com/old-page/ shows the status line without downloading the body.

The important part is the number. A page that looks like an error but sends HTTP/1.1 200 OK is not a 404 for Google; it is a soft 404.

How Google handles it

According to Google's documentation on HTTP status codes, Google does not use the content from a URL that returns 4xx. Any content in the body is ignored. A URL that was indexed and starts returning 4xx is removed from the index, and a newly found 404 URL is not processed at all. The crawl frequency of that URL gradually decreases.

The same document groups 404 and 410 together: all 4xx codes except 429 are treated the same. Google's crawlers tell the next system that the content does not exist, and the indexing pipeline drops the URL. The difference between the two codes is semantic: 410 says "gone on purpose", 404 says "nothing here". Google processes both identically, so pick 410 when you want other clients to know the removal is intended and 404 everywhere else.

A 404 does not reduce the crawl rate of the site. Google's HTTP status codes page states that 4xx codes other than 429 have no effect on crawl rate. That is different from 5xx and 429 errors, which slow crawling down; see the entry on HTTP status codes for the full list.

Google's crawl budget guide adds one more point: a 404 or 410 is a strong signal not to crawl the URL again, while a URL blocked in robots.txt stays in the crawl queue much longer. For permanently removed pages, a real 404 is the cleaner solution.

When to keep a 404 and when to redirect

A 404 is correct when the content is gone and nothing replaces it: a discontinued product with no successor, a deleted post, a URL that never existed. The Search Console description of Not found (404) says the same: 404 responses are not necessarily a problem if the page was removed without a replacement, and if the page moved, use a 301 redirect.

Redirect when a page with the same purpose exists:

  • a product replaced by a newer model,
  • an article merged into a longer guide,
  • a URL that changed slug, category or domain,
  • an old URL that still gets traffic or backlinks.

Do not redirect everything to the home page or to a category page. The user asked for a specific product or article and lands on something generic, which is the behaviour described in the entry on soft 404. A redirect also hides the real problem: you stop seeing which URLs are being requested and why. The rules for choosing between a permanent and a temporary redirect are in the entry on 301 vs 302 redirects.

Custom 404 page requirements

A custom 404 page helps users, but only if the server still sends the 404 status. The checklist:

  1. The response status is 404 (or 410), confirmed with curl -I, not by looking at the page.
  2. The page explains that the URL does not exist and offers a search box, links to main sections and the home page.
  3. The page is not cached by a CDN with a 200 status.
  4. No redirect happens before the 404: the URL itself returns the code.

Common framework defaults break rule 1: a "404 route" rendered by a JavaScript application often returns 200 with an error message. Google's HTTP status codes page says that a 2xx response whose content suggests an error will be reported as a soft 404 in Search Console.

Common mistakes

MistakeEffect
"Not found" page returns 200Search Console reports a soft 404; Google keeps crawling the URL and wastes budget
Redirecting all 404s to the home pageUsers land on an unrelated page; you lose sight of which URLs are broken
Returning 404 on a page that still exists (misconfigured rewrite)The page drops out of the index after the next crawl
404 on resources (CSS, JS, images) needed for renderingGoogle renders the page without them; layout and content may be missing
Listing 404 URLs in the XML sitemapGoogle keeps requesting them and reports them in the Pages report
Using 404 to hide a site during maintenancePages get removed from the index; use 503 instead

How to check it

With curl, read the status line and nothing else:

curl -I https://example.com/missing-page/

Add -L to follow redirects and see what the final URL returns.

In browser devtools, open the Network tab, reload the page and look at the Status column of the first request. A 200 next to a "page not found" screen is a soft 404.

In Search Console, open the Pages report and look for Not found (404) under "Why pages aren't indexed". Google's Page indexing report explains that these URLs were found through links or existed in the past, and that Googlebot will keep trying them for some time. The URL Inspection tool shows the status of a single URL as Google last crawled it and lets you run a live test after a fix.

For a batch of URLs, the redirect checker shows the status code of every hop for up to 10 addresses at once, which is the fastest way to tell a real 404 from a 200 or a 301.

How IndexRise monitors it

IndexRise fetches every monitored URL each night and compares the status code with the saved baseline. A page that returned 200 and starts returning 404 triggers a critical "4xx or 5xx error" event after confirmation in the next check, so a one-off hiccup does not page you but a broken rewrite after a release does. When the URL responds like the baseline again, the case closes itself. To spot 404s listed in a sitemap, run the sitemap checker - it tests a live sample of URLs from the file.

A 404 you planned is fine. A 404 you did not plan costs the page its place in the index. Monitoring is how you tell the two apart the morning after a deployment.
Check it on your siteRedirect checkerThe full chain with status codes, targets and headers — up to 10 URLs at once.

Frequently asked questions

Does a 404 error hurt my rankings?

No. A 404 on a URL that is really gone is the expected answer and does not lower the rest of the site. The damage comes when a page with traffic or links returns 404 by mistake, because that single page drops out of the index.

Should I redirect every 404 to the home page?

No. A redirect to an unrelated page does not help the user and hides which URLs are broken. Redirect only when a page with the same purpose exists; otherwise leave the 404 in place.

What is the difference between 404 and 410?

Both tell Google the content does not exist and both are handled the same way by Google's crawlers. 410 states that the removal is deliberate; 404 says only that nothing was found.

How long does Google keep a 404 URL in its index?

Google removes a previously indexed URL after it sees the 4xx response and stops processing it. Googlebot still rechecks the URL from time to time, less and less often, and there is no way to make it forget a URL entirely.

Why does my 404 page show up as a soft 404 in Search Console?

Because it returns a 200 status code instead of 404. The content says "not found", but the server says the page exists. Fix the status code, not the page design.

Do 404 errors in Search Console need to be fixed?

Only the ones that matter: URLs with traffic, backlinks, listed in the sitemap or linked internally. A 404 for a URL that was removed on purpose can stay.

Updated: 2026-10-20