answer-engine-optimize…
Optimize a brand's mapped content to get cited by AI answer engines — Google AI Overviews, ChatGPT, Perplexity, Gemini. Scores…
Audit an existing site against its topical map — coverage gaps, keyword cannibalization, entity drift, orphan pages, and per-page micro-semantic issues. Use whenever the user asks to audit a site, find content gaps, check for cannibalization, asks "why aren't we ranking", wants
Claude Code
$ npx -y skills add siddiqss/semantic-seo-suite --skill semantic-site-auditor --agent claude-code
Codex
$ npx skills add siddiqss/semantic-seo-suite --skill semantic-site-auditor -a codex -y
Cursor
$ npx skills add siddiqss/semantic-seo-suite --skill semantic-site-auditor -a cursor -y
Gemini CLI
$ npx skills add siddiqss/semantic-seo-suite --skill semantic-site-auditor -a gemini-cli -y
GitHub Copilot
$ npx skills add siddiqss/semantic-seo-suite --skill semantic-site-auditor -a github-copilot -y
OpenCode
$ npx skills add siddiqss/semantic-seo-suite --skill semantic-site-auditor -a opencode -y
Windsurf
$ npx skills add siddiqss/semantic-seo-suite --skill semantic-site-auditor -a windsurf -y
name: semantic-site-auditor description: > Audit an existing site against its topical map — coverage gaps, keyword cannibalization, entity drift, orphan pages, and per-page micro-semantic issues. Use whenever the user asks to audit a site, find content gaps, check for cannibalization, asks "why aren't we ranking", wants to know what's missing from their niche coverage, or wants a pre-sales content audit of any domain. Produces a prioritised audit report with provenance on every finding. Triggers on audit/gap/cannibalization intent broadly.
Turn a live site + its topical map into a prioritised, evidence-backed fix list. Every finding carries provenance (`measured` from crawl, `derived` from embeddings) — no invented scores. This is also the strongest pre-sales artifact for services work: run it on a prospect's domain before a call.
Read first: `../../framework/topical-map-theory.md` (gap/section logic), `../../framework/internal-linking-rules.md` (orphans), `../../framework/eav-modeling.md` (drift = claimed vs perceived identity).
first (you can't measure coverage without a target map).
1. **Crawl + extract** the site into `brands/<slug>/data/crawl/`:
python ../../scripts/crawl_sitemap.py --domain <domain> --max-pages 500 --out /tmp/urls.json python ../../scripts/extract_page_content.py --urls /tmp/urls.json --out-dir brands/<slug>/data/crawl
Robustness: `crawl_sitemap.py` falls back to a same-domain BFS when there's no sitemap, respects robots.txt, and caps pages/depth. For JS-rendered sites, extraction may be thin — note that in the report rather than treating missing content as a gap.
2. **Run the analysis engine:**
python ../../scripts/audit_site.py \
--map brands/<slug>/topical-map.json --crawl-dir brands/<slug>/data/crawl \
--entity-profile brands/<slug>/entity-profile.json \
--locked brands/<slug>/locked-facts.json --brand "<Brand>" \
--out brands/<slug>/audits/<date>-full.mdIt matches each page to its nearest map node (embedding cosine) and reports:
hit by multiple pages (`derived`).
pulling the site away from its claimed identity (`derived`). At T0 (no embeddings), do this qualitatively and label it `asserted` — never emit a fake distance.
graph).
reusing the draft rules.
3. **Review + prioritise.** The report ends with a prioritised action list: **create** (gap), **consolidate/redirect** (cannibalization), **rewrite/relink or prune** (drift), **relink** (orphan). Sanity-check each finding — with the offline hash-fallback embeddings, similarities are coarse; re-run with a model backend before making irreversible calls (redirects/prunes).
4. **Feed back into the map.** Apply `status_updates` from the audit JSON (matched nodes → `published` with their URL); mark thin/drifting matched nodes `needs-update`; add the confirmed gaps to `calendar.md` as new priorities.
5. **Render the heatmap** (`../../scripts/map_heatmap.py`) after status updates so coverage is visible at a glance.
are LLM-qualitative and labeled `asserted`. Orphans + micro-audit are `measured`.
(the strongest, `measured` signal) — see seo-performance-tracker.
A free, open-source alternative to Surfer, MarketMuse, Clearscope & Frase — built as Claude Code skills. Topical authority, content briefs, AI writing, schema, GEO, and backlinks. With a fabrication guard that refuses to invent numbers.
Optimize a brand's mapped content to get cited by AI answer engines — Google AI Overviews, ChatGPT, Perplexity, Gemini. Scores…
Generate entity-aware, Koray-style content briefs from a topical-map node or any target query — a semantically ordered heading…
Plan how a brand's published content gets seen — per-piece channel fit, repurposing atoms (X thread, LinkedIn post, Reddit…
Plan off-page authority for a brand — find and prioritize backlink opportunities from its topical map and competitor set, with a…
Generate an internal-linking plan and JSON-LD structured data from a brand's topical map and entity profile. Use whenever the…
Write a full article draft from a semantic-SEO brief, following the micro-semantics writing rules and the brand's locked facts,…
When the user wants to plan, design, or implement an A/B test or experiment, or build a growth experimentation program. Also use…
Comprehensive SEO analysis for any website or business type. Full site audits, single-page analysis, technical SEO (crawlability,…
Turn the current project website into a short, polished, shareable launch video using Hyperframes. Use when someone says "/brag",…
Full website GEO+SEO audit with parallel subagent delegation. Orchestrates a comprehensive Generative Engine Optimization audit…