Fixing Broken Backlinks and Dead Inbound Links
A broken backlink is a link on someone else's website that points to an address on your site which no longer works. The other site is fine; the page on your side has gone, been renamed or was never typed correctly. Visitors who click land on your 404 page, and the value of the link is largely wasted.
Because the fix is on your own server, this is usually the quickest backlink finding to clear. This guide shows how to find these links, decide what each dead address should do, and put the right redirects in place on common platforms.
Broken, lost and internal: three different problems
Backlink reports use similar words for different things, and each needs a different fix. It helps to be precise before you start.
| Finding | What has gone wrong | Who fixes it |
|---|---|---|
| Broken inbound link (this guide) | The link still exists on the other site, but the address it points to on your site returns an error. | You, on your own server, usually with a redirect. |
| Lost backlink | The link has been removed from the other site, or the page containing it has gone. | The other site owner, after you ask. |
| Broken internal link | A link from one of your own pages to another of your own pages is dead. | You, by editing the link in your content. |
The distinction matters because a redirect only helps when the link still exists. If a report shows a link as lost, redirecting your URL achieves nothing until the other site puts the link back.
How these links break
- Deleted pages. An old blog post, product or event page was removed with no redirect.
- Changed URL structure. A move from
/blog/2021/05/post-nameto/insights/post-name, or a switch of platform, changed every address. - Domain or protocol changes. An old domain, subdomain or http address stopped redirecting after a hosting change or certificate renewal.
- Old campaign pages. Landing pages for offers, competitions and press releases, which attract links, then get switched off when the campaign ends.
- Mistakes on the linking side. The other site typed the address wrongly, added a trailing full stop, or copied a tracking-heavy link that has since broken.
Where to find them
The Backlink Tools
The Backlink Tools identify inbound links that point to broken pages on your site. Export that list first: it pairs each dead target URL with the sites linking to it, which is exactly what you need to prioritise.
Search Console Links report
In Search Console, open Links, then Top linked pages under external links, and export it. This lists the pages on your site that Google knows have external links, including pages that no longer exist. Put the addresses into a status checker, or run the short loop below, and filter for anything that is not a 200 or a single redirect. Separately, the Page indexing report lists URLs returning "Not found (404)", but it does not say which of them have links, so use it only as a cross-check.
while read url; do
printf "%s %s\n" "$(curl -s -o /dev/null -w "%{http_code}" "$url")" "$url"
done < top-linked-pages.txt | grep -v "^200"
Server access logs
Logs catch what link tools miss, because they record real visitors arriving from other sites. Search for 404 responses that have an external referrer. Each result is a broken link someone actually clicked.
awk '$9 == 404 && $11 !~ /example\.co\.uk/ && $11 != "\"-\"" {print $7, $11}' /var/log/nginx/access.log \
| sort | uniq -c | sort -rn | head -30
The field numbers suit the common combined log format; adjust them if your server logs differently. On Plesk, cPanel and most managed hosts, the same logs are downloadable from the hosting panel.
Restore, redirect or let it go
Every dead URL with links needs one of three outcomes. Make the decision per URL, not in bulk.
| Choose | When | Example |
|---|---|---|
| Restore the page | It was removed by mistake, or the content is still accurate and people are still linking to it for a reason. | A popular guide deleted during a tidy-up that you still have in a backup. |
| 301 redirect | A current page covers the same topic or serves the same need, so a visitor following the link would be satisfied. | An old /services/boiler-repair
page now covered by /heating/boiler-servicing-and-repair. |
| 410 Gone, or leave the 404 | Nothing on the site is a sensible match and the content should not return. | A discontinued product with no replacement, or a legal notice withdrawn on advice. |
Why not send everything to the homepage?
Redirecting every dead URL to the homepage is tempting because it clears the report in one rule. It does not help visitors, who clicked for something specific and land somewhere generic, and Google may treat a redirect to an unrelated page as a soft 404, which means the link gets little or no value. A redirect earns its keep only when the destination is a genuine substitute.
If the closest match is a category rather than a page, that can be reasonable: a deleted product might redirect to the category it belonged to, which still answers "where can I buy something like this?". If no match is even close, a clear 404 or 410 page with search and navigation is the more honest answer.
Writing the redirects on common platforms
Apache and .htaccess
# One-to-one redirects for URLs with inbound links
Redirect 301 /services/boiler-repair /heating/boiler-servicing-and-repair
Redirect 301 /blog/2021/05/winter-heating-tips /insights/winter-heating-tips
# Pattern redirect after a blog structure change
RewriteEngine On
RewriteRule ^blog/\d{4}/\d{2}/(.+)$ /insights/$1 [R=301,L]
nginx
location = /services/boiler-repair { return 301 /heating/boiler-servicing-and-repair; }
location ~ ^/blog/\d{4}/\d{2}/(.+)$ { return 301 /insights/$1; }
Reload with sudo nginx -t && sudo systemctl reload nginx so a typo does not take the site down.
WordPress
A redirect plugin such as Redirection lets you add source and target URLs without touching server files, and it logs 404s so you can see new broken inbound links as they are clicked. If your host offers server-level redirects, those are faster, but the plugin is fine for a few hundred rules. Avoid adding the same rule in both places.
Shopify
Shopify has a URL redirects screen in the admin; search the admin for "URL redirects" if you cannot
find it in the navigation settings. You can add redirects one at a time or import a CSV with Redirect from
and Redirect to columns. Shopify only applies a redirect when nothing exists at the old
address, so it will not override a live product or page. Paths must start with a slash and must not include
the domain in the "from" column.
Cloudflare and other CDNs
If traffic runs through Cloudflare, single redirects and bulk redirect lists can be set at the edge, before requests reach your server. This suits old domains and subdomains that no longer have hosting of their own. Keep a single record of where each rule lives so you do not create chains between the CDN and the origin.
Static sites and frameworks
Netlify reads a _redirects file, Vercel reads redirects in vercel.json,
and Next.js supports a redirects() function in its config. Make sure these return a real
301 or 308 status, not a client-side JavaScript redirect, which link crawlers may not follow.
The fix, step by step
Step 1
List inbound links that land on error pages
Export the broken inbound link list from the Backlink Tools, the Top linked pages export from the Search Console Links report, and any 404 hits with an external referrer from your access logs. Merge them in a spreadsheet with one row per dead URL on your site, a column counting linking domains, and a column listing the best example linking page. This single list becomes your work queue for everything that follows.
Step 2
Confirm the live status of each target URL
Link data can be weeks old, so check each address now with curl -sI or
a bulk status checker. Remove rows that already return 200 or already redirect correctly in one hop.
Watch for soft 404s, where the server returns 200 but shows a "page not found" message, and for addresses
that redirect to the homepage, because both are broken from the linking visitor's point of view and need
the same treatment as a real 404.
Step 3
Choose restore, redirect or 410 for each URL
Open the linking page for each dead URL to see what the link was promising, then pick the outcome. Restore content that was removed by mistake or is still accurate. Redirect with a 301 when a current page genuinely serves the same need. Return 410 or leave a helpful 404 when nothing matches. Write the chosen target next to each row, and do not default to the homepage just to empty the list.
Step 4
Write the redirects on your platform
Add
the rules where your site handles redirects: .htaccess or the virtual host on Apache, a
location block on nginx, a redirect plugin on WordPress, the URL redirects screen or CSV
import on Shopify, or the config file on a static host. Point every rule straight at the final address
so no chain is created, and keep a copy of the rules in version control or a shared document.
Step 5
Handle mistyped and malformed inbound links
Look through the list for addresses that never existed: misspellings, uppercase letters, a trailing full stop or bracket, doubled slashes or a missing file extension. If a real site with real visitors links to one, add a 301 from that exact broken form to the correct page. Only do this for links that matter, because redirecting every random typo from scraper sites adds rules without adding value.
Step 6
Test every redirect as a visitor would arrive
Run curl -sIL on each old address and confirm a single 301 or 308 hop
to a page returning 200. Test the http and www variants too, since links often use them. Then click through
from two or three real linking pages in a private browser window. Finally check that the redirect target
is indexable, with no noindex tag and a canonical tag pointing at itself.
Step 7
Ask for updates on your most valuable links
For the handful of strongest, most relevant sites, send a short note giving the new address and thanking them for the link. A direct link is cleaner than a redirect and survives any future change on your side. Keep the message brief and specific: the page, the old link and the new one. For everything else, the redirect is enough and nobody needs to be contacted at all.
After a redesign or migration
Most large batches of broken backlinks arrive after a site rebuild, a platform change or a domain move. The redirect map was either never made or only covered the pages someone remembered. If you are in that position:
- Recover the old URL list. Use an old XML sitemap, a crawl from before the move, the Wayback Machine, Search Console's Top linked pages export and your analytics landing page report for the months before the change.
- Map by pattern first. If the old blog used dates in the path and the new one does not, a single pattern rule may cover hundreds of posts. Then handle the exceptions one by one.
- Put linked pages at the top. Pages with external links and pages that received search traffic deserve individual mapping; the long tail can follow patterns or go to 404.
- Keep old-domain redirects running. If you moved domains, the old domain has to keep redirecting for as long as links point to it, which usually means keeping the domain registered indefinitely.
Redirect chains are the other common legacy. If /page-a redirected to /page-b
in the last redesign and /page-b now redirects to /page-c, update the first
rule to point at /page-c directly.
Stopping links breaking again
- Never delete a linked page without a decision. Before removing any page, check whether it has external links in the Backlink Tools or Search Console, and add a redirect or restore plan at the same time.
- Change URLs only for a reason. Tidier addresses are rarely worth the broken links. If you must change a structure, write the redirect map before launch, not after.
- Keep evergreen addresses for recurring campaigns. Use
/christmas-opening-hoursand update it each year instead of creating a new address with the year in it. - Watch the logs. A weekly glance at 404s with external referrers, or a redirect plugin's 404 log, catches new breakage within days.
- Re-run the Backlink Tools after every site change. A release that touched navigation, categories or slugs deserves a fresh broken inbound links check.
1. Do 301 redirects pass the value of a backlink?
Google has said that 301 and 308 redirects pass ranking signals to the destination, so a relevant redirect keeps most of the benefit of a link pointing at an old address. The important word is relevant. A redirect to a page that does not match what the link was about, especially a blanket redirect to the homepage, may be treated as a soft 404 and pass little or nothing. Redirect each linked URL to its closest genuine equivalent.
2. Should I redirect all 404 pages to my homepage?
No. It clears the error report but frustrates visitors who clicked for something specific, and Google may treat redirects to an unrelated page as soft 404s, so the links lose their value anyway. Redirect a dead URL only when a current page truly replaces it. When nothing matches, let it return 404 or 410 and make your error page useful, with search, main categories and a way to contact you, so visitors can still find what they wanted.
3. What is the difference between a 404 and a 410?
Both tell visitors and search engines the page is not available. A 404 means not found, with no statement about whether it might come back. A 410 means gone, deliberately and permanently. Google has said it treats them very similarly, though a 410 may be dropped from the index slightly faster. For broken backlinks the choice between them matters much less than the choice between either of them and a relevant redirect, which is the only option that keeps the link useful.
4. How long should I keep redirects in place?
For URLs with external links, keep them indefinitely. The links on other sites do not update themselves, and people will keep clicking them for years. Google has said a redirect should stay for at least a year for search engines to transfer signals, but that is a minimum for indexing, not a reason to remove them. A few hundred redirect rules cost almost nothing to run, while removing them breaks every link that relies on them.
5. Why does my backlink tool still show a link as broken after I added a redirect?
Backlink tools rely on their own crawl, so they only notice the fix when they next visit the linking page and follow the link to your site. That can take days or weeks. Check the address yourself with curl or a status checker; if it returns a single 301 to a live page, the fix is working. Also confirm the tool is testing the exact address, since http, www, uppercase and trailing slash variants each need to redirect.
6. Can I fix broken backlinks on Shopify or Wix without a developer?
Yes. Shopify has a URL redirects screen in the admin where you enter the old path and the new one, or import a CSV of many at once. Wix, Squarespace and most hosted builders have a similar redirect manager in their SEO settings. The main limits are that the old path must not still exist as a live page, and some platforms restrict pattern-based rules, so large structural changes may need each URL listed individually.
7. Is it worth asking the linking site to update the link?
For your most valuable links, yes. A direct link avoids the extra hop, keeps working if you change your redirect rules later, and gives you a reason to reconnect with a site that already likes your work. For the long tail it is not worth the time, because a correct redirect already sends visitors and signals to the right place. Send short, specific messages and never make the redirect conditional on the site updating anything.
The Backlink Tools pull your live link profile and identify inbound links that point to broken pages on your site, so you can see which dead addresses still have links and fix the most valuable first.
Open Backlink Fixes โ