Updated Jul 15, 2026

Scanners

Crawl HTML references that no longer resolve

Find broken links, missing images, and other dead HTML references.

Agent

overview

What broken-link-checker does

Wire broken-link-checker on a known page URL when you need a dead-reference inventory before takeover or DNS follow-ups. It checks links inside HTML; it does not enumerate hosts.

Operators use it for content health and for security triage: broken external hosts are often the first signal that a third-party name or service was abandoned.

Start with --input, add --recrusive to crawl linked HTML, and set --filter-level plus --requests or --host-requests so the graph depth and concurrency stay controlled. Outputs are a file and folder.

source github.com/stevenvachon/broken-link-checker

use cases

Where broken-link-checker fits

Inventory dead links across a site

Crawl an HTML document recursively and list every broken link and missing image so content and reliability issues surface in one report.

Surface takeover candidates

Pull the broken external links a page points at, since a dead reference to an unclaimed host is exactly where a subdomain or service takeover begins.

Separate internal and external checks

Exclude internal or external links so a run focuses on either your own content health or the third-party hosts you depend on.

Tune crawl pressure per host

Set concurrent requests and per-host limits so a recursive scan covers a large site without overwhelming any single origin.

reference

broken-link-checker inputs and flags

13 inputs
NameTypeFlagDescription
inputSTRING--inputURL to an HTML document to check.
recrusiveBOOLEAN--recrusiveRecursively scan, crawling the linked HTML documents.
filter-levelSTRING--filter-levelWhich tags count as links, from clickable anchors up to metadata.
excludeSTRING--excludeA keyword or glob to match links against and skip.
exclude-externalBOOLEAN--exclude-externalDo not check external links.
requestsSTRING--requestsConcurrent requests limit.
host-requestsSTRING--host-requestsConcurrent requests limit per host.
verboseBOOLEAN--verboseDisplay excluded links.

Showing key inputs. broken-link-checker exposes 13 inputs in total.

Full flag reference (13 inputs)
NameTypeFlagDescription
getBOOLEAN--getChange request method to GET.
inputSTRING--inputURL to an HTML document.
followBOOLEAN--followForce-follow robot exclusions.
excludeSTRING--excludeA keyword/glob to match links against
orderedBOOLEAN--orderedMaintain the order of links as they appear in their HTML document.
verboseBOOLEAN--verboseDisplay excluded links.
requestsSTRING--requestsConcurrent requests limit.
recrusiveBOOLEAN--recrusiveRecursively scan ("crawl") the HTML document(s).
user-agentSTRING--user-agentThe user agent to use for link checks.
filter-levelSTRING--filter-levelThe types of tags and attributes that are considered links. (options: 0 -> clickable links, 1 -> 0 + media; iframes; meta refreshes, 2 -> 1 + stylesheets; scripts; forms, 3 -> 2 + metadata)
host-requestsSTRING--host-requestsConcurrent requests limit per host.
exclude-externalBOOLEAN--exclude-externalWill not check external links.
exclude-internalBOOLEAN--exclude-internalWill not check internal links.

example

Run broken-link-checker

broken-link-checker · command
# recursively check links on a site, skip mailto noisebroken-link-checker --input https://www.example.com/ --recrusive --exclude mailto --filter-level 1 --requests 10
sample output
BROKEN https://old.example.com/docs/guideBROKEN https://cdn.example.net/assets/missing.pngBROKEN https://api.example.com/v0/healthBROKEN https://static.example.org/favicon.icoBROKEN https://blog.example.com/posts/archivedBROKEN https://dev.example.com/legacy/statusOK https://www.example.com/OK https://app.example.com/login

guidance

Choosing broken-link-checker

Use broken-link-checker to map dead links and missing references on a known page or site crawl. It does not discover hosts. Feed broken external hosts into a takeover or DNS tool next.

socialhunter

Crawls for broken social links and flags takeovers. broken-link-checker covers all link types.

katana

Crawls for endpoints rather than checking link health. Find pages there, then check them here.

subjack

Tests subdomains for takeover directly. broken-link-checker surfaces the dead hosts that feed it.

faq

broken-link-checker questions

Broken links and missing images in HTML, found by extracting references and requesting each one to see what fails to resolve.

Run broken-link-checker yourself

A page URL feeds broken-link-checker, which collects dead references and hands the broken hosts to socialhunter so confirmed takeover candidates land as a queryable output.

Facts on this page come from the live Trickest tool library.