SiteOne Crawler v2.4.0 is a big step up for website quality analysis: pure-Rust TLS analysis, a much deeper scoring model with actionable fixes, a CI/CD-ready quality gate, and several crawl/export improvements.
Highlights
- Pure-Rust SSL/TLS analysis — a non-validating handshake inspects the full certificate chain (expired, self-signed, mismatched, weak SHA-1/MD5 signatures, weak keys, validity window) and probes supported protocol versions (SSLv3/TLS 1.0–1.3), BadSSL-inspired.
- Much richer quality scoring — the 5-category score (Performance / SEO / Security / Accessibility / Best Practices) now reflects far more signals the crawler already collects, and every deduction carries an actionable "how to fix" hint.
- CI/CD-ready quality gate — baseline regression checks, fail/ignore by finding code, JUnit XML reports and GitHub Actions annotations make
--cifirst-class in pipelines. - "Fix first" panel in the HTML report — an impact-ranked list of what costs the most score, each with its remediation tip.
New & expanded analysis
- Security: CSP directive analysis (flags
unsafe-inline/unsafe-eval/wildcard sources, nonce-aware), Cross-Origin headers (COOP/COEP/CORP), broader mixed-content detection (active vs passive), and a fix so everySet-Cookieheader is evaluated (not just the first). - SEO: on-page quality findings —
rel=canonicalpresence + off-host mismatch, title/meta-description length & missing, and anoindexsite-wide detector (with noindex pages excluded from on-page checks to avoid false positives). - Performance & caching: cache-effectiveness scoring for static assets, per-page page-weight & request budgets (HTTP Archive-derived), and a p90 HTML-document response-time metric (a fairer "what users feel" proxy than the all-asset average).
- Accessibility: real parser-impact structural checks (duplicate
id, dangling ARIA/label references) replacing a dead rule, plus fixes to four common false positives (decorativealt="", wrapping<label>, icon-only controls, semantic-HTML landmarks).
New CLI options
--url-list=<file>— crawl a bounded set of URLs from a plain-text file (one URL per line).--ignore-html-comments— skip links found inside HTML comments.--offline-export-no-url-rewriting— keep URLs verbatim in the offline export.- CI gate:
--ci-baseline,--ci-max-score-drop,--ci-fail-on-code,--ci-ignore-code,--ci-junit-file,--ci-github-annotations(see the README CI/CD section).
Fixes
- Offline export: rewrite downloaded external/CDN assets to local paths; keep the path separator when resolving relative asset URLs.
- HTML report: wrap long URL columns instead of overflowing.
- Meta description/keywords extraction is now attribute-order independent.
--url-list: validate entries, warn on skipped lines, validate the base URL.
Quality & maintenance
- Major dependency upgrade to the latest versions; Rust toolchain pinned to 1.96 via
rust-toolchain.toml. - ~50 new unit/integration tests across the new analysis and CI features.
Downloads
| Platform | Architecture | File |
|---|---|---|
| Linux | x64 | siteone-crawler-v2.4.0-linux-x64.tar.gz
|
| Linux | arm64 | siteone-crawler-v2.4.0-linux-arm64.tar.gz
|
| Linux | x64 (musl/static) | siteone-crawler-v2.4.0-linux-musl-x64.tar.gz
|
| Linux | arm64 (musl/static) | siteone-crawler-v2.4.0-linux-musl-arm64.tar.gz
|
| macOS | arm64 (Apple Silicon) | siteone-crawler-v2.4.0-macos-arm64.tar.gz
|
| macOS | x64 (Intel) | siteone-crawler-v2.4.0-macos-x64.tar.gz
|
| Windows | x64 | siteone-crawler-v2.4.0-win-x64.zip
|
| Windows | arm64 | siteone-crawler-v2.4.0-win-arm64.zip
|
Linux packages (glibc — best performance, requires glibc 2.39+)
| Format | Architecture | File |
|---|---|---|
| Debian/Ubuntu (.deb) | x64 | siteone-crawler_2.4.0-1_amd64.deb
|
| Debian/Ubuntu (.deb) | arm64 | siteone-crawler_2.4.0-1_arm64.deb
|
| Fedora/RHEL (.rpm) | x64 | siteone-crawler-2.4.0-1.x86_64.rpm
|
| Fedora/RHEL (.rpm) | arm64 | siteone-crawler-2.4.0-1.aarch64.rpm
|
Linux packages (musl/static — any Linux, ~50–80% slower)
| Format | Architecture | File |
|---|---|---|
| Debian/Ubuntu (.deb) | x64 | siteone-crawler-static_2.4.0-1_amd64.deb
|
| Debian/Ubuntu (.deb) | arm64 | siteone-crawler-static_2.4.0-1_arm64.deb
|
| Fedora/RHEL (.rpm) | x64 | siteone-crawler-static-2.4.0-1.x86_64.rpm
|
| Fedora/RHEL (.rpm) | arm64 | siteone-crawler-static-2.4.0-1.aarch64.rpm
|
| Alpine (.apk) | x64 | siteone-crawler-2.4.0-r1-x86_64.apk
|
| Alpine (.apk) | arm64 | siteone-crawler-2.4.0-r1-aarch64.apk
|
Quick start
# Extract and run
tar xzf siteone-crawler-v2.4.0-linux-x64.tar.gz
cd siteone-crawler
./siteone-crawler --url=https://example.comInstall via package manager
# Debian/Ubuntu (glibc — Ubuntu 24.04+, Debian 13+)
sudo dpkg -i siteone-crawler_2.4.0-1_amd64.deb
# Debian/Ubuntu (static/musl — older distributions)
sudo dpkg -i siteone-crawler-static_2.4.0-1_amd64.deb
# Fedora/RHEL
sudo dnf install ./siteone-crawler-2.4.0-1.x86_64.rpmWhat's Changed
- feat: enhance regex for meta description and keywords extraction to s… by @nlemoine in #97
- feat: add --url-list to crawl a bounded set of URLs from a file by @afu-dev in #102
New Contributors
Full Changelog: v2.3.0...v2.4.0