
How to Fix Broken Links: A Step-by-Step Guide
To fix broken links, find every dead URL with a crawler, decide whether to restore, redirect, or remove it, then update the links that pointed there.
· By Rogier Bruggeman, Founder of KinetixSEO
How to fix broken links
To fix broken links, you need to do three things in order: find every dead URL on your site with a crawler or a dedicated tool, decide whether each one should be restored, redirected, or removed, and then update any internal links or sitemap entries that still point to the old address. A broken link is any hyperlink that returns an error instead of a page — most often a 404 (not found), a 410 (gone), a soft 404 (a page that returns a success status but shows "not found" content), or a redirect chain that eventually dead-ends. Run a full crawl of your domain, export the list of broken URLs with their source pages, fix the highest-traffic and most-linked pages first, apply a 301 redirect to the closest live equivalent where one exists, and re-crawl to confirm the fix held. The rest of this guide walks through each step with the exact screens and settings involved, plus platform-specific instructions for WordPress, non-CMS sites, and the edge cases — redirect chains at scale, JavaScript-rendered links, external link rot — that shorter guides skip.
Test the technical signal
Want to see this on your own site?
Use your own site as the evidence. Get a free SEO and AI-citation readiness baseline, then monitor what changes.
Why broken links hurt your site's SEO and user experience
Broken links waste crawl budget, break the flow of link equity through your site, and send visitors to a dead end instead of the page they wanted. When Googlebot repeatedly hits dead URLs on pages that used to carry content, it spends less time discovering and re-crawling the pages you actually want indexed — this is the same mechanism covered in how to fix crawl budget waste on large sites, and it matters more on sites with tens of thousands of URLs than on a five-page brochure site. Internal links also carry authority between your own pages; a broken internal link is a dead end for that authority instead of a conduit. For visitors, a broken link is a trust signal in reverse — someone who clicks a product or resource link and lands on a generic error page is more likely to bounce than to search your site for what they wanted. None of this requires guesswork to diagnose: it shows up directly in crawl data, server logs, and Search Console's coverage reports.
How to find every broken link on your site first
Find every broken link before fixing any of them, because fixing one at a time as you stumble across it misses the pattern — a single moved page often has dozens of internal links still pointing to its old URL, and fixing only the one you noticed leaves the rest live. Three methods cover nearly every site:
- Dedicated link checker: Run your domain through a tool built specifically for this, such as Broken Link Checker, which crawls your pages, follows every internal and external link, and returns a list of each broken URL alongside the page that links to it.
- Google Search Console: Open the Pages report under Indexing, filter for "Not found," and export the list — this shows which broken URLs Google itself has already encountered, which is a useful priority signal because those are the ones affecting your crawl and index.
- Server log analysis: Pull a sample of server logs and filter for error status codes to see which broken URLs real visitors and bots are actually hitting, not just which ones a crawler happened to find.
Whichever method you use, export the results as a spreadsheet with three columns: the broken URL, the status code it returns, and the source page(s) linking to it. That spreadsheet is what you work through in the next step.
Step-by-step process to fix broken links once you've found them
Work through your exported list in order of traffic and link count, not alphabetically — a broken link on your homepage or in your main navigation does more damage per day than one buried in an old blog post, so fix those first. The process is the same for every broken link once you know what replaced it:
- Check the status code. Confirm whether the URL returns a hard error or a soft 404 (a success status with "page not found" content) — a soft 404 won't show up in a strict error filter, which is why a full crawl matters more than a status-code export alone.
- Decide the destination. If the content moved, find its new URL. If the content was merged into another page, identify that page. If the content no longer exists anywhere on the site, pick the closest relevant category or parent page instead of redirecting to the homepage by default.
- Apply a 301 redirect. Set up a permanent redirect from the broken URL to its destination at the server or CMS level — this passes the link equity the old URL had accumulated and sends both users and crawlers to the right place automatically.
- Update the source links. Go back to every page your crawl report listed as linking to the broken URL and change the link itself to point directly at the new address, rather than relying on the redirect alone — chained redirects add latency and some get dropped after enough hops.
- Update the XML sitemap. Remove the dead URL from your sitemap if it's still listed, and confirm the new URL is present so crawlers discover it on the next pass.
- Re-crawl to confirm. Run the checker again against the same URL list to verify each redirect resolves cleanly in a single hop and that no source page still links to the old address.
How to decide between a redirect, a restore, and a removal
Not every broken link should become a redirect — the right fix depends on whether the content still exists in any form. Restore the original page if it was deleted or unpublished by accident and the content is still available; this is the fastest fix and requires no redirect at all. Redirect with a 301 if the page's content has permanently moved to a new URL or been consolidated into another page — point the redirect at the single most relevant live page, not at the homepage, since a mismatched redirect target can itself be treated as a soft 404 by Google. Remove the link and let the URL return an error status if the content is genuinely gone and nothing on the site replaces it; a "gone" status is a stronger signal than a generic "not found" that the removal is intentional, which can speed up how quickly it drops out of the index. The checklist below gives you a quick way to decide which path applies before you touch any redirect rule.
How to fix broken links in WordPress
In WordPress, fix broken links by combining a scanning plugin or external crawler with the redirect tools most SEO plugins already include, since WordPress has no native broken-link detection. Install a link-checking plugin or run your site through an external crawler like Broken Link Checker, since relying on a plugin that continuously pings every link in the background can slow down page loads on larger sites. Once you have your list, open the Redirects screen in your SEO plugin (Yoast SEO, Rank Math, and Redirection all include one) and add a 301 redirect rule mapping the old slug to the new one — this is done without touching server configuration files. For links embedded directly in post or page content, use WordPress's built-in search-and-replace in the block editor, or a database search-and-replace tool, to update the anchor's href attribute rather than leaving it to resolve through a redirect. If the broken link points to an image or media file that was deleted from the Media Library, re-upload the asset under its original filename or update every post referencing it, since media URLs often aren't covered by slug-based redirect rules.
How to fix broken links on a website outside WordPress
On a website built without a CMS, or on a custom or headless stack, fix broken links the same way: crawl, redirect, update sources, with the redirect rule set at the server or hosting layer instead of in a plugin. On an Apache server, redirects are added to the .htaccess file using a Redirect 301 or RewriteRule directive; on Nginx, they go in the server block configuration as a return 301 statement. Static site generators and headless setups typically route redirects through a hosting platform's configuration file (a _redirects file on Netlify, or vercel.json on Vercel) rather than application code. Whatever the stack, the underlying steps don't change: identify the broken URL and its status code, pick the correct destination, implement the redirect at whichever layer your platform expects, then update the internal links that caused the crawl to flag it in the first place, rather than leaving them to rely on the redirect.
How to fix broken links at scale without creating new problems
On a large site, the failure mode isn't one broken link — it's redirect chains, JavaScript-rendered links a crawler never sees, and external link rot you don't control, and each needs a different fix. A redirect chain forms when page A redirects to B, which later redirects to C; every hop you leave in place adds latency and risk that a crawler or browser gives up before reaching the final page, so the fix is always to repoint A directly at C rather than leaving the chain intact — a bulk export of your redirect map, sorted to find any URL that appears as both a source and a destination, surfaces every chain in one pass. Links rendered only after JavaScript executes are a separate risk: a standard HTML crawl can report a link as fine when it's actually generated client-side and never resolves for a crawler that doesn't execute scripts, so a site relying heavily on client-side rendering needs a crawler configured to render JavaScript, not just fetch raw HTML. External link rot — other sites' pages that used to link to you going dead, or pages you link out to disappearing — isn't something a 301 on your own domain can fix; for outbound links, the only real remedy is periodically re-checking the URLs you link to and swapping dead ones for a current equivalent or removing the link entirely.
How to fix broken links for SEO rather than just usability
Fixing broken links for SEO means prioritizing by crawl and link-equity impact, not just by whether a human visitor would notice the error. A broken link buried three clicks deep on a low-traffic page matters far less to search engines than a broken link in main navigation, a footer, or a frequently-linked blog post, because those pages get crawled more often and pass more authority. When you redirect, map each old URL to the single most topically relevant live page rather than batching everything to the homepage — a flood of redirects all pointing at "/" reads to Google as a weak signal and can itself get treated as a soft-404 pattern. It's also worth checking external backlinks pointing at URLs on your own domain that no longer exist: a backlink audit tool will show which external sites link to your dead pages, and redirecting those specific URLs recovers link equity that would otherwise be lost entirely. This connects directly to crawl budget: a site that cleans up its broken links routinely gives crawlers fewer dead ends to waste requests on, which is the same mechanism detailed in the guide to fixing crawl budget waste on large sites.
Why a clean robots.txt file matters as much as fixed links
A clean robots.txt file matters alongside a broken-link cleanup because a crawler blocked at the root never gets far enough to hit your redirects or your dead URLs in the first place. In a KinetixSEO crawl study run on October 6, 2026, we fetched the robots.txt file for 45 public B2B SaaS homepages and counted how many carried a Disallow rule blocking OAI-SearchBot, PerplexityBot, or Claude-SearchBot from the site root: 0% of the 45 homepages still block at least one of these AI search crawlers. That figure is about AI search crawlers specifically, not about crawlers opting out of AI training, which is a separate setting entirely. A clean robots.txt file doesn't fix a single broken link, but it removes a different reason a page might never get crawled at all, so it's worth a two-minute check on your own domain while you're already auditing crawl access as part of a broken-link pass.
Why the destination page still needs to answer the question fast
Fixing the link itself is only half the job if the page it points to doesn't answer the visitor's question quickly once they land on it. In a KinetixSEO crawl check run on October 29, 2026, we tested whether the first body paragraph of our own crawling vs. indexing page is short and repeats a distinctive word from its own H1 — the result came back "answer up front," meaning the page passed that check. We also track how AI engines actually cite sources in practice: on October 28, 2026, ChatGPT's web search answered the tracked prompt "What tool can check my website and tell me what to fix for SEO?" and cited three sources — semrush.com, ahrefs.com, and google.com — with kinetixseo.com absent from that answer, a result logged in our GEO citation tracking records. Both checks point at the same gap: a technically clean site with no broken links can still fail to get cited if the destination page doesn't answer the question in its first sentence, which is a separate fix from the redirect work covered above.
Frequently asked questions
How do I fix broken links in InDesign?
In InDesign, fix broken links through the Links panel (Window > Links), where any linked image or file showing a yellow warning triangle or a red question mark icon is either modified or missing. Select the flagged link, click the Relink button at the bottom of the panel, and browse to the file's current location on disk to restore the connection; if several assets moved to the same new folder, select them all first and use Relink To Folder to fix them in one pass. This is a file-linking issue inside a desktop publishing document, not a web hyperlink issue, so it doesn't involve crawlers, redirects, or status codes — it only affects the InDesign file until you export or package it.
How do I fix broken links in Canva?
In Canva, a broken link usually means a hyperlink added to text or a button that points to a URL which no longer loads, and you fix it by selecting the linked element, opening the link settings, and editing or replacing the URL with a working one. Canva doesn't crawl your design for broken links automatically, so you need to click through each link yourself to test it, particularly after reusing an older template where links may point to a previous project's pages. There's no redirect mechanism inside Canva itself — if the destination page moved, the only fix is editing the link in the design to point at the new address directly.
Does fixing broken links actually improve search rankings?
Fixing broken links improves crawl efficiency and user experience, and both are factors search engines weigh indirectly rather than a single ranking input you can point to a number for. Removing dead URLs from frequently-crawled paths means Googlebot spends its crawl budget on live, indexable pages instead of dead ends, which matters most on large sites where crawl budget is a real constraint, as covered in the guide to fixing crawl budget waste on large sites. Restoring link equity through correct 301 redirects also means pages that previously accumulated backlinks don't lose that signal when their URL changes. Neither effect is instantaneous, and neither replaces the need for genuinely useful content on the destination page.
Should I redirect a broken link or just remove it?
Redirect a broken link if a live, relevant replacement page exists; remove it and let the URL return an error status if nothing on your site covers that content anymore. Redirecting to an unrelated or only loosely related page can be treated by Google as a soft 404, which defeats the purpose of the redirect in the first place, so the test is relevance, not just "something is better than nothing." If you're unsure whether a close-enough replacement exists, letting the page return a "gone" status is an honest signal that tells both users and crawlers the content was intentionally removed rather than temporarily missing.
How often should I check my site for broken links?
Check for broken links on a recurring schedule rather than only after a migration or redesign, since links break continuously as external sites restructure their own URLs and internal pages get deleted or merged over time. A monthly crawl is a reasonable baseline for most sites, with a full crawl immediately after any site migration, domain change, or CMS switch, when broken links spike sharply. Larger sites with frequent content changes benefit from a weekly or automated recurring scan rather than a manual one, since the volume of new links being added also grows the number that can silently break.
Sources
- KinetixSEO crawl study ()
0% of the 45 public B2B SaaS homepages still block at least one AI search crawler in robots.txt. Sample: 45 observations, measured Oct 6, 2026. Methodology: Fetched robots.txt for each of the 45 public B2B SaaS homepages and counted the sites carrying a Disallow rule that blocks OAI-SearchBot, PerplexityBot, or Claude-SearchBot from the site root.
- KinetixSEO GEO citation tracking ()
On 28 October 2026, ChatGPT (web search) answered the tracked prompt "What tool can check my website and tell me what to fix for SEO?" and cited 3 sources: semrush.com, ahrefs.com, google.com. kinetixseo.com was not among them.
- KinetixSEO crawl check ()
On 29 October 2026, KinetixSEO ran its "answer block shape" check against https://kinetixseo.com/learn/crawling-vs-indexing. What it tests: Whether the page's first body paragraph is short and repeats a distinctive word from its own H1. Result: Answer up front.
Test the technical signal
See how your own site scores on SEO and AI-search visibility — free report, no signup.
Use your own site as the evidence. Get a free SEO and AI-citation readiness baseline, then monitor what changes.
Related articles
- Cookieless Analytics: How We Measure Without TrackingTechnical SEO
- Largest Contentful Paint: Definition, Thresholds & FixesTechnical SEO
- Rich Results: What They Are and How to Earn ThemTechnical SEO
- Article Schema: A Step-by-Step Setup GuideTechnical SEO