Build locale clusters from exported HTML and sitemap files, then check the things an hreflang set actually promises: every member links back, every member links to itself, every language tag is well-formed BCP 47, the canonical agrees with the self-link, and the cluster names at most one x-default.
This walkthrough uses the tool's public README and checked-in example files. Run the command from a repository checkout with Node.js 22+.
Run the checked-in example
node bin/hreflang-cluster-auditor.mjs --config examples/clean/hreflang.config.json
node bin/hreflang-cluster-auditor.mjs --config site/hreflang.config.json --root site --jsonRead the result
stdout carries the JSON report and nothing else. stderr carries the human summary and diagnostics.
Scope
It also never writes to the site it audits, never fetches anything, and refuses any configured path that leaves the input root, whether by spelling or through a symbolic link.