
Schnelles CLI-Tool zum Scannen von Websites, Sitemaps und URL-Listen auf defekte Links, mit parallelen Workern, Coverage-Reporting und mehreren Ausgabeformaten.
Finde tote Links (kaputte Links)
Dokumentation • Installation • GitHub Action • Mitwirken • Changelog
Ein toter Link (kaputter Link) bezeichnet einen Link in einer Webseite, der nicht verbunden werden kann. Diese Links können negative Auswirkungen auf SEO und Sicherheit haben. Dieses Tool erleichtert die Identifizierung und Änderung.

Suchen Sie nach v1 (Ruby gem)? Es lebt jetzt im Branch
legacy/v1und veröffentlicht weiterhin dasdeadfinder-Gem für Fehlerbehebungen und Sicherheitsupdates.mainhostet den Crystal-Neuschrieb (v2+).
brew install deadfinder
# https://formulae.brew.sh/formula/deadfinder
docker run ghcr.io/hahwul/deadfinder:latest deadfinder url https://example.com
Laden Sie das Archiv für Ihre Plattform vom neuesten Release herunter, entpacken Sie es und platzieren Sie deadfinder in Ihrem PATH.
nix run github:hahwul/deadfinder
nix profile install github:hahwul/deadfinder
nix develop github:hahwul/deadfinder
Erfordert Crystal >= 1.19.1 und cmake (für die Postinstallation des lexbor-HTML-Parsers – ohne dies schlägt shards install mit 'cmake': No such file or directory fehl).
# macOS
brew install crystal cmake
# Debian / Ubuntu
sudo apt install crystal cmake
shards install
crystal build src/cli_main.cr -o deadfinder --release
# oder: einfach build
deadfinder sitemap https://www.hahwul.com/sitemap.xml
Pinne einen bestimmten Release-Tag. @latest ist kein gültiger Actions-Ref.
steps:
- name: Run DeadFinder
uses: hahwul/deadfinder@v2 # verfolgt die neueste 2.x – für strengere Reproduzierbarkeit einen bestimmten Tag (z. B. @2.0.2) angeben
id: broken-link
with:
command: sitemap # url / file / sitemap / pipe
target: https://www.hahwul.com/sitemap.xml
# timeout: 10
# concurrency: 50
# silent: false
# headers: "X-API-Key: 123444"
# worker_headers: "User-Agent: Deadfinder Bot"
# include30x: false
# user_agent: "Apple"
# proxy: "http://localhost:8070"
# proxy_auth: "id:pw"
# match: ""
# ignore: ""
# coverage: true
# visualize: report.png
- name: Ausgabe verarbeiten
run: echo '${{ steps.broken-link.outputs.output }}'
Wenn Sie einen toten Link gefunden haben und ihn automatisch als Issue hinzufügen möchten, lesen Sie bitte den Artikel "Automating Dead Link Detection".
Usage: deadfinder <command> [options]
Commands:
pipe Scanne die URLs von STDIN
file <FILE> Scanne die URLs aus einer Datei
url <URL> Scanne eine einzelne URL
sitemap <SITEMAP-URL> Scanne die URLs aus einer Sitemap
completion <SHELL> Generiere Vervollständigungsskript (bash/zsh/fish)
version Zeige Version
Options:
-r, --include30x 30x-Weiterleitungen als tote Links einschließen
-c, --concurrency=N Anzahl der gleichzeitigen Arbeiter (Standard: 50)
-t, --timeout=N Timeout in Sekunden (Standard: 10)
-o, --output=FILE Datei zum Schreiben der Ergebnisse
-f, --output_format=FORMAT Ausgabeformat: json, yaml, toml, csv, sarif (Standard: json)
-H, --headers=HEADER Benutzerdefinierte HTTP-Header für die erste Anfrage
--worker_headers=HEADER Benutzerdefinierte HTTP-Header für Arbeiteranfragen
--user_agent=UA User-Agent-String
-p, --proxy=PROXY Proxy-Server (HTTP und HTTPS CONNECT)
--proxy_auth=USER:PASS Proxy-Authentifizierung
-m, --match=PATTERN URL-Muster abgleichen (Regex)
-i, --ignore=PATTERN URL-Muster ignorieren (Regex)
-s, --silent Stiller Modus
-v, --verbose Ausführlicher Modus
--debug Debug-Modus
--limit=N Anzahl der zu scannenden URLs begrenzen
--coverage Aktivieren der Abdeckungsverfolgung und -berichterstattung
--visualize=PATH Generiere Visualisierungs-PNG
# Scanne die URLs von STDIN (mehrere URLs)
cat urls.txt | deadfinder pipe
# Scanne die URLs aus einer Datei
deadfinder file urls.txt
# Scanne eine einzelne URL
deadfinder url https://www.hahwul.com
# Scanne die URLs aus einer Sitemap
deadfinder sitemap https://www.hahwul.com/sitemap.xml
deadfinder sitemap https://www.hahwul.com/sitemap.xml -o output.json
cat output.json | jq
{
"Target URL": [
"DeadLink URL",
"DeadLink URL",
"DeadLink URL"
]
}
Mit --coverage:
deadfinder sitemap https://www.hahwul.com/sitemap.xml --coverage -o output.json
{
"dead_links": {
"Target URL": ["DeadLink URL 1", "DeadLink URL 2"]
},
"coverage": {
"targets": {
"Target URL": {
"total_tested": 14,
"dead_links": 7,
"coverage_percentage": 50.0
}
},
"summary": {
"total_tested": 14,
"total_dead": 7,
"overall_coverage_percentage": 50.0
}
}
}
deadfinder completion bash > /etc/bash_completion.d/deadfinder
deadfinder completion zsh > ~/.zsh/completion/_deadfinder
deadfinder completion fish > ~/.config/fish/completions/deadfinder.fish
Beiträge sind willkommen! Wenn Sie eine Idee für eine Verbesserung haben oder einen Fehler melden möchten:
feature/awesome-feature oder bugfix/annoying-bug).main-Branch ein.