SEO/GEO Orchestrator
Invocation: /seo $1 $2 where $1 is the command and $2 is the URL or local path.
Comprehensive SEO + GEO 2026 analysis across all industries (SaaS, local services, e-commerce, publishers, agencies). Orchestrates 20 sub-skills and 8 parallel sub-agents. Local-first, zero third-party APIs.
Quick Reference
| Command |
What it does |
Sub-skill |
/seo audit <url> |
Full audit with parallel subagent delegation |
seo-audit |
/seo page <url|path> |
Deep single-page analysis |
seo-page |
/seo technical <url> |
Technical SEO (robots, CWV, crawlability) |
seo-technical |
/seo schema <url|path> |
Detect/validate/generate JSON-LD |
seo-schema |
/seo content <url> |
E-E-A-T + anti-cannibalization |
seo-content |
/seo images <url> |
Image SEO: alt text, formats, lazy loading |
seo-images |
/seo sitemap <url|generate> |
Analyze or generate XML sitemaps |
seo-sitemap |
/seo hreflang <url> |
i18n/multilingual audit and generation |
seo-hreflang |
/seo internal-linking <url> |
Pillar/cluster, anchor optimization |
seo-internal-linking |
/seo cluster <keyword> |
SERP-based semantic clustering |
seo-cluster |
/seo brief <topic> |
Generate detailed content brief |
seo-content-brief |
/seo plan <type> |
Strategic planning (saas/local/ecommerce/publisher) |
seo-plan |
/seo sxo <url> |
Search Experience Optimization |
seo-sxo |
/seo snippets <url> |
Position 0 + AI Overviews input |
seo-featured-snippets |
/seo local <url> |
Local SEO (GBP, NAP, citations, map pack) |
seo-local |
/seo geo <url> |
AI Overviews/ChatGPT/Perplexity/Claude readiness |
seo-geo |
/seo entity <url> |
Entity/semantic SEO, knowledge graph, salience |
seo-entity |
/seo ecommerce <url> |
Product schema, faceted nav, marketplace |
seo-ecommerce |
/seo video <url> |
VideoObject, YouTube, transcripts |
seo-video |
/seo redirects <url> |
301/302, migration, chains |
seo-redirects |
/seo drift <url> |
SEO diff vs previous git HEAD |
(uses diff-seo.ts) |
Orchestration Logic — /seo audit
When user invokes /seo audit <url>:
- Detect business type from homepage (SaaS, local, ecommerce, publisher, agency)
- Spawn sub-agents in parallel (single message, multiple Agent calls):
seo-technical (robots, sitemap, CWV, hreflang)
seo-schema (JSON-LD detect/validate)
seo-content (E-E-A-T, anti-cannibalization)
seo-geo (AI Overviews readiness)
seo-entity (knowledge graph, salience, sameAs/knowsAbout)
seo-images (alt, formats, optim)
seo-sitemap (sitemap.xml + robots.txt)
- If local business detected → also spawn
seo-local
- If content strategy signals (blog, pillar pages) → also spawn
seo-cluster
- Collect results, generate unified report with SEO Health Score (0-100)
- Create prioritized action plan (Critical → High → Medium → Low)
Workflow (7 phases — for content-creation flows)
PHASE 1: ANALYZE → Extract content, detect intent
PHASE 2: RESEARCH → SERP analysis, 2026 trends, AI platforms
PHASE 3: KEYWORDS → Extract with anti-cannibalization
PHASE 4: STRUCTURE → Meta, OG, Twitter Cards, Hn, schema, alt
PHASE 5: CONTENT → Write SEO+GEO optimized content
PHASE 6: VALIDATE → SEO + GEO compliance checklists
PHASE 7: DRIFT → Compare to git HEAD (diff-seo.ts)
Reference Library (legacy 10 categories)
references/
├── 01-seo-foundations/ → research workflow, SEO vs GEO
├── 02-onpage-seo/ → meta tags, OG, Twitter, headers, alt
├── 03-schema-org/ → 9 schema types (templates ready)
├── 04-geo-2026/ → AI platforms, citations, zero-click
├── 05-technical-seo/ → CWV, mobile-first, crawlability
├── 06-content-strategy/ → E-E-A-T, anti-cannibalization, keywords
├── 07-sea-google-ads/ → Quality Score, landing pages (optional)
├── 08-measurement/ → GEO tracking, Share of Model
├── 09-checklists/ → pre-publication, technical audit
└── 10-local-seo/ → GBP, NAP, citations, Local Pack
Scripts Available (scripts/)
| Script |
Purpose |
parse-meta.ts |
Extract title/description/OG/canonical via cheerio |
validate-schema.ts |
Validate JSON-LD offline against schema.org dumps |
check-cwv.ts |
Lighthouse CLI local wrapper |
parse-sitemap.ts |
Validate sitemap.xml structure |
parse-robots.ts |
Validate robots.txt directives |
parse-hreflang.ts |
Validate hreflang tags |
diff-seo.ts |
SEO drift via git diff |
geo-score.ts |
LLM-readiness scoring (0-100) |
analyze-keywords.ts |
Content intelligence: density, n-grams, 0-100 stuffing score, local distribution (local-first) |
Differentiation
- Local-first: zero Google APIs, zero DataForSEO/Moz, zero Python
- Framework-native: delegates implementation to
fuse-astro, fuse-nextjs, fuse-laravel
- GEO-first: AI Overviews/ChatGPT/Perplexity as primary target, not afterthought
- TS/Bun stack: all scripts in TypeScript, executed by Bun
Industry Detection
Detect from homepage signals:
- SaaS:
/pricing, /features, /integrations, "free trial", "sign up"
- Local: address, phone, opening hours, GBP link, NAP
- E-commerce:
/products, /cart, /checkout, product schema
- Publisher:
/articles, NewsArticle schema, byline, dateline
- Agency:
/services, /case-studies, /clients, testimonials
Quality Gates
- 30+ location pages → warning
- 50+ location pages → hard stop, require manual audit
- 100+ programmatic pages → warning
- 500+ programmatic pages → hard stop
- Thin content detection per page type
- Doorway page prevention
First Invocation — Activate Hook
When user invokes /seo for the first time on a project:
- Check if
.fuse-seo marker exists at project root (or any parent up to repo root)
- If absent, ask the user before any other work:
"Activate the fuse-seo hook on this project? It will validate meta/schema/OG on every Write/Edit of HTML-like files (.html, .astro, .tsx, .vue, .blade.php) via the @fusengine/harness seo scope."
- If user confirms → create empty file
.fuse-seo at project root via touch .fuse-seo (or Write tool with empty content)
- If user declines → proceed without creating the marker (hook stays dormant on this project)
- Do not ask again in the same session — the marker presence is the persistent answer
This is opt-in by design: never auto-create without explicit user consent.
After Any Analysis
- Generate markdown report in
.fuse-seo/reports/<date>-<command>.md
- Offer drift baseline capture:
/seo drift <url> for future comparisons
- Suggest framework-specific implementation via delegation:
- Astro project →
fuse-astro:astro-seo
- Next.js →
fuse-nextjs:nextjs-stack
- Laravel →
fuse-laravel:laravel-blade
1---2name: seo3description: Use when running any SEO/GEO task via /seo — the top-level orchestrator that routes to all SEO sub-skills.4---56<objective>7Top-level SEO/GEO 2026 orchestrator invoked as `/seo $1 $2` ($1 = command, $2 = URL or local path). Routes to 20 sub-skills covering full-site audits (seo-audit), single-page analysis (seo-page), technical SEO, schema markup, content quality (E-E-A-T), AI search / GEO optimization (AI Overviews readiness), local SEO, sitemap/robots, internal linking, semantic clustering, content briefs, strategic planning by business type, search experience (SXO), featured snippets, entity/semantic SEO, e-commerce, video, hreflang/i18n, and redirects/migration — see the Quick Reference command table in the body for the full command-to-sub-skill mapping. Local-first (zero third-party APIs, zero Google APIs, zero Python — TS/Bun scripts only); delegates framework-specific implementation to fuse-astro/fuse-nextjs/fuse-laravel. Also owns the `.fuse-seo` opt-in activation hook on first invocation per project and post-analysis report generation under `.fuse-seo/reports/`.8</objective>910# SEO/GEO Orchestrator1112**Invocation:** `/seo $1 $2` where `$1` is the command and `$2` is the URL or local path.1314Comprehensive SEO + GEO 2026 analysis across all industries (SaaS, local services, e-commerce, publishers, agencies). Orchestrates 20 sub-skills and 8 parallel sub-agents. Local-first, zero third-party APIs.1516## Quick Reference1718| Command | What it does | Sub-skill |19|---------|--------------|-----------|20| `/seo audit <url>` | Full audit with parallel subagent delegation | seo-audit |21| `/seo page <url\|path>` | Deep single-page analysis | seo-page |22| `/seo technical <url>` | Technical SEO (robots, CWV, crawlability) | seo-technical |23| `/seo schema <url\|path>` | Detect/validate/generate JSON-LD | seo-schema |24| `/seo content <url>` | E-E-A-T + anti-cannibalization | seo-content |25| `/seo images <url>` | Image SEO: alt text, formats, lazy loading | seo-images |26| `/seo sitemap <url\|generate>` | Analyze or generate XML sitemaps | seo-sitemap |27| `/seo hreflang <url>` | i18n/multilingual audit and generation | seo-hreflang |28| `/seo internal-linking <url>` | Pillar/cluster, anchor optimization | seo-internal-linking |29| `/seo cluster <keyword>` | SERP-based semantic clustering | seo-cluster |30| `/seo brief <topic>` | Generate detailed content brief | seo-content-brief |31| `/seo plan <type>` | Strategic planning (saas/local/ecommerce/publisher) | seo-plan |32| `/seo sxo <url>` | Search Experience Optimization | seo-sxo |33| `/seo snippets <url>` | Position 0 + AI Overviews input | seo-featured-snippets |34| `/seo local <url>` | Local SEO (GBP, NAP, citations, map pack) | seo-local |35| `/seo geo <url>` | AI Overviews/ChatGPT/Perplexity/Claude readiness | seo-geo |36| `/seo entity <url>` | Entity/semantic SEO, knowledge graph, salience | seo-entity |37| `/seo ecommerce <url>` | Product schema, faceted nav, marketplace | seo-ecommerce |38| `/seo video <url>` | VideoObject, YouTube, transcripts | seo-video |39| `/seo redirects <url>` | 301/302, migration, chains | seo-redirects |40| `/seo drift <url>` | SEO diff vs previous git HEAD | (uses diff-seo.ts) |4142## Orchestration Logic — `/seo audit`4344When user invokes `/seo audit <url>`:451. Detect business type from homepage (SaaS, local, ecommerce, publisher, agency)462. Spawn sub-agents **in parallel** (single message, multiple Agent calls):47 - `seo-technical` (robots, sitemap, CWV, hreflang)48 - `seo-schema` (JSON-LD detect/validate)49 - `seo-content` (E-E-A-T, anti-cannibalization)50 - `seo-geo` (AI Overviews readiness)51 - `seo-entity` (knowledge graph, salience, sameAs/knowsAbout)52 - `seo-images` (alt, formats, optim)53 - `seo-sitemap` (sitemap.xml + robots.txt)543. **If local business detected** → also spawn `seo-local`554. **If content strategy signals** (blog, pillar pages) → also spawn `seo-cluster`565. Collect results, generate unified report with **SEO Health Score (0-100)**576. Create prioritized action plan (Critical → High → Medium → Low)5859## Workflow (7 phases — for content-creation flows)6061```62PHASE 1: ANALYZE → Extract content, detect intent63PHASE 2: RESEARCH → SERP analysis, 2026 trends, AI platforms64PHASE 3: KEYWORDS → Extract with anti-cannibalization65PHASE 4: STRUCTURE → Meta, OG, Twitter Cards, Hn, schema, alt66PHASE 5: CONTENT → Write SEO+GEO optimized content67PHASE 6: VALIDATE → SEO + GEO compliance checklists68PHASE 7: DRIFT → Compare to git HEAD (diff-seo.ts)69```7071## Reference Library (legacy 10 categories)7273```74references/75├── 01-seo-foundations/ → research workflow, SEO vs GEO76├── 02-onpage-seo/ → meta tags, OG, Twitter, headers, alt77├── 03-schema-org/ → 9 schema types (templates ready)78├── 04-geo-2026/ → AI platforms, citations, zero-click79├── 05-technical-seo/ → CWV, mobile-first, crawlability80├── 06-content-strategy/ → E-E-A-T, anti-cannibalization, keywords81├── 07-sea-google-ads/ → Quality Score, landing pages (optional)82├── 08-measurement/ → GEO tracking, Share of Model83├── 09-checklists/ → pre-publication, technical audit84└── 10-local-seo/ → GBP, NAP, citations, Local Pack85```8687## Scripts Available (`scripts/`)8889| Script | Purpose |90|--------|---------|91| `parse-meta.ts` | Extract title/description/OG/canonical via cheerio |92| `validate-schema.ts` | Validate JSON-LD offline against schema.org dumps |93| `check-cwv.ts` | Lighthouse CLI local wrapper |94| `parse-sitemap.ts` | Validate sitemap.xml structure |95| `parse-robots.ts` | Validate robots.txt directives |96| `parse-hreflang.ts` | Validate hreflang tags |97| `diff-seo.ts` | SEO drift via `git diff` |98| `geo-score.ts` | LLM-readiness scoring (0-100) |99| `analyze-keywords.ts` | Content intelligence: density, n-grams, 0-100 stuffing score, local distribution (local-first) |100101## Differentiation102103- **Local-first**: zero Google APIs, zero DataForSEO/Moz, zero Python104- **Framework-native**: delegates implementation to `fuse-astro`, `fuse-nextjs`, `fuse-laravel`105- **GEO-first**: AI Overviews/ChatGPT/Perplexity as primary target, not afterthought106- **TS/Bun stack**: all scripts in TypeScript, executed by Bun107108## Industry Detection109110Detect from homepage signals:111- **SaaS**: `/pricing`, `/features`, `/integrations`, "free trial", "sign up"112- **Local**: address, phone, opening hours, GBP link, NAP113- **E-commerce**: `/products`, `/cart`, `/checkout`, product schema114- **Publisher**: `/articles`, `NewsArticle` schema, byline, dateline115- **Agency**: `/services`, `/case-studies`, `/clients`, testimonials116117## Quality Gates118119- **30+ location pages** → warning120- **50+ location pages** → hard stop, require manual audit121- **100+ programmatic pages** → warning122- **500+ programmatic pages** → hard stop123- **Thin content** detection per page type124- **Doorway page** prevention125126## First Invocation — Activate Hook127128When user invokes `/seo` for the first time on a project:1291301. Check if `.fuse-seo` marker exists at project root (or any parent up to repo root)1312. If **absent**, ask the user **before any other work**:132 > "Activate the fuse-seo hook on this project? It will validate meta/schema/OG on every Write/Edit of HTML-like files (`.html`, `.astro`, `.tsx`, `.vue`, `.blade.php`) via the `@fusengine/harness` `seo` scope."1333. If user confirms → create empty file `.fuse-seo` at project root via `touch .fuse-seo` (or Write tool with empty content)1344. If user declines → proceed without creating the marker (hook stays dormant on this project)1355. **Do not ask again** in the same session — the marker presence is the persistent answer136137This is opt-in by design: never auto-create without explicit user consent.138139## After Any Analysis1401411. Generate markdown report in `.fuse-seo/reports/<date>-<command>.md`1422. Offer drift baseline capture: `/seo drift <url>` for future comparisons1433. Suggest framework-specific implementation via delegation:144 - Astro project → `fuse-astro:astro-seo`145 - Next.js → `fuse-nextjs:nextjs-stack`146 - Laravel → `fuse-laravel:laravel-blade`