seo

SkillProductivity

Use when running any SEO/GEO task via /seo — the top-level orchestrator that routes to all SEO sub-skills.

Available today. Use it from your connected AI after setup.

Connect ahel once, and every AI you use reads what you have installed.

Then ask your AI: use the seo skill

What this skill tells your AI

The instructions your AI receives, as published by fusengine/agents in plugins/seo/skills/seo/SKILL.md and read by ahel’s review.

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

CommandWhat it doesSub-skill
/seo audit <url>Full audit with parallel subagent delegationseo-audit
/seo page <url|path>Deep single-page analysisseo-page
/seo technical <url>Technical SEO (robots, CWV, crawlability)seo-technical
/seo schema <url|path>Detect/validate/generate JSON-LDseo-schema
/seo content <url>E-E-A-T + anti-cannibalizationseo-content
/seo images <url>Image SEO: alt text, formats, lazy loadingseo-images
/seo sitemap <url|generate>Analyze or generate XML sitemapsseo-sitemap
/seo hreflang <url>i18n/multilingual audit and generationseo-hreflang
/seo internal-linking <url>Pillar/cluster, anchor optimizationseo-internal-linking
/seo cluster <keyword>SERP-based semantic clusteringseo-cluster
/seo brief <topic>Generate detailed content briefseo-content-brief
/seo plan <type>Strategic planning (saas/local/ecommerce/publisher)seo-plan
/seo sxo <url>Search Experience Optimizationseo-sxo
/seo snippets <url>Position 0 + AI Overviews inputseo-featured-snippets
/seo local <url>Local SEO (GBP, NAP, citations, map pack)seo-local
/seo geo <url>AI Overviews/ChatGPT/Perplexity/Claude readinessseo-geo
/seo entity <url>Entity/semantic SEO, knowledge graph, salienceseo-entity
/seo ecommerce <url>Product schema, faceted nav, marketplaceseo-ecommerce
/seo video <url>VideoObject, YouTube, transcriptsseo-video
/seo redirects <url>301/302, migration, chainsseo-redirects
/seo drift <url>SEO diff vs previous git HEAD(uses diff-seo.ts)

Orchestration Logic — /seo audit

When user invokes /seo audit <url>:

  1. Detect business type from homepage (SaaS, local, ecommerce, publisher, agency)
  2. 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)
  3. If local business detected → also spawn seo-local
  4. If content strategy signals (blog, pillar pages) → also spawn seo-cluster
  5. Collect results, generate unified report with SEO Health Score (0-100)
  6. 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/)

ScriptPurpose
parse-meta.tsExtract title/description/OG/canonical via cheerio
validate-schema.tsValidate JSON-LD offline against schema.org dumps
check-cwv.tsLighthouse CLI local wrapper
parse-sitemap.tsValidate sitemap.xml structure
parse-robots.tsValidate robots.txt directives
parse-hreflang.tsValidate hreflang tags
diff-seo.tsSEO drift via git diff
geo-score.tsLLM-readiness scoring (0-100)
analyze-keywords.tsContent 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:

  1. Check if .fuse-seo marker exists at project root (or any parent up to repo root)
  2. 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."

  3. If user confirms → create empty file .fuse-seo at project root via touch .fuse-seo (or Write tool with empty content)
  4. If user declines → proceed without creating the marker (hook stays dormant on this project)
  5. 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

  1. Generate markdown report in .fuse-seo/reports/<date>-<command>.md
  2. Offer drift baseline capture: /seo drift <url> for future comparisons
  3. Suggest framework-specific implementation via delegation:
    • Astro project → fuse-astro:astro-seo
    • Next.js → fuse-nextjs:nextjs-stack
    • Laravel → fuse-laravel:laravel-blade

Signals

GitHub stars
25
Forks
4
Last commit
Sep 2026
Advanced
Catalog kind
skill
Gateway key
seo-fusengine
Source
github.com/fusengine/agents