seo-renderinglisted
Install: claude install-skill Hainrixz/claude-seo-ai
# seo-rendering (M4)
Most AI crawlers do not execute JavaScript, so content that only exists after hydration is invisible to them — CSR-only is a hard AI gate. JS dependency also delays first paint; see `references/cwv-thresholds.md` for how this feeds LCP/INP.
## Audits
Working from the PageSnapshot (`rendered_dom` if present, else `raw_html`) and the raw HTML the server first returned:
1. **Content delta**: diff `raw_html` vs `rendered_dom` — measure the share of primary text, internal links, headings (h1–h3), and `<script type="application/ld+json">` blocks that appear **only** after JavaScript runs.
2. **Classify the strategy**: CSR-only (empty/near-empty raw shell, content injected client-side) / SSR / SSG (prerendered static) / ISR (prerendered + revalidated). Use raw-HTML completeness and framework signals (`__NEXT_DATA__`, hydration markers, `data-reactroot`, build manifests).
3. **Hydration-blocked text**: primary content present in raw HTML but hidden/empty until hydration, or rendered only into a client-only island.
4. **Lazy-loaded main content**: above-the-fold or primary content that requires scroll/intersection/interaction to load — invisible to a non-interacting crawler.
5. **AI gate**: if the h1, primary body, or JSON-LD exist only in `rendered_dom`, flag the page as not reliably consumable by non-JS AI crawlers.
## Fixes (fixable: advisory)
Rendering strategy is a framework/architecture decision with high breakage risk, so M4 is **ADVISORY only** — it dia