DeadLinkPatrol › Blog

Search Console "Not Found (404)" Errors: Which to Fix and Which to Ignore

· 7 min read

Open the Page indexing report in Google Search Console on almost any site that has been around for a while and you'll find a "Not found (404)" row, sometimes with hundreds or thousands of URLs. It looks like an emergency. Most of the time it isn't, but a few of those URLs probably do matter, and the trick is to work out which ones.

This guide explains what Google actually says about 404s, gives you a simple triage to sort the list into "fix", "redirect" and "leave alone", and shows how to stop the list from growing.

What Google says about 404s

It's worth starting from Google's own documentation rather than SEO folklore.

In the Search Console help for the Page indexing report, Google describes a "Not found (404)" URL as one that "returned a 404 error when requested," discovered "without any explicit request or sitemap," possibly "as a link from another page, or possibly the page existed before and was deleted." It then says plainly: "404 responses are not necessarily a problem, if the page has been removed without any replacement. If your page has moved, use a 301 redirect to the new location." It also notes that Googlebot "will probably continue to try this URL for some period of time" and "will crawl it less and less often."

Google's developer documentation on HTTP status codes adds that all 4xx errors except 429 are treated the same way: the URL is removed from the index if it was indexed before, "newly encountered 404 pages aren't processed," and "the crawling frequency gradually decreases."

That gives you two practical conclusions:

  1. A 404 is the correct response for a page that's genuinely gone. Returning one doesn't penalize your site.
  2. A 404 on a URL that should work is a real problem. It's not a penalty either, but the page drops out of the index and any traffic or link value it had is lost.

So you're not trying to get the 404 count to zero. You're trying to find the 404s that shouldn't be 404s.

Step 1: Export the list

In Search Console, go to Indexing → Pages, click the Not found (404) row, and export the examples. Search Console shows a sample of affected URLs, not necessarily every one, so treat the export as a starting point rather than a full inventory.

Add two columns to the spreadsheet: Category and Action.

Step 2: Sort every URL into one of five buckets

Go through the list (filter by URL pattern to speed it up) and put each URL into one of these buckets.

Bucket A: Pages that moved and still have an equivalent

A product renamed from /blue-widget to /widgets/blue. A blog post whose slug changed. A service page merged into another service page.

Action: 301 redirect to the closest equivalent. This is exactly what Google's help recommends, and it's the most valuable fix on the list, because these URLs often had rankings, backlinks, or both.

Bucket B: Pages deleted on purpose with no replacement

A discontinued product with no successor. An event from 2019. A job ad that has been filled.

Action: leave it as a 404 (or a 410 if you want to signal "gone for good"). Don't redirect these to the homepage. Google tends to treat irrelevant redirects like that as soft 404s anyway, and users who land on your homepage instead of what they clicked get confused. If the deleted page had good backlinks and there's a genuinely related page, such as the category it belonged to, a redirect there is reasonable.

Bucket C: URLs that never existed

Typos in links on other sites, URLs with junk parameters, spam bots probing /wp-login.php on a site that isn't WordPress, paths with tracking garbage tacked on.

Action: ignore. You don't control other people's typos, and these URLs never had value. The exception is a typo'd URL that has a strong backlink pointing at it. A redirect to the intended page recovers that value.

This is the bucket people miss. The URL is in Search Console because your own site links to it. Common causes:

Action: fix the link at the source, and add a redirect if the URL has external value. A redirect alone isn't enough. If your own pages link to a 404, every visitor who clicks it hits a dead end, and internal links pass through a redirect hop for no reason. Find the page that contains the link and edit it.

Search Console's URL Inspection tool can sometimes show you where Google found a URL, but it doesn't reliably list every page that links to it. A crawler that records the source page for every broken link, the "found on" page, is the faster way to find these.

Bucket E: URLs that should work but don't

The URL is correct, the page should exist, and it returns 404 anyway. Typical causes are a deployment that dropped a route, a CMS page set to draft by mistake, a permalink flush that didn't run, or a server rule that's too broad.

Action: fix the page itself. This is a bug, not a content decision. If a Bucket E URL is a revenue page (pricing, checkout, contact, booking), it's the most urgent item on the whole list.

Step 3: Prioritize

With everything bucketed, work in this order:

  1. Bucket E on important pages. Broken pages that should be working.
  2. Bucket D. Your own links pointing at 404s, starting with sitewide elements (menus, footers), because one fix there repairs hundreds of instances.
  3. Bucket A, ordered by value. If you can see which moved URLs had traffic (in analytics or Search Console's performance report) or backlinks (in any backlink tool), redirect those first.
  4. Bucket C typos with strong backlinks.
  5. Everything else in B and C: nothing to do.

On a typical site, steps 1 and 2 involve a fairly short list and do most of the good.

Step 4: Validate and wait

After fixing, you can use Validate fix on the Not found (404) row in Search Console. Expect it to take a while. Google rechecks on its own schedule, and the help docs say Googlebot keeps trying removed URLs "for some period of time." URLs you intentionally left as 404s will stay in the report for a while, and that's fine.

Don't judge your work by whether the 404 count goes down. Judge it by whether the URLs in buckets A, D and E now resolve correctly.

Why Search Console alone isn't enough

Search Console is a good lagging indicator, but it has gaps for this job:

A scheduled link crawler fills these gaps. It works from your side: it crawls your pages, checks every link it finds, and tells you which page each broken link sits on, usually within a day of the break. That turns Bucket D from detective work into a to-do list.

Stopping new 404s from building up

A few habits keep the report small:

The short version

If you want this checked automatically, DeadLinkPatrol monitoring starts at $9/mo for 3 sites with weekly scans (see pricing), and emails you only when a new link breaks.

To find the broken links on your own pages right now, run a free DeadLinkPatrol scan. It checks up to 25 pages with no signup and lists each broken URL alongside the page it's on.

Check your own site for broken links

Run a free scan of up to 25 pages, no signup. Or let DeadLinkPatrol watch your sites on a schedule and email you when a link breaks.

Monitoring: Starter $9/mo (3 sites, weekly) · Agency $79/mo (50 sites, daily, white-label reports). See plans

More from the blog

More free tools from Swift Labs