@xtellig/site-audit
v1.0.0
Published
Xtellig Site Audit — comprehensive SEO, performance, accessibility & technical audit CLI with dual summary/detailed reports
Maintainers
Readme
@xtellig/site-audit
Comprehensive SEO, performance, accessibility & technical site audit CLI from Xtellig.
Discover pages via sitemap (with automatic rendered-DOM crawl fallback when no sitemap exists), evaluate 100+ curated rules across 20 categories, and generate dual reports:
- Summary — site position at a glance (no fix hints)
- Detailed — per-URL findings with developer fix hints
Outputs: HTML · PDF · JSON · Markdown (calm color palette, Xtellig watermark, Upcoming Automation note).
MIT licensed · 100% open-source · free & standalone forever
Install
npm install -g @xtellig/site-audit
npx playwright install chromiumOr run once:
npx @xtellig/site-audit audit https://example.comQuick start
# Full audit (summary + detailed, all formats)
xtellig-site-audit audit https://www.xtellig.xyz
# Shorthand
xtellig-site-audit https://www.xtellig.xyz
# Faster: skip Lighthouse, limit pages
xtellig-site-audit audit https://example.com --no-lighthouse -m 10 -v
# Lighthouse mobile only (faster than both)
xtellig-site-audit audit https://example.com --device mobile -m 10
# Lighthouse desktop only
xtellig-site-audit audit https://example.com --device desktop
# Detailed report: only failures and warnings
xtellig-site-audit audit https://example.com --report detailed --status fail,warn
# Force crawl even if sitemap exists (finds JS/hidden links)
xtellig-site-audit audit https://example.com --crawl -m 30
# Summary HTML only
xtellig-site-audit audit https://example.com --report summary -f html -o ./out
# Specific categories
xtellig-site-audit audit https://example.com -c core,security,perf,socialAlias: site-audit is also registered as a bin name.
Commands
audit <url>
| Option | Description | Default |
| --- | --- | --- |
| -f, --format | console, json, html, markdown, pdf, all | all |
| -o, --output | Output directory | reports |
| -c, --categories | Comma-separated categories (or all) | all |
| --report | summary | detailed | both | both |
| --crawl | Force rendered-DOM crawl | false |
| -m, --max-pages | Max pages to audit | 20 |
| --concurrency | Crawl concurrency | 2 |
| --timeout | Navigation timeout (ms) | 30000 |
| --device | Lighthouse device: desktop | mobile | both | both |
| --status | Detailed report rule filter: pass, warn, fail, all, or comma list (e.g. fail,warn) | all |
| --no-cwv | Skip Core Web Vitals | — |
| --no-lighthouse | Skip Lighthouse | — |
| -v, --verbose | Verbose logs | false |
| --config | JSON config file | — |
rules / categories
xtellig-site-audit rules
xtellig-site-audit rules -c core,security
xtellig-site-audit categoriesExit codes
| Code | Meaning |
| --- | --- |
| 0 | Pass (overall score ≥ 70) |
| 1 | Fail (score < 70) |
| 2 | Error |
Page discovery
- Try common sitemap locations +
Sitemap:fromrobots.txt - If none found (or
--crawlis set), BFS crawl the site with Playwright’s rendered DOM so menu / JS / previously hidden links are included - Same-origin only; assets skipped; tracking params stripped
Categories (20) & curated rules (~100)
Weights mirror industry practice (Core & Performance heaviest):
| Category | Focus | | --- | --- | | Core | Title, description, canonical, H1, robots, viewport, favicon | | Performance | LCP, CLS, FCP, TTFB, preconnect, page weight, Lighthouse | | Links | Internal links, anchor text, noopener, localhost, fragments | | Images | Alt, dimensions, lazy, WebP/AVIF, srcset | | Security | HTTPS, HSTS, CSP, XFO, nosniff, referrer, mixed content | | Technical SEO | robots.txt, sitemap, URL structure, 404, 4xx/5xx | | Crawlability | Sitemap in robots, noindex-in-sitemap, orphans | | Structured Data | JSON-LD present/valid/@type, Organization, WebSite, Breadcrumb | | JS Rendering | SSR vs CSR, raw vs rendered title/H1/canonical | | Accessibility | Heading order, lang, labels, landmarks, zoom, Lighthouse a11y | | Content | Word count, hierarchy, uniqueness, text/HTML ratio | | Social | Open Graph + Twitter Cards | | E-E-A-T | Privacy, terms, contact, about, author, dates | | URL Structure | Lowercase, hyphens, length, session IDs, tracking params | | Redirects | Meta refresh, chains, loops, 301 vs 302 | | Mobile | Viewport, touch icon, manifest | | i18n | lang, hreflang, x-default | | HTML Validation | Doctype, charset, single title/description/head | | AI / GEO | llms.txt, AI bots, semantic HTML | | Legal | Cookie consent |
xtellig-site-audit rules # full rule listReports
Summary (no hints)
- Executive scorecards (SEO, Perf desktop/mobile, Accessibility, Best Practices) — averages across audited pages
- Audit status badge
- Top critical/high issues (titles only)
- Category score table
- Page Overview per URL: SEO Health + Desktop (Perf / A11y / BP) + Mobile (Perf / A11y / BP)
Detailed (per URL + fixes)
- Indexing & crawlability checklist
- Core Web Vitals snapshot
- Site-wide issues
- One section per page URL with every rule status, value, detail, and Fix hint
- Filter with
--status fail,warn(orpass/fail/warn/all) to show only matching rule outcomes
Use --device desktop|mobile|both to control which Lighthouse form factors run (default both, sequential so both scores are collected reliably).
Both include:
- Calm / soft color palette (muted indigo, soft rose/amber/emerald)
- Xtellig watermark + footer mark
- Upcoming Automation Workflows note (Autosocializer)
Programmatic usage
import { createAuditor, audit } from '@xtellig/site-audit';
const result = await audit('https://example.com', {
maxPages: 10,
lighthouse: true,
device: 'mobile',
status: 'fail,warn',
report: 'both',
format: 'html',
output: './reports',
verbose: true
});
console.log(result.scores.overall);CI example (GitHub Actions)
name: Site Audit
on: [push]
jobs:
audit:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v4
- uses: actions/setup-node@v4
with:
node-version: '20'
- run: npm install -g @xtellig/site-audit
- run: npx playwright install chromium
- run: xtellig-site-audit audit https://staging.example.com --no-lighthouse -m 15 -f json -o audit-out
- uses: actions/upload-artifact@v4
with:
name: site-audit
path: audit-outRequirements
- Node.js 18+
- Chromium via Playwright (
npx playwright install chromium) - Optional: system Chrome for Lighthouse (
chrome-launcher)
License
MIT © Xtellig
Upcoming Automation Workflows
@xtellig/site-audit is designed to be 100% open-source, free, and standalone forever.
Coming Soon: We are currently building a native automation block for Autosocializer. Soon, you will be able to use directly into your team task boards, trigger Slack/Email notifications on build failures, and resolve easily.
Stay tuned for the next release!
