Broken Links | Blue Frog Docs

Broken Links

Diagnose and fix broken links that hurt user experience, waste crawl budget, and damage SEO performance

Broken Links

What This Means

Broken links (also called dead links) are hyperlinks that point to pages or resources that no longer exist or cannot be accessed, resulting in 404 errors or other error status codes. These can be internal links (pointing to pages on your own site) or external links (pointing to other websites).

404 Not Found:

  • Page has been deleted
  • URL has been changed
  • Page never existed (typo in link)
  • Most common broken link type

500 Server Errors:

  • Internal server error
  • Server temporarily down
  • Database connection failed
  • Server misconfiguration

Other Error Codes:

  • 403 Forbidden - Access denied
  • 410 Gone - Permanently removed
  • 503 Service Unavailable - Temporary issue
  • Timeout - Server not responding

Redirect Chains:

  • URL → 301 → 301 → 301 → Final page
  • Multiple redirects slow loading
  • Can break or cause timeouts

Impact on Your Business

User Experience:

  • Frustration when clicking broken links
  • Damaged trust in website quality
  • Users may leave site entirely
  • Professional credibility suffers
  • Harder to navigate and find information

SEO Impact:

  • Wastes crawl budget on dead pages
  • Link equity lost from broken internal links
  • External sites may remove links to you
  • Signals poor site maintenance to Google
  • Can indirectly hurt rankings

Link Equity:

  • Broken internal links waste "link juice"
  • Authority not passed to important pages
  • Broken incoming links lose value
  • Orphaned pages may not get indexed

Conversion Rates:

  • Broken product links lose sales
  • Broken CTAs prevent conversions
  • Poor UX reduces engagement
  • Users abandon broken workflows

How to Diagnose

  1. Log into Google Search Console
  2. Navigate to "Coverage" or "Page Indexing" report
  3. Click "Not found (404)" section
  4. Review list of URLs returning 404
  5. Check "Referring URLs" to see which pages link to them

What to Look For:

  • High-value pages returning 404
  • Recently broken links (weren't 404 before)
  • Internal pages linking to 404s
  • External sites linking to broken pages
  • Patterns (whole sections deleted)

Method 2: Screaming Frog SEO Spider

  1. Download Screaming Frog
  2. Enter your website URL
  3. Click "Start" to crawl
  4. Navigate to "Response Codes" → "Client Error (4xx)"
  5. Review "Inlinks" tab to see which pages link to broken URLs
  6. Check "External" tab for broken external links

What to Look For:

  • 404 Not Found errors
  • Number of internal links pointing to 404s
  • Broken external links
  • Redirect chains
  • Server errors (5xx)

Dead Link Checker:

  1. Visit Dead Link Checker
  2. Enter your website URL
  3. Click "Check"
  4. Review broken links found

W3C Link Checker:

  1. Visit W3C Link Checker
  2. Enter page URL
  3. Review broken links report

What to Look For:

  • Number of broken links
  • Which pages contain broken links
  • HTTP status codes
  • Internal vs external broken links

Method 4: Chrome DevTools

  1. Open your website
  2. Press F12 to open DevTools
  3. Navigate to "Console" tab
  4. Look for 404 errors (red text)
  5. Or use "Network" tab:
    • Refresh page
    • Filter by "All" or "Doc"
    • Look for red status codes (404, 500)

What to Look For:

  • Failed resource loads (images, scripts, CSS)
  • Broken page links
  • Missing assets
  • Status codes in Network tab

For critical pages:

  1. Navigate through your website
  2. Click all navigation links
  3. Click footer links
  4. Test forms and CTAs
  5. Verify all buttons work
  6. Check product/category pages

What to Look For:

  • 404 error pages
  • Unexpected redirects
  • Loading failures
  • Broken images or assets

General Fixes

Update or remove broken internal links:

  1. Find all pages linking to broken URL:

    # Using Screaming Frog or Search Console
    # Identify which pages link to the 404
    
  2. Update links to correct URL:

    <!-- Before -->
    <a href="/old-page-url/">Click here</a>
    
    <!-- After - fixed link -->
    <a href="/correct-page-url/">Click here</a>
    
  3. Or remove link if no longer relevant:

    <!-- Before -->
    <p>Read more about <a href="/deleted-page/">this topic</a>.</p>
    
    <!-- After - link removed -->
    <p>Read more about this topic.</p>
    
  4. Batch fix common patterns:

    # Find and replace across files
    # Example: Update domain change
    find ./ -type f -name "*.html" -exec sed -i 's/oldomain.com/newdomain.com/g' {} \;
    

Fix 2: Implement 301 Redirects for Moved Pages

Redirect old URLs to new locations:

  1. Single page redirect:

    # Nginx
    location /old-page/ {
        return 301 /new-page/;
    }
    
    # Apache .htaccess
    Redirect 301 /old-page/ https://www.example.com/new-page/
    
  2. Multiple redirects:

    # Apache .htaccess
    Redirect 301 /old-about/ /about/
    Redirect 301 /old-contact/ /contact/
    Redirect 301 /products/old-category/ /products/new-category/
    
  3. Pattern-based redirects:

    # Nginx - redirect entire section
    location /old-blog/ {
        rewrite ^/old-blog/(.*)$ /blog/$1 permanent;
    }
    
    # Apache .htaccess
    RedirectMatch 301 ^/old-blog/(.*)$ /blog/$1
    
  4. Redirect to most relevant alternative:

    # If exact replacement doesn't exist, redirect to category/parent
    Redirect 301 /old-product-page/ /products/category/
    

Fix 3: Create Custom 404 Page

When redirects aren't appropriate:

  1. Design helpful 404 page:

    <!DOCTYPE html>
    <html>
    <head>
      <title>Page Not Found | Your Site</title>
    </head>
    <body>
      <h1>Page Not Found</h1>
      <p>The page you're looking for doesn't exist or has been moved.</p>
    
      <h2>Try these instead:</h2>
      <ul>
        <li><a href="/">Home Page</a></li>
        <li><a href="/products/">Products</a></li>
        <li><a href="/blog/">Blog</a></li>
        <li><a href="/contact/">Contact Us</a></li>
      </ul>
    
      <h2>Or search our site:</h2>
      <form action="/search/" method="get">
        <input type="text" name="q" placeholder="Search...">
        <button type="submit">Search</button>
      </form>
    </body>
    </html>
    
  2. Include site navigation

  3. Add search functionality

  4. List popular pages/categories

  5. Maintain branding and design

  6. Return proper 404 status code (not 200 or 302)

Update or remove links to external sites:

  1. Check if page moved:

    • Try finding page on site
    • Check site's sitemap
    • Use Wayback Machine to find last known URL
  2. Update to new URL if found:

    <!-- Before -->
    <a href="https://example.com/old-page/">External resource</a>
    
    <!-- After -->
    <a href="https://example.com/new-page/">External resource</a>
    
  3. Replace with alternative source:

    <!-- If original source gone, find alternative -->
    <a href="https://better-source.com/article/">Alternative resource</a>
    
  4. Remove link if no alternative:

    <!-- Before -->
    <p>Learn more at <a href="https://broken.com/">this resource</a>.</p>
    
    <!-- After -->
    <p>Learn more about this topic from authoritative sources.</p>
    
  5. Add nofollow to questionable links:

    <a href="https://might-break.com/" rel="nofollow">External Link</a>
    

Fix 5: Fix Broken Images and Assets

Repair broken image, CSS, and JavaScript links:

  1. Broken images:

    <!-- Before - broken image -->
    <img src="/images/old-folder/image.jpg" alt="Product">
    
    <!-- After - fixed path -->
    <img src="/images/products/image.jpg" alt="Product">
    
  2. Use absolute URLs to prevent breaking:

    <!-- Relative (can break) -->
    <img src="../images/product.jpg">
    
    <!-- Absolute (more reliable) -->
    <img src="/images/product.jpg">
    <!-- Or -->
    <img src="https://cdn.example.com/images/product.jpg">
    
  3. Fix CSS and JavaScript:

    <!-- Update resource URLs -->
    <link rel="stylesheet" href="/assets/css/style.css">
    <script src="/assets/js/script.js"></script>
    
  4. Verify resources exist:

    # Check if file exists
    ls /var/www/html/images/product.jpg
    

Implement monitoring and best practices:

  1. Use link monitoring tools:

    • Schedule monthly Screaming Frog crawls
    • Set up broken link monitoring (Dead Link Checker)
    • Monitor Google Search Console weekly
    • Use Ahrefs or SEMrush site audits
  2. Implement redirects when deleting pages:

    # Before deleting a page:
    # 1. Identify pages linking to it
    # 2. Set up 301 redirect
    # 3. Then delete page
    
  3. Maintain redirect log:

    # Keep record of all redirects
    /old-url/ → /new-url/ (Date: 2024-01-15)
    /deleted-page/ → /alternative/ (Date: 2024-02-20)
    
  4. Use content management workflow:

    • Review before deleting pages
    • Check for internal links
    • Set up redirects
    • Verify redirect works
    • Monitor 404s after change
  5. Avoid hard-coded URLs:

    <!-- Bad - hard-coded -->
    <a href="https://example.com/page/">Link</a>
    
    <!-- Better - relative -->
    <a href="/page/">Link</a>
    
    <!-- Or use variables/config -->
    <a href="{{site.url}}/page/">Link</a>
    

Fix 7: Clean Up Redirect Chains

Simplify multiple redirects:

  1. Identify redirect chains:

    curl -I https://example.com/page/
    # Shows: 301 → /page2/ → 301 → /page3/ → 200
    
  2. Consolidate redirects:

    # Before (chain)
    Redirect 301 /page1/ /page2/
    Redirect 301 /page2/ /page3/
    
    # After (direct)
    Redirect 301 /page1/ /page3/
    Redirect 301 /page2/ /page3/
    
  3. Update internal links to bypass redirects:

    <!-- Don't link to redirecting URL -->
    <a href="/old-page/">Link</a>
    
    <!-- Link directly to final destination -->
    <a href="/current-page/">Link</a>
    

Platform-Specific Guides

Detailed implementation instructions for your specific platform:

Platform Troubleshooting Guide
Shopify Shopify Broken Links Guide
WordPress WordPress Broken Links Guide
Wix Wix Broken Links Guide
Squarespace Squarespace Broken Links Guide
Webflow Webflow Broken Links Guide

Verification

After fixing broken links:

  1. Re-crawl with Screaming Frog:

    • Run new full site crawl
    • Check Response Codes → 4xx tab
    • Verify broken links eliminated
    • Confirm redirects working (3xx codes)
  2. Test redirects:

    curl -I https://example.com/old-page/
    # Should show: HTTP/1.1 301 Moved Permanently
    # Location: https://example.com/new-page/
    
  3. Google Search Console:

    • Wait 1-2 weeks for re-crawling
    • Check "Coverage" → "Not found (404)"
    • Verify 404 count decreasing
    • Monitor crawl errors
  4. Manual testing:

    • Click all navigation links
    • Test updated links
    • Verify redirects go to right place
    • Check 404 page if it appears
  5. Monitor ongoing:

    • Schedule monthly link checks
    • Review Search Console weekly
    • Fix new broken links promptly
    • Track 404 trends over time

Common Mistakes

  1. Deleting pages without redirects - Creates 404s
  2. Ignoring external broken links - Poor user experience
  3. Redirect chains - Multiple hops slow performance
  4. Custom 404 returning 200 status - Confuses search engines
  5. Not monitoring for new broken links - Issues accumulate
  6. Fixing links only once - Continuous monitoring needed
  7. Redirecting everything to homepage - Bad practice
  8. Leaving broken images - Hurts professional appearance
  9. No documentation of changes - Can't track redirect history
  10. Using JavaScript redirects - Not SEO-friendly

Regular Monitoring:

  • Monthly Screaming Frog crawls
  • Weekly Google Search Console checks
  • Broken link checker runs quarterly
  • Monitor 404 trends
  • Review external link health

Content Management:

  • Set up redirects before deleting pages
  • Document all URL changes
  • Check internal links when updating content
  • Maintain redirect mapping file
  • Review links in old content

Best Practices:

  • Use relative URLs for internal links
  • Implement custom 404 page
  • Keep redirect log updated
  • Test all new links before publishing
  • Consolidate redirect chains
  • Remove temporary redirects after migration

Technical Setup:

  • 301 redirects properly configured
  • 404 page returns correct status code
  • Sitemap updated after URL changes
  • Canonical tags prevent duplicates
  • Link monitoring automated

Additional Resources

// SYS.FOOTER