Developer tool
LinkScan.
Find broken links and the pages that contain them.
A website crawler and link checker with a CLI, a local web UI, and exportable reports. Trace each failed link back to its source pages.
- Go
- CLI
- Local web UI
The problem it solves
A failed link is easier to fix when you know where it appears
Links drift as a website grows. Finding a failed URL is only part of the work. You also need to locate the pages that reference it and distinguish missing content from timeouts or blocked requests.
LinkScan crawls from a starting URL, checks discovered links, and records their source pages. Its reports make those relationships available in the terminal, in a local browser interface, or as files.
What it does
Controlled crawling
Set crawl depth, worker counts, request timeouts, and a per-host rate limit. Restrict checks to internal links when needed.
Useful failure categories
Separate client errors, server errors, timeouts, and invalid URLs instead of treating every unsuccessful check as the same problem.
Source-page tracking
Keep the pages that reference each checked link so a report points to the places that need attention.
CLI, browser, and file reports
Scan from the terminal or a local web UI. Export HTML, CSV, JSON, and reports grouped by source page.
Try it locally
Get started
Download and extract the archive for your operating system and processor from GitHub Releases. Run the following commands from the directory containing the extracted binary.
Download a release →Scan a site
Replace https://example.com with the website you want to check. This example limits requests and saves a JSON result.
bash./linkscan scan https://example.com --rate-limit 2 --out result.jsonGenerate reports
Create the default HTML, CSV, and JSON reports from the saved result.
bash./linkscan report --input result.json --out ./reportsUse the local web UI
Alternatively, start the browser interface and open http://localhost:8080.
bash./linkscan ui --port 8080
On Windows, use .\linkscan.exe in PowerShell in place of ./linkscan. Prebuilt binaries do not need Go. Building from source requires the Go version declared in the repository.
Before you use it
- A failed request does not always mean a page is missing. Bot protection and rate limits can return errors for a working destination.
- The scan covers pages discovered within the configured crawl depth and domain boundaries. It is not a guarantee that every page on a website was checked.
- Review ignored status codes and external-link settings before interpreting a report.
Source and documentation
- Project README and command reference ↗
- CLI source ↗
- Source build requirements ↗
- Published release v0.1.0 ↗
License: MIT. See the repository for current releases and requirements.