# SEO Audit

> Scores on-page SEO for HTML files — title length, meta description, single h1, image alt text, canonical link, Open Graph tags, and html lang. Reads a saved HTML file or stdin (from curl), fully offline and deterministic, no Lighthouse or browser needed. Use before publishing any page, in CI on static builds, or when auditing a site without spinning up a browser.

- Skill: `trac3r00/seo-audit` (Agent Skill, multi-file: 2 files)
- Install (CLI): `npx skillmds@latest add trac3r00/seo-audit`
- Raw SKILL.md: https://api.skillmd.com/api/skills/trac3r00/seo-audit/raw
- Safety review: pending
- Works with: Claude Code, Claude.ai, OpenAI Codex
- Category: Marketing & Growth
- License: MIT
- Author: trac3r00 (https://skillmd.com/u/trac3r00)
- Updated: 2026-09-17
- Page: https://skillmd.com/skills/trac3r00/seo-audit

---


# SEO Audit

The on-page basics that decide whether a page can rank, in one deterministic
check — no browser, no API, no Lighthouse.

## Commands

```bash
python3 scripts/seo_audit.py dist/index.html
python3 scripts/seo_audit.py dist/*.html --json
curl -s https://example.com | python3 scripts/seo_audit.py - --json
python3 scripts/seo_audit.py page.html --min-score 85
```

## Checks

| Check | Pass | Warn/Fail |
|---|---|---|
| `title` | 10-70 chars, non-empty | fail otherwise |
| `meta_description` | 50-160 chars | fail otherwise |
| `h1` | exactly one | fail otherwise |
| `image_alt` | every image has alt text | fail otherwise |
| `canonical` | present | warn if missing |
| `og_tags` | og:title + og:description | warn if missing |
| `lang` | html lang attribute | warn if missing |

Score = average of check weights (pass=100, warn=60, fail=0). Default gate:
exit 1 below 70.

## Pairs with

`webapp-testing` (browser-level QA after the static checks pass),
`doc-reader` (extract the HTML first if it is buried in a document).

