seo-meta-onpagelisted
Install: claude install-skill Hainrixz/claude-seo-ai
# seo-meta-onpage (M7)
Head hygiene is cheap, deterministic, and the first thing every crawler reads. Reference: `references/schema-tier1.md` for the structured-data layer that sits alongside the head (owned by M5).
## Audits
Working from the PageSnapshot (`rendered_dom` if present, else `raw_html`):
1. **Title** — exactly one `<title>`; length 50-60 chars (warn outside the band, **fail** if missing or empty, **fail** if duplicated site-wide across distinct URLs). Not all caps; not pure keyword list.
2. **Meta description** — present, 150-160 chars (warn outside, not fail — Google may rewrite it); not duplicated site-wide; describes the page, not boilerplate.
3. **Viewport** — `<meta name="viewport" content="width=device-width, initial-scale=1">` present (fail if missing — mobile rendering/indexing depends on it).
4. **Charset** — `<meta charset="utf-8">` present and in the first 1024 bytes of `<head>`.
5. **Language** — `<html lang="…">` present and a valid BCP-47 tag.
6. **Robots meta** — sanity-check `<meta name="robots">`: flag an accidental `noindex`/`nofollow` on a page meant to rank. Full indexability/canonical logic (including the canonical tag) is owned by **seo-indexability (M2)** — here only **note presence** of `<link rel="canonical">`, do not adjudicate it.
## Fixes
- **AUTO** — add missing `viewport`, `charset` (utf-8), and `<html lang>` (inferred from `Content-Language` header or page text; leave a TODO if ambiguous). These are deterministic, additive, verif