Recover 1,000 Dead 404 Backlinks and Map to Live Pages (Ahrefs + Claude)
Contents
A SaaS client's Ahrefs report was 1,243 broken backlinks pointing to 404s last August. I had a Friday afternoon. I shipped 580 redirects live by 5pm. The other 663 didn't need a redirect — and actively shouldn't have gotten one.
The hard part of broken backlink recovery isn't finding them. Ahrefs' Broken Backlinks report hands them to you on a plate. The hard part is the editorial call on which dead topics deserve a 301 and which deserve a 410. Claude does the bulk matching, you make the calls. Three steps.
1. Export from Ahrefs with two filters
Site Explorer → Backlinks → Broken backlinks. Apply two filters before exporting:
- DR (Domain Rating) > 20 — anything lower is comment spam or low-quality directories that won't move the needle even after a redirect
- "Follow" only — nofollow links pass nothing, skip them
Export as CSV. The DR filter usually cuts the report roughly in half. On that SaaS client, the unfiltered list was 1,243. After DR>20, it was 612. Of those, 580 ended up as live redirects.
2. Bulk-classify with Claude (the work that matters)
Paste 25–30 rows at a time into Claude with your top 10–15 site sections listed. The prompt:
For each row, give me the topic of the dead URL (read the slug and anchor), and suggest the most likely live URL on my site for the redirect. Output as CSV with columns:
broken_url, anchor, dr, topic, suggested_live_url, confidence. Confidence: "high" if the topic clearly matches an existing section. "no_match" if no live page fits. Do not invent live URLs.
The "do not invent live URLs" line is the only one that matters. Without it, Claude will confidently redirect /blog/2019/best-x-tool to /blog/best-x-tool-2024 even when that 2024 page doesn't exist. That gives you redirects to 404s, which is worse than no redirect at all.
After Claude returns the batch, spot-check 20 of the "high" confidence rows by visiting suggested_live_url in a browser. If they all return 200, the batch is good. If half are 404s, your prompt needs more site context — usually a fuller list of the section structure.
3. Ship the redirects
The validated CSV — only rows where suggested_live_url is real — goes to whoever has server access. The format depends on the host:
- Apache / Nginx — one line per redirect in
.htaccessor the server config - Cloudflare — bulk upload in Rules → Redirect Rules
- Vercel / Netlify —
vercel.jsonor_redirectsfile
The 5-minute job everyone dreads is the upload. The 3-hour job is the matching.
What to do with the leftovers
The no_match rows are not failures — they're the editorial decision. Most of the time, the dead topic is genuinely dead: a product you stopped selling, an old campaign page. The right answer is to 410 it. A 301 to a tangentially related page is a soft 404, and Google has been clear about that for years.
If the topic is worth reviving (and you have time to write a new live page for it), build the new page first, then redirect. Not the other way around.
The whole job is one afternoon. The skill isn't the tool — it's being willing to leave 663 rows on the floor.