← ClaudeAtlas

seo-meta-onpagelisted

Audit and generate the document head — title (50-60 chars), meta description (150-160 chars), viewport, charset, <html lang>, and robots-meta sanity — flagging missing/duplicate/over-long values and producing length-bounded, keyword-aware replacements. Module M7. Feeds the Search SEO score.
Hainrixz/claude-seo-ai · ★ 14 · Data & Documents · score 81
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