Every site that has existed for more than a year has dead links. Old partners' domains go dark, articles get deleted, URL structures change, images get moved. Each one is a tiny leak: a 404 where a visitor expected content, a lost crawl budget line, a trust hit that Google quietly scores against you.
Nobody notices — until the SEO report looks bad and you have no idea which of the 2,000 links on your site is the problem. Manually checking is not an option. That's the gap I built a tool for.
The three ways dead links kill your site
- SEO weight loss — every internal link to a 404 is crawl budget spent on nothing, and Google treats broken internal links as a quality signal.
- Visitor loss — click through an email or a Google result, hit "Page not found", leave. That's a conversion you paid for and never got.
- Silent decay — sites rot gradually. By the time you notice, the damage is months old.
What I built: a dead link checker that runs anywhere
A single-file Python tool, pure standard library, zero dependencies. Three input modes:
-
--sitemap https://yoursite.com/sitemap.xml— full-site coverage, sub-sitemaps included -
--urls urls.txt— just check the links you care about -
--crawl https://yoursite.com/— BFS crawl that discovers and checks internal links automatically
It extracts <a> links plus <img>/<script>/<link>/<iframe> resources, filters out mailto/tel/javascript/data URLs, follows redirects, and checks concurrently (default 10 workers — 500 links in minutes).
# Weekly cron: scan Sunday morning, alert if anything's dead
0 9 * * 0 cd /path/to/deadlink && python3 deadlink_checker.py --sitemap https://yoursite.com/sitemap.xml --md deadlinks.md || echo "dead links found!" | mail -s "alert" you@example.com
Output is Markdown for humans, JSON for your automation. Exit code 1 when dead links are found, so it drops straight into cron/CI as a watchdog. It runs locally — your URLs never get uploaded to a third-party SaaS.
Why local beats the SaaS checker
The market is full of link-checking services. They're subscriptions, they rate-limit you by link count, and they require uploading your site structure to someone else's cloud. A local tool answers the same question in 10 seconds, for a one-time price, with full privacy.
If your site has been growing for a while and you don't know your dead link count right now — that's exactly the blind spot this is for. The full kit (checker + crawl mode + sitemap parser + docs) is at AgentChip.
Dead links are the cheapest problem to fix and the easiest to ignore. Ten minutes today beats a penalty next quarter.
Originally published on the AgentChip blog.
Top comments (0)