site-audit
Crawl any website and produce a technical SEO health audit — health score, broken links, duplicate content, missing meta tags. Works like Ahrefs Site Audit.
SKILL.mdskills/teamday/site-audit/SKILL.md
GitHubSite Health Audit Skill
Crawl any website via its sitemap and produce a comprehensive technical SEO audit with an Ahrefs-style health score.
When to Use
- User asks for a "site audit", "health check", or "technical SEO audit"
- User wants to find broken links on their website
- User asks about duplicate titles, missing meta descriptions, or other on-page SEO issues
- After a major site launch, redesign, or migration
- As a scheduled monthly audit to track site health over time
How to Run
The script auto-discovers the sitemap and requires zero npm dependencies.
Quick sample (50 pages)
bun .claude/skills/site-audit/scripts/site-audit.ts --url https://example.com --fix
Full crawl with report file
bun .claude/skills/site-audit/scripts/site-audit.ts --url https://example.com --full --fix --output docs/seo/site-audit-$(date +%Y-%m-%d).md
Custom sitemap URL
bun .claude/skills/site-audit/scripts/site-audit.ts --url https://example.com --sitemap https://example.com/custom-sitemap.xml --full
Options
| Flag | Description |
|---|---|
--url <url> |
Base URL of the site to audit (required) |
--sitemap <url> |
Direct sitemap URL (skips auto-discovery) |
--sample N |
Randomly sample N URLs (default: 50) |
--full |
Crawl every URL in the sitemap |
--fix |
Show actionable fix suggestions per issue |
--verbose |
Print per-URL details |
--json |
Output results as JSON (for programmatic use) |
--output <path> |
Write structured markdown report to file |
What It Checks (16 categories)
- HTTP Status — 4xx/5xx errors
- Title — missing, too short (<10), too long (>60)
- Meta Description — missing, too short (<50), too long (>160)
- H1 — missing or multiple H1 tags
- Canonical — missing or non-self-referencing
- Indexing — noindex directives
- Open Graph — missing og:title, og:description, og:image
- Twitter Card — missing twitter:card
- Hreflang — missing x-default, missing self-reference
- Images — missing alt attributes
- Content — thin content (<100 words)
- Performance — slow responses (>1.5s), large pages (>500KB)
- Broken Links — internal links pointing to 404s
- Duplicate Titles — multiple pages sharing the same title (errors)
- Duplicate Descriptions — multiple pages with same meta description
- Duplicate H1 — multiple pages sharing the same H1
Health Score Formula
Uses the Ahrefs formula:
score = (total_pages - pages_with_errors) / total_pages * 100
Only errors affect the score — warnings and notices are informational.
Where to Save Reports
Write audit reports to the Space filesystem so they persist and can be compared over time:
docs/seo/site-audit-YYYY-MM-DD.md
When running a follow-up audit, compare with the previous report to highlight improvements and regressions.