Broken Link Resurrector — Find Dead Links & Their Replacements avatar

Broken Link Resurrector — Find Dead Links & Their Replacements

Pricing

from $3.00 / 1,000 results

Go to Apify Store
Broken Link Resurrector — Find Dead Links & Their Replacements

Broken Link Resurrector — Find Dead Links & Their Replacements

Finds broken links on your pages and, for each one, suggests the fix: the last working capture from the Internet Archive, whether the site itself still exists, and the exact next action. A report you can act on, not a list of 404s.

Pricing

from $3.00 / 1,000 results

Rating

0.0

(0)

Developer

alaudin burki

alaudin burki

Maintained by Community

Actor stats

0

Bookmarked

2

Total users

1

Monthly active users

6 days ago

Last modified

Share

Broken Link Resurrector — Find Dead Links and Their Replacements

Every link checker hands you a list of 404s and walks away. That's the easy half — and it's why the fix sits in a backlog for a year.

This one does the hard half: for each dead link it finds the last working capture in the Internet Archive, checks whether the site itself still exists, and tells you exactly what to do about that specific link.

A report becomes a fix list. Free sources. No API key, no login, no anti-bot.

Why this works differently

A normal link checker outputs:

https://oldsite.com/guide — 404

Which tells you nothing you can act on. Was the page moved, or did the company die? Is there anything left of it? What did it even say?

This outputs:

https://oldsite.com/guide — 404 · site is still alive · archived copy from 2019-04-12 → "Site is alive but this page is gone. Search the site for "guide" and point the link at the current page; use the archived copy (6.4y old) to confirm what it said." · confidence medium

The difference is siteStillAlive. A dead page on a living site almost always moved — go find it. A dead page on a dead site is never coming back — swap in the archive link or cut it. Those are two completely different jobs, and no checker tells you which one you have.

The four verdicts

fixTypeWhat happenedWhat you do
archive_replacementAn archived capture existsPaste the archive URL, or use it to find where the page moved
search_sitePage gone, site up, nothing archivedSearch that site for the slug — it probably just moved
remove_or_replaceDomain no longer resolves, no archiveCut the link or find a new source
removeNothing left anywhereDelete it

Confidence is deliberately conservative. An archived copy is evidence of what a page was, never proof of where it moved to — so a live site with a dead page is capped at medium and asks for a human to confirm. This actor will not lie to you to look smarter.

What it does not call broken

Most cheap checkers report these as dead and waste your afternoon:

  • 403 / 401 → blocked, not dead. The page is fine; it just refuses bots.
  • 429 → rate_limited, not dead. You checked too fast.
  • 301 / 302 → redirect, not dead — but redirectedTo tells you where it now lands, so you can update the link anyway and save a hop.

Only 404, 410, 4xx, 5xx and DNS failures count as dead.

What you get

FieldDescription
url · anchorText · foundOnThe dead link, its link text, and which of your pages it's on
httpStatus · state · reasonok · not_found · domain_gone · blocked · redirect · server_error …
siteStillAliveThe field that decides everything — did the page move, or did the site die?
fixTypeOne of the four verdicts above
suggestedUrlThe archived replacement, ready to paste
confidencehigh · medium · low — honest, not optimistic
actionPlain-language next step, written for that link
archivedAt · redirectedToWhen the archive captured it; where a redirect now lands

Input

{
"pages": ["https://yourblog.com/2019/some-old-post"],
"findReplacements": true,
"brokenOnly": true
}

Or feed URLs straight in (from a sitemap, a crawler, a CSV):

{ "urls": ["https://a.com/gone", "https://b.com/moved"] }

Set brokenOnly: false to get a full audit of every link with a link-rot percentage in the QUALITY_REPORT.

Sample output

[
{
"url": "https://oldstartup.com/pricing",
"anchorText": "their pricing page",
"foundOn": "https://yourblog.com/2019/some-old-post",
"httpStatus": null,
"state": "domain_gone",
"dead": true,
"reason": "domain_not_found",
"siteStillAlive": false,
"fixType": "archive_replacement",
"suggestedUrl": "https://web.archive.org/web/20200114/https://oldstartup.com/pricing",
"confidence": "high",
"action": "Whole site is gone. Replace the link with the archived copy, or remove it.",
"archivedAt": "2020-01-14T09:22:41.000Z",
"status": "ok"
}
]

Typical uses

  • Content / SEO audit — broken outbound links hurt UX and waste crawl budget. This gives your writer a paste-ready fix list instead of a spreadsheet of 404s.
  • Documentation upkeep — docs rot faster than code. Run it over your docs site monthly.
  • Wikipedia / research citations — dead citations are the classic Wayback use case; this automates it.
  • Site migration cleanup — after a redesign, find every reference that didn't survive.
  • Agency deliverable — run it across a client's top 50 pages and sell the fix list. This is a genuinely sellable report, which a plain 404 list is not.

Pricing

$3.00 / 1,000 links checked ($0.003 per result), plus a near-zero start fee. Auditing a 300-link page costs under a dollar. Never charged beyond maxItems.

⚠️ Read before you act

  • An archive is not a redirect. The archived page proves what the URL used to contain. Where the content lives now is a judgment call — that's why confidence exists, and why medium/low rows ask for a human.
  • Archived pages can themselves be incomplete — the Internet Archive often captures HTML without images, CSS, or JS. Check the capture before you publish it as a citation.
  • blocked (403) is not a pass either. The link works for humans but a bot can't verify it. If it matters, open it yourself.
  • A link that is fine today can break tomorrow. This is a scheduled job, not a one-off.

FAQ & limitations

  • Do I need an API key? No. It uses the public Internet Archive availability API and plain HTTP.
  • Does it crawl my whole site? No — it checks the pages you give it. Pair it with the Sitemap Extractor actor to feed in every URL, or pass them in urls.
  • Does it find links rendered by JavaScript? No, it reads server HTML. For JS-rendered pages, pass the link URLs directly in urls.
  • Why is one link blocked instead of dead? Some sites refuse automated requests (403). That's a bot policy, not a broken link — so it is reported honestly rather than counted as rot.
  • Can it fix the links for me? No, and it shouldn't — it gives you the replacement and the reasoning; publishing the change stays a human decision.
  • Sitemap Extractor — get every URL on a site, then feed them in here.
  • Website Screenshot — capture what a page looks like now versus its archive.
  • HTTP Header Analyzer · DNS Lookup — dig into a specific offender.