How to Find and Fix Broken Links on Your Site
A broken link points to a page that returns an error (usually a 404 Not Found) or fails to load. Your audit flagged either internal broken links (pointing to your own pages) or external broken links (pointing to other sites). Both waste crawl budget, frustrate users, and stop link value from flowing through. Fix them by correcting the URL, restoring the target page, adding a 301 redirect, or removing the link.
What this means
A broken link is an <a href="..."> that points to a URL the browser or crawler cannot load successfully. When someone or a search bot follows it, the server returns an error status instead of a working page. The most common is a 404 Not Found, but broken links also include 5xx server errors, connection timeouts, DNS failures, and links to pages that were deleted or moved without a redirect.
Your audit splits these into two codes. A broken_internal_link points from one of your pages to another URL on your own domain that no longer resolves. A broken_external_link points to a URL on a different domain that is now dead. Internal broken links are almost always caused by a typo, a changed URL slug, a deleted page, or a case-sensitivity mismatch. External broken links usually happen because the site you linked to removed the page, restructured, or went offline.
Internal broken links are the higher priority. They block crawling, break your own navigation, and cut off link equity within your site, and they are entirely within your control to fix.
Why it matters
For classic Google ranking, broken internal links do more damage than external ones. When Googlebot follows an internal link and hits a 404, it spends crawl activity on a dead URL and cannot pass link equity through that link to the page you intended. On large sites, repeated dead links can slow how thoroughly and how often Google recrawls your important pages. A page full of dead links also reads as poorly maintained. For users, clicking a link and landing on an error page is one of the fastest ways to lose trust and bounce back to the search results.
External broken links are less directly tied to rankings, but they weaken content quality. If you cite a source or reference a tool and that link is dead, the reader cannot verify your claim, which undercuts the experience and trust signals Google looks for in helpful content.
For AI answer engines this matters more than most people assume. Crawlers behind ChatGPT, Perplexity, Google AI Overviews, and Gemini follow links to gather and corroborate context. When your internal links are broken, these systems cannot reach the supporting pages that would strengthen how your brand is represented in an answer. Dead outbound citations also make your content look less reliable to a model deciding whether to reference you. Working links help AI systems traverse your site and stitch your pages into a coherent picture.
How to fix it
- 1
Triage the broken links from your report
Start from your audit, which lists each broken link, the source page it appears on, and the destination URL with its error status. Group them by internal versus external, and by status code. A 404 means the target is gone; a 5xx or timeout can be temporary, so re-check those before acting. This triage tells you whether to fix a URL, restore a page, add a redirect, or delete the link.
- 2
Fix internal broken links at the source
For each internal 404, edit the link where it lives. If it is a typo or a changed slug, correct the
hrefto the live URL. If the page moved, point the link straight at the new address rather than through a redirect. If the page was removed on purpose, repoint the link to the closest relevant live page or delete it. Always link to the final destination in one hop so crawlers and users don't pass through a redirect. - 3
Add 301 redirects for URLs that genuinely moved
When a page permanently moved and you can't track down every link to it, add a 301 redirect from the old URL to the new one. This preserves link equity and catches links from other sites, old bookmarks, and search results you don't control. Use a 301 (permanent), not a 302 (temporary), so search engines transfer ranking signals. Avoid redirect chains and loops, and don't redirect a deleted page to an unrelated one, since Google can treat that as a soft 404.
- 4
Repair or remove broken external links
For dead outbound links, first check whether the destination just moved: search the site or look it up on the Wayback Machine (web.archive.org) to find the new or archived URL. If the resource still exists, update the link. If it is gone for good, point to an equivalent authoritative source or remove the link and rephrase the sentence so it still reads well. Never leave a link to a domain that now serves spam or is parked.
- 5
Prevent future breaks before deleting or renaming
Most broken internal links are created during redesigns, migrations, and slug edits. Before you delete or rename a page, map its old URL to a new destination and set the 301. Keep a spreadsheet of URL changes during any migration. This one habit prevents most future
broken_internal_linkflags. - 6
Re-crawl to verify
After editing links and adding redirects, re-run the audit or your link checker to confirm the broken links are gone and no new redirect chains or loops appeared. In Google Search Console, run the URL Inspection tool on affected pages and watch the Pages report for a drop in 'Not found (404)' URLs over the following weeks.
Example
<!-- Broken: points to a slug that no longer exists (returns 404) -->
<a href="/blog/old-post-name">Read our guide</a>
<!-- Fixed: link points directly to the live URL -->
<a href="/blog/new-post-name">Read our guide</a>
<!-- If you can't update every link, redirect the old URL server-side. -->
<!-- Apache (.htaccess): -->
# Redirect 301 /blog/old-post-name https://example.com/blog/new-post-name
<!-- Nginx (server block): -->
# location = /blog/old-post-name {
# return 301 https://example.com/blog/new-post-name;
# }A broken internal link, the fixed version, and a server-side 301 redirect for the moved URL.
Platform-specific steps
Yoast SEO Premium and Rank Math both include a Redirect Manager that offers to add a 301 whenever you change or delete a post's slug, preventing most internal 404s at the source. To scan for existing dead links, use the Broken Link Checker or Redirection plugin, which logs every 404 hit so you can add a redirect in one click. On large sites, run a link scanner as a one-off then deactivate it rather than leaving it running, since continuous scanning is resource-heavy.
Shopify auto-creates a URL redirect when you change a product or page handle, but not reliably for deleted items or blog posts. Go to Online Store > Navigation > URL Redirects to add a 301 manually: enter the old path and the new destination. A deleted product returns a 404 until you add the redirect, so set one before deleting any product with inbound links.
In the Wix dashboard, go to Marketing & SEO > SEO Tools > URL Redirect Manager to add 301 redirects from old URLs to new ones. Wix keeps some old URLs alive after a rename, but confirm and add a redirect for any renamed or deleted page. Use an external crawler to find remaining dead links inside your page content, then fix the link targets directly in the editor.
Squarespace supports 301 redirects under Settings > Advanced > URL Mappings, using the format /old-url -> /new-url 301. When you change a page's URL slug, Squarespace does not always redirect the old one, so add a mapping. Fix in-content links by clicking the link and updating its target. Run an external crawl to catch dead links Squarespace won't flag for you.
In static HTML, fix the href in the source and redeploy. In Next.js, add redirects in next.config.js under the redirects() function with permanent: true, which emits a 308 (the permanent equivalent of a 301), mapping source to destination. For links rendered from data, validate URLs at build time or in CI so a bad href fails the build instead of shipping a 404. A link-checking step in your deploy pipeline catches broken links before production.
Frequently asked
A broken internal link points to another URL on your own domain that returns an error, usually because you changed a slug, deleted a page, or made a typo. A broken external link points to a page on a different website that has since been removed or moved. Internal broken links hurt more for SEO because they waste crawl budget and block link equity within your own site, and they are fully within your control to fix.
There is no specific algorithmic penalty just for having a broken link. The damage is indirect: internal 404s waste crawl activity and stop link equity from reaching your pages, dead links hurt user experience and increase bounces, and a page full of them signals poor maintenance. Fixing them removes those negative signals and helps Google crawl your important pages more efficiently.
If you control the page where the link appears, edit the href to point directly at the correct live URL. That is cleaner and faster than a redirect. Use a 301 redirect when the destination URL moved and you can't update every link to it, especially links from other sites, old bookmarks, or many pages pointing to the same moved URL. Redirect the old address, not the source page.
Run an automated crawl with an SEO audit tool or a dedicated link checker, which follows every link and reports the ones returning error statuses. Google Search Console's Pages report lists URLs it found as 'Not found (404)'. On WordPress, plugins like Broken Link Checker or Redirection can scan and log 404s. Re-crawl after fixing to confirm nothing broke again.
Yes, indirectly. AI crawlers behind ChatGPT, Perplexity, and Google AI Overviews follow links to gather and corroborate context about your brand. Broken internal links stop them from reaching supporting pages, and dead outbound citations make your content look less reliable. Keeping links working helps these systems traverse your site and represent your content accurately in answers.
Does your site have this issue?
Run a free, AI-powered audit and we’ll flag this and 150+ other checks in about a minute. No signup.