SEO Intel (v1.4.7)
Local SEO competitive intelligence — crawl your site + competitors, extract structure and semantic signals, then use OpenClaw to reason over the data and drive real implementation.
OpenClaw is the recommended primary experience. Standalone local Qwen handles extraction fine. But analysis, gap synthesis, and "what should I build next" reasoning needs a real model — Opus, Sonnet, GPT — and OpenClaw routes that automatically. No API keys to manage, no model config, just results.
Install
CODEBLOCK0
Pipeline
CODEBLOCK1
| Stage | Command | Gate | Best engine |
|---|
| Crawl | INLINECODE0 | Free | Playwright |
| Extract |
seo-intel extract <project> | Solo | Ollama / Gemma 4 or Qwen local |
| Analyze |
seo-intel analyze <project> | Solo | OpenClaw (Opus/Sonnet) |
| AEO |
seo-intel aeo <project> | Solo | Pure local (no AI needed) |
| Watch |
seo-intel watch <project> | Free | Pure local (diff engine) |
| Keywords |
seo-intel keywords <project> | Solo | OpenClaw (Opus/Sonnet) |
| Blog Draft |
seo-intel blog-draft <project> | Solo | Cloud LLM (Gemini/Claude/GPT) |
| Actions |
seo-intel export-actions <project> | Free (technical) / Solo (full) | SQL heuristics |
| Dashboard |
seo-intel serve | Free (limited) / Solo (full) | HTML |
Agent interpretation rule
Do not treat SEO Intel as just a report generator. It is a decision layer.
Agents using this skill should interpret outputs like this:
- - crawl = structural ground truth (pages, headings, links, schemas, domain roles)
- extract = semantic layer (entities, intent, CTAs, page types, signals)
- analyze / gap-intel / keywords / competitive-actions = what competitors prove is working or missing
- aeo = whether pages are shaped for AI citation and answer engines
- watch = what changed since last crawl — regressions, new pages, content shifts
- export-actions / brief / suggest-usecases / blog-draft = implementation-ready next steps
When helping a docs writer, page builder, or implementation agent:
- 1. identify what competitors cover that the target does not
- identify where the target exists but is weaker / shallower / less citable
- convert those gaps into concrete pages, docs, comparison pages, landing pages, schema fixes, or brief-driven updates
- prefer evidence-backed actions over vague “do more SEO” advice
Core Commands
CODEBLOCK2
Dashboard export: The web dashboard (seo-intel serve) has per-card download buttons (MD/JSON/CSV) and profile-based export via /api/export/download.
Export Profiles (v1.4.4+)
The dashboard "Export Report" picker offers three profiles — each filters to actionable items only (no raw dumps):
| Profile | What you get | Best for |
|---|
| Developer | Technical issues, heading problems, orphan links, schema gaps, site watch errors — own site only, per-page issue summaries | Devs fixing crawl/structure issues |
| Content |
Keyword gaps, long-tails, content gaps, new page ideas, citability issues (<60), competitor-only keywords | Writers and SEO strategists |
|
AI Pipeline | All insights + AEO + technical + keywords + watch — structured JSON | Feeding into LLM pipelines |
Formats: Markdown, JSON, CSV, ZIP. API: INLINECODE11
Per-card exports (MD/JSON/CSV) on individual dashboard cards still work for granular downloads.
Full Command Surface
Use this section when an isolated agent needs the whole toolbox in one place.
Setup / Core Flow
CODEBLOCK3
Pipeline Commands
CODEBLOCK4
Agentic / Implementation Commands
CODEBLOCK5
Audit / Analysis Commands
CODEBLOCK6
Project Management Commands
CODEBLOCK7
Analysis & Audit Commands
CODEBLOCK8
Site Watch — Health Monitoring & Change Detection (v1.4.2+)
Tracks crawl-to-crawl changes and computes a site health score (0-100) from page errors, missing titles, and missing H1s. Site Watch is available on the free tier and auto-runs after every crawl.
CODEBLOCK9
How it works:
- - First run captures a baseline snapshot
- Subsequent runs diff against the previous snapshot
- Significant changes feed into the Intelligence Ledger as
site_watch insights - Dashboard shows the Site Watch card with health score, trend arrows, severity deltas, and a “What’s New” event feed
- Available via CLI, dashboard terminal, and programmatic API: INLINECODE13
Detected event types (10):
- - INLINECODE14
- INLINECODE15
- INLINECODE16
- INLINECODE17
- INLINECODE18
- INLINECODE19
- INLINECODE20
- INLINECODE21
- INLINECODE22
- INLINECODE23
Severity classes: critical, warning, INLINECODE26
Agent use: Run watch after every crawl to detect regressions early. If the health score drops, investigate critical/warning events before spending cycles on higher-order analysis.
Blog Draft — AEO-Optimised Content Generation (v1.3.0)
Generates blog post drafts from Intelligence Ledger data — keyword gaps, citability insights, and competitor patterns feed into structured markdown with frontmatter.
CODEBLOCK10
Models: gemini (default), claude, gpt, deepseek
Solo tier only.
Gap Intel — Topic Coverage Gap Analysis (v1.4.0)
Compares your crawled pages against competitor domains to surface topic gaps — content they cover that you don't, and depth gaps where they go deeper.
CODEBLOCK11
Output: Prioritised gap report (High/Medium/Low buyer intent) with:
- - Topics competitors cover → you don't
- Depth gaps (you have 1 page, they have 5)
- Topics where you lead
- Raw topic matrix per domain
Use --out ~/clawd/projects/carbium/docs-mirror/waiting-room/gap-intel-latest.md to feed the docs pipeline automatically.
Solo tier only.
Default Extraction Model
Gemma 4 e4b is now the default extraction model (replaces Qwen 3 4B).
| Model | Size | Speed | Tier |
|---|
| INLINECODE29 | 6.7 GB | ~47 t/s | Budget |
| INLINECODE30 |
8.9 GB | ~23 t/s |
Balanced (default) |
|
gemma4:26b | ~18 GB | — | Quality |
|
gemma4:31b | ~20 GB | — | Power |
All Qwen models remain available. Change model via seo-intel setup or edit config/<project>.json.
AEO — AI Citability Audit (v1.2.0)
Score every page for how well AI assistants (ChatGPT, Perplexity, Claude) can cite it. This is not traditional SEO — it's Answer Engine Optimization.
CODEBLOCK12
6 citability signals scored per page:
- - Entity authority — Is this page the canonical source for its entities?
- Structured claims — "X is Y because Z" patterns that AI can quote directly
- Answer density — Ratio of direct answers to filler content
- Q&A proximity — Question heading → answer paragraph pattern
- Freshness — dateModified, schema, "Updated March 2026" signals
- Schema coverage — JSON-LD structured data present
AI Query Intent classification: synthesis, decision support, implementation, exploration, validation
Low-scoring pages automatically feed into the Intelligence Ledger as citability_gap insights.
Intelligence Ledger
Insights from analyze, keywords, and aeo accumulate across runs — they're never overwritten. The ledger uses fingerprint-based dedup: same insight found again = updated timestamp, not duplicated.
- - Mark insights as done (fix applied) or dismissed (not relevant)
- Dashboard shows all active insights with done/dismiss buttons
- INLINECODE39 to toggle status programmatically
Agentic Export Commands
These turn crawl data into prioritized implementation briefs. The right inputs for coding agents, docs writers, or any downstream workflow.
Technical Audit (Free tier)
seo-intel export-actions <project> --scope technical
seo-intel export-actions <project> --scope technical --format json
Finds: missing schemas, broken links, orphan pages, thin content, deep pages, missing H1/meta, canonical issues. Works without AI — pure crawl data.
Competitive Gaps (Solo)
seo-intel competitive-actions <project>
seo-intel competitive-actions <project> --vs helius.dev
seo-intel competitive-actions <project> --format json
Finds: content gaps, keyword gaps, schema coverage delta, topic authority gaps, missing trust/comparison pages. Needs extraction + analysis to have run first.
Suggest What to Build (Solo)
seo-intel suggest-usecases <project>
seo-intel suggest-usecases <project> --scope docs
seo-intel suggest-usecases <project> --scope product-pages
seo-intel suggest-usecases <project> --scope onboarding
Infers what pages, docs, or features should exist based on competitor patterns. Uses the local intelligence DB to reason about what's missing, not just what's broken.
Combined
CODEBLOCK16
How isolated writer / docs agents should use this skill
If the agent is writing docs, landing pages, comparison pages, or implementation briefs in an isolated environment, use this order:
- 1. Establish reality
- use
crawl,
watch,
schemas,
headings-audit,
status
- identify target vs competitor coverage, detect regressions from previous crawl
- 2. Understand meaning
- use
extract,
entities,
keywords,
gap-intel
- determine what themes, intents, and problem clusters competitors cover
- 3. Prioritise action
- use
competitive-actions,
export-actions,
suggest-usecases,
brief
- convert findings into pages/features/docs, not abstract insights
- 4. Shape for answer engines
- use
aeo
- improve citability, answer density, structured claims, schema, and entity authority
Interpretation heuristics for agents
- - If competitors have whole topic clusters the target lacks → create net-new pages or docs
- If the target has the page but competitors go deeper → create rewrite / expansion brief
- If trust/comparison/integration pages are missing → create commercial-intent pages
- If schema / headings / orphan issues dominate → start with technical actions
- If AEO scores are low on important pages → restructure for AI-citable answers
- If
suggest-usecases and gap-intel overlap on the same topic → treat that as a high-confidence build target
How to use SEO Intel reports for automation
For automation, treat SEO Intel as the upstream decision layer, not a live database you rediscover every run.
Prefer stable report artifacts over raw discovery
Automation should prefer:
- - fixed-path exports like INLINECODE56
- project-level aliases like INLINECODE57
- short docs-facing briefs like INLINECODE58
Automation should avoid depending on:
- - ad hoc CLI discovery
- guessing the newest timestamped file in multiple places
- direct
seo-intel.db queries unless the workflow is explicitly advanced/custom
If timestamped files are all you have, read the newest reports/<project>-analysis-*.json and then normalize it into one stable handoff file for the downstream automation.
What to read from the reports
The main report to automate against is the analysis export:
CODEBLOCK17
Useful keys:
- -
new_pages = net-new page candidates - INLINECODE62 = topics competitors cover that you do not, or where your coverage is materially weaker
- INLINECODE63 = missing demand clusters or landing/doc opportunities
- INLINECODE64 = specific problem-led queries worth docs/blog coverage
- INLINECODE65 = existing pages that can be improved quickly
- INLINECODE66 = crawl-backed fixes, usually for technical/site work rather than net-new content
Other high-value exports:
- -
gap-intel output = competitor-backed topic and depth gaps - INLINECODE68 output = prioritized strategic actions
- INLINECODE69 = technical fixes from crawl data
- INLINECODE70 output = weakest pages by AI citability, answer density, and claim structure
- INLINECODE71 output = inferred missing docs/pages/features based on competitor patterns
Recommended automation mapping
Use the report fields like this:
- -
new_pages → create-page queue - INLINECODE73 → docs/product/content gap queue
- INLINECODE74 → landing page, glossary, comparison, or docs opportunity queue
- INLINECODE75 → problem-led docs, recipes, or blog queue
- INLINECODE76 → rewrite queue for weak existing pages
- INLINECODE77 → engineering/site-health queue
For docs automations specifically:
- 1. read the latest analysis JSON
- read the latest
gap-intel markdown if present - identify:
- topics competitors cover that you lack entirely
- existing pages with weak coverage or weak citability
- overlap between
suggest-usecases,
content_gaps, and
aeo
- 4. collapse that into one short docs brief with:
- top 3 new pages to create
- top 3 pages to rewrite
- why they matter
- competitor proof
- blockers / confidence notes
- 5. let the downstream docs agent choose only from that brief, not from raw DB state
Suggested handoff pattern
For recurring docs pipelines, create a stable file like:
CODEBLOCK18
Recommended sections:
- - INLINECODE82
- INLINECODE83
- INLINECODE84
- INLINECODE85
- INLINECODE86
- INLINECODE87
This is the simplest way to make downstream automation reliable. The SEO Intel job does the heavy analysis once; docs/product automations consume a short, fixed-format brief instead of rediscovering the entire workspace each run.
OpenClaw Workflow (Recommended)
When running inside OpenClaw, the full intelligence loop becomes conversational:
"How citable is my site for AI assistants?"
- 1. Run INLINECODE88
- Review citability scores — pages scoring <35 need restructuring
- Check weakest signals (schema coverage, Q&A proximity, structured claims)
- Generate briefs for low-scoring pages: INLINECODE89
- Implement restructuring → re-crawl → re-score to measure lift
"What should I build next?"
- 1. Run INLINECODE90
- Read the output — it contains prioritized suggestions with competitor evidence
- Cross-reference against workspace context (what's already built)
- Generate implementation briefs for the top actions
- Spawn a coding/docs agent to execute
- Re-crawl after shipping to measure delta
"Where are my biggest competitive gaps?"
- 1. Run INLINECODE91
- Analyze: which gaps are highest priority, which competitors are strongest in each area
- Map gaps to existing projects/docs/roadmap
- Produce a prioritized action plan
"What's technically broken on my site?"
- 1. Run INLINECODE92
- Triage by priority: critical → high → medium
- Assign quick wins (missing H1, meta) vs structural work (canonical chains, orphans)
"What keywords should I target — including AI search?"
- 1. Run INLINECODE93
- Review: traditional keywords, Perplexity-style questions, agent queries
- Cross with AEO scores to find high-value + low-citability gaps
- Generate briefs: INLINECODE94
Deploy Loop — Applying Fixes via Wrangler
SEO Intel tells you what's wrong and what to build. Wrangler deploys it. Agents can close the loop end-to-end.
Setup (once)
CODEBLOCK19
The site needs a wrangler.toml in its root:
CODEBLOCK20
And a .wranglerignore to keep internal files off the public site:
CODEBLOCK21
Deploy
CODEBLOCK22
Only changed files are uploaded. Deploy is instant and global (Cloudflare edge, no staging).
"SEO Intel found issues — fix and deploy"
- 1. Run analysis to get findings
CODEBLOCK23
- 2. Apply fixes to static HTML based on findings:
| SEO Intel finding | What to fix in the HTML |
|---|---|
| Low schema coverage (AEO) | Add/update <script type="application/ld+json"> blocks |
| Low answer density (AEO) | Add direct-answer paragraphs after H2/H3 headings |
| Low Q&A proximity (AEO) | Add FAQ sections: <h3> question + <p> answer |
| Low freshness signal (AEO) | Add dateModified to JSON-LD, add "Updated [date]" near content |
| Schema gap vs competitors | Add the missing @type to JSON-LD |
| Missing meta tags | Add og:title, og:description, twitter:card, meta description |
| Missing hreflang | Add <link rel="alternate" hreflang="..."> pairs in <head> |
| Content/topic gap | Create new page, update sitemap.xml and llms.txt |
| Version drift | Update softwareVersion in JSON-LD, nav badge, llms.txt, skill.md |
- 3. Deploy
CODEBLOCK24
- 4. Re-crawl to verify lift
seo-intel crawl <project> --scope new
seo-intel aeo <project>
Keeping llms.txt / skill.md in sync after releases
After any version bump or feature release, update and redeploy. Also keep public listing surfaces aligned, not just local docs:
CODEBLOCK26
Files/surfaces that must stay in sync on every version bump:
- - INLINECODE113
- public site
seo-intel/skill.md — copy from INLINECODE115 - public site
llms.txt — version number + feature summary - public site
llms-ctx.txt — full context, version number, feature descriptions - JSON-LD
softwareVersion on product pages - nav / hero version badges in HTML
- ClawHub listing / manifest text and runtime expectation disclosure
- INLINECODE119
Safety rules for deploy agents
- - Always read a file before editing it — never blind-write HTML
- Never change pricing or contact info without explicit instruction
- Keep all version references consistent — JSON-LD, badge, llms.txt must all match
- Deploy is live immediately — no staging, no undo. Be deliberate.
Direct DB Queries (Advanced)
The SQLite DB at ./seo-intel.db (in your working directory) can be queried directly for custom reasoning.
Key tables: pages, domains, headings, links, extractions, analyses, insights, INLINECODE128
Key pattern — what competitors have that target doesn't:
CODEBLOCK27
CODEBLOCK28
Programmatic API (for platform integrations)
All commands support --format json for structured output. For deep integration, use the programmatic API:
CODEBLOCK29
Available: aeo, gap-intel, watch, shallow, decay, headings-audit, orphans, entities, schemas, friction, brief, velocity, js-delta, export-actions, competitive-actions, suggest-usecases, blog-draft, insights, INLINECODE148
See AGENT_GUIDE.md for full orchestration patterns.
Cron Scheduling
CODEBLOCK30
For ongoing operator summaries, treat reports/ as a folder-aware signal surface, not a one-file source. In practice, the most useful recurring artifacts are:
- - INLINECODE151
- latest dated INLINECODE152
- latest INLINECODE153
- optional INLINECODE154
- optional INLINECODE155
- optional briefs when they actually exist
Wire via OpenClaw cron for proactive briefings delivered to your chat.
Pricing
| Tier | Price | Features |
|---|
| Free | €0 | Unlimited crawl, technical exports, crawl-only dashboard, Site Watch |
| Solo |
€19.99/mo or €199.99/yr | Full AI pipeline, AEO, all exports, full dashboard |
Solo via ukkometa.fi/seo-intel.