Filtering

-m / --match=PATTERN and -i / --ignore=PATTERN

Regex applied to every discovered URL before it's fetched. To prevent ReDoS, patterns are capped at 1024 characters and nested-quantifier shapes (e.g. (a+)+) are rejected.

# Only check internal links
deadfinder sitemap https://www.example.com/sitemap.xml \
  --match='^https://(www\.)?example\.com/'

# Skip media files
deadfinder url https://www.example.com \
  --ignore='\.(png|jpg|gif|webp|mp4)$'

Using both: --match is applied first, then --ignore.

-r / --include30x

Link checks don't follow redirects — the 3xx status itself is the result, and by default it's treated as healthy. Enable this flag to report redirecting links as dead too:

deadfinder url https://www.example.com --include30x

Use this when your policy is "redirects are technical debt".

--limit=N

Cap the number of URLs scanned per invocation (useful for quick smoke tests of a large sitemap):

deadfinder sitemap https://www.example.com/sitemap.xml --limit=50

Applies to the input list (file lines, STDIN lines, or sitemap <loc> entries). Not to discovered child links on each page.

-c / --concurrency=N and -t / --timeout=N

Not filters per se, but the other knobs you'll reach for:

  • --concurrency=50 (default) — number of parallel workers.
  • --timeout=10 (default, seconds) — per-request connect + read timeout.

Ramp concurrency down on rate-limited targets; up on fast internal scans.