skills/seo-and-geo/SKILL.md
Use when the user wants to "optimize for SEO", "improve GEO", "get cited by ChatGPT", "appear in AI Overviews", "do an SEO audit", "run /seo-audit", "site health check", "keyword opportunities", "content gap analysis", "competitor SEO comparison", "find content gaps", "benchmark against competitors", "optimize for Perplexity", "do AEO", "optimize for voice search", "add structured data", "improve E-E-A-T", "implement schema markup", "build topical authority", "optimize meta tags", "fix Core Web Vitals", "improve click-through rate", "get featured snippets", "add i18n", "add translations", "set up internationalization", "multilingual SEO", "hreflang", "react-i18next", "translate JSON", "translate locale files", "auto-translate i18n", "keyword research", "backlink analysis", "SERP analysis", "competitor gap analysis", "AI search ranking", "ChatGPT ranking", "Perplexity ranking", "Google AI Overview", "schema markup", "robots.txt AI bots", "GEO visibility", "search optimization", "AI visibility", "audit page SEO", "on-page SEO check", "SEO score", "page optimization", "score my page", "why is this page not ranking", "check my page", "what SEO issues does this page have", "pre-publish SEO check", "technical SEO audit", "check page speed", "LCP is slow", "CLS problem", "INP issues", "crawl errors", "indexing problems", "robots.txt check", "XML sitemap errors", "canonical tag problems", "HTTPS not working", "mobile SEO", "JavaScript rendering", "redirect chains", "crawlability", "site speed audit", "Core Web Vitals audit", "check if Google can crawl my site", "mobile-friendly check", "build backlinks", "find broken links", "broken link building", "link outreach", "link prospecting", "earn backlinks", "find link opportunities", "backlink outreach", "pitch my content for links", "find dead links", "replace broken links", "link building campaign", "find sites to get backlinks from", "audit content quality", "CORE-EEAT audit", "EEAT score", "content quality check", "how good is my content", "is my content AI-citation worthy", "content improvement plan", "GEO quality score", "helpful content assessment", "audit domain authority", "domain trust score", "CITE audit", "how authoritative is my site", "domain credibility check", "domain rating", "site authority", "is my domain trustworthy", "entity optimization", "Knowledge Graph optimization", "fix Knowledge Panel", "brand entity recognition", "Wikidata entry", "entity consistency", "refresh old content", "update outdated content", "content is losing rankings", "revitalize content", "content decay", "set up SEO alerts", "monitoring alerts for rankings", "notify me when rankings drop", "/seo:audit-page", "/seo:audit-domain", "/seo:check-technical", "/seo:write-content", "/seo:keyword-research", "/seo:optimize-meta", "/seo:generate-schema", "/seo:report", or "/seo:setup-alert". Covers SEO, GEO, AEO, per-page on-page audits with numeric scoring, full technical SEO audits (crawlability/indexability/CWV/mobile/security/URL structure/structured data/international), structured site audits with prioritized action plans, content gap analysis, competitor SEO benchmarking, CORE-EEAT 80-item content quality scoring, CITE 40-item domain authority scoring, entity optimization for Knowledge Graphs and AI systems, content refresh workflows, monitoring alert configuration, i18n, AI-powered translation, and broken-link backlink outreach automation.
npx skillsauth add alvarovillalbaa/agent-suite seo-and-geoInstall this skill globally with one command. Works with Claude Code, Cursor, and Windsurf.
3 of 9 scanners reported clean
Some scanners were skipped, did not run, or reported a non-clean status. Review each row below.
Three disciplines. One mission: make content discoverable by both humans and machines.
These disciplines share 80% of their practices. The 20% that differs matters enormously.
When running an audit, gather these before proceeding:
URL or domain — the site to audit (or a topic/keyword for keyword research mode)
Audit type — default to full site audit if not specified:
Target keywords or topics (optional)
Competitors (optional) — if not provided and needed, use web search to identify 2-3 likely competitors based on the domain and keyword space.
Check for project context before starting:
AGENTS.md or any product/marketing context file if presentAsk only what isn't in context:
Use this decision framework:
| Situation | Primary Focus | |-----------|---------------| | Site not ranking in Google | SEO — Technical + On-page | | Site ranks but gets no clicks | AEO — Featured snippets + SERP appeal | | Brand not mentioned by AI assistants | GEO — Content authority + citation patterns | | All three lacking | Full-stack: SEO foundation → AEO structure → GEO signals | | New page being published | All three simultaneously | | Existing page refresh | Audit first, then targeted improvements |
Apply in order — each layer depends on the one below:
Layer 4: GEO — AI citation authority
↑ requires trust signals, depth, named sources
Layer 3: AEO — Answer extraction
↑ requires clear structure, question-answer format
Layer 2: On-page SEO — Relevance signals
↑ requires crawlable, indexable content
Layer 1: Technical SEO — Foundation
(crawlability, speed, indexation)
Fix technical issues before optimizing content. Fix on-page before chasing AI citations.
Writing new SEO content? Use the
content-writingskill — it includes the full SEO writing workflow: CORE-EEAT pre-write checklist, keyword map, title optimization (3 options), meta description, featured snippet formatting, and on-page SEO self-check. This skill (seo-and-geo) focuses on auditing and optimization of existing content and sites.
Crawlability
robots.txt does not block important pagesAI Bot Access (critical for GEO — verify these bots are allowed in robots.txt):
GPTBot and ChatGPT-User (ChatGPT)PerplexityBot (Perplexity)ClaudeBot and anthropic-ai (Claude)Bingbot (Copilot/Bing)Google-Extended (Google Gemini and AI Overviews)Applebot-Extended (Apple Intelligence)robots.txt template — allows all AI search bots while blocking training-only crawlers:
User-agent: GPTBot
User-agent: ChatGPT-User
User-agent: PerplexityBot
User-agent: ClaudeBot
User-agent: anthropic-ai
User-agent: Google-Extended
User-agent: Bingbot
Allow: /
# Block training-only (won't affect citations)
User-agent: CCBot
Disallow: /
Quick check: curl -s "https://example.com/robots.txt"
Indexation
<link rel="canonical">)noindex on pages that should rankCore Web Vitals (Google ranking factor)
Mobile-first
For deep technical SEO: see references/technical-seo.md
For Next.js/React implementation: see references/nextjs-implementation.md
Use this structured workflow when performing a dedicated technical SEO audit. Produces a scored health report (0–100) with critical/high/medium issue triage and a prioritized implementation roadmap.
Inputs needed: URL or domain, robots.txt/sitemap access, PageSpeed Insights data (or screenshots).
## Crawlability Analysis
### Robots.txt Review
**URL**: [domain]/robots.txt
**Status**: [Found/Not Found/Error]
| Check | Status | Notes |
|-------|--------|-------|
| File exists | ✅/❌ | [notes] |
| Valid syntax | ✅/⚠️/❌ | [errors found] |
| Sitemap declared | ✅/❌ | [sitemap URL] |
| Important pages blocked | ✅/⚠️/❌ | [blocked paths] |
| Assets blocked | ✅/⚠️/❌ | [CSS/JS blocked?] |
| Correct user-agents | ✅/⚠️/❌ | [notes] |
**Issues Found**: [list]
**Recommended robots.txt**: [provide corrected version if needed]
---
### XML Sitemap Review
**Sitemap URL**: [URL] **Status**: [Found/Not Found/Error]
| Check | Status | Notes |
|-------|--------|-------|
| Sitemap exists | ✅/❌ | |
| Valid XML format | ✅/⚠️/❌ | [errors] |
| In robots.txt | ✅/❌ | |
| Submitted to Search Console | ✅/⚠️/❌ | |
| URLs count | [X] | [appropriate?] |
| Only indexable URLs | ✅/⚠️/❌ | |
| Includes lastmod (accurate) | ✅/⚠️ | |
---
### Crawl Budget Analysis
| Factor | Status | Impact |
|--------|--------|--------|
| Crawl errors | [X] errors | [Low/Med/High] |
| Duplicate content | [X] pages | [Low/Med/High] |
| Redirect chains | [X] found | [Low/Med/High] |
| Orphan pages | [X] found | [Low/Med/High] |
**Crawlability Score**: [X]/10
## Indexability Analysis
### Index Status Overview
| Metric | Count | Notes |
|--------|-------|-------|
| Pages in sitemap | [X] | |
| Pages indexed | [X] | [source: site: search] |
| Index coverage ratio | [X]% | [good if >90%] |
### Index Blockers Check
| Blocker Type | Found | Pages Affected |
|--------------|-------|----------------|
| noindex meta tag | [X] | [list or "none"] |
| noindex X-Robots | [X] | [list or "none"] |
| Robots.txt blocked | [X] | [list or "none"] |
| Canonical to other | [X] | [list or "none"] |
| 4xx/5xx errors | [X] | [list or "none"] |
| Redirect loops | [X] | [list or "none"] |
### Canonical Tags Audit
| Check | Status | Notes |
|-------|--------|-------|
| Canonicals present | ✅/⚠️/❌ | [X]% of pages |
| Self-referencing on unique pages | ✅/⚠️/❌ | |
| Consistent (HTTP/HTTPS) | ✅/⚠️/❌ | |
| Consistent (www/non-www) | ✅/⚠️/❌ | |
### Duplicate Content Issues
| Issue Type | Count | Examples |
|------------|-------|----------|
| URL-based duplicates | [X] | [URLs] |
| Parameter duplicates | [X] | [URLs] |
| WWW/non-WWW | [X] | [notes] |
**Indexability Score**: [X]/10
For detailed output templates for each step, see references/technical-audit-templates.md:
| Severity | Examples | Response Time | |----------|---------|---------------| | Critical | robots.txt blocking site, noindex on key pages, site-wide 500 errors | Same day | | High | Slow page speed, missing hreflang, duplicate content, redirect chains | Within 1 week | | Medium | Missing schema, suboptimal canonicals, thin content pages | Within 1 month | | Low | Minor CLS issues, non-essential schema missing | Next quarter |
Reference files:
references/technical-audit-example.md — Full worked example (cloudhosting.com audit) and comprehensive checklistreferences/http-status-codes.md — HTTP status codes SEO impact, redirect best practices, crawl budgetreferences/robots-txt-reference.md — robots.txt syntax guide, platform templates, common mistakes, emergency fixesTitle tag (50-60 characters)
Meta description (150-160 characters)
Heading structure
Content
Images
closures-javascript-example.png not img001.png)Internal linking
For content strategy: see references/content-optimization.md
When auditing a single page, follow this sequence and produce structured output for each step:
Scoring weights (section → points):
| Section | Weight | Max | |---------|--------|-----| | Title Tag | 15% | 15 pts | | Meta Description | 5% | 5 pts | | Header Structure | 10% | 10 pts | | Content Quality | 25% | 25 pts | | Keyword Optimization | 15% | 15 pts | | Internal/External Links | 10% | 10 pts | | Image Optimization | 10% | 10 pts | | Page-Level Technical | 10% | 10 pts |
Content length benchmarks (for "sufficient length" scoring):
| Query Type | Min for full marks | Minimum | |-----------|-------------------|---------| | Informational | 1,500+ words | 500 words | | Commercial | 1,200+ words | 400 words | | Transactional | 500+ words | 200 words | | Local | 400+ words | 150 words |
Keyword density: 0.5-1.0% ideal; 1.0-2.5% acceptable; >3.0% = keyword stuffing (penalized, fix immediately).
For detailed step-by-step output templates (steps 1-11), scoring rubric with calibration examples, issue resolution playbook, and page-type checklists: see references/on-page-audit.md
AEO wins featured snippets, AI Overviews, and voice results. The goal: make answers easy to extract.
Definition pattern (for "What is X?" queries):
## What is [Term]?
[Term] is [1-sentence definition]. [2-3 sentences of context explaining why it matters].
Target: 40-60 words. Google extracts this for paragraph featured snippets.
Step-by-step pattern (for "How to X?" queries):
## How to [Action]
[Brief overview sentence]
1. **[Step Name]**: [Clear action, 1-2 sentences]
2. **[Step Name]**: [Clear action, 1-2 sentences]
3. **[Step Name]**: [Clear action, 1-2 sentences]
Comparison table pattern (for "X vs Y" queries):
| Feature | Option A | Option B |
|---------|----------|----------|
| [Key dimension] | [Value] | [Value] |
| Best for | [Use case] | [Use case] |
FAQ pattern (for "People Also Ask" boxes):
## Frequently Asked Questions
### [Question exactly as users would search it]?
[Direct answer in first sentence]. [Supporting context in 2-3 more sentences].
Key AEO principles:
For complete AEO patterns with examples: see references/content-optimization.md
GEO is the practice of making content citation-worthy for AI systems (ChatGPT, Claude, Perplexity, Gemini, AI Overviews).
The core insight: AI systems cite sources that demonstrate clear authority, contain verifiable facts, and are structured for extraction.
Five GEO signals:
Named attribution — Quote real experts with names and credentials
"According to [Expert Name], [Title] at [Organization], [specific claim]."
Cited statistics — Include numbers with sources and dates
"According to [Source], [specific statistic], as of [year]."
Self-contained statements — Write sentences that make sense without surrounding context
"The optimal length for SEO blog posts is 1,500-2,500 words for competitive topics."
Topical depth — Cover a topic comprehensively (AI systems prefer authoritative sources over thin ones)
Freshness signals — Include publication dates, update dates, version numbers where relevant
Princeton Research: 9 Optimization Methods (validated on Perplexity AI, KDD 2024):
| Method | Visibility Boost | How to Apply | |--------|-----------------|--------------| | Cite Sources | +40% | Add authoritative citations and references | | Statistics Addition | +37% | Include specific numbers and data points | | Quotation Addition | +30% | Add expert quotes with attribution | | Authoritative Tone | +25% | Use confident, expert language | | Easy-to-understand | +20% | Simplify complex concepts | | Technical Terms | +18% | Include domain-specific terminology | | Unique Words | +15% | Increase vocabulary diversity | | Fluency Optimization | +15-30% | Improve readability and flow | | ~~Keyword Stuffing~~ | -10% | AVOID — hurts AI visibility |
Best combination: Fluency + Statistics = maximum boost. Low-ranking sites can gain up to +115% visibility with citations.
Content trust signals:
Third-party presence matters more than your own site:
AI systems don't only cite your domain — they cite where you appear across the web. Brands are 6.5× more likely to be cited via third-party sources than their own domains.
| Source | ChatGPT Citation Share | Action | |--------|----------------------|--------| | Wikipedia | 7.8% | Keep your Wikipedia page accurate and current | | Reddit | 1.8% | Participate authentically in relevant communities | | Forbes/major publications | 1.1% | Pitch guest posts and expert commentary | | Review platforms (G2, Capterra) | Significant for SaaS | Maintain updated profiles | | YouTube | Cited heavily by Google AI Overviews | Create how-to video content |
Key stat: Traditional SEO gets you ranked. AI SEO gets you cited. A page ranking on page 2 can still get cited if it has strong structure and authority signals — only ~15% of AI Overview sources overlap with the traditional Top 10.
Avoid AI-generated writing patterns — AI systems are increasingly trained to discount content that looks machine-generated. See references/ai-signals.md for patterns to avoid.
For Princeton GEO research details and domain-specific recommendations: see references/geo-research.md
For deep GEO strategies by content domain: see references/geo-strategies.md
For GEO writing patterns (statistic blocks, expert quote blocks, evidence sandwiches, domain-specific tactics): see references/content-patterns.md
Schema markup directly communicates content meaning to search engines and AI systems.
Always implement:
Organization on homepageWebSite with SearchAction on homepageBreadcrumbList on all pagesArticle on blog postsFAQPage on FAQ sectionsHowTo on step-by-step guidesFor complete schema templates and JSON-LD: see references/structured-data.md
For Next.js implementation (JsonLd component, builder utilities): see references/nextjs-implementation.md and examples/nextjs-metadata.ts
Google's E-E-A-T (Experience, Expertise, Authoritativeness, Trustworthiness) applies equally to traditional search ranking and AI citation decisions.
| Signal | SEO Impact | GEO Impact | |--------|------------|------------| | Author credentials | Medium | High | | First-hand experience | High | High | | External citations | High | Very High | | Publication date/freshness | Medium | High | | Organizational transparency | Medium | Very High | | Accurate, verifiable claims | High | Very High |
Implement E-E-A-T:
Before optimizing, assess current AI search presence. Run this before any GEO work.
Step 1: Manual check across platforms
Test 10-20 priority queries in ChatGPT, Perplexity, and Google. For each:
Step 2: Content extractability check (run on each priority page)
| Check | Pass/Fail | |-------|-----------| | Clear definition in first paragraph? | | | Self-contained answer blocks (work without surrounding context)? | | | Statistics with sources cited? | | | Comparison tables for "[X] vs [Y]" queries? | | | FAQ section with natural-language questions? | | | Schema markup (FAQ, HowTo, Article, Product)? | | | Expert attribution (author name, credentials)? | | | Recently updated (within 6 months)? | | | Heading structure matches query patterns? | | | AI bots allowed in robots.txt? | |
Step 3: Verify robots.txt (see Technical SEO section above for bot list)
Step 4: Check Brave Search for Claude visibility — search your brand at search.brave.com (Claude uses Brave, not Google).
Each AI platform has distinct ranking signals. Target the highest-priority ones first.
| Platform | Primary Index | #1 Factor | Unique Requirement | |----------|--------------|-----------|-------------------| | ChatGPT | Web (Bing-based) | Domain Authority | Content-Answer Fit (55%) | | Perplexity | Own + Google | Semantic Relevance | FAQ Schema + allow PerplexityBot | | Google AI Overview | Google | E-E-A-T | Authoritative citations (+132% visibility) | | Microsoft Copilot | Bing | Bing Index | Submit to Bing Webmaster Tools | | Claude AI | Brave Search | Factual Density | Brave Search indexing (not Google) |
Key stats:
Critical stats:
For detailed per-platform ranking algorithms and optimization checklists: see references/platform-algorithms.md
Not all content is equally citable. Prioritize these when creating or refreshing:
| Content Type | Citation Share | Why AI Cites It | |-------------|:------------:|----------------| | Comparison articles | ~33% | Structured, balanced, high-intent | | Definitive guides | ~15% | Comprehensive, authoritative | | Original research/data | ~12% | Unique, citable statistics | | Best-of/listicles | ~10% | Clear structure, entity-rich | | Product pages | ~10% | Specific details AI can extract | | How-to guides | ~8% | Step-by-step structure | | Opinion/analysis | ~10% | Expert perspective, quotable |
Underperformers for AI citation: Generic blog posts without structure, thin product pages with marketing fluff, gated content (AI can't access it), content without dates or author attribution.
Goal: Get cited in "What is [category]?" and "Best [category]" queries.
Goal: Get cited as an authoritative source on topics in your space.
Goal: Get cited in "[X] vs [Y]" and "Best [X] alternatives" queries.
Goal: Get cited in "How to [X] with [your product]" queries.
When a user requests keyword research, follow these steps:
Understand the Context
Ask clarifying questions if not already provided:
Generate Seed Keywords
Start with:
Expand Keyword List
For each seed keyword, generate variations:
Classify Search Intent
Categorize each keyword:
| Intent | Signals | Example | Content Type | |--------|---------|---------|--------------| | Informational | what, how, why, guide, learn | "what is SEO" | Blog posts, guides | | Navigational | brand names, specific sites | "google analytics login" | Homepage, product pages | | Commercial | best, review, vs, compare | "best SEO tools 2026" | Comparison posts, reviews | | Transactional | buy, price, discount, order | "buy SEO software" | Product pages, pricing |
For the full intent taxonomy with sub-categories, SERP feature correlations, funnel alignment, and mixed intent patterns: see references/keyword-intent-taxonomy.md
Assess Keyword Difficulty
Score each keyword (1–100 scale):
Calculate Opportunity Score
Formula: Opportunity = (Volume × Intent Value) / Difficulty
Intent Value: Informational = 1, Navigational = 1, Commercial = 2, Transactional = 3
| Scenario | Volume | Difficulty | Intent | Priority | |----------|--------|------------|--------|----------| | Quick Win | Low–Med | Low | High | ⭐⭐⭐⭐⭐ | | Growth | High | Medium | High | ⭐⭐⭐⭐ | | Long-term | High | High | High | ⭐⭐⭐ | | Research | Low | Low | Low | ⭐⭐ |
For the weighted priority scoring matrix (5-factor scores), priority categories (P0–P3), and seasonal keyword patterns: see references/keyword-prioritization-framework.md
Identify GEO Opportunities
Keywords likely to trigger AI responses:
Create Topic Clusters
Group keywords into pillar + cluster content:
Pillar: Comprehensive guide (head keyword, broad scope)
├── Cluster 1: Deep subtopic page → links back to pillar
├── Cluster 2: Deep subtopic page → links back to pillar
└── Cluster N: Deep subtopic page → links back to pillar
Rules: Every cluster links to the pillar; the pillar links to every cluster; cluster pages link to 2–3 related siblings.
For planning worksheets, hub-and-spoke architecture patterns (Classic, Layered, Use-Case, Process), internal linking density guides, content calendar integration, and cluster health scorecards: see references/topic-cluster-templates.md
Generate Output Report
Produce a report containing: Executive Summary, Top Keyword Opportunities (Quick Wins, Growth, GEO), Topic Clusters, Content Calendar, and Next Steps.
For the complete report template and a worked example (project management software): see examples/keyword-research-example-report.md
Input:
Output:
Keyword mapping principle: One primary keyword cluster per page. Prevent cannibalization (multiple pages competing for the same keyword).
People Also Ask mining — Always pull PAA questions from Google for the target topic; these are high-AEO opportunities.
Zero-click awareness — Some queries will never drive clicks; optimize those for AI citation and brand awareness instead.
When SEO tools are connected (Ahrefs, Semrush MCP):
When tools are not connected: Use web search for the keyword landscape. Note to user: "For precise volume and difficulty data, connect an SEO tool like Ahrefs or Semrush via MCP."
Identify what's missing from the content strategy:
For each competitor, compare:
Backlinks remain one of the strongest SEO ranking signals. The most sustainable strategy is earning editorial links through genuinely useful content. The fastest ethical path to new links is the broken link method: find dead links on high-authority pages in your niche, then pitch your content as the replacement.
Why it works:
Requirements: web_search, web_fetch, ability to send email
Parameters:
niche_keywords — describe your content domain (e.g., "content marketing", "python testing")your_content_urls — your best pages to pitch as replacementsmin_domain_authority — skip low-DA sites (default: 30)Step 1 — Find resource pages
Search for high-authority link pages in your niche:
"{{niche_keywords}}" inurl:resources
"{{niche_keywords}}" inurl:links
"{{niche_keywords}}" "useful resources" OR "further reading"
Step 2 — Extract and check outbound links
For each resource page:
<a href> links404, 410, or connection timeoutStep 3 — Match dead links to your content
For each broken link, analyze:
your_content_urls; only proceed when there's a strong topical fitStep 4 — Find site owner contact
Search for: site:{{domain}} contact OR email OR "get in touch"
Priority order: dedicated contact page → author bio email → site footer → WHOIS (last resort)
Step 5 — Draft and send outreach
Use this template (personalize before sending):
Subject: Broken link on [page title]
Hi [Name],
I was browsing your [topic] resources page and noticed the link to
"[dead link anchor text]" appears to be broken (returns a 404).
I recently published a comprehensive guide on [same topic] that might
work as a replacement: [your_url]
[One sentence explaining why your content is a good fit — word count,
recency, specific sub-topic it covers]
Either way, wanted to give you a heads up about the broken link!
[Your name]
Follow-up: Send one follow-up after 3–4 days if no response. Do not send more than two emails total.
For a fully automated broken-link campaign run by an AI agent:
Trigger: weekly (e.g., Monday 6am)
Agent capabilities needed: web_search, web_fetch, email
State file: track contacted domains to avoid duplicates
See references/backlink-hunter.md for the complete automated workflow specification including search queries, link extraction logic, LLM-powered outreach drafting, and state management.
For analyzing your existing backlink profile:
python3 scripts/backlinks.py "example.com" --limit 20
Sites worth targeting (high-DA, editorial context):
.edu/.gov resource pagesSites to skip:
Open with a 3-5 sentence summary of overall SEO health. Highlight:
| Keyword | Est. Difficulty | Opportunity Score | Current Ranking | Intent | Recommended Content Type | |---------|----------------|-------------------|-----------------|--------|--------------------------|
Opportunity score: high, medium, or low — based on search demand, difficulty, and business relevance. Include 15-25 opportunities sorted by opportunity score.
| Page | Issue | Severity | Recommended Fix | |------|-------|----------|-----------------|
Severity levels:
When auditing one specific page, open the audit report with a visual score breakdown:
## Overall Score: [X]/100
Score Breakdown:
████████░░ Title Tag: [X]/10 (15%)
██████░░░░ Meta Description: [X]/10 ( 5%)
█████████░ Headers: [X]/10 (10%)
███████░░░ Content: [X]/10 (25%)
████████░░ Keywords: [X]/10 (15%)
█████░░░░░ Internal Links: [X]/10 (10%)
██████░░░░ Images: [X]/10 (10%)
███████░░░ Technical: [X]/10 (10%)
Grade scale: 90-100 = A+, 80-89 = A, 70-79 = B, 60-69 = C, 50-59 = D, <50 = F
Include this scan before priority issues. Score each item ✅ pass / ⚠️ partial / ❌ fail:
| ID | Check Item | Status | |----|-----------|--------| | C01 | Intent Alignment — title promise matches content delivery | | | C02 | Direct Answer — core answer in first 150 words | | | C09 | FAQ Coverage — structured FAQ section present | | | C10 | Semantic Closure — conclusion answers the opening | | | O01 | Heading Hierarchy — H1→H2→H3, no skipped levels | | | O02 | Summary Box — TL;DR or Key Takeaways block | | | O03 | Data Tables — comparisons use tables, not prose | | | O05 | Schema Markup — appropriate JSON-LD implemented | | | O06 | Section Chunking — single topic per section | | | R01 | Data Precision — ≥5 precise numbers in content | | | R02 | Citation Density — ≥1 external citation per 500 words | | | R06 | Timestamp — last updated within 1 year | | | R08 | Internal Link Graph — descriptive anchor text throughout | | | Exp01 | First-Person Narrative — "I tested" or "We found" signals | | | Ept01 | Author Identity — byline + bio present | | | T04 | Disclosure Statements — affiliate/sponsored links disclosed | |
Score: [X]/16 items passing
Blog post: keyword in title + meta, single H1, 1,500+ words, 3+ internal links, all images have alt, FAQ section + schema, author bio with credentials
Product page: product name in title, price/availability in meta description, Product schema, multiple product images with alt, customer reviews visible, related products linked
Landing page: keyword-optimized title, benefit-focused meta, clear H1 value proposition, trust signals (testimonials, logos), single primary CTA, LCP ≤2.5s, fully mobile-responsive
| Opportunity | How to Capitalize | Expected Impact | |------------|-------------------|-----------------|
For each content gap, provide:
| Check | Status | Details | |-------|--------|---------|
Status: Pass, Fail, or Warning.
| Dimension | Your Site | Competitor A | Competitor B | Winner | |-----------|-----------|--------------|--------------|--------|
Include rows for: keyword count, content depth, publishing frequency, backlink signals, technical score, SERP feature presence.
Quick Wins (do this week):
Strategic Investments (plan for this quarter):
For each action item: what to do (specific), expected impact (high/medium/low), effort estimate, dependencies.
For implementing optimizations:
Traditional SEO:
AI Visibility Monitoring tools:
| Tool | Coverage | Best For | |------|----------|----------| | Otterly AI | ChatGPT, Perplexity, Google AI Overviews | Share of AI voice tracking | | Peec AI | ChatGPT, Gemini, Perplexity, Claude, Copilot | Multi-platform monitoring at scale | | ZipTie | Google AI Overviews, ChatGPT, Perplexity | Brand mention + sentiment tracking | | LLMrefs | ChatGPT, Perplexity, AI Overviews, Gemini | SEO keyword → AI visibility mapping |
DIY monitoring (no tools): Monthly, pick your top 20 queries → run each through ChatGPT, Perplexity, and Google → record: are you cited? Who is? Which page? → track month-over-month in a spreadsheet.
For full measurement framework and KPIs: see references/measurement.md
The CORE-EEAT framework scores content across 80 criteria in 8 dimensions — producing both a GEO Score (AI citation potential) and an SEO Score (source credibility). Use this when you need more than the 16-item quick scan in per-page audits.
| Result | Points | |--------|--------| | Pass | 10 | | Partial | 5 | | Fail | 0 |
Rating scale: 90–100 Excellent | 75–89 Good | 60–74 Medium | 40–59 Low | 0–39 Poor
Veto items — a Fail on any of these caps the total at Low:
| System | Dim | Name | GEO/SEO | Core Question | |--------|-----|------|---------|---------------| | CORE | C | Contextual Clarity | GEO 🎯 | Does the content clearly answer user intent? | | CORE | O | Organization | GEO 🎯 | Is content structured for humans and machines? | | CORE | R | Referenceability | GEO 🎯 | Can AI verify and cite the claims? | | CORE | E | Exclusivity | GEO 🎯 | Does content offer something unavailable elsewhere? | | EEAT | Exp | Experience | SEO 🔍 | Does author demonstrate real-world experience? | | EEAT | Ept | Expertise | SEO 🔍 | Does author demonstrate professional expertise? | | EEAT | A | Authority | SEO 🔍 | Is author/org recognized as an authority? | | EEAT | T | Trust | SEO 🔍 | Does the site meet trust and safety standards? |
| Rank | ID | Name | Action | |------|----|------|--------| | 1 | C02 | Direct Answer | Put core answer in first 150 words | | 2 | C09 | FAQ Coverage | Add structured FAQ with FAQPage schema | | 3 | O03 | Data Tables | Replace prose comparisons with HTML tables | | 4 | O05 | Schema Markup | Add correct JSON-LD for content type | | 5 | E01 | Original Data | Include first-party statistics or research | | 6 | O02 | Summary Box | Add TL;DR or Key Takeaways section |
dimension_weight × points_lostFor full 80-item checklist, content-type weight tables, Pass/Partial/Fail criteria, and calibration examples: see references/core-eeat-benchmark.md
The CITE framework scores domain authority across 40 criteria in 4 dimensions — Citation, Identity, Trust, and Eminence. Pairs with CORE-EEAT for a combined 120-item assessment.
| Dim | Content Publisher | E-commerce | SaaS/Tool | Authority & Institutional | |-----|:-:|:-:|:-:|:-:| | C — Citation | 40% | 20% | 25% | 45% | | I — Identity | 15% | 20% | 30% | 20% | | T — Trust | 20% | 35% | 25% | 20% | | E — Eminence | 25% | 25% | 20% | 15% |
If any of these fail, the CITE Score is capped at 39 (Poor):
| ID | Check | What It Signals | |----|-------|----------------| | T03 | Link-Traffic Coherence | Bought links — link volume disproportionate to traffic | | T05 | Backlink Profile Uniqueness | PBN or link farm — shares >60% links with another domain | | T09 | Penalty History | Active Google manual action — all optimization is futile until resolved |
| CITE | CORE-EEAT | Diagnosis | Next Action | |------|-----------|-----------|-------------| | High | High | Authority + quality aligned | Maintain; expand content | | High | Low | Good domain, weak content | Run CORE-EEAT audit; fix content | | Low | High | Great content, weak domain | Build backlinks; entity optimization | | Low | Low | Start from scratch | Fix content quality first |
For full 40-item checklist, all dimension criteria, and scoring workflow: see references/domain-authority-auditor.md
Use this when pages are losing rankings, traffic has declined, or content has outdated statistics.
Decay indicators that trigger a refresh:
Step 1 — CORE-EEAT Quick Score Run the 16-item quick scan (see Per-Page Audit section) to identify the weakest dimensions. Focus the refresh on dimensions scoring below 60.
Step 2 — Decay Candidate Identification Check content against six criteria: age, outdated data, traffic loss, ranking drops, broken links, competitive gaps. Score each 0–2; pages scoring ≥4/12 are refresh candidates.
Step 3 — Performance Analysis Document current state: keyword positions (before/now), organic traffic trend, SERP changes (new competitors, new features), search intent shift.
Step 4 — Gap Identification Compare against current top 3 ranking pages:
Step 5 — Update Requirements List specific changes: statistics to replace, sections to add, sections to rewrite, schema to add/fix, internal links to update.
Step 6 — Content Writing Update sections with current data. Replace every statistic with a sourced, dated replacement. Add missing subtopics. Strengthen E, R dimensions (original data, citations).
Step 7 — GEO Optimization Add/improve: Direct Answer block (C02), Summary Box (O02), Data Tables (O03), FAQ section with schema (C09), entity precision throughout (R07).
Step 8 — Republishing Strategy
<lastmod> date in sitemapStep 9 — Refresh Report Document: what changed, CORE-EEAT score before/after, expected ranking recovery timeline (typically 4–8 weeks), set 90-day review checkpoint.
Use when a brand, author, or product is:
Key principle: Consistency beats completeness. Five consistent weak signals across platforms are stronger than one strong signal on a single platform.
Step 1 — Entity Discovery Check Google Knowledge Panel presence, Wikidata entry, Wikipedia page, AI system recognition (query ChatGPT/Claude: "What is [brand]?"), and schema markup on homepage.
Step 2 — Signal Audit Evaluate 6 dimensions: structured data, knowledge bases, NAP+E consistency, content authority, third-party mentions, AI-specific signals.
Step 3 — Action Plan
sameAs links; ensure NAP+E consistency across top 20 directoriesFor schema templates, disambiguation strategies, and monitoring workflows: see references/entity-optimizer.md
Proactive monitoring detects problems before they become crises. Configure alerts across seven categories:
| Category | Urgency | Trigger Examples | |----------|---------|-----------------| | Technical | Critical | Crawl errors spike, robots.txt change, site down | | Traffic | High | Organic traffic drops ≥20% week-over-week | | Rankings | High | Top keyword drops ≥5 positions | | Backlinks | Medium | Toxic link spike, significant link loss | | Competitors | Medium | Competitor publishes content on your target keywords | | GEO/AI Visibility | Medium | AI citation share drops on monitored queries | | Brand Mentions | Medium | Negative brand mentions spike |
Recommended baseline metrics to track:
DIY monitoring (no tools): Monthly, pick your top 20 queries → test each in ChatGPT, Perplexity, Google → record: are you cited? Who is? Which page? → track month-over-month in a spreadsheet.
These one-shot commands run specific SEO/GEO tasks without entering the full audit workflow:
| Command | What It Does |
|---------|-------------|
| /seo:audit-page [url] | Full per-page on-page audit with CORE-EEAT quick scan (11-step workflow) |
| /seo:audit-domain [domain] | Complete site audit: technical + on-page + GEO + competitor overview |
| /seo:check-technical [url] | Technical SEO check: crawlability, speed, schema, mobile, security (9-step) |
| /seo:write-content [topic] | Create SEO-optimized content with keyword integration, schema, and FAQ |
| /seo:keyword-research [topic] | Full keyword research workflow: discovery, intent classification, opportunities |
| /seo:optimize-meta [url] | Optimize title tag, meta description, OG tags, and Twitter Cards |
| /seo:generate-schema [url] | Generate appropriate JSON-LD schema markup for the page |
| /seo:report [domain] | Generate a performance summary report with rankings, traffic, and GEO metrics |
| /seo:setup-alert [domain] | Configure monitoring alerts for rankings, traffic, and AI visibility |
| File | Contents |
|------|----------|
| references/technical-seo.md | Deep technical audit checklist, crawl issues, JS SEO, international SEO |
| references/geo-strategies.md | GEO and AEO deep strategies by AI platform and content domain |
| references/geo-research.md | Princeton GEO paper (KDD 2024) — 9 optimization methods with quantified visibility boosts, domain-specific recommendations |
| references/platform-algorithms.md | Per-platform ranking algorithms: ChatGPT, Perplexity, Google AI Overview, Copilot, Claude, traditional Google |
| references/structured-data.md | Complete JSON-LD schema templates for every content type |
| references/seo-checklist.md | Priority-tiered audit checklist (P0/P1/P2) covering technical, on-page, schema, GEO, and off-page factors |
| references/content-optimization.md | Content strategy, search intent, featured snippets, internal linking |
| references/tools-and-apis.md | Free/paid SEO tools, GEO monitoring tools, APIs, browser extensions, robots.txt template for AI bots |
| references/nextjs-implementation.md | Next.js metadata API, sitemaps, robots.ts, dynamic OG images, i18n with react-i18next, auto-translation workflow |
| references/ai-signals.md | E-E-A-T implementation, AI writing detection patterns to avoid |
| references/measurement.md | SEO + GEO KPIs, tracking setup, competitive benchmarking |
| references/content-patterns.md | GEO writing patterns (statistic blocks, expert quotes, evidence sandwiches), domain-specific tactics, voice search optimization |
| references/on-page-audit.md | Per-page on-page audit: detailed output templates for steps 1-11, scoring rubric with calibration examples, content length benchmarks, URL quality guide, internal link count guidelines, issue resolution playbook, worked example (headphones), page-type checklists |
| references/keyword-intent-taxonomy.md | Complete intent classification system: 4 primary types × 3–4 sub-categories, signal words, SERP feature correlations, content format recommendations, full funnel alignment, and mixed intent patterns |
| references/keyword-prioritization-framework.md | Priority scoring matrix (5-factor weighted scoring), P0–P3 priority categories with action guidance, and seasonal keyword patterns with planning lead times |
| references/topic-cluster-templates.md | Topic cluster planning worksheets, four hub-and-spoke architecture patterns, internal linking rules and anti-patterns, content calendar integration with build sequence, cluster health scorecard |
| references/backlink-hunter.md | Automated broken-link backlink outreach: full agentic workflow spec, Brave Search queries, link extraction logic, LLM-powered email drafting, state management, and outreach templates |
| references/core-eeat-benchmark.md | Full 80-item CORE-EEAT content quality framework: complete checklist for all 8 dimensions, content-type weight tables, GEO engine citation preferences, schema-by-content-type guide, and Pass/Partial/Fail calibration examples |
| references/domain-authority-auditor.md | CITE domain authority framework: full 40-item checklist (Citation/Identity/Trust/Eminence), domain-type weight tables, veto item details, scoring workflow, and CITE × CORE-EEAT diagnosis matrix |
| references/entity-optimizer.md | Entity optimization: 6 signal dimensions, 3-step audit workflow, Organization/Person schema templates, disambiguation resolution, and ongoing monitoring |
| File | Contents |
|------|----------|
| scripts/seo_audit.py | Full SEO audit — meta tags, H1, robots.txt, sitemap, AI bot access, load time, schema count. No API key needed. Run: python3 scripts/seo_audit.py "https://example.com" |
| scripts/translate_i18n.py | Translates all string values in an i18n JSON locale file to one or more target languages using an AI provider. Preserves structure, keys, URLs, and {{placeholder}} variables. Run python scripts/translate_i18n.py --help for usage. |
DATAFORSEO_LOGIN + DATAFORSEO_PASSWORD)| File | Contents |
|------|----------|
| scripts/dataforseo_api.py | API wrapper + shared utilities (format_count, get_result, print helpers) |
| scripts/credential.py | Credential helper reading env vars |
| scripts/keyword_research.py | Keyword ideas with search volume and difficulty: python3 scripts/keyword_research.py "seo tools" --limit 20 |
| scripts/serp_analysis.py | Top Google SERP results for a keyword: python3 scripts/serp_analysis.py "best seo tools" --depth 20 |
| scripts/backlinks.py | Backlink profile for a domain: python3 scripts/backlinks.py "example.com" --limit 20 |
| scripts/domain_overview.py | Domain organic traffic and keyword count: python3 scripts/domain_overview.py "example.com" |
| scripts/related_keywords.py | Google "searches related to" — up to 4,680 keyword ideas: python3 scripts/related_keywords.py "AI agent" --depth 2 --limit 50 |
| scripts/competitor_gap.py | Keywords competitor ranks for but you don't: python3 scripts/competitor_gap.py "opc.dev" "competitor.com" |
| scripts/autocomplete_ideas.py | Real-time Google Autocomplete suggestions: python3 scripts/autocomplete_ideas.py "Claude Code" |
| File | Contents |
|------|----------|
| examples/nextjs-metadata.ts | Next.js generateMetadata patterns and OG configuration |
| examples/schema-examples.json | Ready-to-use JSON-LD schema blocks |
| examples/content-blocks.md | AEO/GEO content templates with fill-in-the-blank patterns |
| examples/opc-skills-case-study.md | Real-world optimization case study — keyword research, schema implementation, Princeton methods applied |
| examples/keyword-research-example-report.md | Complete example keyword research report for "project management software for small businesses" — executive summary, quick wins, growth keywords, GEO opportunities, topic clusters, content calendar |
After presenting an audit, offer:
"Would you like me to:
- Draft content briefs for the top keyword opportunities?
- Create optimized title tags and meta descriptions for your key pages?
- Build a content calendar based on the gap analysis?
- Run a broken-link backlink outreach campaign to build links to your top pages?
- Run the full 80-item CORE-EEAT audit on a specific page?
- Run the CITE domain authority audit to diagnose why content isn't being cited?
- Identify top content refresh candidates from your existing pages?
- Audit your entity presence in Google Knowledge Graph and AI systems?
- Set up a monitoring alert configuration for rankings and AI visibility?
- Dive deeper into any specific section of the audit?
- Run this same analysis for a different competitor or domain?"
blog-articles when the user first needs a strong canonical article before optimization.content-syndication when the optimized piece needs channel-specific variants after SEO and GEO improvements.development
Use for frontend engineering work such as components, routes, state management, accessibility, performance, design-system integration, and browser-facing debugging or refactors.
development
This skill should be used when the user asks to write, update, review, scaffold, move, remove, or continuously improve documentation for code, folders, services, repos, workflows, architectural decisions, or operational processes. Trigger for inline docs, `README.md`, `ARCHITECTURE.md`, `TESTS.md`, `SETUP.md`, `RUNBOOK.md`, `CHANGELOG.md`, `SECURITY.md`, `OVERVIEW.md`, `FAQ.md`, `DECISIONS.md`, `DEPENDENCIES.md`, `AGENTS.md`, `PLAN.md`, `SPEC.md`, `SOUL.md`, `PRINCIPLES.md`, `DESIGN.md`, `logs/`, `lessons/`, `items/`, `fixes/`, `audits/`, `raw/`, `plans/`, `specs/`, `sources/`, `lib/`, `references/`, `cookbook/`, `knowledge/`, `runbooks/`, `research/`, `official-documentation/`, `context/`, MDX docs, JSDoc/TSDoc, docstrings, ADRs, post-mortems, migration guides, documentation cleanups, and documentation-impact reviews.
tools
Cross-cloud CLI-first cloud operations for AWS, Azure, and GCP. Use when the assistant needs to identify which cloud provider or multi-cloud estate a repo uses, deploy new resources or services, wire automatic deployments, inventory and optimize infrastructure, or diagnose and repair cloud failures entirely from the terminal, with explicit approval gates for high-cost, destructive, identity-sensitive, or hard-to-reverse changes. Covers AWS Amplify full-stack projects, serverless workloads (Lambda, API Gateway, Step Functions, SAM, CDK), and the full AWS database portfolio (RDS, Aurora, Aurora DSQL, DynamoDB, ElastiCache), as well as deep Azure references for diagnostics, storage, compute, compliance, identity, Foundry, and cross-cloud migrations.
development
Use for backend engineering work such as APIs, services, data models, persistence, queues, caching, auth, background jobs, and server-side debugging or refactors.