Find Broken Links and Fix Fast: 4 Tools to Stop 404 Hemorrhaging
Quick Summary
- What this covers: Detect broken links killing SEO in 15 minutes. Screaming Frog, Ahrefs, Google Search Console methods with bulk fix workflows for WordPress, Shopify, HTML.
- Who it's for: site owners and SEO practitioners
- Key takeaway: Read the first section for the core framework, then use the specific tactics that match your situation.
Broken links — internal or external URLs returning 404 errors — erode user experience, waste crawl budget, and leak PageRank to dead ends. A single high-authority page linking to 10 broken URLs transfers zero equity and signals poor site maintenance to Google. Sites with 5%+ broken internal links see 15-30% ranking drops compared to clean link profiles.
I've audited 70+ sites where broken link accumulation over 2-3 years created thousands of orphaned pages, dead navigation paths, and crawl traps. An ecommerce site with 4,200 broken internal links (product URLs deleted without redirects) saw 40% of crawl budget wasted on 404s. After implementing 301 redirects and removing dead links, crawl efficiency improved 65% and rankings recovered within 6 weeks.
This guide covers 4 detection methods (Screaming Frog, Ahrefs, Google Search Console, browser extensions), bulk fix workflows for WordPress/Shopify/HTML sites, and preventive systems to catch breaks before Google does.
Why Broken Links Hurt SEO
Broken links damage sites through multiple vectors:
1. Crawl Budget Waste
Googlebot allocates finite crawl quota based on site authority, server speed, and update frequency. Every 404 response wastes a crawl slot that could have discovered new content.
Impact scale:
- Site with 10,000 pages, 500 broken internal links: 5% crawl waste
- Site with 50,000 pages, 8,000 broken internal links: 16% crawl waste (critical on large sites)
Search Console → Crawl Stats shows daily crawl requests. Filter by status code — if 404s exceed 5% of total crawls, you're hemorrhaging budget.
2. PageRank Dilution
PageRank flows through internal links. When Page A (high authority) links to Page B (deleted, returns 404), the equity Page A passes dies at the 404. That link could have boosted a live page.
Example:
Homepage (DR 70) links to /old-product-page/ (404). That link passes 0 equity. Updating to /new-product-page/ transfers full equity.
Multiply this across 500 broken internal links and you've orphaned massive PageRank.
3. User Experience Degradation
Visitors clicking broken links bounce. Google Analytics data shows:
- 404 pages average 85%+ bounce rate
- Time on site drops 60% for sessions hitting 404s
- Conversion rate plummets (users lose trust)
Behavioral signals (bounce rate, time on site, pogo-sticking) feed ranking algorithms. Broken links indirectly hurt rankings through poor engagement.
4. Trust Signal Erosion
Sites with broken external links signal poor maintenance. Google's Quality Rater Guidelines instruct evaluators to check for "broken functionality" as a trust indicator.
YMYL sites (health, finance, legal) face stricter scrutiny. Broken links on a medical advice site suggest outdated information, triggering E-E-A-T penalties.
4 Methods to Find Broken Links
Method 1: Screaming Frog (Desktop Crawler)
Screaming Frog SEO Spider crawls your site like Googlebot, detecting all internal and external broken links.
Setup:
- Download free version (500 URLs) or paid ($259/year, unlimited) from screamingfrog.co.uk
- Launch app → Enter your domain → Click "Start"
- Wait for crawl to complete (10-60 minutes depending on site size)
Finding broken internal links:
- Response Codes tab → Filter "Client Error (4xx)"
- Review list of 404 pages
- Click any 404 URL → Bottom pane shows "Inlinks" tab
- Inlinks lists all pages linking to this broken URL
Export workflow:
- Response Codes → Client Error (4xx) → Export → Select "All Inlinks"
- Produces CSV with 3 columns: Broken URL, Source Page, Anchor Text
- Prioritize fixes by inlink count (broken URLs with 10+ inlinks first)
Finding broken external links:
- Configuration → Spider → Advanced → Check "Check External Links"
- Restart crawl (takes longer, crawls external destinations)
- External tab → Filter "Status Code" → Select "404"
- Export list of broken outbound links
Screaming Frog pros:
- Unlimited crawl depth (discovers every internal URL)
- Fast (crawls 100+ URLs/sec on paid version)
- Exports with source pages + anchor text (easy fix mapping)
Screaming Frog cons:
- Requires desktop app installation
- Free version limited to 500 URLs (insufficient for most sites)
- External link checking is slow (crawls every outbound destination)
Method 2: Ahrefs Site Audit
Ahrefs Site Audit crawls your site and flags broken links in the "Errors" report.
Setup:
- Ahrefs → Site Audit → Add New Project → Enter domain
- Set crawl limit (10,000 URLs covers most sites, increase if needed)
- Start crawl (10-30 minutes depending on size)
Finding broken links:
- Internal Pages report → "Best by links" tab → Filter "4xx status codes"
- Shows broken URLs sorted by internal inlink count (fix high-link pages first)
- Click any 404 URL → "Incoming links" shows source pages
Finding broken outbound links:
- All issues → Filter "External" → Select "Broken outbound links (4xx)"
- Shows source pages with broken external links
- Click issue to see specific broken URLs and which pages link to them
Export workflow:
- All Issues → Export → Select "Broken internal links" and "Broken outbound links"
- CSV includes: Issue type, URL, Source page, Anchor text
Ahrefs pros:
- Cloud-based (no installation)
- Fast crawling (distributed crawlers)
- Integrated with backlink data (see if broken pages had external backlinks)
Ahrefs cons:
- Requires paid subscription ($129+/month)
- Crawl limits (10K URLs on Lite plan, upgrade for larger sites)
Method 3: Google Search Console (Free, Google's View)
Google Search Console shows pages Googlebot crawled and found returning errors.
Finding broken pages:
- Google Search Console → Pages → "Why pages aren't indexed"
- Scroll to "Not found (404)"
- Click row to see list of 404 URLs Google encountered
- Export list
Limitation: Search Console only shows 404s Google discovered (via internal links, sitemaps, or external backlinks). Orphaned broken pages with no inlinks don't appear.
Finding sources of broken links:
Search Console doesn't show which pages link to 404s. Cross-reference with Screaming Frog or Ahrefs for source pages.
Why use Search Console despite limitations:
- Free
- Shows Google's perspective (if Google found it, it's wasting crawl budget)
- Flags recently broken pages (data updates within 1-3 days)
Method 4: Browser Extensions (Quick Spot Checks)
For manual page audits, use extensions that highlight broken links in real-time:
Check My Links (Chrome):
- Install from Chrome Web Store
- Visit any page on your site
- Click extension icon → "Check links on this page"
- Extension highlights broken links in red
Pros:
- Instant check (no crawl wait)
- Useful for auditing specific pages (blog posts, resource pages)
Cons:
- Manual (can't scan entire site)
- Only checks visible links on current page (misses links in hidden menus, lazy-loaded content)
Link Checker by Awesomez (Firefox):
Similar functionality for Firefox users.
Prioritizing Broken Link Fixes
Don't fix every broken link immediately. Prioritize by impact:
Priority 1: High-Authority Pages with Many Broken Links
Use Ahrefs or Screaming Frog to identify pages with:
- High URL Rating (Ahrefs) or PageRank estimate
- 5+ broken internal links
Example:
Homepage (UR 70) has 12 broken internal links → Fix all 12 immediately. Each fixed link restores equity flow.
Priority 2: Broken Internal Links with 10+ Inlinks
Pages linked from 10+ sources were important. Likely deleted without redirects.
Fix approach:
- If page has a replacement (new product, updated guide) → 301 redirect old URL to new URL
- If page has no replacement → 301 redirect to closest relevant category or parent page
- If truly irrelevant → 410 (Gone) status, remove inlinks
Priority 3: Navigation/Template Broken Links
Broken links in header, footer, or sidebar appear on every page, multiplying the damage.
Example:
Footer link to /old-contact-page/ (404) appears on 5,000 pages → Fix this one link eliminates 5,000 broken link instances.
Priority 4: Broken External Links on Resource Pages
If you maintain "Ultimate Guide" or "Best Tools" resource pages, broken external links erode credibility.
Fix approach:
- Update links to current URLs (many moved, didn't die)
- Replace with alternative resources if original died
- Remove link and mention if no replacement exists
Priority 5: Low-Impact Broken Links
Orphaned blog posts from 2015 with 1 inlink and 0 traffic → Lowest priority. Fix eventually but don't rush.
Bulk Fix Workflows by Platform
WordPress Broken Link Fixes
Option 1: Manual 301 Redirects (Best for <50 broken links)
Install Redirection plugin (free):
- Plugins → Add New → Search "Redirection" → Install → Activate
- Tools → Redirection → Add New Redirect
- Source URL:
/old-page/ - Target URL:
/new-page/ - Save
Repeat for each broken link. Plugin handles 301 redirects via WordPress (no server config needed).
Option 2: Bulk CSV Upload (Best for 50-500 broken links)
Redirection plugin supports CSV import:
- Export broken links from Screaming Frog (Broken URL, Target URL)
- Format CSV: 2 columns (source, target)
- Redirection → Import → Upload CSV
- Plugin creates 301 redirects in bulk
Option 3: Database Find & Replace (Best for 500+ broken links)
If thousands of internal links point to a specific old URL, use Better Search Replace plugin:
- Install Better Search Replace plugin
- Tools → Better Search Replace
- Search for:
https://yoursite.com/old-url/ - Replace with:
https://yoursite.com/new-url/ - Select tables:
wp_posts,wp_postmeta - Run search (dry run first to preview changes)
- Execute replace
This updates all instances in post content and custom fields.
Option 4: Remove Broken External Links
If broken external links can't be updated (destination permanently dead), remove them:
- Manually edit posts containing broken links (if only a few)
- Use Broken Link Checker plugin (auto-detects and allows bulk unlinking):
- Install plugin → Settings → Check "Automatic unlinking"
- Plugin scans site hourly, removes broken external links automatically
Warning: Auto-unlinking can remove legitimate links if destination has temporary downtime. Use cautiously.
Shopify Broken Link Fixes
Option 1: Manual Redirects (Best for <20 broken links)
- Shopify Admin → Online Store → Navigation → URL Redirects
- Click "Create URL redirect"
- Redirect from:
/old-product - Redirect to:
/new-product - Save
Shopify handles 301 redirects automatically.
Option 2: CSV Bulk Import (Best for 20-500 broken links)
- Create CSV with 2 columns:
Redirect from,Redirect to - Populate with broken URLs and target replacements
- Shopify Admin → Online Store → Navigation → URL Redirects → Import
- Upload CSV
- Shopify processes redirects in bulk
Limitation: Shopify CSV import limited to 10,000 redirects per account.
Option 3: Liquid Template Edits (For Template Broken Links)
If broken links appear in theme templates (header, footer):
- Shopify Admin → Online Store → Themes → Actions → Edit Code
- Search for broken URL in all
.liquidfiles (use Ctrl+Shift+F) - Replace with correct URL
- Save
Example: Footer link to /old-page/ appears in footer.liquid — update it once, fixes across all pages.
Option 4: Remove Broken External Links
For broken external links in product descriptions or blog posts:
- Products → Select product → Edit description → Find and remove broken link
- Repeat for each product (no bulk edit for link removal in Shopify)
Workaround: Export products to CSV, find/replace broken URLs in spreadsheet, re-import CSV.
Custom HTML Site Broken Link Fixes
Option 1: .htaccess Redirects (Apache Servers)
Add 301 redirects to .htaccess file in site root:
Redirect 301 /old-page/ https://yoursite.com/new-page/
Redirect 301 /old-product/ https://yoursite.com/new-product/
Unlimited redirects supported. Server handles 301s before page load (fast).
Option 2: Nginx Redirects (Nginx Servers)
Add redirects to Nginx config (/etc/nginx/sites-available/yoursite):
server {
location /old-page/ {
return 301 https://yoursite.com/new-page/;
}
location /old-product/ {
return 301 https://yoursite.com/new-product/;
}
}
Test config: sudo nginx -t
Reload: sudo systemctl reload nginx
Option 3: Meta Refresh Redirects (If No Server Access)
Add to <head> of broken pages (if you can edit HTML):
<meta http-equiv="refresh" content="0; url=https://yoursite.com/new-page/">
Not recommended: Meta refresh is slower than 301 redirects and doesn't pass full PageRank. Use only as last resort.
Option 4: Find & Replace Across HTML Files
If broken URL appears in multiple files:
- Use text editor with multi-file search (VS Code, Sublime Text)
- Search all
.htmlfiles for broken URL - Replace with correct URL
- Re-upload files to server
VS Code method:
- Open project folder → Ctrl+Shift+F (Find in Files)
- Search:
href="https://oldsite.com/dead-link" - Replace:
href="https://yoursite.com/working-link" - Replace All → Save files → Upload via FTP
Automating Broken Link Detection
Manual audits find existing breaks. Automated monitoring catches new ones.
Method 1: Scheduled Screaming Frog Crawls
Screaming Frog supports command-line automation:
/path/to/screamingfrogseospider --crawl https://yoursite.com --export-tabs "Response Codes:Client Error (4xx)" --output-folder /path/to/reports/ --save-crawl --overwrite
Schedule via cron (Linux/Mac) or Task Scheduler (Windows):
Weekly crawl every Monday at 2am:
0 2 * * 1 /path/to/screamingfrogseospider --crawl https://yoursite.com --export-tabs "Response Codes:Client Error (4xx)" --output-folder /var/reports/
Email CSV if broken links found (requires scripting to parse CSV and send alert).
Method 2: Ahrefs Site Audit Alerts
Ahrefs Site Audit can email when new broken links appear:
- Site Audit → Project Settings → Email Alerts
- Enable "Broken internal links increased by X"
- Set threshold (e.g., alert if broken links increase by 10+)
- Save
Alerts arrive within 24 hours of next scheduled crawl.
Method 3: Dead Link Checker Tools (Cloud-Based Monitoring)
Tools:
- OnCrawl (enterprise, $40+/month) — Continuous crawling, alerts on new 404s
- Sitebulb (desktop, $35-135/month) — Scheduled audits, email reports
- Moz Pro (all-in-one, $99+/month) — Site Crawl feature detects broken links
Configure weekly crawls → Receive email reports → Fix broken links from report.
Method 4: Broken Link Checker Plugin (WordPress)
Broken Link Checker plugin auto-scans WordPress sites:
- Install plugin → Settings → Broken Link Checker
- Set check frequency (every 72 hours recommended)
- Enable email notifications
- Plugin emails when broken links detected
Pros: Fully automated, no external tools needed
Cons: Resource-intensive (slows large sites), false positives (flags temporary downtime), abandoned plugin (last updated 2+ years ago as of 2026)
Alternatives: Link Whisper (paid, $77/year) — Active development, better performance.
Preventing Future Broken Links
Prevention strategies:
Strategy 1: Pre-Delete Redirect Checklist
Before deleting any page, ask:
- Does this page have inbound internal links? (Check in Ahrefs or Screaming Frog)
- Does this page have external backlinks? (Check in Ahrefs → Backlinks)
- Does this page rank for any keywords? (Check in Google Search Console → Performance)
If yes to any, create 301 redirect before deleting.
Strategy 2: URL Slug Stability
Avoid changing URL slugs without redirects. Once a URL is published, treat it as permanent.
WordPress tip: Set permalink structure once, never change it. If you must change, use Redirection plugin to auto-create redirects.
Strategy 3: External Link Validation Pre-Publish
Before publishing content with external links:
- Click every external link to verify it works
- Use Check My Links extension to scan page
- Update broken links before publishing
Strategy 4: Quarterly Broken Link Audits
Schedule audits:
- Q1, Q2, Q3, Q4: Run Screaming Frog or Ahrefs Site Audit
- Fix all broken links found
- Prevents accumulation over time
Broken Link Fix Tracking
Document fixes to avoid duplicate work:
Simple spreadsheet tracker:
| Broken URL | Source Pages | Fix Type | Redirect Target | Date Fixed | Fixed By |
|---|---|---|---|---|---|
| /old-product/ | Homepage, Category A | 301 Redirect | /new-product/ | 2026-02-08 | Victor |
| /dead-blog-post/ | Sidebar widget | Removed Link | N/A | 2026-02-08 | Victor |
Export broken link list from Screaming Frog, add columns for fix tracking.
FAQ
How many broken links is too many?
<1% of total internal links = healthy. 1-3% = moderate issue, prioritize fixes. 5%+ = critical, massive crawl budget waste and PageRank loss.
Should I fix broken external links or just remove them?
If destination moved (URL changed), update to new URL. If destination permanently died, remove link and mention in text ("Previously linked resource is no longer available").
Do 404s hurt rankings directly?
Not directly (Google doesn't penalize sites for having 404 pages — they're normal). Indirectly, broken links waste crawl budget, dilute PageRank, and hurt user experience, all of which harm rankings.
What's better: 301 redirect or 410 Gone status?
Use 301 redirect when you have a replacement page. Use 410 Gone when the content is truly obsolete and no replacement exists. 410 tells Google to drop the URL from the index faster than 404.
Can I redirect all broken URLs to the homepage?
No. Mass redirecting to homepage is "soft 404" behavior. Google treats it as 404 if target isn't relevant. Redirect to the closest relevant page (category, parent page).
How long do I keep redirects in place?
Permanent. Google and users may have old links bookmarked or referenced externally. Redirects cost almost nothing to maintain.
Should I submit a new sitemap after fixing broken links?
If you added 301 redirects, no need (Google follows redirects automatically). If you removed broken links from content, yes — submit updated sitemap to speed recrawling.
What if a broken link is in the sitemap?
Remove it immediately. Sitemaps tell Google "these are priority pages." Including 404s wastes crawl slots. Regenerate sitemap excluding broken URLs.
Do broken links affect Domain Authority or Trust Flow?
Not directly (those are third-party metrics), but broken links hurt real PageRank flow, which correlates with DA/TF. Fixing internal breaks restores equity flow, indirectly improving metrics over time.
Can broken links cause manual actions?
Rare. Only if thousands of broken links create a "poor user experience" or intentional cloaking/deception. Typical broken links don't trigger manual actions, just algorithmic ranking penalties.
Run Screaming Frog or Ahrefs Site Audit today. Fix the top 50 broken links (highest inlink counts) this week. Implement 301 redirects for deleted pages, remove dead external links, and schedule quarterly audits to prevent future accumulation.
When This Fix Isn't Your Priority
Skip this for now if:
- Your site has fundamental crawling/indexing issues. Fixing a meta description is pointless if Google can't reach the page. Resolve access, robots.txt, and crawl errors before optimizing on-page elements.
- You're mid-migration. During platform or domain migrations, freeze non-critical changes. The migration itself introduces enough variables — layer optimizations after the new environment stabilizes.
- The page gets zero impressions in Search Console. If Google shows no data for the page, the issue is likely discoverability or indexation, not on-page optimization. Investigate why the page isn't indexed first.
Frequently Asked Questions
How long does this fix take to implement?
Most fixes in this article can be implemented in under an hour. Some require a staging environment for testing before deploying to production. The article flags which changes are safe to deploy immediately versus which need QA review first.
Will this fix work on WordPress, Shopify, and custom sites?
The underlying SEO principles are platform-agnostic. Implementation details differ — WordPress uses plugins and theme files, Shopify uses Liquid templates, custom sites use direct code changes. The article focuses on the what and why; platform-specific how-to links are provided where available.
How do I verify the fix actually worked?
Each fix includes a verification step. For most technical SEO changes: check Google Search Console coverage report 48-72 hours after deployment, validate with a live URL inspection, and monitor the affected pages in your crawl tool. Ranking impact typically surfaces within 1-4 weeks depending on crawl frequency.