SEO Health — technical sanity pass (not optimization)
Goal: confirm the site is technically sound and every page is sane — nothing to rank better, just nothing broken. This is the floor that gates everything else: keyword and content work is wasted on a site that can't be crawled or indexed. Diagnose with data, report Pass/Warn/Fail — don't mass-edit on a hunch.
For a crawl-export-driven audit of an existing site, the /technical-seo-audit skill goes deeper on redirect chains, duplicates, and orphans.
Part A — Site-wide technical
- robots.txt — reachable, no
Disallow on money/content pages, AI/search bots not accidentally blocked, sitemap referenced.
- XML sitemap — valid, all URLs canonical + 200 + indexable, no 404/redirect/noindex entries; submitted in Search Console.
- Indexation — indexed count ≈ intended count (Search Console's Pages report / URL inspection); flag "discovered – currently not indexed", "crawled – currently not indexed", accidental
noindex, and orphans.
- Canonicals — every page self-canonical or correctly cross-canonical; no canonical→noindex/redirect chains; no duplicate-content splits (trailing slash, www/non-www, http/https all resolve one way).
- Status & redirects — no broken internal links (404), no redirect chains/loops, 301 (not 302) for permanent moves.
- HTTPS/security headers — valid TLS, HSTS, no mixed content.
- Core Web Vitals — LCP/CLS/INP in "good" per PageSpeed/CrUX; flag failing templates (don't tune, just flag).
- Mobile — responsive, viewport meta, no horizontal overflow, tap targets sane.
Part B — Per-page on-page sanity (crawl every route/template)
For each page: one <title> (unique, ~50-60ch, present), one <meta description> (unique, ~150-160ch), exactly one <h1>, sane heading order (no skipped levels), lang attribute correct (+ hreflang if multilingual), canonical tag present, OG + Twitter card tags, favicon resolves, images have alt text, no noindex on pages meant to rank.
Part C — Structured data
Schema present + valid where expected (Organization/WebSite site-wide; Article/Product/FAQ/BreadcrumbList per type); validate against Rich Results (no errors/warnings that break eligibility). Verify on the rendered HTML, not the source template.
Rules
- Verify rendered output (live fetch or rendered DOM), not the source file — SSR/CSR and head-injection make the template a poor witness. Favicon, robots, sitemap, and schema are load-bearing: a "small" change to the document head breaks them silently and nothing in the build fails.
- Multilingual sites: run Part B once per locale, and check RTL rendering for right-to-left languages.
- Output: a Pass/Warn/Fail scorecard (site-wide checks plus a per-page/template table), Fails ranked first, each with the offending URL and the exact issue. Lead with a one-line headline (
N pages, X fails, Y warns — <top issue>), table below.
- Fixes only after approval; then re-crawl the fixed pages and confirm the check flips to Pass. This skill diagnoses — it does not optimize copy or chase keywords.
1---2name: seo-health3description: Basic technical + on-page SEO health check for any site — verify crawlability, indexation, meta, schema, and per-page sanity are 100%. NOT keyword/content optimization. Use for "seo health check", "is the technical seo sane", "audit the site basics", "any seo errors".4---56# SEO Health — technical sanity pass (not optimization)78Goal: confirm the site is technically sound and every page is sane — nothing to *rank better*, just nothing *broken*. This is the floor that gates everything else: keyword and content work is wasted on a site that can't be crawled or indexed. Diagnose with data, report Pass/Warn/Fail — don't mass-edit on a hunch.910For a crawl-export-driven audit of an existing site, the /technical-seo-audit skill goes deeper on redirect chains, duplicates, and orphans.1112## Part A — Site-wide technical131. **robots.txt** — reachable, no `Disallow` on money/content pages, AI/search bots not accidentally blocked, sitemap referenced.142. **XML sitemap** — valid, all URLs canonical + 200 + indexable, no 404/redirect/noindex entries; submitted in Search Console.153. **Indexation** — indexed count ≈ intended count (Search Console's Pages report / URL inspection); flag "discovered – currently not indexed", "crawled – currently not indexed", accidental `noindex`, and orphans.164. **Canonicals** — every page self-canonical or correctly cross-canonical; no canonical→noindex/redirect chains; no duplicate-content splits (trailing slash, www/non-www, http/https all resolve one way).175. **Status & redirects** — no broken internal links (404), no redirect chains/loops, 301 (not 302) for permanent moves.186. **HTTPS/security headers** — valid TLS, HSTS, no mixed content.197. **Core Web Vitals** — LCP/CLS/INP in "good" per PageSpeed/CrUX; flag failing templates (don't tune, just flag).208. **Mobile** — responsive, viewport meta, no horizontal overflow, tap targets sane.2122## Part B — Per-page on-page sanity (crawl every route/template)23For each page: one `<title>` (unique, ~50-60ch, present), one `<meta description>` (unique, ~150-160ch), exactly one `<h1>`, sane heading order (no skipped levels), `lang` attribute correct (+ `hreflang` if multilingual), canonical tag present, OG + Twitter card tags, favicon resolves, images have alt text, no `noindex` on pages meant to rank.2425## Part C — Structured data26Schema present + valid where expected (Organization/WebSite site-wide; Article/Product/FAQ/BreadcrumbList per type); validate against Rich Results (no errors/warnings that break eligibility). Verify on the **rendered** HTML, not the source template.2728## Rules29- **Verify rendered output** (live fetch or rendered DOM), not the source file — SSR/CSR and head-injection make the template a poor witness. Favicon, robots, sitemap, and schema are load-bearing: a "small" change to the document head breaks them silently and nothing in the build fails.30- Multilingual sites: run Part B once per locale, and check RTL rendering for right-to-left languages.31- Output: a Pass/Warn/Fail scorecard (site-wide checks plus a per-page/template table), Fails ranked first, each with the offending URL and the exact issue. Lead with a one-line headline (`N pages, X fails, Y warns — <top issue>`), table below.32- Fixes only after approval; then re-crawl the fixed pages and confirm the check flips to Pass. This skill diagnoses — it does not optimize copy or chase keywords.