How to find and fix broken links on your website
A broken link is a small thing until a visitor hits one on the page that was supposed to convert them, or Googlebot hits enough of them to start trusting your site less. Finding them is quick; fixing them properly takes a bit more judgement.
Why broken links matter more than they seem
For a visitor, hitting a dead link partway through a task - reading a blog post, trying to reach a contact page, checking pricing - is a small moment that carries an outsized trust signal. A site that can't keep its own internal links working reads as neglected, even if the rest of the page is well built, because the failure happens exactly when someone is trying to act on what you've told them. For search engines, broken links have a more mechanical cost: they waste crawl budget on URLs that lead nowhere, and they interrupt the flow of authority that's supposed to pass between your pages through internal linking. Neither effect is dramatic in isolation - one broken link rarely tanks anything - but both compound across a site that's accumulated dozens or hundreds of them over years of content changes, page deletions and URL restructuring, which is the normal state for most sites that have been live for a while.
Internal versus external broken links
Internal broken links point to pages on your own site that moved, were renamed, or were deleted, and these are entirely within your control, which makes them the highest priority to fix since there's no dependency on anyone else's decisions. They also tend to cluster around specific events - a site migration, a content cleanup, a URL structure change - so once you know roughly when something like that happened, that's where to look first. External broken links point outward to other sites, and those sites can restructure their own URLs at any time without any notice to you, which means a link that worked perfectly when you published it can quietly die months later through no fault of your own. These carry lower stakes since the failure is less obviously "your" mistake to a visitor, but they're still worth cleaning up periodically, particularly on high-traffic pages where a broken outbound citation undermines the credibility of what you're saying.
How to find them without checking every page by hand
Search Console's Page Indexing report flags internal pages returning 404 errors that Google has actually tried to crawl, which is a genuinely useful starting list because it's prioritised by what a search engine cares about finding, not just every link that technically exists somewhere on your site. It won't catch everything though, since Google only reports on URLs it has attempted to crawl, and a link buried deep in your site might not have been crawled recently, or at all. A dedicated site crawler tool closes that gap by following every link on your site the way a search engine does, systematically, and listing every dead one alongside the exact page it was found on. That page-level detail matters: knowing a link is broken somewhere on your site is far less useful than knowing it's broken on your top pricing page versus a five-year-old blog post, since that's what determines how urgently it needs fixing.
The three ways to fix a broken link
Redirect it, when the destination page moved permanently to a new URL - a 301 redirect passes most of the original page's accumulated authority and rankings across to the new address, so visitors and search engines both land somewhere useful instead of a dead end. Restore the content, when a page was deleted by mistake, or deliberately but it turns out the page still gets organic traffic or has other sites linking to it - bringing it back is usually less work than losing the value it had already built up. Remove the link entirely, when the destination is genuinely gone for good and there's no sensible replacement to point to instead, in which case a dead link left in place is worse than no link at all, since it just keeps failing every time someone clicks it. Working out which of the three applies takes a look at the destination's history and its traffic, not just a blanket rule applied to every 404 the same way.
Redirect chains are the same problem in disguise
A link that redirects to a page that itself redirects again to a third page still technically works for the visitor - the browser follows the chain and eventually lands somewhere real - but each additional hop adds loading delay and dilutes the authority passed along the chain. This usually happens by accumulation rather than by design: a page gets redirected once during a migration, then redirected again during a later restructuring, and nobody goes back to update the original link to point straight at the final destination. Chains longer than one or two hops are worth collapsing down to a single direct redirect, especially on pages that matter for rankings or that get heavy traffic, since the cumulative delay across a long chain is exactly the kind of small drag that shows up in page-speed metrics without an obvious single cause behind it.
Beyond the classic 404
Not every broken link announces itself with a clean 404 page. A soft 404 happens when a server returns a normal 200 "success" status code for a page that actually shows an error message or empty content, which fools basic link checks that only look at the status code rather than what's actually rendered on screen. Broken image links behave the same way in miniature: the surrounding page loads fine and returns a normal status, but the image itself shows as a broken icon because the file it points to is gone. Links embedded in JavaScript-rendered content can also slip past simpler crawlers that only read the initial HTML, since the actual link doesn't exist in the page until a script runs and builds it. None of these show up in a basic "count the 404s" approach, which is worth knowing before assuming a clean 404 report means there are no broken links left to find on your site.
Catching them before visitors do
Links break quietly, and they keep breaking on a rolling basis as other sites reorganise their own URLs and as your own site evolves, which means a one-off cleanup effort drifts back into disrepair within months even if it was thorough at the time. Treating it as a single project rather than an ongoing check is the most common reason broken links reappear on sites that already fixed them once. AuditHQ's Technical suite checks for broken internal and external links as part of the free scan, flagging exactly which page and which link is affected, so staying on top of it doesn't mean re-crawling the whole site by hand every few months - it means running a check and working through a short, specific list instead.
Frequently asked questions
Do broken links actually hurt SEO?
A handful rarely moves rankings much on their own, since search engines are generally tolerant of the occasional dead link on a large site - that's a normal and expected part of how the web ages. But at scale they waste crawl budget that could go toward your actually-useful pages, break the flow of internal authority between pages meant to reinforce each other, and signal a level of neglect that search engines and visitors both pick up on eventually. On a page you're actively trying to rank, the calculation changes: even one broken link in the main content or navigation is worth fixing immediately rather than batching it for a later cleanup, because that page is under closer scrutiny and a broken experience there costs more than the same fault somewhere nobody's paying attention to.
Should I use a 301 or 302 redirect?
Use a 301 for anything permanent, which covers the vast majority of real cases - a page that's moved for good, a URL structure that's changed and isn't changing back. Use a 302 only when the change is genuinely temporary, something like a product page swapped out during a sale and due to return afterwards. The distinction matters because search engines treat the two very differently: a 301 tells them to transfer the original page's ranking signals to the new URL, while a 302 tells them the original URL is still the "real" one and to keep it indexed instead, so the new page mostly doesn't inherit that authority. Using 302s for permanent moves is a common mistake that quietly costs rankings without throwing any obvious error.
How often should I re-check for broken links?
Quarterly is a reasonable baseline for most sites, catching the gradual accumulation from normal content changes before it builds into something significant. Immediately after any migration, redesign or bulk content deletion is non-negotiable though, since these events create the largest batches of broken links all at once - a URL structure change or a content purge, and every internal link pointing to the old structure breaks simultaneously. High-traffic sites publishing or updating content frequently benefit from a monthly check instead of quarterly, simply because links accumulate faster than they get noticed on a site with that much ongoing change, and the gap between when something breaks and when someone finds it matters more once traffic volume is higher.