sitemap-check-cli
v1.0.0
Published
Validates XML sitemaps — checks URL accessibility, finds broken links, detects common issues
Maintainers
Readme
sitemap-check-cli
Validates XML sitemaps — checks URL accessibility, finds broken links, detects common issues.
Features
- Fetches and parses XML sitemaps (including sitemap index files)
- Checks every URL for HTTP 2xx responses
- Follows redirects (up to 5 hops)
- Configurable concurrency and timeout
- Structured JSON output for CI pipelines
- Zero non-standard dependencies — pure Node.js built-ins (
http,https,fs,path,url)
Install
npm install -g sitemap-check-cliUsage
sitemap-check <url-or-file> [options]Arguments
| Argument | Description |
|---|---|
| <url-or-file> | Sitemap URL (http/https) or local file path |
Options
| Flag | Default | Description |
|---|---|---|
| --timeout <ms> | 5000 | Request timeout in milliseconds |
| --concurrency <n> | 5 | Number of parallel URL checks |
| --json | — | Output results as JSON |
| --no-color | — | Disable color output |
| -h, --help | — | Show help |
| -v, --version | — | Show version |
Examples
Check a remote sitemap:
sitemap-check https://example.com/sitemap.xmlCheck a local sitemap file:
sitemap-check ./sitemap.xmlIncrease timeout and concurrency:
sitemap-check https://example.com/sitemap.xml --timeout 10000 --concurrency 10Sitemap index (auto-recurse into child sitemaps):
sitemap-check https://example.com/sitemap-index.xmlJSON output for CI pipelines:
sitemap-check https://example.com/sitemap.xml --jsonRedirect output to a file (no ANSI colors):
sitemap-check https://example.com/sitemap.xml --no-color > report.txtSample Output
sitemap-check v1.0.0
target: https://example.com/sitemap.xml
timeout: 5000ms
concurrency: 5
Fetching sitemap: https://example.com/sitemap.xml
Found 42 URLs to check.
Checking URLs: 42/42 (100%)
── Sitemap Check Results ──────────────────────
Total URLs : 42
OK : 41
Broken : 1
Broken URLs:
✖ https://example.com/old-page/
→ HTTP 404
1 broken URL(s) found. Review the list above.JSON Output Format
{
"total": 42,
"ok": 41,
"broken": 1,
"results": [
{ "url": "https://example.com/", "status": 200, "ok": true, "error": null },
{ "url": "https://example.com/old-page/", "status": 404, "ok": false, "error": null }
]
}Exit Codes
| Code | Meaning |
|---|---|
| 0 | All URLs accessible (or no URLs found) |
| 1 | One or more broken URLs detected |
License
MIT
