DEV.co
Open-Source DevOps · JustinBeckwith

linkinator

Linkinator is a TypeScript-based broken link checker that crawls websites and validates links across remote sites, local files, and markdown documents. It offers both CLI and API interfaces with configurable concurrency, skip patterns, and specialized checks for CSS, fragments, and redirects.

Source: GitHub — github.com/JustinBeckwith/linkinator
1.2k
GitHub stars
101
Forks
TypeScript
Primary language
MIT
License (OSI-approved)

Key facts

Objective fields from the source. Values we can't verify are shown as “Unknown” rather than guessed.

FieldValue
RepositoryJustinBeckwith/linkinator
OwnerJustinBeckwith
Primary languageTypeScript
LicenseMIT — OSI-approved
Stars1.2k
Forks101
Open issues17
Latest releaselinkinator-v7.6.1 (2026-02-27)
Last updated2026-07-03
Sourcehttps://github.com/JustinBeckwith/linkinator

What linkinator is

MIT-licensed Node.js tool built in TypeScript that performs HTTP crawling and link validation with support for recursive scanning, custom headers, URL rewriting, and fine-grained HTTP status code handling. Deployable via npm, standalone binaries, or Docker; integrates into CI/CD pipelines via CLI or programmatic API.

Quickstart

Get the linkinator source

Clone the repository and explore it locally.

terminalbash
git clone https://github.com/JustinBeckwith/linkinator.gitcd linkinator# follow the project's README for install & configuration

Need it deployed, integrated, or customized instead? DEV.co ships production installs.

Best use cases

CI/CD Broken Link Validation

Integrate into deployment pipelines to catch broken links in documentation, generated static sites, or API references before release. Use CLI exit codes to fail builds on link violations.

SEO Audit and Site Health Checks

Scan live or staging websites recursively to identify 404s, dead links, and redirect chains that harm SEO. Export results as JSON/CSV for reporting and trend analysis.

Documentation Maintenance

Validate links in markdown files, API docs, and local HTML without manual review. Supports glob patterns and recursive directory scanning for large documentation sets.

Implementation considerations

  • Node.js v18+ or use standalone binaries (no runtime dependency); Docker image available for containerized deployments.
  • Concurrency defaults to 100 connections; tune for target site and network to avoid throttling or resource exhaustion.
  • Configure skip patterns (regex) and status code handlers to account for false positives (e.g., rate-limiting 429s, intentional broken links for testing).
  • Use `--server-root` and `--clean-urls` flags when checking static sites with rewrite rules or extensionless URLs.
  • For markdown scanning, use `--markdown` flag; glob patterns supported for batch file discovery.

When to avoid it — and what to weigh

  • Real-time or High-Volume Link Monitoring — Linkinator is a batch crawler, not designed for continuous real-time monitoring. For sites needing sub-minute alerting on link breakage, a dedicated monitoring service is more appropriate.
  • JavaScript-Rendered Content Validation — Fragment checking only validates server-rendered HTML, not JavaScript-injected links. Sites with SPA-driven navigation may not see client-side link creation.
  • Rate-Limited or Protected APIs — While retry logic and custom headers are supported, Linkinator lacks sophisticated API key rotation, OAuth flow support, or adaptive throttling for heavily rate-limited targets.
  • Complex Authentication Scenarios — Supports custom headers but not session-aware crawling, form-based login, or multi-factor authentication. Requires manual URL rewriting or external proxying for protected sites.

License & commercial use

MIT License (OSI-approved, permissive). Allows commercial use, modification, and distribution with attribution and inclusion of license text.

MIT is a permissive OSI license that explicitly permits commercial use. No restrictions on proprietary applications, SaaS offerings, or internal business use. Attribution required in source/docs.

DEV.co evaluation signals

Editorial assessment — not user reviews. Directional, with an explicit confidence level.

SignalAssessment
MaintenanceActive
DocumentationAdequate
License clarityClear
Deployment complexityLow
DEV.co fitStrong
Assessment confidenceHigh
Security considerations

Tool performs outbound HTTP requests; consider network ACLs and firewall rules. `--allow-insecure-certs` flag bypasses SSL validation (use only for local dev). No input sanitization details provided. Ensure sensitive URLs/headers are not logged when using `--verbosity debug`.

Alternatives to consider

muffet (Go)

Compiled Go binary; faster for very large sites. Fewer configuration options; less active maintenance.

broken-link-checker (npm)

Node.js alternative with more granular link filtering. Smaller community; last update timeline unclear.

Screaming Frog SEO Spider (Commercial)

GUI-based, enterprise-grade link analysis with advanced SEO features. No open-source alternative; significant cost.

Software development agency

Build on linkinator with DEV.co software developers

Integrate Linkinator into your CI/CD pipeline or documentation workflow. MIT licensed, no vendor lock-in. Chat with our team to customize for your infrastructure.

Talk to DEV.co

Related open-source tools

Surfaced by semantic similarity across the DEV.co open-source index.

Related on DEV.co

Explore the category and the services that help you build with it.

linkinator FAQ

Can Linkinator check links behind authentication?
Partially. Custom headers (`--header`) can pass auth tokens (e.g., Bearer, API keys). Form-based login, OAuth, and session management require external proxying or URL rewriting.
How does it handle redirects?
By default, redirects are followed. Use `--redirects warn` to flag them or `--redirects error` to treat as broken. Allows SEO teams to audit redirect chains.
Does it work offline?
Yes, for local files and markdown. Use `linkinator ./docs --recurse`. For remote URLs, requires network access.
Can I exclude certain domains or patterns?
Yes. Use `--skip` with regex patterns (e.g., `--skip 'example.com' --skip '^(?!yoursite.com)'`). Repeatable flag.

Software developers & web developers for hire

DEV.co helps companies turn open-source tools like linkinator into production software. Our software development services cover the full lifecycle — architecture, web development, integration, and maintenance — delivered by software developers and web developers who ship. Engage our software development agency to implement or customize it for your open-source devops stack.

Ready to Automate Link Validation?

Integrate Linkinator into your CI/CD pipeline or documentation workflow. MIT licensed, no vendor lock-in. Chat with our team to customize for your infrastructure.