← Use Cases

How do I check for dead links on my website?

The problem

Websites accumulate dead links over time. Blog posts link to resources that move or disappear. Product pages reference partner sites that get parked. Documentation points to external tools that shut down. Visitors clicking dead links lose trust. Search engines penalise sites with broken outbound links. The longer dead links sit unfixed, the more damage they do to SEO and credibility.

Manual link checking doesn't scale. A website with 500 pages might have 5,000 outbound links. Checking them one by one is impossible.

How Unphurl solves it

Export all outbound URLs from your website (your CMS, a sitemap crawler, or a tool like Screaming Frog). Run them through Unphurl in batch. The pipeline detects parked domains, broken redirect chains, expired SSL, domains pending deletion, and missing infrastructure. You get a scored list that tells you exactly which links are dead, dying, or suspicious, prioritised by severity.

Signals that matter for this use case

  • Chain incomplete means the redirect chain can't be followed. The destination is dead.
  • Parked domain means the destination is a registrar placeholder or for-sale page. The content is gone.
  • Bad domain status (pendingDelete, serverHold) means the domain is effectively dead or seized.
  • SSL invalid means visitors will see a browser security warning when they click the link.
  • HTTP only means no SSL at all. Browsers flag these as insecure.
  • Expiring soon flags domains whose registration expires within 30 days. The link may break soon.

Suggested scoring profile

{
  "name": "dead-links",
  "weights": {
    "chain_incomplete": 30,
    "parked": 25,
    "domain_status_bad": 25,
    "ssl_invalid": 15,
    "http_only": 10,
    "expiring_soon": 15
  }
}

What a result looks like

You export 2,000 outbound links from your WordPress site. You run them through Unphurl:

Total links checked: 2,000
1,850 clean (known domains + cache: Google, YouTube, GitHub, Wikipedia, etc.)
150 unknown (ran through the pipeline)
28 flagged:
12 parked domains
8 broken redirect chains
3 domains pending deletion
5 expired SSL certificates

You now have a prioritised fix list of 28 links to update or remove. Parked and dead domains are urgent. Expired SSL is a warning. Run this monthly to catch problems before your visitors or search engines do.

Cost

A typical website audit of 2,000-5,000 outbound URLs: 90-95% resolve free from Tranco and cache. You might use 100-500 pipeline checks. The Starter ($9) or Standard ($39) package covers most website audits. Repeat audits cost even less as domains get cached.

Get started

For developers

Export your outbound URLs and run them through the CLI. Filter results by score to get the flagged list.

# Batch check and get flagged links (score 25+)
unphurl --batch urls.txt --profile dead-links --json | \
  jq -r '.results[] | select(.result.score >= 25) | [.url, .result.score] | @csv' > flagged.csv

For non-coders (Claude Cowork, OpenClaw, or any AI agent)

Paste your exported URL list and ask: "Check all these links from my website. Give me a list of the dead, parked, and broken ones so I can fix them."

Pro tip

Run this audit monthly. Domains expire, SSL certificates lapse, businesses close. A quarterly link audit catches problems before your visitors or search engines do.