How to Check for 404 Errors on Your Website (SEO Guide)
404 errors are one of the most common technical SEO problems — and one of the easiest to fix once you know where to look. A 404 status code means a page does not exist. When users or search engines request that URL, the server returns nothing useful. The visitor bounces. The crawler moves on. Any link equity pointing to that page evaporates.
A handful of 404 errors on a site is normal. Old blog posts get removed. Product pages expire. URLs change during redesigns. But when 404s pile up — or when high-value pages quietly break without anyone noticing — the damage compounds. Google wastes crawl budget re-checking dead URLs. Users hit dead ends and leave. Backlinks that took months to earn point nowhere.
This guide covers four methods to check for 404 errors on your website, from free tools you already have access to, to bulk checking thousands of URLs at once. Then we cover how to fix what you find and how to prevent 404s from accumulating in the future.
Why 404 Errors Matter for SEO
Before jumping into detection methods, it is worth understanding exactly how 404 errors hurt your site. Not all 404s are equal, and knowing the impact helps you prioritize which ones to fix first.
- Wasted crawl budget. Google allocates a limited number of pages it will crawl on your site in a given period. Every 404 it encounters uses part of that budget on a page that returns nothing. On large sites with thousands of URLs, excessive 404s can mean Google crawls your actual content less frequently.
- Lost link equity. If external sites link to a URL that now returns a 404, the ranking power from those backlinks is completely lost. This is especially damaging for pages that earned links naturally over months or years.
- Poor user experience. A user who clicks a link and lands on a 404 page is likely to leave immediately. High bounce rates from 404 pages send negative engagement signals, and the user may not return to your site.
- Broken internal linking. Internal links pointing to 404 pages create dead ends in your site structure. This disrupts the flow of PageRank through your site and can leave important pages orphaned from your navigation.
For a deeper look at how status codes affect search rankings, see our complete guide to HTTP status codes.
Method 1: Google Search Console
Google Search Console is the fastest way to find 404 errors that Google has already discovered on your site. It is free, and if you manage a website, you should already have it set up.
Step-by-Step Instructions
- Log in to Google Search Console.
- Select your property (domain or URL prefix).
- In the left sidebar, click Pages (under the Indexing section).
- Scroll down to the “Why pages aren't indexed” section.
- Look for the row labeled “Not found (404)”. Click it.
- You will see a list of all URLs that Google attempted to crawl and received a 404 response.
- Click any URL to see when Google last crawled it and how it discovered the URL (linked from another page, sitemap, etc.).
Key Tip: Check the Source Column
Google Search Console shows you how it discovered each 404 URL. If the source is “Sitemap”, your sitemap contains URLs that no longer exist — clean it up. If the source is “Internal link”, you have broken links within your own site that need to be updated.
Limitations of Google Search Console: It only shows 404 errors that Google has encountered. If Google has not yet crawled a broken URL, it will not appear here. It also does not show 404s caused by external links unless Google has followed those links. For a complete picture, you need additional methods.
Method 2: Check Your Server Logs
Server logs record every request made to your website, including requests that resulted in a 404 response. This is the most comprehensive method because it captures every 404 — from search engine crawlers, real users, bots, and automated scripts alike.
This method requires server access and is more technical than the others. If you are on shared hosting without log access, skip to Method 3.
How to Find 404s in Access Logs
Your access logs are typically located at /var/log/nginx/access.log (Nginx) or /var/log/apache2/access.log (Apache). Each line records a request with the status code included. To filter for 404 responses:
Nginx / Apache (combined log format):
grep " 404 " /var/log/nginx/access.log | awk '{print $7}' | sort | uniq -c | sort -rn | head -50This command filters for 404 responses, extracts the requested URL path, counts how many times each path was requested, sorts by frequency, and shows the top 50 results. The most-requested 404 URLs are the ones worth fixing first — they represent the most traffic hitting dead ends.
Key Tip: Filter by User Agent
To see only 404s encountered by Googlebot, add a filter for the user agent: grep "Googlebot" access.log | grep " 404 ". This shows you exactly which broken URLs are costing you crawl budget with Google specifically.
Limitations: Server logs can be enormous on high-traffic sites, and they rotate regularly. You need to analyze them before they are deleted, or set up log aggregation. This method also requires command-line skills and server access.
Method 3: Crawl Your Site
Site crawlers simulate how a search engine navigates your website. They follow every internal link, check every URL, and report any that return a 404 status code. This is the best method for finding internal 404 errors — broken links within your own site that you control and can fix.
Popular Crawling Tools
- Screaming Frog SEO Spider: The most widely used desktop crawler. The free version crawls up to 500 URLs. Point it at your homepage, let it crawl, then filter the results by status code to find all 404 responses.
- Sitebulb: A desktop crawler with a more visual interface. It highlights broken links and orphan pages automatically and generates prioritized recommendations.
- Ahrefs Site Audit / Semrush Site Audit: Cloud-based crawlers included with these SEO tool subscriptions. They run on a schedule and email you when new issues appear.
How to Use a Crawler to Find 404s
- Enter your homepage URL as the starting point.
- Configure the crawler to follow internal links only (exclude external domains).
- Start the crawl and wait for it to complete.
- Filter results by Status Code = 404.
- For each 404, check the “Inlinks” or “Source” column to see which pages on your site link to the broken URL.
Common Mistake: Only Crawling From the Homepage
Crawlers follow links from a starting point. If sections of your site are not linked from the homepage (orphan pages, old campaign landing pages), the crawler will never find them. Supplement your crawl with a sitemap-based check or a bulk URL check to catch these hidden 404s.
Limitations: Desktop crawlers can be slow on large sites. A site with 50,000 pages might take hours to crawl fully. Crawlers also only find 404s that are linked from other pages — they will not catch 404s that only external sites link to.
Method 4: Bulk URL Checker
A bulk URL checker takes a different approach. Instead of crawling your site to discover URLs, you provide the list of URLs you want to check — typically exported from your CMS, sitemap, or analytics — and the tool checks every single one for its HTTP status code.
This method is especially useful when you already have a list of URLs that should be working. After a site migration, CMS update, or domain change, you can export all your known URLs, run them through a broken link checker, and immediately see which ones are returning 404s.
How to Check URLs in Bulk
- Export your URL list. Pull all URLs from your sitemap (
sitemap.xml), your CMS, or Google Analytics. Export them as a CSV or plain text file, one URL per line. - Upload to a bulk checker. Use a tool like Bulk URL Checker to upload your file. The tool sends a HEAD or GET request to each URL and records the response.
- Filter for 404 responses. Once the check is complete, filter the results to show only URLs returning a 404 (or 410) status code.
- Export and prioritize. Download the results and sort by importance — pages with the most backlinks or historical traffic should be fixed first.
Check Thousands of URLs for 404 Errors
Upload a CSV of your URLs and get instant results. See every status code, redirect chain, and response time. 300 free checks, no credit card required.
Check URLs FreeWhy bulk checking works well for 404 detection: Unlike crawlers that discover URLs by following links, a bulk checker tests the specific URLs you care about. This means it catches 404s on orphan pages, deep-linked content, and URLs that no internal link points to. If you have a list of URLs that should be returning 200, bulk checking is the fastest way to verify it.
For a complete walkthrough of the CSV upload process, see our guide on how to find broken links on any website.
How to Fix 404 Errors
Finding 404 errors is only half the job. Here is how to handle each one, depending on the situation:
Option 1: 301 Redirect to an Equivalent Page
If the content moved to a new URL, set up a 301 redirect from the old URL to the new one. This is the most common fix and the most important one for SEO, because it preserves the link equity from any backlinks pointing to the old URL.
When to use it: The content still exists on your site, just at a different URL. This happens after URL restructuring, slug changes, or site migrations.
Option 2: Restore the Page
If the page was removed by accident, restore it. Check your CMS trash or revision history, or redeploy the content. This is the best option when the page was still receiving traffic or had valuable backlinks.
Option 3: Return a 410 (Gone)
If the content was intentionally removed and there is no equivalent page to redirect to, configure your server to return a 410 status code instead of a 404. A 410 tells Google the page is permanently gone, which speeds up deindexing. Use this for discontinued products, expired promotions, or retracted content.
Option 4: Update Internal Links
If the 404 is caused by a broken internal link (a typo in the URL, a link to a page that was renamed), fix the link on the source page. This does not require a redirect — just correct the link to point to the right URL.
Common Mistake: Redirecting All 404s to the Homepage
Redirecting every 404 to your homepage is a common but harmful practice. Google treats mass redirects to the homepage as soft 404s. They will not pass link equity, and Google may flag the redirects as problematic in Search Console. Always redirect to the most relevant equivalent page, or leave it as a 404/410 if no equivalent exists.
404 vs Soft 404: What Is the Difference?
A true 404 is a page that returns a 404 HTTP status code in the response header. The server explicitly tells the browser and search engines that the page does not exist.
A soft 404 is a page that returns a 200 (OK) status code but displays error content — a “page not found” message, an empty page, or a generic “no results” page. From the server's perspective, the request succeeded. But the page has no useful content.
Soft 404s are more dangerous than true 404s because they are harder to detect. A URL status checker will report a 200 status code, so the URL appears healthy. But Google can sometimes detect soft 404s by analyzing the page content, and when it does, it flags them in Search Console. However, Google does not catch all of them.
How to fix soft 404s: Configure your CMS or server to return a proper 404 status code when a page does not exist. Most CMS platforms have settings or plugins to handle this. If you are using a custom application, ensure your error handling returns the correct HTTP status code, not just an error message on a 200 page.
How Many 404 Errors Is Too Many?
There is no magic number. Google has said that 404 errors on URLs that never had value are not a ranking problem. If someone types a random URL into your domain and gets a 404, that is completely fine. Your site will not be penalized for returning 404s on URLs that should not exist.
The 404s that matter are the ones on pages that had traffic, had backlinks, or were indexed and ranking. These are the ones where you are losing real value. Focus on:
- Pages with backlinks: Check your backlink profile (Ahrefs, Moz, or Google Search Console “Links” report) and cross-reference with your 404 list. Any 404 URL with external links needs a 301 redirect.
- Pages with historical traffic: Check Google Analytics for pages that used to receive organic traffic but now show zero. If the URL now returns a 404, that traffic is gone.
- Pages in your sitemap: If your sitemap contains URLs that return 404, clean up the sitemap immediately. Submitting 404 URLs in your sitemap wastes crawl budget and signals poor site maintenance to Google.
Key Tip: Prioritize by Impact
Do not try to fix every single 404 on your site. Export your 404 list, cross-reference it with backlink data and traffic data, and fix the highest-value pages first. A single 404 on a page with 50 referring domains is worth fixing before 100 404s on pages nobody ever linked to.
Preventing Future 404 Errors
Finding and fixing existing 404s is reactive. To keep your site healthy long-term, build 404 prevention into your workflow.
1. Create a Redirect Map Before Migrations
Every time you change your URL structure, redesign your site, or migrate to a new platform, create a complete redirect map before you launch. This is a spreadsheet mapping every old URL to its new equivalent. See our website migration guide for a full checklist.
2. Use CMS Redirect Plugins
Most CMS platforms have plugins that automatically create a 301 redirect when you change a page's URL slug. In WordPress, plugins like Redirection or Yoast SEO Premium handle this automatically. Make sure this feature is enabled so URL changes never create accidental 404s.
3. Schedule Regular URL Checks
Set a recurring task — weekly for large sites, monthly for smaller ones — to check your URLs for new 404 errors. Export your sitemap URLs, run them through a broken link checker, and fix anything that has broken since the last check. Catching a 404 within days of it appearing is far less damaging than discovering it months later.
4. Monitor Google Search Console
Check the Pages report in Google Search Console at least monthly. New 404s will appear here as Google discovers them. Set up email alerts if your plan supports it.
5. Validate Links Before Publishing
Before publishing new content, verify that every link in the post actually works. This prevents you from creating new internal links that immediately point to 404 pages — a surprisingly common problem on sites with large content teams.
Keep Your Site Free of 404 Errors
Upload your sitemap URLs and check them all at once. Catch broken pages before they hurt your rankings. 300 free checks to start.
Check URLs FreeSummary
404 errors are inevitable on any website that changes over time. The goal is not to have zero 404s — it is to make sure no valuable page returns a 404 without a redirect in place. Here is the action plan:
- Audit your site using Google Search Console, server logs, a crawler, or a bulk URL checker.
- Prioritize by value. Fix 404s on pages with backlinks and historical traffic first.
- Apply the right fix. 301 redirect to an equivalent page, restore the content, return a 410 for intentionally removed pages, or update broken internal links.
- Never redirect all 404s to the homepage. Always redirect to the most relevant equivalent page.
- Prevent future 404s with redirect maps, CMS plugins, and scheduled URL checks.
Start by exporting your sitemap and running it through a URL status checker. That single step will show you exactly how many 404 errors your site has right now — and which ones need immediate attention.
Related Articles
Free vs Paid Broken Link Checkers →
When free tools are enough and when you need a paid broken link checker.
How to Find Broken Links on Any Website (2026 Guide) →
Free methods, browser tools, and bulk checking to find and fix broken links on any website.
Best Bulk URL Checkers in 2026 (Free & Paid) →
Compare the best bulk URL checkers for SEO teams and agencies. Free and paid tools reviewed.