Fixing Broken Internal Links That Waste Crawl Budget and Frustrate Users
A broken internal link — one pointing from your own page to a 404 or dead URL on your own site — is entirely within your control to fix, unlike an external link on someone else's page. Yet internal link rot accumulates quietly over years of content updates, product discontinuations, and site restructures, and most sites carry far more broken internal links than their owners realize until an audit surfaces them.
Why Internal Link Rot Happens
Pages get deleted or their URLs change during a redesign, but the dozens or hundreds of other pages linking to the old URL never get updated to match. Category and navigation restructures are a particularly common source, since a single menu change can break links across every page on the site simultaneously. Old blog posts referencing now-retired product pages are another frequent culprit, especially on sites with years of accumulated content.
Run a Comprehensive Internal Link Audit
Crawl your entire site with Screaming Frog or Sitebulb and filter the response codes report for internal links resulting in 4xx or 5xx status. Export the "Inlinks" tab for each broken URL, which lists every page on your site linking to it — this becomes your direct fix-it list, since you're updating the link at its source rather than just noting that the destination is broken.
Fix at the Source, Don't Just Redirect
While a 301 redirect on the destination side prevents a hard 404, the better long-term fix for internal links is updating the link itself to point directly at the correct current URL. Relying purely on redirects for internal links adds unnecessary latency for every visitor who clicks them and creates redirect chains that compound as content changes again in the future — a direct link update avoids both problems and should be the default fix whenever you have edit access to the linking page.
Pay Special Attention to High-Traffic Templates
A broken link in your main navigation, footer, or a sitewide component affects every single page on the site simultaneously, making it far higher priority than a broken link buried in one old blog post. Audit global template components first, then work through content-level broken links by traffic volume of the page containing them, since a broken link on your highest-traffic blog post does more cumulative damage than the same issue on a rarely visited archive page.
Set Up Recurring Automated Checks
A one-time cleanup will regrow broken links within months on any actively maintained site. Schedule a recurring crawl — weekly or monthly depending on site size and publishing velocity — using Screaming Frog's scheduling feature, a tool like Dead Link Checker, or a broken-link-monitoring plugin for your CMS, and route the report to whoever owns content maintenance so new breaks get caught and fixed within days rather than being discovered a year later during the next full audit.
Don't Forget Links Inside Non-HTML Content
Broken links inside PDFs, email newsletters archived on your site, or embedded documents are easy to overlook because standard crawlers sometimes skip these file types by default. If your site hosts a meaningful volume of linked PDFs or downloadable resources, configure your crawl tool to follow and check links within them too, since these often go years without review while still driving meaningful traffic through search or direct links from other sites. For a deeper look at this, see our guide, Sitemaps, Robots.txt & Canonicalization.
Assign Ownership, Not Just Reports
A recurring crawl report that no one is responsible for acting on quickly becomes an ignored email. Assign a specific owner — often whoever manages the CMS day-to-day — to review and action the broken-link report on each cycle, and track basic metrics like average time-to-fix so the process stays accountable rather than quietly lapsing after the first few months of enthusiasm. For a deeper look at this, see our guide, URL Structuring & Internal Linking.