astro-broken-links-checker
v1.1.0
Published
An Astro integration that checks for broken internal and external links during static builds.
Downloads
39,579
Maintainers
Readme
Astro Broken Links Checker
An Astro integration that checks for broken links in your website during static builds. It validates internal links (and optionally external ones), logging any broken links to both the console and a file.
Installation
npm install astro-broken-links-checkerThen add it to your astro.config.mjs:
import { defineConfig } from 'astro/config';
import astroBrokenLinksChecker from 'astro-broken-links-checker';
export default defineConfig({
integrations: [
astroBrokenLinksChecker({
checkExternalLinks: true, // default: false
throwError: true, // default: false
}),
],
});Options
| Option | Type | Default | Description |
|--------|------|---------|-------------|
| checkExternalLinks | boolean | false | Also check external (http/https) links via HTTP requests. |
| cacheExternalLinks | boolean | true | Cache verified external links to disk to speed up subsequent builds. |
| throwError | boolean | false | Fail the build if any broken links are found. |
| linkCheckerDir | string | '.link-checker' | Directory for cache and log files. |
Features
- Checks
<a href>and<img src>references in all built HTML pages. - Deduplication: Each unique link is checked only once across all pages.
- Parallel processing: Pages (up to 50 concurrent) and HTTP requests (up to 10 concurrent) run in parallel.
- Base path support: Respects Astro's
baseconfig, stripping the prefix before checking file existence. - Redirect awareness: Follows redirects defined in
astro.config.mjs. - Trailing slash enforcement: Respects Astro's
trailingSlashsetting and flags links that violate it. - Timeouts and retries: External link checks have a 3-second timeout. ECONNRESET and timeout failures are retried up to 3 times with exponential backoff.
- Disk caching: Verified external links are cached to
.link-checker/verified-external-links.tsv. Commit this file to skip re-checking on CI.
Output
The integration creates a .link-checker directory containing:
verified-external-links.tsv— Cache of verified external links (TSV: URL, status, statusCode, timestamp). Commit this to git to avoid re-checking on CI.broken-links.log— Broken links found during the build (gitignored automatically).
Compatibility
- Node.js: 18+
- Astro: 4.x and 5.x
