#78 by GitHub stars
AgriciDaniel/claude-seo
Universal SEO skill for Claude Code. 26 sub-skills + 19 sub-agents covering technical SEO, E-E-A-T, schema, GEO/AEO, agent readiness (Lighthouse Agentic Browsing, WebMCP, llms.txt), backlinks, local SEO, e-commerce, international SEO, Google APIs, and PDF/Excel reporting. 9 optional extensions for live SEO data.
History
Review weekly changes to SKILL.md before updating. Dates mark the weeks in which we observed each version; checks apply to the recorded commits.
View weekly changes
extensions/ahrefs/skills/seo-ahrefs/SKILL.md
Week of Oct 26, 2026 · +0 / −0 lines
Before Local scripts → After Local scripts
6be93f45064f → 6be93f45064f
extensions/banana/skills/seo-image-gen/SKILL.md
Week of Oct 26, 2026 · +0 / −0 lines
Before Local scripts → After Local scripts
6be93f45064f → 6be93f45064f
extensions/bing-webmaster/skills/seo-bing/SKILL.md
Week of Oct 26, 2026 · +0 / −0 lines
Before Local scripts → After Local scripts
6be93f45064f → 6be93f45064f
extensions/dataforseo/skills/seo-dataforseo/SKILL.md
Week of Oct 26, 2026 · +0 / −0 lines
Before Local scripts → After Local scripts
6be93f45064f → 6be93f45064f
extensions/firecrawl/skills/seo-firecrawl/SKILL.md
Week of Oct 26, 2026 · +0 / −0 lines
Before Local scripts → After Local scripts
6be93f45064f → 6be93f45064f
extensions/matomo/skills/seo-matomo/SKILL.md
Week of Oct 26, 2026 · +0 / −0 lines
Before Local scripts → After Local scripts
6be93f45064f → 6be93f45064f
extensions/profound/skills/seo-profound/SKILL.md
Week of Oct 26, 2026 · +0 / −0 lines
Before Local scripts → After Local scripts
6be93f45064f → 6be93f45064f
extensions/seranking/skills/seo-seranking/SKILL.md
Week of Oct 26, 2026 · +0 / −0 lines
Before Local scripts → After Local scripts
6be93f45064f → 6be93f45064f
extensions/unlighthouse/skills/seo-unlighthouse/SKILL.md
Week of Oct 26, 2026 · +0 / −0 lines
Before Local scripts → After Local scripts
6be93f45064f → 6be93f45064f
skills/seo/SKILL.md
Week of Oct 26, 2026 · +0 / −0 lines
Before Network or broad shell → After Network or broad shell
6be93f45064f → 6be93f45064f
skills/seo-agentic/SKILL.md
Week of Oct 26, 2026 · +0 / −0 lines
Before Network or broad shell → After Network or broad shell
6be93f45064f → 6be93f45064f
skills/seo-audit/SKILL.md
Week of Oct 26, 2026 · +0 / −0 lines
Before Local scripts → After Local scripts
6be93f45064f → 6be93f45064f
skills/seo-backlinks/SKILL.md
Week of Oct 26, 2026 · +0 / −0 lines
Before Network or broad shell → After Network or broad shell
6be93f45064f → 6be93f45064f
skills/seo-cluster/SKILL.md
Week of Oct 26, 2026 · +0 / −0 lines
Before Local scripts → After Local scripts
6be93f45064f → 6be93f45064f
skills/seo-competitor-pages/SKILL.md
Week of Oct 26, 2026 · +0 / −0 lines
Before Local scripts → After Local scripts
6be93f45064f → 6be93f45064f
skills/seo-content/SKILL.md
Week of Oct 26, 2026 · +0 / −0 lines
Before Local scripts → After Local scripts
6be93f45064f → 6be93f45064f
skills/seo-content-brief/SKILL.md
Week of Oct 26, 2026 · +0 / −0 lines
Before Local scripts → After Local scripts
6be93f45064f → 6be93f45064f
skills/seo-dataforseo/SKILL.md
Week of Oct 26, 2026 · +0 / −0 lines
Before Local scripts → After Local scripts
6be93f45064f → 6be93f45064f
skills/seo-drift/SKILL.md
Week of Oct 26, 2026 · +0 / −0 lines
Before Local scripts → After Local scripts
6be93f45064f → 6be93f45064f
skills/seo-ecommerce/SKILL.md
Week of Oct 26, 2026 · +0 / −0 lines
Before Local scripts → After Local scripts
6be93f45064f → 6be93f45064f
skills/seo-flow/SKILL.md
Week of Oct 26, 2026 · +0 / −0 lines
Before Local scripts → After Local scripts
6be93f45064f → 6be93f45064f
skills/seo-geo/SKILL.md
Week of Oct 26, 2026 · +0 / −0 lines
Before Local scripts → After Local scripts
6be93f45064f → 6be93f45064f
skills/seo-google/SKILL.md
Week of Oct 26, 2026 · +0 / −0 lines
Before Local scripts → After Local scripts
6be93f45064f → 6be93f45064f
skills/seo-hreflang/SKILL.md
Week of Oct 26, 2026 · +0 / −0 lines
Before Local scripts → After Local scripts
6be93f45064f → 6be93f45064f
skills/seo-image-gen/SKILL.md
Week of Oct 26, 2026 · +0 / −0 lines
Before Network or broad shell → After Network or broad shell
6be93f45064f → 6be93f45064f
skills/seo-images/SKILL.md
Week of Oct 26, 2026 · +0 / −0 lines
Before Network or broad shell → After Network or broad shell
6be93f45064f → 6be93f45064f
skills/seo-local/SKILL.md
Week of Oct 26, 2026 · +0 / −0 lines
Before Local scripts → After Local scripts
6be93f45064f → 6be93f45064f
skills/seo-maps/SKILL.md
Week of Oct 26, 2026 · +0 / −0 lines
Before Network or broad shell → After Network or broad shell
6be93f45064f → 6be93f45064f
skills/seo-page/SKILL.md
Week of Oct 26, 2026 · +0 / −0 lines
Before Local scripts → After Local scripts
6be93f45064f → 6be93f45064f
skills/seo-plan/SKILL.md
Week of Oct 26, 2026 · +0 / −0 lines
Before Local scripts → After Local scripts
6be93f45064f → 6be93f45064f
skills/seo-programmatic/SKILL.md
Week of Oct 26, 2026 · +0 / −0 lines
Before Local scripts → After Local scripts
6be93f45064f → 6be93f45064f
skills/seo-schema/SKILL.md
Week of Oct 26, 2026 · +0 / −0 lines
Before Local scripts → After Local scripts
6be93f45064f → 6be93f45064f
skills/seo-sitemap/SKILL.md
Week of Oct 26, 2026 · +0 / −0 lines
Before Local scripts → After Local scripts
6be93f45064f → 6be93f45064f
skills/seo-sxo/SKILL.md
Week of Oct 26, 2026 · +0 / −0 lines
Before Local scripts → After Local scripts
6be93f45064f → 6be93f45064f
skills/seo-technical/SKILL.md
Week of Oct 26, 2026 · +0 / −0 lines
Before Local scripts → After Local scripts
6be93f45064f → 6be93f45064f
Verified commit 6be93f45064ffbadced572b5d5c95f55fd263af0
git clone --filter=blob:none --no-checkout https://github.com/AgriciDaniel/claude-seo.git .hotskills/agricidaniel-claude-seo && git -C .hotskills/agricidaniel-claude-seo checkout --detach 6be93f45064ffbadced572b5d5c95f55fd263af0
# Copy each selected skill directory from .hotskills/agricidaniel-claude-seo into .claude/skills/<skill-name>/git clone --filter=blob:none --no-checkout https://github.com/AgriciDaniel/claude-seo.git .hotskills/agricidaniel-claude-seo && git -C .hotskills/agricidaniel-claude-seo checkout --detach 6be93f45064ffbadced572b5d5c95f55fd263af0
# Copy each selected skill directory from .hotskills/agricidaniel-claude-seo into .agents/skills/<skill-name>/Heat
8.2- Star growth, last 7 daysAhead of 98% of tracked repositories
- Star growth, last 24 hoursAhead of 95% of tracked repositories
- Rank movement, last 7 daysAhead of 88% of tracked repositories
- Commits, last 30 daysAhead of 86% of tracked repositories
- Accounts asking about it through MCP, last 7 daysNot available
- Hot votes this weekAhead of 0% of tracked repositories
Heat never changes the order by stars, and sponsorship never touches it. How heat works
Stars over time
Individual skills in this repository
- seo-ahrefs
extensions/ahrefs/skills/seo-ahrefs - seo-image-gen
extensions/banana/skills/seo-image-gen - seo-bing
extensions/bing-webmaster/skills/seo-bing - seo-dataforseo
extensions/dataforseo/skills/seo-dataforseo - seo-firecrawl
extensions/firecrawl/skills/seo-firecrawl - seo-matomo
extensions/matomo/skills/seo-matomo - seo-profound
extensions/profound/skills/seo-profound - seo-seranking
extensions/seranking/skills/seo-seranking - seo-unlighthouse
extensions/unlighthouse/skills/seo-unlighthouse - seo
skills/seo - seo-agentic
skills/seo-agentic - seo-audit
skills/seo-audit - seo-backlinks
skills/seo-backlinks - seo-cluster
skills/seo-cluster - seo-competitor-pages
skills/seo-competitor-pages - seo-content
skills/seo-content - seo-content-brief
skills/seo-content-brief - seo-dataforseo
skills/seo-dataforseo - seo-drift
skills/seo-drift - seo-ecommerce
skills/seo-ecommerce - seo-flow
skills/seo-flow - seo-geo
skills/seo-geo - seo-google
skills/seo-google - seo-hreflang
skills/seo-hreflang - seo-image-gen
skills/seo-image-gen - seo-images
skills/seo-images - seo-local
skills/seo-local - seo-maps
skills/seo-maps - seo-page
skills/seo-page - seo-plan
skills/seo-plan - seo-programmatic
skills/seo-programmatic - seo-schema
skills/seo-schema - seo-sitemap
skills/seo-sitemap - seo-sxo
skills/seo-sxo - seo-technical
skills/seo-technical
How it works
seo-ahrefs
When your agent uses it
Ahrefs API analyst (extension). Reads referring domains, backlinks, organic keywords, and content explorer data via the tested @ahrefs/mcp@0.0.11 server. Pairs with seo-backlinks for multi-source confidence weighting.
What it loads into context
Frontmatter
96 tokensAlways available to the agent
SKILL.md
669 tokensWhen the skill is activated
Reference documents
0 tokensLoaded on request
Token counts are estimates. Scripts run separately; they are not counted as reference context.
The playbook
- Prerequisites
- Routing
- Output conventions
- Cross-skill delegation
- Cost guardrails
- Security
Scripts executed separately
../../../../hooks/run-python-hook.js../../../../hooks/validate-schema.py../../../../scripts/claude-seo
Files
../../../../.claude-plugin/marketplace.jsonasset3,243 bytes../../../../.claude-plugin/plugin.jsonasset1,495 bytesSKILL.mdcore2,796 bytesSKILL.mdcore2,796 bytesSKILL.mdcore2,796 bytesSKILL.mdcore2,796 bytesSKILL.mdcore2,796 bytes../../../../hooks/hooks.jsonasset443 bytes../../../../hooks/run-python-hook.jsruns1,726 bytes../../../../hooks/validate-schema.pyruns12,665 bytes../../../../scripts/claude-seoruns2,730 bytes
Read SKILL.md
# seo-ahrefs
Live Ahrefs data via the tested `@ahrefs/mcp@0.0.11` server.
Package check (2026-07-10): verify the current Ahrefs MCP package source before changing this tested version.
## Prerequisites
- Run `extensions/ahrefs/install.sh` (Linux/macOS) or `install.ps1` (Windows) before using this skill.
- An Ahrefs API token (https://ahrefs.com/api).
- Node 18+ on `$PATH` for the MCP server.
Before calling any Ahrefs tool, verify the MCP is connected by checking
that any Ahrefs MCP tool is available in this session. If tools are
not available, tell the user the extension is not installed andView the complete source on GitHubseo-image-gen
When your agent uses it
AI image generation for SEO assets: OG/social preview images, blog hero images, schema images, product photography, infographics. Powered by Gemini via nanobanana-mcp. Requires banana extension installed. Use when the user wants an SEO asset and says "OG image", "social preview", "hero image", "blog image", "product photo", "infographic", "seo image", "image-gen", "favicon", "schema image", or "pinterest pin". Not for general artwork, banners, or thumbnails unrelated to SEO.
What it loads into context
Frontmatter
184 tokensAlways available to the agent
SKILL.md
2,355 tokensWhen the skill is activated
Reference documents
0 tokensLoaded on request
Token counts are estimates. Scripts run separately; they are not counted as reference context.
The playbook
- Architecture Note
- Prerequisites
- Quick Reference
- SEO Image Use Cases
- Generation Pipeline
- Post-Generation SEO Checklist
- Cost Awareness
- Model Routing
- Error Handling
- Cross-Skill Integration
- Reference Documentation
- Response Format
- Security
Scripts executed separately
../../../../scripts/claude-seo../../../../scripts/claude-seo../../../../scripts/claude-seo
Files
LICENSE.txtdoc143 bytesSKILL.mdcore9,576 bytesSKILL.mdcore9,576 bytesSKILL.mdcore9,576 bytes../../../../scripts/claude-seoruns2,730 bytes../../../../scripts/claude-seoruns2,730 bytes../../../../scripts/claude-seoruns2,730 bytes
Read SKILL.md
# SEO Image Gen: AI Image Generation for SEO Assets (Extension)
Generate production-ready images for SEO use cases using Gemini's image generation
via the banana Creative Director pipeline. Maps SEO needs to optimized domain modes,
aspect ratios, and resolution defaults.
## Architecture Note
This extension is built on [Claude Banana](https://github.com/AgriciDaniel/banana-claude),
the standalone AI image generation skill for Claude Code.
This skill has two components with distinct roles:
- **SKILL.md** (this file): Handles interactive `/seo image-gen` commands for generating images
- **Agent** (`agents/seo-image-gen.md`): Audit-only analyst spawned during `/seo audit` to assess existing OG/social images and produce a generation plan (never auto-generates)View the complete source on GitHubseo-bing
When your agent uses it
Bing Webmaster Tools + IndexNow extension. Microsoft Copilot citations are fed by the Bing index; this skill makes Bing visibility, link data, and IndexNow URL submission first-class.
What it loads into context
Frontmatter
94 tokensAlways available to the agent
SKILL.md
677 tokensWhen the skill is activated
Reference documents
0 tokensLoaded on request
Token counts are estimates. Scripts run separately; they are not counted as reference context.
The playbook
- Prerequisites
- Routing
- When this skill applies
- Cross-skill delegation
- Security
Scripts executed separately
../../../../scripts/claude-seo
Files
SKILL.mdcore2,664 bytesSKILL.mdcore2,664 bytesSKILL.mdcore2,664 bytes../../../../scripts/claude-seoruns2,730 bytes
Read SKILL.md
# seo-bing
The non-Google indexing surface. Google still rejects IndexNow (per
Gary Illyes, multiple SOTR episodes 2024-2025), so this skill is
specifically for **Amazon/Bing/Naver/Seznam.cz/Yandex/Yep indexing** and
**Microsoft Copilot AI citation** (which pulls from the Bing index).
## Prerequisites
- Run `extensions/bing-webmaster/install.sh` or `install.ps1`.
- A Bing Webmaster Tools API key.
- Optional: an IndexNow host key (32+ chars) published at the URL
declared as `INDEXNOW_KEY_LOCATION`.
View the complete source on GitHubseo-dataforseo
When your agent uses it
Live SEO data via DataForSEO MCP server: SERP analysis, keyword research (volume, difficulty, intent, trends), backlink profiles, on-page analysis, competitor and content analysis, business listings, AI visibility (LLM mention tracking), and domain analytics. Requires DataForSEO extension installed. Use when user says "dataforseo", "live SERP", "keyword volume", "backlink data", "AI visibility check", or "real search data".
What it loads into context
Frontmatter
167 tokensAlways available to the agent
SKILL.md
4,208 tokensWhen the skill is activated
Reference documents
1,684 tokensLoaded on request
Token counts are estimates. Scripts run separately; they are not counted as reference context.
The playbook
- Prerequisites
- API Credit Awareness
- Cost Guardrails
- Quick Reference
- SERP Analysis
- Keyword Research
- Domain & Competitor Analysis
- Technical / On-Page
- Content & Business Data
- AI Visibility / GEO
- Available Utility Tools
- Cross-Skill Integration
- Error Handling
- Output Formatting
- Security
Scripts executed separately
../../../../scripts/claude-seo
Files
LICENSE.txtdoc143 bytesSKILL.mdcore18,034 bytesSKILL.mdcore18,034 bytesSKILL.mdcore18,034 bytesSKILL.mdcore18,034 bytesreferences/cost-tiers.mddoc3,450 bytesreferences/tool-catalog.mddoc3,003 bytes../../../../scripts/claude-seoruns2,730 bytes
Read SKILL.md
# DataForSEO: Live SEO Data (Extension)
Live search data via the DataForSEO MCP server. Provides real-time SERP results
(organic + images), keyword metrics, backlink profiles, on-page analysis, content
analysis, business listings, AI visibility checking, and LLM mention tracking
across 9 API modules with 79+ MCP tools.
## Prerequisites
This skill requires the DataForSEO extension to be installed:
```bash
./extensions/dataforseo/install.sh
```
View the complete source on GitHubseo-firecrawl
When your agent uses it
Full-site crawling, scraping, and site mapping via Firecrawl MCP. Use when user says "crawl site", "map site", "full crawl", "find all pages", "broken links", "site structure", "discover pages", "JS rendering", or needs site-wide analysis.
What it loads into context
Frontmatter
124 tokensAlways available to the agent
SKILL.md
2,081 tokensWhen the skill is activated
Reference documents
0 tokensLoaded on request
Token counts are estimates. Scripts run separately; they are not counted as reference context.
The playbook
- Quick Reference
- Commands
- Cross-Skill Integration
- Error Handling
- Security
Files
LICENSE.txtdoc143 bytesSKILL.mdcore8,433 bytesSKILL.mdcore8,433 bytes
Read SKILL.md
# Firecrawl Extension for Claude SEO
This skill requires the Firecrawl extension to be installed:
```bash
./extensions/firecrawl/install.sh
```
**Check availability:** Before using any Firecrawl tool, verify the MCP server
is connected by checking if `firecrawl_scrape` or any Firecrawl tool
is available. If tools are not available, inform the user the extension is not
installed and provide install instructions.
## Quick Reference
View the complete source on GitHubseo-matomo
When your agent uses it
Matomo Reporting API extension. Self-hosted or Matomo Cloud analytics as a GA4 alternative or complement. Organic traffic, landing pages, device / country breakdowns, referrers, search keywords. Triggers on "Matomo", "self-hosted analytics", "analytics ohne Google", "GA4 alternative", "Matomo Reporting", "Piwik".
What it loads into context
Frontmatter
152 tokensAlways available to the agent
SKILL.md
1,588 tokensWhen the skill is activated
Reference documents
0 tokensLoaded on request
Token counts are estimates. Scripts run separately; they are not counted as reference context.
The playbook
- Prerequisites
- Routing
- When this skill applies
- Cross-skill delegation
- Self-hosted instance on a private address
- Error Handling
- Output Formatting
- Security
Scripts executed separately
../../../../scripts/claude-seo
Files
SKILL.mdcore6,183 bytesSKILL.mdcore6,183 bytesSKILL.mdcore6,183 bytesSKILL.mdcore6,183 bytes../../../../scripts/claude-seoruns2,730 bytes
Read SKILL.md
# seo-matomo
Self-hosted analytics surface. Use Matomo as a privacy-first GA4 alternative
when you own your analytics data, want zero Google dependency, or operate
behind a strict data-residency boundary. The same `seo-matomo` skill works
against Matomo Cloud and self-hosted instances.
## Prerequisites
- Run `extensions/matomo/install.sh` or `install.ps1`.
- A Matomo instance URL (https://analytics.example.com).
- A Matomo API `token_auth` with `view` access on the sites you analyze.
- (Optional) A default `idSite` to avoid passing `--site-id` on every call.
View the complete source on GitHubseo-profound
When your agent uses it
Profound LLM citation tracker (extension). Time-series brand citation rates across ChatGPT, Perplexity, and other LLMs. Pairs with seo-seranking for triangulated AI visibility coverage.
What it loads into context
Frontmatter
85 tokensAlways available to the agent
SKILL.md
504 tokensWhen the skill is activated
Reference documents
0 tokensLoaded on request
Token counts are estimates. Scripts run separately; they are not counted as reference context.
The playbook
- Prerequisites
- Routing
- Output conventions
- Cross-skill delegation
- Security
Files
SKILL.mdcore2,119 bytes
Read SKILL.md
# seo-profound
Profound is purpose-built for LLM brand-mention tracking. While
SE Ranking samples prompts on demand, Profound continuously polls and
publishes time-series so trend deltas (week-over-week, month-over-month)
are first-class.
## Prerequisites
- Run `extensions/profound/install.sh` or `install.ps1`.
- Profound API key.
- Before any tool call, check `~/.claude/settings.json` has `env.PROFOUND_API_KEY`.
## RoutingView the complete source on GitHubseo-seranking
When your agent uses it
SE Ranking AI visibility analyst (extension). Tracks AI Share-of-Voice across ChatGPT, Gemini, Perplexity, AI Overviews, and AI Mode in a single query.
What it loads into context
Frontmatter
82 tokensAlways available to the agent
SKILL.md
643 tokensWhen the skill is activated
Reference documents
0 tokensLoaded on request
Token counts are estimates. Scripts run separately; they are not counted as reference context.
The playbook
- Prerequisites
- Routing
- AI Share-of-Voice scoring
- Cost guardrails
- Cross-skill delegation
- Security
Scripts executed separately
../../../../scripts/claude-seo
Files
SKILL.mdcore2,620 bytesSKILL.mdcore2,620 bytes../../../../scripts/claude-seoruns2,730 bytes
Read SKILL.md
# seo-seranking
Live AI visibility tracking via the SE Ranking REST API.
## Prerequisites
- Run `extensions/seranking/install.sh` (or `install.ps1`).
- An SE Ranking API key (https://seranking.com/api.html).
- Before any call, verify `SERANKING_API_KEY` is present in `~/.claude/settings.json` under `env.`. If absent, tell the user to run the installer.
## Routing
| Command | Purpose |
|---|---|View the complete source on GitHubseo-unlighthouse
When your agent uses it
Multi-page Lighthouse audit via the MIT-licensed Unlighthouse CLI. Free-tier alternative to running PageSpeed against every URL on a site, no API quota burn, runs locally.
What it loads into context
Frontmatter
85 tokensAlways available to the agent
SKILL.md
686 tokensWhen the skill is activated
Reference documents
0 tokensLoaded on request
Token counts are estimates. Scripts run separately; they are not counted as reference context.
The playbook
- Prerequisites
- Routing
- Output handling
- Cross-skill delegation
- Security
Scripts executed separately
../../../../scripts/claude-seo
Files
SKILL.mdcore2,821 bytesSKILL.mdcore2,821 bytes../../../../scripts/claude-seoruns2,730 bytes
Read SKILL.md
# seo-unlighthouse
Run Lighthouse against every URL on a site (up to a configurable cap)
and aggregate the results. Useful when:
- PageSpeed Insights' free quota (25k QPD) isn't enough for a large site.
- You want offline / local CWV measurement (CI integration, restricted environments).
- You need a quick site-wide regression check after a deploy.
## Prerequisites
- Run `extensions/unlighthouse/install.sh` (no API key needed).
- Node 18+ on `$PATH`.
View the complete source on GitHubseo
When your agent uses it
Comprehensive SEO analysis for any website or business type. Full site audits, single-page analysis, technical SEO (crawlability, indexability, Core Web Vitals with INP), schema markup, content quality (E-E-A-T), image optimization, sitemap analysis, and GEO for AI Overviews/ChatGPT/Perplexity. Industry detection for SaaS, e-commerce, local, publishers, agencies. Triggers on: SEO, audit, schema, Core Web Vitals, sitemap, E-E-A-T, AI Overviews, GEO, technical SEO, content quality, page speed. Use this hub only when the SEO domain is clear and the requested workflow is not; otherwise use the specific seo-* skill.
What it loads into context
Frontmatter
195 tokensAlways available to the agent
SKILL.md
4,796 tokensWhen the skill is activated
Reference documents
23,877 tokensLoaded on request
Token counts are estimates. Scripts run separately; they are not counted as reference context.
The playbook
- Quick Reference
- Runtime Setup
- Orchestration Logic
- Synthesis Methodology
- Industry Detection
- Quality Gates
- Community Footer
- Reference Files
- Scoring Methodology
- Sub-Skills
- Subagents
- Error Handling
- Security
Scripts executed separately
../../scripts/claude-seo
Files
../../scripts/claude-seoruns2,730 bytesLICENSE.txtdoc143 bytesSKILL.mdcore20,106 bytesSKILL.mdcore20,106 bytesreferences/backlink-quality.mddoc3,491 bytesreferences/cwv-thresholds.mddoc7,713 bytesreferences/eeat-framework.mddoc7,400 bytesreferences/eeat-scoring-guide.mddoc1,519 bytesreferences/free-backlink-sources.mddoc6,640 bytesreferences/local-schema-multilocation.mddoc1,466 bytesreferences/local-schema-types.mddoc8,214 bytesreferences/local-search-behavior.mddoc2,874 bytesreferences/local-seo-signals.mddoc7,935 bytesreferences/maps-api-endpoints.mddoc6,241 bytesreferences/maps-free-apis.mddoc6,191 bytesreferences/maps-gbp-checklist.mddoc6,107 bytesreferences/maps-geo-grid.mddoc4,375 bytesreferences/quality-gates.mddoc6,057 bytesreferences/schema-types.mddoc9,459 bytesreferences/thinking-framework-validate-act.mddoc3,084 bytesreferences/thinking-framework.mddoc6,778 bytes
Read SKILL.md
# SEO: Universal SEO Analysis Skill
**Invocation:** `/seo $1 $2` where `$1` is the command and `$2` is the URL or argument.
**Runtime:** Run bundled Python tools through
`"${CLAUDE_PLUGIN_ROOT}/scripts/claude-seo" run <script.py>`. That is the single
canonical form used by every skill and agent. Claude Code expands
`${CLAUDE_PLUGIN_ROOT}` to the installed plugin directory, so the launcher is
found without any `PATH` entry; the repository ships no top-level `bin/`
directory because hosted marketplaces reject one. Repository users run
`./scripts/claude-seo`; manual installers rewrite the canonical form to
`"$HOME/.claude/skills/seo/scripts/claude-seo"`. Never invoke bundled scripts
with a bare Python interpreter.
View the complete source on GitHubseo-agentic
When your agent uses it
Audit and fix agent readiness: the Lighthouse Agentic Browsing fraction, accessibility tree for agents, robots.txt and Content-Signal for AI agents, WAF treatment of agent traffic, llms.txt, Markdown delivery, ai-catalog.json, /.well-known discovery files, and WebMCP tools. Use when the user asks whether AI agents can use or browse the site, or about llms.txt or WebMCP. Exclude AI citability and brand signals (seo-geo) and commerce protocol depth (seo-ecommerce).
What it loads into context
Frontmatter
176 tokensAlways available to the agent
SKILL.md
2,947 tokensWhen the skill is activated
Reference documents
9,018 tokensLoaded on request
Token counts are estimates. Scripts run separately; they are not counted as reference context.
The playbook
- Commands
- Audit process
- Priorities
- Report structure
- Fix mode
- Honest-reporting rules
- Refresh mode
- Security
- Reference files
- Error Handling
Scripts executed separately
../../scripts/claude-seo../../scripts/claude-seo../../scripts/claude-seo
Files
../../scripts/claude-seoruns2,730 bytes../../scripts/claude-seoruns2,730 bytes../../scripts/claude-seoruns2,730 bytesLICENSE.txtdoc143 bytesSKILL.mdcore11,571 bytesSKILL.mdcore11,571 bytesSKILL.mdcore11,571 bytesreferences/access-policy.mddoc6,262 bytesreferences/agent-friendly-pages.mddoc5,266 bytesreferences/discovery-and-markdown.mddoc5,992 bytesreferences/lighthouse-agentic-category.mddoc6,485 bytesreferences/vendor-matrix.mddoc5,104 bytesreferences/webmcp.mddoc6,244 bytes
Read SKILL.md
# Agentic Browsing Readiness
Makes a site usable by AI agents that browse, fill forms and act for people
(ChatGPT's browser, Gemini in Chrome, Claude in Chrome, Comet, Edge), and
explains Google's Lighthouse **Agentic Browsing** result.
**The framing that survives every standards outcome:** agent readiness is
accessibility plus performance plus access policy, with a Markdown and
discovery layer on top. WebMCP is an optional enhancement for sites with forms
or transactions, not a foundation (WebKit opposes it, Mozilla is neutral, and
only ChatGPT desktop calls tools by default).
## Commands
View the complete source on GitHubseo-audit
When your agent uses it
Run a full-site SEO audit and return a scored, prioritized report. Use only for site-wide checks; use seo-page for one URL or seo-technical for a technical-only review.
What it loads into context
Frontmatter
87 tokensAlways available to the agent
SKILL.md
2,548 tokensWhen the skill is activated
Reference documents
0 tokensLoaded on request
Token counts are estimates. Scripts run separately; they are not counted as reference context.
The playbook
- Process
- Crawl Configuration
- Output Files
- Structured Audit Data Envelope
- Scoring Weights
- Report Structure
- Priority Definitions
- DataForSEO Integration (Optional)
- Google API Integration (Optional)
- Matomo Integration (Optional)
- Google Update Correlation
- Error Handling
- Security
Scripts executed separately
../../scripts/claude-seo../../scripts/claude-seo../../scripts/claude-seo
Files
../../scripts/claude-seoruns2,730 bytes../../scripts/claude-seoruns2,730 bytes../../scripts/claude-seoruns2,730 bytesLICENSE.txtdoc143 bytesSKILL.mdcore10,644 bytesSKILL.mdcore10,644 bytes
Read SKILL.md
# Full Website SEO Audit
## Process
1. **Render homepage**: use `"${CLAUDE_PLUGIN_ROOT}/scripts/claude-seo" run render_page.py <url> --mode auto --json` to capture raw HTML, rendered HTML, extracted text, SPA status, and accessibility data when needed
2. **Detect business type**: analyze homepage signals per seo orchestrator
3. **Crawl site**: follow internal links up to 500 pages, respect robots.txt
4. **Delegate to subagents** (if available, otherwise run inline sequentially):
- `seo-technical` -- robots.txt, sitemaps, canonicals, Core Web Vitals, security headers
- `seo-content` -- E-E-A-T, readability, thin content, AI citation readiness
- `seo-schema` -- detection, validation, generation recommendations
- `seo-sitemap` -- structure analysis, quality gates, missing pages
- `seo-performance` -- LCP, INP, CLS measurements
- `seo-visual` -- screenshots, mobile testing, above-fold analysisView the complete source on GitHubseo-backlinks
When your agent uses it
Analyze a site's backlink profile, anchors, toxic signals, competitors, gaps, and disavow candidates. Use only when links or referring domains are the requested focus.
What it loads into context
Frontmatter
117 tokensAlways available to the agent
SKILL.md
3,906 tokensWhen the skill is activated
Reference documents
2,551 tokensLoaded on request
Token counts are estimates. Scripts run separately; they are not counted as reference context.
The playbook
- Source Detection
- Quick Reference
- Analysis Framework
- Backlink Health Score
- Output Format
- Error Handling
- Pre-Delivery Review (MANDATORY)
- Post-Analysis
- Reference Documentation
- Security
Scripts executed separately
../../scripts/claude-seo../../scripts/claude-seo../../scripts/claude-seo
Files
../../scripts/claude-seoruns2,730 bytes../../scripts/claude-seoruns2,730 bytes../../scripts/claude-seoruns2,730 bytesLICENSE.txtdoc143 bytesSKILL.mdcore15,597 bytesSKILL.mdcore15,597 bytesSKILL.mdcore15,597 bytesSKILL.mdcore15,597 bytesSKILL.mdcore15,597 bytes../seo/references/backlink-quality.mddoc3,491 bytes../seo/references/free-backlink-sources.mddoc6,640 bytes
Read SKILL.md
# Backlink Profile Analysis
## Source Detection
Before analysis, detect available data sources:
1. **DataForSEO MCP** (premium): Check if `backlinks_summary` tool is available
2. **Moz API** (free signup): `"${CLAUDE_PLUGIN_ROOT}/scripts/claude-seo" run backlinks_auth.py --check moz --json`
3. **Bing Webmaster** (free signup): `"${CLAUDE_PLUGIN_ROOT}/scripts/claude-seo" run backlinks_auth.py --check bing --json`
4. **Keywords Everywhere** (free signup; domain rank plus referring-domain count): `"${CLAUDE_PLUGIN_ROOT}/scripts/claude-seo" run backlinks_auth.py --check keywordseverywhere --json`
5. **Common Crawl** (always available): Domain-level graph with PageRank
6. **Verification Crawler** (always available): Checks if known backlinks still exist
Run `"${CLAUDE_PLUGIN_ROOT}/scripts/claude-seo" run backlinks_auth.py --check --json` to detect all sources at once.View the complete source on GitHubseo-cluster
When your agent uses it
Cluster keywords by SERP overlap and design hub-and-spoke content architecture with internal links. Use for planning; `/seo cluster execute` then writes the posts with claude-blog's blog-write skill when it is installed, or content briefs when it is not.
What it loads into context
Frontmatter
128 tokensAlways available to the agent
SKILL.md
3,325 tokensWhen the skill is activated
Reference documents
4,260 tokensLoaded on request
Token counts are estimates. Scripts run separately; they are not counted as reference context.
The playbook
- Quick Reference
- Planning Workflow
- Strategy Import
- Execution Workflow
- Cluster Scorecard
- Map Regeneration
- Output Files
- Cross-Skill Integration
- Error Handling
- Security
- FLOW Framework Integration
Scripts executed separately
../../scripts/claude-seo
Files
../../scripts/claude-seoruns2,730 bytesSKILL.mdcore14,046 bytesreferences/execution-workflow.mddoc6,455 bytesreferences/hub-spoke-architecture.mddoc6,291 bytesreferences/serp-overlap-methodology.mddoc4,514 bytestemplates/cluster-map.htmlasset19,577 bytes
Read SKILL.md
# Semantic Topic Clustering
SERP-overlap-driven keyword clustering for content architecture. Groups keywords
by how Google actually ranks them (shared top-10 results), not by text similarity.
Designs hub-and-spoke content clusters with internal link matrices and generates
interactive cluster map visualizations.
**Scripts:** Located at the plugin root `scripts/` directory.
---
## Quick Reference
| Command | What it does |View the complete source on GitHubseo-competitor-pages
When your agent uses it
Generate SEO-optimized competitor comparison and alternatives pages. Covers "X vs Y" layouts, "alternatives to X" pages, feature matrices, schema markup, and conversion optimization. Use when user says "comparison page", "vs page", "alternatives page", "competitor comparison", "X vs Y", "versus", "compare competitors", or "alternative to".
What it loads into context
Frontmatter
140 tokensAlways available to the agent
SKILL.md
1,886 tokensWhen the skill is activated
Reference documents
0 tokensLoaded on request
Token counts are estimates. Scripts run separately; they are not counted as reference context.
The playbook
- Page Types
- Comparison Table Generation
- Schema Markup Recommendations
- Keyword Targeting
- Conversion-Optimized Layouts
- Fairness Guidelines
- Internal Linking
- Output
- Error Handling
- Security
Files
LICENSE.txtdoc143 bytesSKILL.mdcore8,065 bytesSKILL.mdcore8,065 bytesSKILL.mdcore8,065 bytes
Read SKILL.md
# Competitor Comparison & Alternatives Pages
Create high-converting comparison and alternatives pages that target
competitive intent keywords with accurate, structured content.
## Page Types
### 1. "X vs Y" Comparison Pages
- Direct head-to-head comparison between two products/services
- Balanced feature-by-feature analysis
- Clear verdict or recommendation with justification
- Target keyword: `[Product A] vs [Product B]`
### 2. "Alternatives to X" PagesView the complete source on GitHubseo-content
When your agent uses it
Evaluate page content for usefulness, E-E-A-T, readability, thinness, and AI citation readiness, plus last-mile draft cleanup (AI-typical phrasing and invisible Unicode watermark characters). Use for content-only analysis, not full-page technical checks.
What it loads into context
Frontmatter
107 tokensAlways available to the agent
SKILL.md
2,936 tokensWhen the skill is activated
Reference documents
3,654 tokensLoaded on request
Token counts are estimates. Scripts run separately; they are not counted as reference context.
The playbook
- Google's "Who / How / Why" Test (canonical heuristic)
- E-E-A-T Framework (updated Sept 2025 QRG)
- Content Metrics
- AI Content Assessment (QRG: generative-AI guidance added January 2025; current version September 11, 2025)
- Draft Cleanup: AI Phrasing & Invisible Watermarks
- AI Citation Readiness (GEO signals)
- Content Freshness
- Google Update Correlation (content and spam updates)
- Output
- DataForSEO Integration (Optional)
- Error Handling
- FLOW Framework Integration
- Security
Scripts executed separately
../../scripts/claude-seo../../scripts/claude-seo../../scripts/claude-seo
Files
../../scripts/claude-seoruns2,730 bytes../../scripts/claude-seoruns2,730 bytes../../scripts/claude-seoruns2,730 bytesLICENSE.txtdoc143 bytesSKILL.mdcore13,204 bytesSKILL.mdcore13,204 bytesSKILL.mdcore13,204 bytesSKILL.mdcore13,204 bytes../seo-geo/references/google-ai-optimization-guide.mddoc7,224 bytes../seo/references/eeat-framework.mddoc7,400 bytes../seo/references/eeat-scoring-guide.mddoc1,519 bytes
Read SKILL.md
# Content Quality & E-E-A-T Analysis
## Google's "Who / How / Why" Test (canonical heuristic)
Before scoring E-E-A-T sub-factors, every page audit should pass Google's
own three-question heuristic from the helpful-content guide:
| Question | What to look for |
|---|---|
| **Who** created it? | Visible byline, author bio page, professional credentials. Required where readers expect it; non-negotiable for YMYL. |
| **How** was it created? | Process disclosure where readers would reasonably ask, especially for AI-assisted content. Original research / first-hand evidence / lived experience. |
| **Why** does it exist? | "To help people" rather than "to attract search clicks." Watch for niche entry without expertise, content churn for freshness signals, content written to a word-count target. |
Primary source:View the complete source on GitHubseo-content-brief
When your agent uses it
Generate competitive SEO content briefs with per-section word counts, competitor scoring, keyword placement guidance, and page-type templates. Supports both new page briefs and improve-existing-page briefs. Use when user says "content brief", "write a brief", "content outline", "blog brief", "service page brief", "brief for", "writing brief", "content plan", or "outline for".
What it loads into context
Frontmatter
153 tokensAlways available to the agent
SKILL.md
2,470 tokensWhen the skill is activated
Reference documents
3,162 tokensLoaded on request
Token counts are estimates. Scripts run separately; they are not counted as reference context.
The playbook
- Process
- Critical Rules
- Keyword Placement
- Meta Tag Rules
- Information Gain (non-negotiable)
- E-E-A-T Requirements
- Internal Linking
- Output Format
- Outline-Only Mode
- DataForSEO Integration (Optional)
- Ahrefs Integration (Optional)
- Error Handling
- Security
Files
LICENSE.txtdoc147 bytesSKILL.mdcore10,956 bytesreferences/excluded-domains.mddoc2,881 bytesreferences/keyword-density.mddoc3,448 bytesreferences/page-type-templates.mddoc7,174 bytes
Read SKILL.md
# SEO Content Brief Generator
Generate research-backed content briefs that help writers produce pages capable of outranking current top results. Briefs include competitor analysis with gap scoring, per-section word count breakdowns, keyword placement rules, and page-type-specific templates.
## Process
### 1. Determine Brief Mode
**Improve mode** (existing page URL provided):
- Fetch the existing page content and structure
- Identify what is already strong (keep it)
- Identify missing, thin, or outdated sections
- Distinguish "keep/strengthen" vs "add new" sections in the outline
- Do not recommend a full rewrite when targeted improvements will winView the complete source on GitHubseo-dataforseo
When your agent uses it
Live SEO data via DataForSEO MCP server: SERP analysis, keyword research (volume, difficulty, intent, trends), backlink profiles, on-page analysis, competitor and content analysis, business listings, AI visibility (LLM mention tracking), and domain analytics. Requires DataForSEO extension installed. Use when user says "dataforseo", "live SERP", "keyword volume", "backlink data", "AI visibility check", or "real search data".
What it loads into context
Frontmatter
167 tokensAlways available to the agent
SKILL.md
4,208 tokensWhen the skill is activated
Reference documents
1,684 tokensLoaded on request
Token counts are estimates. Scripts run separately; they are not counted as reference context.
The playbook
- Prerequisites
- API Credit Awareness
- Cost Guardrails
- Quick Reference
- SERP Analysis
- Keyword Research
- Domain & Competitor Analysis
- Technical / On-Page
- Content & Business Data
- AI Visibility / GEO
- Available Utility Tools
- Cross-Skill Integration
- Error Handling
- Output Formatting
- Security
Scripts executed separately
../../scripts/claude-seo
Files
../../scripts/claude-seoruns2,730 bytesLICENSE.txtdoc143 bytesSKILL.mdcore18,034 bytesSKILL.mdcore18,034 bytesSKILL.mdcore18,034 bytesSKILL.mdcore18,034 bytesreferences/cost-tiers.mddoc3,450 bytesreferences/tool-catalog.mddoc3,003 bytes
Read SKILL.md
# DataForSEO: Live SEO Data (Extension)
Live search data via the DataForSEO MCP server. Provides real-time SERP results
(organic + images), keyword metrics, backlink profiles, on-page analysis, content
analysis, business listings, AI visibility checking, and LLM mention tracking
across 9 API modules with 79+ MCP tools.
## Prerequisites
This skill requires the DataForSEO extension to be installed:
```bash
./extensions/dataforseo/install.sh
```
View the complete source on GitHubseo-drift
When your agent uses it
SEO drift monitoring: capture baselines of SEO-critical elements, detect changes, and track regressions over time. Git for SEO: baseline, diff, and track changes to your on-page SEO. Use when user says "SEO drift", "baseline", "track changes", "did anything break", "SEO regression", "compare SEO", "before and after", "monitor SEO changes", or "deployment check".
What it loads into context
Frontmatter
157 tokensAlways available to the agent
SKILL.md
1,939 tokensWhen the skill is activated
Reference documents
1,466 tokensLoaded on request
Token counts are estimates. Scripts run separately; they are not counted as reference context.
The playbook
- Commands
- What It Captures
- How Comparison Works
- Storage
- Command: `baseline`
- Command: `compare`
- Command: `history`
- Cross-Skill Integration
- Error Handling
- Security
- Typical Workflows
Scripts executed separately
../../scripts/claude-seo../../scripts/claude-seo../../scripts/claude-seo
Files
../../scripts/claude-seoruns2,730 bytes../../scripts/claude-seoruns2,730 bytes../../scripts/claude-seoruns2,730 bytesSKILL.mdcore7,753 bytesreferences/comparison-rules.mddoc5,723 bytes
Read SKILL.md
# SEO Drift Monitor (April 2026)
Git for your SEO. Capture baselines, detect regressions, track changes over time.
---
## Commands
| Command | Purpose |
|---------|---------|
| `/seo drift baseline <url>` | Capture current SEO state as a "known good" snapshot |
| `/seo drift compare <url>` | Compare current page state to stored baseline |
| `/seo drift history <url>` | Show change history and past comparisons |
View the complete source on GitHubseo-ecommerce
When your agent uses it
Analyze ecommerce SEO across product pages, product schema, Shopping visibility, marketplace signals, and keyword gaps. Use only for stores, catalogs, or product listings.
What it loads into context
Frontmatter
116 tokensAlways available to the agent
SKILL.md
3,640 tokensWhen the skill is activated
Reference documents
3,077 tokensLoaded on request
Token counts are estimates. Scripts run separately; they are not counted as reference context.
The playbook
- Commands
- 1. Product Page Analysis (No DataForSEO Needed)
- 2. Google Shopping Intelligence (DataForSEO Merchant API)
- 3. Amazon Marketplace (DataForSEO)
- 4. Marketplace Keyword Gaps
- 5. Product Schema Enhancement
- Cross-Skill Integration
- UCP: Universal Commerce Protocol (live)
- Error Handling
- Output Template
- Security
Scripts executed separately
../../scripts/claude-seo../../scripts/claude-seo../../scripts/claude-seo
Files
../../scripts/claude-seoruns2,730 bytes../../scripts/claude-seoruns2,730 bytes../../scripts/claude-seoruns2,730 bytesSKILL.mdcore15,285 bytesSKILL.mdcore15,285 bytesSKILL.mdcore15,285 bytesSKILL.mdcore15,285 bytesreferences/marketplace-endpoints.mddoc3,862 bytesreferences/ucp-universal-commerce-protocol.mddoc8,272 bytes
Read SKILL.md
# E-commerce SEO Analysis
Comprehensive product page optimization, marketplace intelligence, and
competitive pricing analysis. Works standalone (on-page + schema) and with
DataForSEO Merchant API for live Google Shopping and Amazon data.
## Commands
| Command | Purpose | DataForSEO? |
|---------|---------|-------------|
| `/seo ecommerce <url>` | Full e-commerce SEO analysis of a product page or store | Optional |
| `/seo ecommerce products <keyword>` | Google Shopping competitive analysis | Required |
| `/seo ecommerce gaps <domain>` | Keyword gap: organic vs Shopping visibility | Required |
| `/seo ecommerce schema <url>` | Product schema validation and enhancement | No |View the complete source on GitHubseo-flow
When your agent uses it
FLOW framework integration: evidence-led SEO using the Find → Leverage → Optimize → Win loop. Surfaces stage-specific AI prompts from the FLOW knowledge base (41 prompts, CC BY 4.0). Use when user says "FLOW", "FLOW framework", "seo flow", "evidence-led SEO", "find leverage optimize win", or wants stage-specific SEO prompts.
What it loads into context
Frontmatter
136 tokensAlways available to the agent
SKILL.md
1,505 tokensWhen the skill is activated
Reference documents
23,789 tokensLoaded on request
Token counts are estimates. Scripts run separately; they are not counted as reference context.
The playbook
- Commands
- Orchestration Logic
- Context Matching (Optimize stage)
- Reference Files
- Attribution
- Error Handling
- Security
Scripts executed separately
../../scripts/claude-seo
Files
../../scripts/claude-seoruns2,730 bytesSKILL.mdcore6,009 bytesreferences/bibliography.mddoc8,051 bytesreferences/flow-framework.mddoc4,896 bytesreferences/flow-prompts.lockasset6,165 bytesreferences/prompts/README.mddoc4,536 bytesreferences/prompts/find/content-planning-for-topical-relevance-prompt.mddoc2,172 bytesreferences/prompts/find/content-prioritization-prompt.mddoc2,124 bytesreferences/prompts/find/keyword-research-prompt.mddoc2,106 bytesreferences/prompts/find/keyword-variations-for-topical-relevance-prompt.mddoc2,178 bytesreferences/prompts/find/prompt-audience-avatar.mddoc2,106 bytesreferences/prompts/leverage/backlink-competition-prompt.mddoc2,130 bytesreferences/prompts/local/ai-homepage-rewrite-prompt.mddoc2,118 bytesreferences/prompts/local/claude-deep-research-prompt.mddoc2,127 bytesreferences/prompts/local/gbp-categories-prompt.mddoc2,103 bytesreferences/prompts/local/gbp-description-claude-prompt-1.mddoc2,133 bytesreferences/prompts/local/gbp-description-claude-prompt-2.mddoc2,133 bytesreferences/prompts/local/gbp-description-claude-prompt-3.mddoc2,133 bytesreferences/prompts/local/gbp-services-prompt.mddoc2,097 bytesreferences/prompts/local/prompt-generating-a-meta-description.mddoc2,151 bytesreferences/prompts/local/prompt-generating-a-title-tag.mddoc2,130 bytesreferences/prompts/local/prompt-rewriting-existing-homepage.mddoc2,145 bytesreferences/prompts/local/prompt-rewriting-existing-service-page.mddoc2,160 bytesreferences/prompts/optimize/ai-detector-test-follow-up-prompt.mddoc2,148 bytesreferences/prompts/optimize/ai-supporting-pages-rewrite-prompt.mddoc2,151 bytesreferences/prompts/optimize/basic-prompt.mddoc2,085 bytesreferences/prompts/optimize/blog-post-outline-prompt.mddoc2,121 bytesreferences/prompts/optimize/blog-post-writing-prompt.mddoc2,121 bytesreferences/prompts/optimize/claude-prompt-1.mddoc2,094 bytesreferences/prompts/optimize/claude-prompt-2.mddoc2,094 bytesreferences/prompts/optimize/ctr-audit-prompt.mddoc2,097 bytesreferences/prompts/optimize/follow-up-prompt-1.mddoc2,103 bytesreferences/prompts/optimize/follow-up-prompt-2.mddoc2,103 bytesreferences/prompts/optimize/follow-up-prompt.mddoc2,097 bytesreferences/prompts/optimize/paa-question-rewording-prompt.mddoc2,136 bytesreferences/prompts/optimize/prompt-core-30-content-audit.mddoc2,136 bytesreferences/prompts/optimize/property-content-with-authority-audit-prompt.mddoc2,181 bytesreferences/prompts/optimize/reddit-claude-prompt.mddoc2,109 bytesreferences/prompts/optimize/schema-prompt-1.mddoc2,094 bytesreferences/prompts/optimize/step-1-the-chatgpt-discovery-prompt.mddoc2,157 bytesreferences/prompts/optimize/step-2-the-follow-up-qualifying-prompt.mddoc2,166 bytesreferences/prompts/optimize/technical-audit-prompt.mddoc2,115 bytesreferences/prompts/optimize/visibility-follow-up-prompt.mddoc2,130 bytesreferences/prompts/optimize/visiblity-prompt.mddoc2,097 bytesreferences/prompts/win/bofu-page-brief-generator.mddoc2,240 bytesreferences/prompts/win/conversion-audit-prompt.mddoc2,204 bytesreferences/prompts/win/dual-surface-content-scorecard.mddoc2,133 bytes
Read SKILL.md
# FLOW Framework: Find · Leverage · Optimize · Win
FLOW is an evidence-led SEO operating model built for the AI-search era. Claude SEO
integrates the FLOW prompt library (41 prompts across 5 stages) so every analysis can
be driven by structured, evidence-backed AI prompts rather than improvised queries.
> Framework and prompts © Daniel Agrici, CC BY 4.0: github.com/AgriciDaniel/flow
**Runtime context:** Load `references/flow-framework.md` on every `/seo flow` activation.
Load prompt files on demand, only for the stage the user requests.
---
## CommandsView the complete source on GitHubseo-geo
When your agent uses it
Audit and improve content for AI Overviews and answer engines, including citability, entity clarity, crawler access, brand signals, and passage structure. Use when the user asks about AI Overviews, AI Mode, ChatGPT, Perplexity or Gemini citations, GEO, or AI search visibility.
What it loads into context
Frontmatter
115 tokensAlways available to the agent
SKILL.md
5,339 tokensWhen the skill is activated
Reference documents
2,522 tokensLoaded on request
Token counts are estimates. Scripts run separately; they are not counted as reference context.
The playbook
- Primary Source: Google's AI Optimization Guide
- Key Statistics
- Critical Insight: Brand Mentions > Backlinks
- GEO Analysis Criteria (Updated)
- AI Crawler Detection
- llms.txt Standard
- RSL 1.0 (Really Simple Licensing)
- Platform-Specific Optimization
- Google Update Correlation
- Output
- Quick Wins
- Medium Effort
- High Impact
- DataForSEO Integration (Optional)
- Error Handling
- FLOW Framework Integration
- Security
Scripts executed separately
../../scripts/claude-seo
Files
../../scripts/claude-seoruns2,730 bytesLICENSE.txtdoc143 bytesSKILL.mdcore22,459 bytesSKILL.mdcore22,459 bytesSKILL.mdcore22,459 bytesSKILL.mdcore22,459 bytesSKILL.mdcore22,459 bytesSKILL.mdcore22,459 bytesSKILL.mdcore22,459 bytesreferences/google-ai-optimization-guide.mddoc7,224 bytesreferences/llmstxt-evidence.mddoc3,308 bytes
Read SKILL.md
# AI Search / GEO Optimization (May 2026)
## Primary Source: Google's AI Optimization Guide
Google's official position, published under Search Central docs:
> "From Google Search's perspective, optimizing for generative AI search is
> optimizing for the search experience, and thus **still SEO**."
Read `references/google-ai-optimization-guide.md` for the full synthesis,
myth-busting list (`llms.txt`, chunking, AI-rephrasing, mention-farming,
all rejected by Google as ineffective), and the Who/How/Why test for
content quality.
View the complete source on GitHubseo-google
When your agent uses it
Google SEO APIs: Search Console (Search Analytics, URL Inspection, Sitemaps), PageSpeed Insights v5, CrUX field data with 25-week history, Indexing API v3, and GA4 organic traffic. Provides real Google field data for Core Web Vitals, indexation status, search performance, and organic traffic trends. Use when user says "search console", "GSC", "PageSpeed", "CrUX", "field data", "indexing API", "GA4 organic", "URL inspection", or "real CWV data".
What it loads into context
Frontmatter
174 tokensAlways available to the agent
SKILL.md
4,301 tokensWhen the skill is activated
Reference documents
12,491 tokensLoaded on request
Token counts are estimates. Scripts run separately; they are not counted as reference context.
The playbook
- Prerequisites
- Quick Reference
- PageSpeed + CrUX
- Search Console
- Indexing API
- GA4 Traffic
- YouTube (Video SEO)
- NLP Content Analysis
- Keyword Research (Google Ads)
- Supplementary
- Reports
- Rate Limits
- Cross-Skill Integration
- Output Format
- Technical Notes
- Error Handling
- Security
Scripts executed separately
../../scripts/claude-seo../../scripts/claude-seo../../scripts/claude-seo
Files
../../scripts/claude-seoruns2,730 bytes../../scripts/claude-seoruns2,730 bytes../../scripts/claude-seoruns2,730 bytesLICENSE.txtdoc143 bytesSKILL.mdcore17,048 bytesassets/templates/cwv-audit-report.mddoc1,587 bytesassets/templates/gsc-performance-report.mddoc1,441 bytesassets/templates/indexation-status-report.mddoc1,126 bytesreferences/auth-setup.mddoc5,270 bytesreferences/crux-history-api.mddoc2,028 bytesreferences/dma-consent-mode-v2.mddoc3,119 bytesreferences/ga4-data-api.mddoc5,364 bytesreferences/indexing-api.mddoc3,474 bytesreferences/keyword-planner-api.mddoc2,398 bytesreferences/nlp-api.mddoc2,333 bytesreferences/pagespeed-crux-api.mddoc5,208 bytesreferences/rate-limits-quotas.mddoc3,379 bytesreferences/search-console-api.mddoc5,657 bytesreferences/supplementary-apis.mddoc2,812 bytesreferences/youtube-api.mddoc1,595 bytes
Read SKILL.md
# Google SEO APIs
Direct access to Google's own SEO data. Bridges the gap between crawl-based
analysis (existing claude-seo skills) and Google's real-time field data: actual
Chrome user metrics, real indexation status, search performance, and organic traffic.
All APIs are free. Setup requires a Google Cloud project with API key and/or
service account -- run `/seo google setup` for step-by-step instructions.
## Prerequisites
Before executing any command, check credentials:
```bash
"${CLAUDE_PLUGIN_ROOT}/scripts/claude-seo" run google_auth.py --check --jsonView the complete source on GitHubseo-hreflang
When your agent uses it
Hreflang and international SEO audit, validation, and generation. Detects common mistakes, validates language/region codes, and generates correct hreflang implementations. Use when user says "hreflang", "i18n SEO", "international SEO", "multi-language", "multi-region", or "language tags".
What it loads into context
Frontmatter
123 tokensAlways available to the agent
SKILL.md
3,439 tokensWhen the skill is activated
Reference documents
4,282 tokensLoaded on request
Token counts are estimates. Scripts run separately; they are not counted as reference context.
The playbook
- Validation Checks
- Common Mistakes
- Implementation Methods
- Hreflang Generation
- Hreflang Sitemap Generation
- Output
- Cultural Adaptation Assessment
- Content Parity Audit
- Locale Format Validation
- Reference Files
- Error Handling
- Security
Files
LICENSE.txtdoc143 bytesSKILL.mdcore14,182 bytesreferences/content-parity.mddoc4,126 bytesreferences/cultural-profiles.mddoc4,942 bytesreferences/locale-formats.mddoc3,521 bytesreferences/machine-translation-qa.mddoc3,516 bytes
Read SKILL.md
# Hreflang & International SEO
Validate existing hreflang implementations or generate correct hreflang tags
for multi-language and multi-region sites. Supports HTML, HTTP header, and
XML sitemap implementations.
## Validation Checks
### 1. Self-Referencing Tags
- Every page must include an hreflang tag pointing to itself
- The self-referencing URL must exactly match the page's canonical URL
- Missing self-referencing tags cause Google to ignore the entire hreflang set
### 2. Return TagsView the complete source on GitHubseo-image-gen
When your agent uses it
AI image generation for SEO assets: OG/social preview images, blog hero images, schema images, product photography, infographics. Powered by Gemini via nanobanana-mcp. Requires banana extension installed. Use when the user wants an SEO asset and says "OG image", "social preview", "hero image", "blog image", "product photo", "infographic", "seo image", "image-gen", "favicon", "schema image", or "pinterest pin". Not for general artwork, banners, or thumbnails unrelated to SEO.
What it loads into context
Frontmatter
184 tokensAlways available to the agent
SKILL.md
2,087 tokensWhen the skill is activated
Reference documents
11,715 tokensLoaded on request
Token counts are estimates. Scripts run separately; they are not counted as reference context.
The playbook
- Architecture Note
- Prerequisites
- Quick Reference
- SEO Image Use Cases
- Generation Pipeline
- Post-Generation SEO Checklist
- Cost Awareness
- Model Routing
- Error Handling
- Cross-Skill Integration
- Reference Documentation
- Response Format
- Security
Files
LICENSE.txtdoc143 bytesSKILL.mdcore8,799 bytesSKILL.mdcore8,799 bytesSKILL.mdcore8,799 bytesSKILL.mdcore8,799 bytesreferences/cost-tracking.mddoc1,185 bytesreferences/gemini-models.mddoc8,126 bytesreferences/mcp-tools.mddoc4,094 bytesreferences/post-processing.mddoc5,201 bytesreferences/presets.mddoc2,250 bytesreferences/prompt-adaptation-safety.mddoc4,534 bytesreferences/prompt-engineering.mddoc9,543 bytesreferences/prompt-templates.mddoc8,005 bytesreferences/seo-image-presets.mddoc4,163 bytes
Read SKILL.md
# SEO Image Gen: AI Image Generation for SEO Assets (Extension)
Generate production-ready images for SEO use cases using Gemini's image generation
via the banana Creative Director pipeline. Maps SEO needs to optimized domain modes,
aspect ratios, and resolution defaults.
## Architecture Note
This extension is built on [Claude Banana](https://github.com/AgriciDaniel/banana-claude),
the standalone AI image generation skill for Claude Code.
This skill has two components with distinct roles:
- **SKILL.md** (this file): Handles interactive `/seo image-gen` commands for generating images
- **Agent** (`agents/seo-image-gen.md`): Audit-only analyst spawned during `/seo audit` to assess existing OG/social images and produce a generation plan (never auto-generates)View the complete source on GitHubseo-images
When your agent uses it
Image optimization analysis for SEO and performance. Checks alt text, file sizes, formats, responsive images, lazy loading, CLS prevention, image SERP rankings (via DataForSEO), and image file optimization (WebP/AVIF conversion, IPTC/XMP metadata injection). Use when user says "image optimization", "alt text", "image SEO", "image size", "image audit", "optimize images", "image metadata", "image SERP", "convert to webp", or "image file optimize".
What it loads into context
Frontmatter
162 tokensAlways available to the agent
SKILL.md
4,363 tokensWhen the skill is activated
Reference documents
0 tokensLoaded on request
Token counts are estimates. Scripts run separately; they are not counted as reference context.
The playbook
- Checks
- Output
- Image SERP Analysis
- Image File Optimization
- Error Handling
- Security
Scripts executed separately
../../scripts/claude-seo
Files
../../scripts/claude-seoruns2,730 bytesLICENSE.txtdoc143 bytesSKILL.mdcore17,328 bytesSKILL.mdcore17,328 bytesSKILL.mdcore17,328 bytesSKILL.mdcore17,328 bytesSKILL.mdcore17,328 bytesSKILL.mdcore17,328 bytesSKILL.mdcore17,328 bytesSKILL.mdcore17,328 bytesSKILL.mdcore17,328 bytesSKILL.mdcore17,328 bytes
Read SKILL.md
# Image Optimization Analysis
## Checks
### Alt Text
- Present on all `<img>` elements (except decorative: `role="presentation"`)
- Descriptive: describes the image content, not "image.jpg" or "photo"
- Includes relevant keywords where natural, not keyword-stuffed
- Length: 10-125 characters
**Good examples:**
- "Professional plumber repairing kitchen sink faucet"
- "Red 2024 Toyota Camry sedan front view"
- "Team meeting in modern office conference room"View the complete source on GitHubseo-local
When your agent uses it
Audit local SEO, including Google Business Profile, NAP consistency, citations, reviews, local schema, location pages, and multi-location structure. Use when the user asks about local SEO, a local business, the map pack, or a GBP profile; use seo-maps for geo-grid rank tracking.
What it loads into context
Frontmatter
115 tokensAlways available to the agent
SKILL.md
4,196 tokensWhen the skill is activated
Reference documents
5,159 tokensLoaded on request
Token counts are estimates. Scripts run separately; they are not counted as reference context.
The playbook
- Key Statistics
- Business Type Detection
- Industry Vertical Detection
- Analysis Dimensions
- AI Search Impact on Local
- Reference Files
- Output
- Quick Wins
- Medium Effort
- High Impact
- DataForSEO Integration (Optional)
- Error Handling
- FLOW Framework Integration
- Security
Files
LICENSE.txtdoc143 bytesSKILL.mdcore18,354 bytesSKILL.mdcore18,354 bytes../seo/references/local-schema-multilocation.mddoc1,466 bytes../seo/references/local-schema-types.mddoc8,214 bytes../seo/references/local-search-behavior.mddoc2,874 bytes../seo/references/local-seo-signals.mddoc7,935 bytes
Read SKILL.md
# Local SEO Analysis (March 2026)
## Key Statistics
| Metric | Value | Source |
|--------|-------|--------|
| GBP signals share of local pack weight | 32% | Whitespark 2026 |
| Proximity share of ranking variance | 55.2% | Search Atlas ML study |
| Review signals share (up from 16%) | ~20% | Whitespark 2026 |
| Google searches seeking local info | 46% | Industry data |
| Mobile "near me" searches leading to visit in 24h | 76% | Google confirmed |
| ChatGPT/AI usage for local recommendations | 45% (up from 6%) | BrightLocal LCRS 2026 |
| ChatGPT local conversion rate | 15.9% | Seer Interactive |
| Google organic local conversion rate | 1.76% | Seer Interactive |View the complete source on GitHubseo-maps
When your agent uses it
Maps intelligence for local SEO: geo-grid rank tracking, GBP profile auditing via API, review intelligence across Google/Tripadvisor/Trustpilot, cross-platform NAP verification, competitor radius mapping, and LocalBusiness schema generation. Three tiers: free (Overpass + Geoapify), DataForSEO, and DataForSEO + Google. Use when user says "maps", "geo-grid", "rank tracking", "GBP audit", "review velocity", "competitor radius", or "SoLV".
What it loads into context
Frontmatter
188 tokensAlways available to the agent
SKILL.md
3,042 tokensWhen the skill is activated
Reference documents
10,809 tokensLoaded on request
Token counts are estimates. Scripts run separately; they are not counted as reference context.
The playbook
- Quick Reference
- Three-Tier Capability Detection
- Geo-Grid Rank Tracking (Tier 1+)
- GBP Profile Audit (Tier 1 preferred, Tier 0 manual)
- Review Intelligence (Tier 1+)
- Competitor Radius Mapping (Tier 0+)
- Cross-Platform NAP Verification (Tier 0+)
- Schema Generation (Tier 0+)
- Reference Files
- Output
- Cross-Skill Delegation
- Error Handling
- Security
Files
LICENSE.txtdoc143 bytesSKILL.mdcore12,767 bytesSKILL.mdcore12,767 bytes../seo/references/local-schema-multilocation.mddoc1,466 bytes../seo/references/local-schema-types.mddoc8,214 bytes../seo/references/local-seo-signals.mddoc7,935 bytes../seo/references/maps-api-endpoints.mddoc6,241 bytes../seo/references/maps-free-apis.mddoc6,191 bytes../seo/references/maps-gbp-checklist.mddoc6,107 bytes../seo/references/maps-geo-grid.mddoc4,375 bytes
Read SKILL.md
# Maps Intelligence (March 2026)
Maps platform analysis for local businesses. Works with external APIs to assess
how a business appears on Google Maps, Bing Places, Apple Maps, and OpenStreetMap.
**Boundary with seo-local:** This skill analyzes the business on maps PLATFORMS
(via APIs). seo-local analyzes local SEO signals on the WEBSITE (via HTML fetch).
Do not duplicate seo-local on-page analysis. Recommend `/seo local <url>` for
website-level checks.
---
## Quick Reference
View the complete source on GitHubseo-page
When your agent uses it
Analyze one supplied URL across on-page, content, technical metadata, schema, images, and performance. Use only for a single-page review.
What it loads into context
Frontmatter
79 tokensAlways available to the agent
SKILL.md
1,132 tokensWhen the skill is activated
Reference documents
0 tokensLoaded on request
Token counts are estimates. Scripts run separately; they are not counted as reference context.
The playbook
- What to Analyze
- Output
- DataForSEO Integration (Optional)
- Error Handling
- Security
Scripts executed separately
../../scripts/claude-seo
Files
../../scripts/claude-seoruns2,730 bytesLICENSE.txtdoc143 bytesSKILL.mdcore4,916 bytes
Read SKILL.md
# Single Page Analysis
## What to Analyze
### On-Page SEO
- Title tag: 50-60 characters, includes primary keyword, unique
- Meta description: 150-160 characters, compelling, includes keyword
- Meta description is not a restatement of the title: run
`"${CLAUDE_PLUGIN_ROOT}/scripts/claude-seo" run metadata_template.py --title "<title>" --description "<desc>" --json`
(heuristic, deterministic string comparison). A description that opens by
repeating its own title and closes on a stock CTA ("Try it free now.",
"Start free!") is templated metadata, the shape bulk generation jobs produce
site-wide, and duplicated or templated metadata is a documented
content-quality problem regardless of how original the body copy isView the complete source on GitHubseo-plan
When your agent uses it
Strategic SEO planning for new or existing websites. Industry-specific templates, competitive analysis, content strategy, and implementation roadmap. Use when user says "SEO plan", "SEO strategy", "SEO planning", "content strategy", "keyword strategy", "content calendar", "site architecture", or "SEO roadmap".
What it loads into context
Frontmatter
117 tokensAlways available to the agent
SKILL.md
1,067 tokensWhen the skill is activated
Reference documents
6,845 tokensLoaded on request
Token counts are estimates. Scripts run separately; they are not counted as reference context.
The playbook
- Process
- Industry Templates
- Output
- DataForSEO Integration (Optional)
- Error Handling
- Security
Files
LICENSE.txtdoc143 bytesSKILL.mdcore4,770 bytesassets/agency.mddoc4,522 bytesassets/ecommerce.mddoc4,940 bytesassets/generic.mddoc4,280 bytesassets/local-service.mddoc5,567 bytesassets/publisher.mddoc4,773 bytesassets/saas.mddoc4,550 bytes
Read SKILL.md
# Strategic SEO Planning
## Process
### 1. Discovery
- Business type, target audience, competitors, goals
- Current site assessment (if exists)
- Budget and timeline constraints
- Key performance indicators (KPIs)
### 2. Competitive Analysis
- Identify top 5 competitors
- Analyze their content strategy, schema usage, technical setup
- Identify keyword gaps and content opportunitiesView the complete source on GitHubseo-programmatic
When your agent uses it
Programmatic SEO planning and analysis for pages generated at scale from data sources. Covers template engines, URL patterns, internal linking automation, thin content safeguards, and index bloat prevention. Use when user says "programmatic SEO", "pages at scale", "dynamic pages", "template pages", "generated pages", or "data-driven SEO".
What it loads into context
Frontmatter
127 tokensAlways available to the agent
SKILL.md
2,194 tokensWhen the skill is activated
Reference documents
0 tokensLoaded on request
Token counts are estimates. Scripts run separately; they are not counted as reference context.
The playbook
- Data Source Assessment
- Template Engine Planning
- URL Pattern Strategy
- Internal Linking Automation
- Thin Content Safeguards
- Canonical Strategy
- Sitemap Integration
- Index Bloat Prevention
- Output
- Error Handling
- Security
Scripts executed separately
../../scripts/claude-seo
Files
../../scripts/claude-seoruns2,730 bytesLICENSE.txtdoc143 bytesSKILL.mdcore10,111 bytesSKILL.mdcore10,111 bytesSKILL.mdcore10,111 bytes
Read SKILL.md
# Programmatic SEO Analysis & Planning
Build and audit SEO pages generated at scale from structured data sources.
Enforces quality gates to prevent thin content penalties and index bloat.
## Data Source Assessment
Evaluate the data powering programmatic pages:
- **CSV/JSON files**: Row count, column uniqueness, missing values
- **API endpoints**: Response structure, data freshness, rate limits
- **Database queries**: Record count, field completeness, update frequency
- Data quality checks:
- Each record must have enough unique attributes to generate distinct content
- Flag duplicate or near-duplicate records (>80% field overlap)View the complete source on GitHubseo-schema
When your agent uses it
Detect, validate, or generate Schema.org JSON-LD for a supplied page or entity. Use only when structured data or rich-result markup is requested.
What it loads into context
Frontmatter
82 tokensAlways available to the agent
SKILL.md
1,784 tokensWhen the skill is activated
Reference documents
3,489 tokensLoaded on request
Token counts are estimates. Scripts run separately; they are not counted as reference context.
The playbook
- Detection
- Validation
- Schema Type Status (checked October 2026)
- Generation
- Common Schema Templates
- Output
- Error Handling
- Security
Scripts executed separately
../../scripts/claude-seo
Files
../../scripts/claude-seoruns2,730 bytesLICENSE.txtdoc143 bytesSKILL.mdcore7,436 bytesreferences/deprecated-types-2024-2026.mddoc5,109 bytes../seo/references/schema-types.mddoc9,459 bytes
Read SKILL.md
# Schema Markup Analysis & Generation
## Detection
1. Extract JSON-LD with `"${CLAUDE_PLUGIN_ROOT}/scripts/claude-seo" run parse_html.py --url <url> --json`
(or scan `<script type="application/ld+json">` in the page source). Flag any
block without `@context` or `@type`: Google cannot attach it to an entity (a
rating in such a block does not reach the Product).
2. Check for Microdata (`itemscope`, `itemprop`)
3. Check for RDFa (`typeof`, `property`)
4. Always recommend JSON-LD as primary format (Google's stated preference)
## Validation
View the complete source on GitHubseo-sitemap
When your agent uses it
Analyze existing XML sitemaps or generate new ones with industry templates. Validates format, URLs, and structure. Use when user says "sitemap", "generate sitemap", "sitemap issues", or "XML sitemap".
What it loads into context
Frontmatter
100 tokensAlways available to the agent
SKILL.md
1,636 tokensWhen the skill is activated
Reference documents
0 tokensLoaded on request
Token counts are estimates. Scripts run separately; they are not counted as reference context.
The playbook
- Mode 1: Analyze Existing Sitemap
- Mode 2: Generate New Sitemap
- Sitemap Format
- Error Handling
- Output
- Security
Scripts executed separately
../../scripts/claude-seo../../scripts/claude-seo../../scripts/claude-seo
Files
../../scripts/claude-seoruns2,730 bytes../../scripts/claude-seoruns2,730 bytes../../scripts/claude-seoruns2,730 bytesLICENSE.txtdoc143 bytesSKILL.mdcore6,461 bytes
Read SKILL.md
# Sitemap Analysis & Generation
## Mode 1: Analyze Existing Sitemap
Discover candidates before reporting a sitemap missing:
```bash
"${CLAUDE_PLUGIN_ROOT}/scripts/claude-seo" run sitemap_discovery.py <url> --json
```
The helper reads every bounded `Sitemap:` declaration in robots.txt, validates
cross-host targets through the shared SSRF-safe fetch layer, and still probes
common paths when a declared sitemap is stale or invalid. Use only entries in
`found`; preserve declared failures as findings instead of treating a robots.txtView the complete source on GitHubseo-sxo
When your agent uses it
Diagnose search-experience and intent mismatches using SERP page types, user stories, and persona scoring. Use when ranking problems appear intent- or layout-driven.
What it loads into context
Frontmatter
105 tokensAlways available to the agent
SKILL.md
2,482 tokensWhen the skill is activated
Reference documents
6,008 tokensLoaded on request
Token counts are estimates. Scripts run separately; they are not counted as reference context.
The playbook
- Core Insight
- Commands
- Execution Pipeline
- DataForSEO Integration
- SXO Score vs SEO Health Score
- Cross-Skill References
- Output Format
- Error Handling
- Quality Checklist
- Security
Scripts executed separately
../../scripts/claude-seo
Files
../../scripts/claude-seoruns2,730 bytesSKILL.mdcore10,532 bytesSKILL.mdcore10,532 bytesSKILL.mdcore10,532 bytesSKILL.mdcore10,532 bytesreferences/page-type-taxonomy.mddoc7,382 bytesreferences/persona-scoring.mddoc6,353 bytesreferences/user-story-framework.mddoc5,694 bytesreferences/wireframe-templates.mddoc6,490 bytes
Read SKILL.md
# Search Experience Optimization (SXO)
SXO bridges the gap between SEO (what Google rewards) and UX (what users need).
Traditional SEO audits check technical health. SXO asks: "Does this page deserve
to rank for this keyword based on what Google is actually rewarding in the SERP?"
## Core Insight
A page can score 95/100 on technical SEO and still fail to rank because it is the
**wrong page type** for the keyword. If Google shows 8 product pages and 2 comparison
pages for your keyword, your blog post will never break through -- no matter how
well-optimized it is.
## CommandsView the complete source on GitHubseo-technical
When your agent uses it
Audit technical SEO across crawlability, indexability, security, URLs, mobile, Core Web Vitals, rendering, structured data, and IndexNow. Use when the user asks for a technical SEO audit or about crawling, indexing, rendering, or site speed. Exclude content strategy and backlinks.
What it loads into context
Frontmatter
115 tokensAlways available to the agent
SKILL.md
4,534 tokensWhen the skill is activated
Reference documents
1,398 tokensLoaded on request
Token counts are estimates. Scripts run separately; they are not counted as reference context.
The playbook
- Categories
- Agent-Friendly Pages & Agentic Browsing
- Output
- DataForSEO Integration (Optional)
- Google API Integration (Optional)
- Auditing a Local or Private Host
- Error Handling
- Security
Scripts executed separately
../../scripts/claude-seo../../scripts/claude-seo../../scripts/claude-seo
Files
../../scripts/claude-seoruns2,730 bytes../../scripts/claude-seoruns2,730 bytes../../scripts/claude-seoruns2,730 bytesLICENSE.txtdoc143 bytesSKILL.mdcore19,065 bytesSKILL.mdcore19,065 bytesreferences/stack-cve-exposure.mddoc5,338 bytes
Read SKILL.md
# Technical SEO Audit
## Categories
### 1. Crawlability
- robots.txt: exists, valid, not blocking important resources
- XML sitemap: run `"${CLAUDE_PLUGIN_ROOT}/scripts/claude-seo" run sitemap_discovery.py <url> --json`; require a
valid entry in `found`, and report stale or unsafe robots.txt declarations
separately from working fallback locations
- Noindex tags: intentional vs accidental
- Crawl depth: important pages within 3 clicks of homepage
- JavaScript rendering: check if critical content requires JS execution (method in section 8)
- Crawl budget: for large sites (>10k pages), efficiency matters
- Googlebot **fetch limits**: Googlebot fetches the first **2MB of HTML** and first **64MB of a PDF** (uncompressed; 15MB is the broader crawler-infra default). Long-standing, not a 2026 change, but inline base64 images, oversized inline CSS/JS, or bloated nav can push critical content/JSON-LD past the cap and out of the index. Keep key content + structured data within the first 2MB.View the complete source on GitHubSkills included
- seo-ahrefs
- seo-image-gen
- seo-bing
- seo-dataforseo
- seo-firecrawl
- seo-matomo
- seo-profound
- seo-seranking
- seo-unlighthouse
- seo
- seo-agentic
- seo-audit
- seo-backlinks
- seo-cluster
- seo-competitor-pages
- seo-content
- seo-content-brief
- seo-dataforseo
- seo-drift
- seo-ecommerce
- seo-flow
- seo-geo
- seo-google
- seo-hreflang
- seo-image-gen
- seo-images
- seo-local
- seo-maps
- seo-page
- seo-plan
- seo-programmatic
- seo-schema
- seo-sitemap
- seo-sxo
- seo-technical
Repository facts
- License
- MIT
- Created
- Feb 7, 2026
- Last pushed
- Nov 1, 2026
- Forks
- 3,496
- Open issues
- 31
- Project activity
- Active
Rank over the last 12 weeks
Now #78 · best #78 · up 14 in 30 days
- #90 on Oct 25
- #81 from Oct 28 to Oct 29
- #82 from Oct 30 to Oct 31
- #80 on Nov 1
- #79 from Nov 2 to Nov 3
- #78 since Nov 4
33 earlier periods
- #102 on Aug 2
- #102 from Aug 7 to Aug 8
- #101 on Aug 9
- #102 from Aug 10 to Aug 12
- #103 from Aug 13 to Aug 15
- #102 from Aug 16 to Aug 17
- #100 from Aug 18 to Aug 20
- #101 on Aug 21
- #100 from Aug 22 to Aug 23
- #99 from Aug 24 to Aug 25
- #98 from Aug 26 to Aug 29
- #97 from Aug 30 to Aug 31
- #98 on Sep 1
- #96 on Sep 2
- #97 on Sep 3
- #96 on Sep 4
- #97 on Sep 5
- #96 on Sep 6
- #98 from Sep 7 to Sep 15
- #97 from Sep 16 to Sep 18
- #96 on Sep 19
- #97 from Sep 20 to Sep 21
- #96 from Sep 22 to Sep 23
- #95 from Sep 24 to Sep 26
- #94 from Sep 27 to Sep 29
- #93 from Sep 30 to Oct 3
- #92 from Oct 4 to Oct 5
- #91 on Oct 6
- #92 from Oct 7 to Oct 20
- #90 on Oct 21
- #89 on Oct 22
- #88 on Oct 23
- #89 on Oct 24
Before you install
Network or broad shellAutomated signals, not a guarantee
Checked Nov 2, 2026
Changed on Oct 27, 2026
No longer found: Access to secrets
Not fully analyzed: some files were too long, unreadable or missing. This never lowers the level.
Show 82 notes
extensions/ahrefs/skills/seo-ahrefs/SKILL.md:1Analysis incomplete: Referenced executable target unavailable; not analyzedextensions/ahrefs/skills/seo-ahrefs/SKILL.md:1Analysis incomplete: Referenced executable target unavailable; not analyzedextensions/ahrefs/skills/seo-ahrefs/SKILL.md:1Analysis incomplete: Referenced executable target unavailable; not analyzedextensions/ahrefs/skills/seo-ahrefs/SKILL.md:1Analysis incomplete: Referenced executable target unavailable; not analyzedextensions/banana/skills/seo-image-gen/SKILL.md:1Analysis incomplete: Referenced executable target unavailable; not analyzedextensions/banana/skills/seo-image-gen/SKILL.md:1Analysis incomplete: Referenced executable target unavailable; not analyzedscripts/claude-seo:1Analysis incomplete: Referenced executable target unavailable; not analyzedscripts/claude-seo:1Analysis incomplete: Referenced executable target unavailable; not analyzedextensions/bing-webmaster/skills/seo-bing/SKILL.md:1Analysis incomplete: Referenced executable target unavailable; not analyzedextensions/bing-webmaster/skills/seo-bing/SKILL.md:1Analysis incomplete: Referenced executable target unavailable; not analyzedextensions/dataforseo/skills/seo-dataforseo/SKILL.md:1Analysis incomplete: Referenced executable target unavailable; not analyzedextensions/dataforseo/skills/seo-dataforseo/SKILL.md:1Analysis incomplete: Referenced executable target unavailable; not analyzedextensions/dataforseo/skills/seo-dataforseo/SKILL.md:1Analysis incomplete: Referenced executable target unavailable; not analyzedextensions/firecrawl/skills/seo-firecrawl/SKILL.md:1Analysis incomplete: Referenced executable target unavailable; not analyzedextensions/matomo/skills/seo-matomo/SKILL.md:1Analysis incomplete: Referenced executable target unavailable; not analyzedextensions/matomo/skills/seo-matomo/SKILL.md:1Analysis incomplete: Referenced executable target unavailable; not analyzedextensions/matomo/skills/seo-matomo/SKILL.md:1Analysis incomplete: Referenced executable target unavailable; not analyzedextensions/seranking/skills/seo-seranking/SKILL.md:1Analysis incomplete: Referenced executable target unavailable; not analyzedextensions/unlighthouse/skills/seo-unlighthouse/SKILL.md:1Analysis incomplete: Referenced executable target unavailable; not analyzedskills/seo/SKILL.md:1Analysis incomplete: Referenced executable target unavailable; not analyzed
- No broad tool permissions
- 5 dangerous shell commandsin 2 files: seo-images/SKILL.md:239 seo-image-gen/references/post-processing.md:14
- 563 network referencesin 80 files: seo/references/local-schema-multilocation.md:8 seo/references/maps-free-apis.md:13 seo-hreflang/SKILL.md:74 and 77 more
- No hidden or obfuscated text
- 5 instruction override signalsin 2 files: seo-agentic/SKILL.md:86 seo-agentic/references/webmcp.md:97
- 48 executable scriptsin 3 files: scripts/claude-seo:1 hooks/run-python-hook.js:1 hooks/validate-schema.py:1
- 12 references to secretsin 8 files: seo-profound/SKILL.md:6 seo-seranking/SKILL.md:6 seo-google/SKILL.md:39 and 5 more
- No requests to vote in Hot
Show all 633 signals by file
.claude-plugin/marketplace.json
- Network accessline 1
{ "$schema": "https://anthropic.com/claude-code/marketplace.schema.json", - Network accessline 2
"$schema": "https://anthropic.com/claude-code/marketplace.schema.json", - Network accessline 15
"author": { "name": "AgriciDaniel", "url": "https://github.com/AgriciDaniel" - Network accessline 16
"name": "AgriciDaniel", "url": "https://github.com/AgriciDaniel" }, - Network accessline 17
"url": "https://github.com/AgriciDaniel" - Network accessline 18
}, "category": "marketing", "homepage": "https://claude-seo.md", - Network accessline 19
"category": "marketing", "homepage": "https://claude-seo.md", "keywords": [ - Network accessline 20
"homepage": "https://claude-seo.md", - Network accessline 71
"author": { "name": "AgriciDaniel", "url": "https://github.com/AgriciDaniel" - Network accessline 72
"name": "AgriciDaniel", "url": "https://github.com/AgriciDaniel" }, - Network accessline 73
"url": "https://github.com/AgriciDaniel" - Network accessline 74
}, "category": "marketing", "homepage": "https://github.com/AgriciDaniel/claude-seo/tree/seo-cockpit/plugins/seo-cockpit", - Network accessline 75
"category": "marketing", "homepage": "https://github.com/AgriciDaniel/claude-seo/tree/seo-cockpit/plugins/seo-cockpit", "keywords": [ - Network accessline 76
"homepage": "https://github.com/AgriciDaniel/claude-seo/tree/seo-cockpit/plugins/seo-cockpit",
.claude-plugin/plugin.json
- Network accessline 5
"author": { "name": "AgriciDaniel", "url": "https://github.com/AgriciDaniel" - Network accessline 6
"name": "AgriciDaniel", "url": "https://github.com/AgriciDaniel" }, - Network accessline 7
"url": "https://github.com/AgriciDaniel" - Network accessline 8
}, "license": "MIT", "homepage": "https://claude-seo.md", - Network accessline 9
"license": "MIT", "homepage": "https://claude-seo.md", "repository": "https://github.com/AgriciDaniel/claude-seo", - Network accessline 10
"homepage": "https://claude-seo.md", - Network accessline 11
"repository": "https://github.com/AgriciDaniel/claude-seo",
extensions/ahrefs/skills/seo-ahrefs/SKILL.md
extensions/banana/skills/seo-image-gen/LICENSE.txt
extensions/banana/skills/seo-image-gen/SKILL.md
- Network accessline 22
This extension is built on [Claude Banana](https://github.com/AgriciDaniel/banana-claude), - Network accessline 104
{ "@type": "ImageObject", "url": "https://example.com/images/keyword-description.webp", - Network accessline 105
"@type": "ImageObject", "url": "https://example.com/images/keyword-description.webp", "width": 1200, - Network accessline 106
"url": "https://example.com/images/keyword-description.webp", - Network accessline 114
<meta property="og:image" content="https://example.com/images/og-image.webp" /> - Network accessline 127
Pricing is not hard-coded. Check current Google pricing at https://ai.google.dev/gemini-api/docs/pricing, store dated values in - Network accessline 128
https://ai.google.dev/gemini-api/docs/pricing, store dated values in - Network accessline 143
|-------|-----------| | MCP not configured | Run `./extensions/banana/install.sh` or `"${CLAUDE_PLUGIN_ROOT}/scripts/claude-seo" run --extension banana setup_mcp.py --key YOUR_KEY` | | API key invalid | New key at https://aistudio.google.co - Network accessline 144
| MCP not configured | Run `./extensions/banana/install.sh` or `"${CLAUDE_PLUGIN_ROOT}/scripts/claude-seo" run --extension banana setup_mcp.py --key YOUR_KEY` | | API key invalid | New key at https://aistudio.google.com/apikey | | Rate limi - Network accessline 145
| API key invalid | New key at https://aistudio.google.com/apikey |
extensions/bing-webmaster/skills/seo-bing/SKILL.md
- Access to secretsline 6
[Credential-related source omitted]
extensions/dataforseo/skills/seo-dataforseo/LICENSE.txt
extensions/firecrawl/skills/seo-firecrawl/LICENSE.txt
extensions/firecrawl/skills/seo-firecrawl/SKILL.md
- Access to secretsline 193
[Credential-related source omitted]
extensions/matomo/skills/seo-matomo/SKILL.md
- Network accessline 18
- Run `extensions/matomo/install.sh` or `install.ps1`. - A Matomo instance URL (https://analytics.example.com). - Network accessline 19
- A Matomo instance URL (https://analytics.example.com). - Network accessline 65
is validated and DNS-pinned, and a redirect off the instance is refused. Private, loopback, and link-local addresses are refused by default. When the user's instance lives on one (`http://matomo.internal:8080`, - Network accessline 66
Private, loopback, and link-local addresses are refused by default. When the user's instance lives on one (`http://matomo.internal:8080`, `http://192.168.1.20`, `http://localhost:8080`), tell them to name it in the - Network accessline 67
user's instance lives on one (`http://matomo.internal:8080`, - Network accessline 68
`http://192.168.1.20`, `http://localhost:8080`), tell them to name it in the
extensions/profound/skills/seo-profound/SKILL.md
extensions/seranking/skills/seo-seranking/SKILL.md
- Access to secretsline 6
[Credential-related source omitted] - Network accessline 15
- Run `extensions/seranking/install.sh` (or `install.ps1`). - An SE Ranking API key (https://seranking.com/api.html). - Network accessline 16
- An SE Ranking API key (https://seranking.com/api.html). - Access to secretsline 17
[Credential-related source omitted]
hooks/run-python-hook.js
- Executable scriptline 1
#!/usr/bin/env node
hooks/validate-schema.py
- Executable scriptline 1
#!/usr/bin/env python3 - Network accessline 107
SCHEMA_ORG_CONTEXTS = frozenset( {"https://schema.org", "http://schema.org", "https://schema.org/", "http://schema.org/"} - Network accessline 108
{"https://schema.org", "http://schema.org", "https://schema.org/", "http://schema.org/"} - Network accessline 200
errors.append(f"{prefix}: Missing @context") elif "@context" in obj and not _is_schema_org_context(obj["@context"]): errors.append(f"{prefix}: @context should be 'https://schema.org'") - Network accessline 202
errors.append(f"{prefix}: @context should be 'https://schema.org'")
scripts/claude-seo
- Executable scriptline 1
#!/usr/bin/env bash - Executable scriptline 1
#!/usr/bin/env bash - Executable scriptline 1
Executable file; content unavailable - Executable scriptline 1
Executable file; content unavailable - Executable scriptline 1
#!/usr/bin/env bash - Executable scriptline 1
#!/usr/bin/env bash - Executable scriptline 1
#!/usr/bin/env bash - Executable scriptline 1
#!/usr/bin/env bash - Executable scriptline 1
#!/usr/bin/env bash - Executable scriptline 1
#!/usr/bin/env bash - Executable scriptline 1
#!/usr/bin/env bash - Executable scriptline 1
Executable file; content unavailable - Executable scriptline 1
Executable file; content unavailable - Executable scriptline 1
#!/usr/bin/env bash - Executable scriptline 1
Executable file; content unavailable - Executable scriptline 1
Executable file; content unavailable - Executable scriptline 1
#!/usr/bin/env bash - Executable scriptline 1
Executable file; content unavailable - Executable scriptline 1
Executable file; content unavailable - Executable scriptline 1
#!/usr/bin/env bash - Executable scriptline 1
#!/usr/bin/env bash - Executable scriptline 1
Executable file; content unavailable - Executable scriptline 1
Executable file; content unavailable - Executable scriptline 1
#!/usr/bin/env bash - Executable scriptline 1
#!/usr/bin/env bash - Executable scriptline 1
Executable file; content unavailable - Executable scriptline 1
Executable file; content unavailable - Executable scriptline 1
#!/usr/bin/env bash - Executable scriptline 1
Executable file; content unavailable - Executable scriptline 1
Executable file; content unavailable - Executable scriptline 1
#!/usr/bin/env bash - Executable scriptline 1
#!/usr/bin/env bash - Executable scriptline 1
#!/usr/bin/env bash - Executable scriptline 1
Executable file; content unavailable - Executable scriptline 1
Executable file; content unavailable - Executable scriptline 1
#!/usr/bin/env bash - Executable scriptline 1
#!/usr/bin/env bash - Executable scriptline 1
#!/usr/bin/env bash - Executable scriptline 1
#!/usr/bin/env bash - Executable scriptline 1
#!/usr/bin/env bash - Executable scriptline 1
Executable file; content unavailable - Executable scriptline 1
Executable file; content unavailable - Executable scriptline 1
#!/usr/bin/env bash - Executable scriptline 1
#!/usr/bin/env bash - Executable scriptline 1
Executable file; content unavailable - Executable scriptline 1
Executable file; content unavailable
skills/seo-agentic/LICENSE.txt
skills/seo-agentic/SKILL.md
- Instruction override signalline 86
| P1 | Stable, visible confirmation states; no hover-only menus or focus traps | manual review (no script evidence; say so if not checked) | | P1 (transactional) / P2 | Imperative WebMCP tools bound to existing handlers | `webmcp-tools`, Li - Instruction override signalline 87
| P1 (transactional) / P2 | Imperative WebMCP tools bound to existing handlers | `webmcp-tools`, Lighthouse `webmcp-registered-tools` | | P1 if tools exist | Tool safety: annotations, confirmation, logging, and no tool description that tell - Instruction override signalline 88
| P1 if tools exist | Tool safety: annotations, confirmation, logging, and no tool description that tells agents to skip confirmation | review the tool list and descriptions from Lighthouse `webmcp-registered-tools` (it sees tools registere
skills/seo-agentic/references/access-policy.md
- Network accessline 87
Sitemap: https://example.com/sitemap.xml - Network accessline 112
replacing the earlier Meunier individual drafts. - `Signature-Agent` is now a **dictionary keyed by signature label**, e.g. `Signature-Agent: sig1="https://signer.example"`. The bare-string form is - Network accessline 113
- `Signature-Agent` is now a **dictionary keyed by signature label**, e.g. `Signature-Agent: sig1="https://signer.example"`. The bare-string form is outdated; some verifiers may still expect it, so test before relying on it. - Network accessline 114
`Signature-Agent: sig1="https://signer.example"`. The bare-string form is - Network accessline 115
outdated; some verifiers may still expect it, so test before relying on it. - Signers reported: OpenAI (agent and cloud-browser traffic), Google (experimental, `https://agent.bot.goog`), Amazon Bedrock AgentCore, Shopify. - Network accessline 116
- Signers reported: OpenAI (agent and cloud-browser traffic), Google (experimental, `https://agent.bot.goog`), Amazon Bedrock AgentCore, Shopify. Anthropic and Perplexity signing is claimed only by secondary sources. - Network accessline 117
(experimental, `https://agent.bot.goog`), Amazon Bedrock AgentCore, Shopify.
skills/seo-agentic/references/discovery-and-markdown.md
- Network accessline 74
curl -sI -H "Accept: text/markdown" https://example.com/pricing | grep -iE "content-type|vary" - Network accessline 75
curl -sI https://example.com/pricing | grep -i vary - Network accessline 92
"displayName": "Example Docs MCP server", "type": "application/mcp-server-card+json", "url": "https://example.com/mcp/server-card", - Network accessline 93
"type": "application/mcp-server-card+json", "url": "https://example.com/mcp/server-card", "representativeQueries": ["How do I rotate an API key?", "What are the rate limits?"] - Network accessline 94
"url": "https://example.com/mcp/server-card", - Network accessline 109
| Path | Standard | Content type | When | |---|---|---|---| | `/.well-known/api-catalog` | RFC 9727 (published) | `application/linkset+json; profile="https://www.rfc-editor.org/info/rfc9727"` | You publish APIs | - Network accessline 110
|---|---|---|---| | `/.well-known/api-catalog` | RFC 9727 (published) | `application/linkset+json; profile="https://www.rfc-editor.org/info/rfc9727"` | You publish APIs | | `/.well-known/oauth-protected-resource` | RFC 9728 (published) | JS - Network accessline 111
| `/.well-known/api-catalog` | RFC 9727 (published) | `application/linkset+json; profile="https://www.rfc-editor.org/info/rfc9727"` | You publish APIs |
skills/seo-agentic/references/vendor-matrix.md
- Network accessline 12
| OpenAI: ChatGPT desktop built-in browser ("site tools") | ARIA / accessibility tree (publisher FAQ) | **Yes, imperative only**, top-level document, on by default, not Enterprise/Edu | ChatGPT-User; signs agent and cloud-browser traffic wi - Network accessline 13
| OpenAI: cloud browser (ChatGPT Work), Codex | as above | not documented | Web Bot Auth | S | | Google: Gemini in Chrome, Chrome auto browse | page elements and screen positions | no public evidence of consumption; Google co-edits the spec - Network accessline 14
| Google: Gemini in Chrome, Chrome auto browse | page elements and screen positions | no public evidence of consumption; Google co-edits the spec | Google-Agent (user-triggered, generally ignores robots.txt); experimenting with Web Bot Auth - Network accessline 63
1. PSI: run `lighthouse_agentic.py https://claude-seo.md/ --json`. If
skills/seo-agentic/references/webmcp.md
- Network accessline 67
annotations: { readOnlyHint: true }, async execute({ query }) { const r = await fetch(`/api/search?q=${encodeURIComponent(query)}`); // same endpoint as the UI - Network accessline 68
async execute({ query }) { const r = await fetch(`/api/search?q=${encodeURIComponent(query)}`); // same endpoint as the UI return { content: [{ type: "text", text: JSON.stringify(await r.json()) }] }; - Network accessline 69
const r = await fetch(`/api/search?q=${encodeURIComponent(query)}`); // same endpoint as the UI - Instruction override signalline 97
7. For API or MCP access use OAuth (RFC 9728 metadata), not session scraping. 8. A tool description must never tell the agent to skip or bypass user confirmation (for example "no need to confirm with the user"). Treat that - Instruction override signalline 98
8. A tool description must never tell the agent to skip or bypass user confirmation (for example "no need to confirm with the user"). Treat that wording as a P1 safety finding: it is an instruction to the agent that a
skills/seo-audit/LICENSE.txt
skills/seo-backlinks/LICENSE.txt
skills/seo-backlinks/SKILL.md
- Network accessline 247
| No sources configured | No API keys, no DataForSEO | Run `/seo backlinks setup` | | Moz rate limit | Free tier: 1 req/10s | Wait 10 seconds, retry. Built into script. | | Bing site not verified | Site not verified in Bing | Verify at http - Network accessline 248
| Moz rate limit | Free tier: 1 req/10s | Wait 10 seconds, retry. Built into script. | | Bing site not verified | Site not verified in Bing | Verify at https://www.bing.com/webmasters | | CC download timeout | Large graph file, slow connect - Network accessline 249
| Bing site not verified | Site not verified in Bing | Verify at https://www.bing.com/webmasters | | CC download timeout | Large graph file, slow connection | Use `--timeout 180` flag | | DataForSEO unavailable | Extension not installed | R
skills/seo-cluster/SKILL.md
- Network accessline 235
- Competing pages to differentiate from 3. Write briefs to `cluster-briefs/` directory as individual markdown files 4. Inform user: "Install [claude-blog](https://github.com/AgriciDaniel/claude-blog) - Network accessline 236
3. Write briefs to `cluster-briefs/` directory as individual markdown files 4. Inform user: "Install [claude-blog](https://github.com/AgriciDaniel/claude-blog) to auto-create content. Briefs saved to `cluster-briefs/`." - Network accessline 237
4. Inform user: "Install [claude-blog](https://github.com/AgriciDaniel/claude-blog)
skills/seo-competitor-pages/LICENSE.txt
skills/seo-competitor-pages/SKILL.md
- Network accessline 69
{ "@context": "https://schema.org", - Network accessline 70
"@context": "https://schema.org", - Network accessline 90
{ "@context": "https://schema.org", - Network accessline 91
"@context": "https://schema.org", - Network accessline 106
{ "@context": "https://schema.org", - Network accessline 107
"@context": "https://schema.org", - Network accessline 108
"@type": "ItemList", "name": "Best [Category] Tools [Year]", "itemListOrder": "https://schema.org/ItemListOrderDescending", - Network accessline 109
"name": "Best [Category] Tools [Year]", "itemListOrder": "https://schema.org/ItemListOrderDescending", "numberOfItems": "[Count]", - Network accessline 110
"itemListOrder": "https://schema.org/ItemListOrderDescending",
skills/seo-content-brief/LICENSE.txt
skills/seo-content/LICENSE.txt
skills/seo-content/SKILL.md
skills/seo-dataforseo/LICENSE.txt
skills/seo-drift/SKILL.md
- Network accessline 207
/seo drift baseline https://example.com # Before deploy - Network accessline 209
/seo drift compare https://example.com # After deploy - Network accessline 214
/seo drift baseline https://example.com # Initial capture - Network accessline 215
# ... weeks later ... /seo drift compare https://example.com # Check for drift /seo drift history https://example.com # Review all changes - Network accessline 216
/seo drift compare https://example.com # Check for drift - Network accessline 217
/seo drift history https://example.com # Review all changes - Network accessline 222
/seo drift compare https://example.com # What changed? - Network accessline 223
/seo drift history https://example.com # When did it change?
skills/seo-ecommerce/SKILL.md
- Network accessline 238
{ "@context": "https://schema.org", - Network accessline 239
"@context": "https://schema.org", - Network accessline 246
"priceCurrency": "USD", "price": "49.00", "availability": "https://schema.org/InStock" - Network accessline 247
"price": "49.00", "availability": "https://schema.org/InStock" } - Network accessline 248
"availability": "https://schema.org/InStock" - Network accessline 261
- `shippingDetails` -- ShippingDetails with rate and delivery time (merchant-level shipping via `ShippingService` is also supported; shipping/returns can be set in Search Console without a Merchant Center account) - `hasMerchantReturnPolicy - Network accessline 262
- `hasMerchantReturnPolicy` -- MerchantReturnPolicy with type and days - `hasAdultConsideration` -- **required for adult-oriented products** (added 2026-05-20 to Product variant / Merchant listing); Google Search supports only the value `ht - Network accessline 263
- `hasAdultConsideration` -- **required for adult-oriented products** (added 2026-05-20 to Product variant / Merchant listing); Google Search supports only the value `https://schema.org/SexualContentConsideration` - Network accessline 329
# Discover and validate the UCP profile "${CLAUDE_PLUGIN_ROOT}/scripts/claude-seo" run ucp_check.py https://store.example.com --json - Network accessline 330
"${CLAUDE_PLUGIN_ROOT}/scripts/claude-seo" run ucp_check.py https://store.example.com --json - Network accessline 332
# With endpoint reachability probes (HEAD each declared capability) "${CLAUDE_PLUGIN_ROOT}/scripts/claude-seo" run ucp_check.py https://store.example.com --probe-endpoints --json - Network accessline 333
"${CLAUDE_PLUGIN_ROOT}/scripts/claude-seo" run ucp_check.py https://store.example.com --probe-endpoints --json
skills/seo-ecommerce/references/ucp-universal-commerce-protocol.md
- Network accessline 16
**Primary sources (canonical, stable):** - Google merchant developer guide: https://developers.google.com/merchant/ucp - Network accessline 17
- Google merchant developer guide: https://developers.google.com/merchant/ucp - Network accessline 18
(and /merchant/ucp/guides/ucp-profile) - Spec / overview: https://ucp.dev. Versions are dates (YYYY-MM-DD). ucp.dev lists **2026-08-25** as the latest spec release; Google's merchant implementation guide still documents **2026-04-08**, an - Network accessline 19
- Spec / overview: https://ucp.dev. Versions are dates (YYYY-MM-DD). ucp.dev lists **2026-08-25** as the latest spec release; Google's merchant - Network accessline 38
`ucp` object; `services` and `capabilities` are keyed by reverse-domain name, each holding a list of version variants (shape from https://ucp.dev/latest/specification/overview/, checked 2026-09-23 against a - Network accessline 39
each holding a list of version variants (shape from https://ucp.dev/latest/specification/overview/, checked 2026-09-23 against a live Shopify profile): - Network accessline 40
https://ucp.dev/latest/specification/overview/, checked 2026-09-23 against a - Network accessline 45
"ucp": { "version": "2026-08-25", "supported_versions": {"2026-04-08": "https://shop.example/.well-known/ucp/2026-04-08"}, - Network accessline 46
"version": "2026-08-25", "supported_versions": {"2026-04-08": "https://shop.example/.well-known/ucp/2026-04-08"}, "services": { - Network accessline 47
"supported_versions": {"2026-04-08": "https://shop.example/.well-known/ucp/2026-04-08"}, - Network accessline 48
"services": { "dev.ucp.shopping": [ {"version": "2026-08-25", "spec": "https://ucp.dev/2026-08-25/specification/overview/", - Network accessline 49
"dev.ucp.shopping": [ {"version": "2026-08-25", "spec": "https://ucp.dev/2026-08-25/specification/overview/", "transport": "mcp", "endpoint": "https://shop.example/api/ucp/mcp", - Network accessline 50
{"version": "2026-08-25", "spec": "https://ucp.dev/2026-08-25/specification/overview/", - Network accessline 51
"transport": "mcp", "endpoint": "https://shop.example/api/ucp/mcp", - Network accessline 52
"schema": "https://ucp.dev/2026-08-25/services/shopping/mcp.openrpc.json"} - Network accessline 56
"dev.ucp.shopping.checkout": [ {"version": "2026-08-25", "spec": "https://ucp.dev/2026-08-25/specification/shopping/checkout/", - Network accessline 57
{"version": "2026-08-25", "spec": "https://ucp.dev/2026-08-25/specification/shopping/checkout/", "schema": "https://ucp.dev/2026-08-25/schemas/shopping/checkout.json"} - Network accessline 58
"spec": "https://ucp.dev/2026-08-25/specification/shopping/checkout/", - Network accessline 59
"schema": "https://ucp.dev/2026-08-25/schemas/shopping/checkout.json"}
skills/seo-flow/references/bibliography.md
- Network accessline 16
- https://ahrefs.com/blog/ai-overviews-reduce-clicks-update/ | retrieved 2026-04-25 | used for: 58% lower average CTR for position-one content when an AI Overview is present, using December 2025 Ahrefs data - Network accessline 17
- https://backlinko.com/google-user-behavior | retrieved 2026-04-25 | used for: 42% of local-query searchers click inside the Google Maps Pack - Network accessline 18
- https://gs.statcounter.com/search-engine-market-share/all/worldwide/2025 | retrieved 2026-04-25 | used for: Bing March 2026 share: 5.13% worldwide; 9.85% United States all-platform search share - Network accessline 19
- https://support.google.com/business/answer/10515606?hl=en | retrieved 2026-04-25 | used for: 70% more likely to visit; 50% more likely to consider purchasing - Network accessline 20
- https://www.brightlocal.com/resources/local-seo-statistics/ | retrieved 2026-04-25 | used for: 39% - Network accessline 21
- https://www.pewresearch.org/short-reads/2025/07/22/google-users-are-less-likely-to-click-on-links-when-an-ai-summary-appears-in-the-results/ | retrieved 2026-04-25 | used for: 8% with AI summary vs 15% without AI summary - Network accessline 22
- https://www.searchenginejournal.com/state-of-seo/ | retrieved 2026-04-25 | used for: 77.9% worry about AI reducing website clicks - Network accessline 23
- https://www.sec.gov/Archives/edgar/data/1652044/000165204426000018/goog-20251231.htm | retrieved 2026-04-25 | used for: 73.2% of FY2025 revenue from Google advertising: $294.691B / $402.836B - Network accessline 24
- https://www.semrush.com/blog/semrush-ai-overviews-study/ | retrieved 2026-04-25 | used for: 33.75% to 31.53% - Network accessline 25
- https://www.seoclarity.net/research/analysis-of-top-cited-pages-from-chatgpt | retrieved 2026-04-25 | used for: 25% of top 1,000 cited URLs have zero organic visibility in Google
skills/seo-geo/LICENSE.txt
skills/seo-geo/SKILL.md
- Network accessline 176
Sources: [OpenAI crawlers](https://platform.openai.com/docs/bots), - Network accessline 177
[Google crawlers overview](https://developers.google.com/search/docs/crawling-indexing/overview-google-crawlers), - Network accessline 178
[Anthropic crawler support article](https://support.anthropic.com/en/articles/8896518-does-anthropic-crawl-data-from-the-web-and-how-can-site-owners-block-the-crawler), - Network accessline 179
[Apple Applebot-Extended support article](https://support.apple.com/en-us/119829).
skills/seo-geo/references/google-ai-optimization-guide.md
- Network accessline 10
**Primary source:** https://developers.google.com/search/docs/fundamentals/ai-optimization-guide - Network accessline 10
**Primary source:** https://developers.google.com/search/docs/fundamentals/ai-optimization-guide - Network accessline 11
https://developers.google.com/search/docs/fundamentals/ai-optimization-guide - Network accessline 11
https://developers.google.com/search/docs/fundamentals/ai-optimization-guide - Network accessline 12
(announcing blog: https://developers.google.com/search/blog/2026/05/a-new-resource-for-optimizing) - Network accessline 12
(announcing blog: https://developers.google.com/search/blog/2026/05/a-new-resource-for-optimizing) - Network accessline 19
> claude-seo's scores are heuristics, not Google-internal signals; state this > honestly in reports. Source: > https://developers.google.com/search/docs/fundamentals/third-party-seo - Network accessline 19
> claude-seo's scores are heuristics, not Google-internal signals; state this > honestly in reports. Source: > https://developers.google.com/search/docs/fundamentals/third-party-seo - Network accessline 21
> https://developers.google.com/search/docs/fundamentals/third-party-seo - Network accessline 21
> https://developers.google.com/search/docs/fundamentals/third-party-seo - Network accessline 42
the Search Console "Search generative AI" control (include is the default; the options are include, exclude or inherit; rolled out to all sites worldwide 2026-08-31, https://support.google.com/webmasters/answer/16908024). The setting is not - Network accessline 42
the Search Console "Search generative AI" control (include is the default; the options are include, exclude or inherit; rolled out to all sites worldwide 2026-08-31, https://support.google.com/webmasters/answer/16908024). The setting is not - Network accessline 43
the options are include, exclude or inherit; rolled out to all sites worldwide 2026-08-31, https://support.google.com/webmasters/answer/16908024). The setting is not a ranking signal and not a training control. There is no separate "AI inde - Network accessline 43
the options are include, exclude or inherit; rolled out to all sites worldwide 2026-08-31, https://support.google.com/webmasters/answer/16908024). The setting is not a ranking signal and not a training control. There is no separate "AI inde - Network accessline 44
https://support.google.com/webmasters/answer/16908024). The setting is not a - Network accessline 44
https://support.google.com/webmasters/answer/16908024). The setting is not a - Network accessline 73
**Primary source:** https://developers.google.com/search/docs/fundamentals/creating-helpful-content - Network accessline 73
**Primary source:** https://developers.google.com/search/docs/fundamentals/creating-helpful-content - Network accessline 74
https://developers.google.com/search/docs/fundamentals/creating-helpful-content - Network accessline 74
https://developers.google.com/search/docs/fundamentals/creating-helpful-content - Network accessline 96
**Primary source:** https://developers.google.com/search/blog/2023/02/google-search-and-ai-content - Network accessline 96
**Primary source:** https://developers.google.com/search/blog/2023/02/google-search-and-ai-content - Network accessline 97
https://developers.google.com/search/blog/2023/02/google-search-and-ai-content - Network accessline 97
https://developers.google.com/search/blog/2023/02/google-search-and-ai-content
skills/seo-google/LICENSE.txt
skills/seo-google/SKILL.md
skills/seo-google/references/auth-setup.md
- Network accessline 15
1. Go to [console.cloud.google.com](https://console.cloud.google.com) - Network accessline 55
"client_email": "<service-account-identifier>", "client_id": "...", "auth_uri": "https://accounts.google.com/o/oauth2/auth", - Network accessline 56
"client_id": "...", "auth_uri": "https://accounts.google.com/o/oauth2/auth", "token_uri": "https://oauth2.googleapis.com/token" - Network accessline 57
"auth_uri": "https://accounts.google.com/o/oauth2/auth", - Network accessline 58
"token_uri": "https://oauth2.googleapis.com/token" - Network accessline 66
1. Go to [Google Search Console](https://search.google.com/search-console) - Network accessline 76
1. Go to [Google Analytics](https://analytics.google.com) - Access to secretsline 93
[Credential-related source omitted] - Network accessline 102
|--------|---------|-------------| | Domain property | `sc-domain:example.com` | Covers all URLs on the domain (recommended) | | URL-prefix property | `https://example.com/` | Covers only that specific prefix | - Network accessline 104
| URL-prefix property | `https://example.com/` | Covers only that specific prefix | - Access to secretsline 131
[Credential-related source omitted] - Network accessline 138
| Scope | APIs | |-------|------| | `https://www.googleapis.com/auth/webmasters.readonly` | GSC (read) | - Network accessline 139
|-------|------| | `https://www.googleapis.com/auth/webmasters.readonly` | GSC (read) | | `https://www.googleapis.com/auth/webmasters` | GSC (read/write, needed for sitemap submission) | - Network accessline 140
| `https://www.googleapis.com/auth/webmasters.readonly` | GSC (read) | - Network accessline 141
| `https://www.googleapis.com/auth/webmasters` | GSC (read/write, needed for sitemap submission) | - Network accessline 142
| `https://www.googleapis.com/auth/indexing` | Indexing API | - Network accessline 143
| `https://www.googleapis.com/auth/analytics.readonly` | GA4 (read) |
skills/seo-google/references/crux-history-api.md
- Network accessline 7
**Endpoint:** `POST https://chromeuxreport.googleapis.com/v1/records:queryHistoryRecord`
skills/seo-google/references/dma-consent-mode-v2.md
- Network accessline 34
- Consent Mode v2 wired up (`gtag('consent', 'default', {...})` including `ad_user_data` and `ad_personalization`, set before any tags fire; https://developers.google.com/tag-platform/security/guides/consent). - Network accessline 35
including `ad_user_data` and `ad_personalization`, set before any tags fire; https://developers.google.com/tag-platform/security/guides/consent). - `ads_data_redaction` flag set on EU traffic. - Network accessline 36
fire; https://developers.google.com/tag-platform/security/guides/consent). - Network accessline 60
- DMA enforcement: https://digital-markets-act.ec.europa.eu/ - Network accessline 61
- Google's third-party cookie reversal: https://privacysandbox.google.com/blog/privacy-sandbox-next-steps - Network accessline 62
- Privacy Sandbox API retirements (2025-10-17): https://privacysandbox.google.com/blog/update-on-plans-for-privacy-sandbox-technologies - Network accessline 63
- Consent Mode v2, EEA consent updates: https://support.google.com/google-ads/answer/13695607
skills/seo-google/references/ga4-data-api.md
- Network accessline 7
**Base URL:** `https://analyticsdata.googleapis.com/v1beta` - Network accessline 150
credentials = service_account.Credentials.from_service_account_file( "service_account.json", scopes=["https://www.googleapis.com/auth/analytics.readonly"], - Network accessline 151
"service_account.json", scopes=["https://www.googleapis.com/auth/analytics.readonly"], ) - Network accessline 152
scopes=["https://www.googleapis.com/auth/analytics.readonly"], - Network accessline 181
## Authentication - **Scope:** `https://www.googleapis.com/auth/analytics.readonly` - Network accessline 182
- **Scope:** `https://www.googleapis.com/auth/analytics.readonly`
skills/seo-google/references/indexing-api.md
- Network accessline 13
**`POST https://indexing.googleapis.com/v3/urlNotifications:publish`** - Network accessline 16
{ "url": "https://example.com/jobs/software-engineer", - Network accessline 17
"url": "https://example.com/jobs/software-engineer", - Network accessline 29
{ "urlNotificationMetadata": { "url": "https://example.com/jobs/software-engineer", - Network accessline 30
"urlNotificationMetadata": { "url": "https://example.com/jobs/software-engineer", "latestUpdate": { - Network accessline 31
"url": "https://example.com/jobs/software-engineer", - Network accessline 32
"latestUpdate": { "url": "https://example.com/jobs/software-engineer", "type": "URL_UPDATED", - Network accessline 33
"url": "https://example.com/jobs/software-engineer", - Network accessline 43
**`GET https://indexing.googleapis.com/v3/urlNotifications/metadata?url={ENCODED_URL}`** - Network accessline 49
**`POST https://indexing.googleapis.com/batch`** - Network accessline 64
{"url": "https://example.com/jobs/1", "type": "URL_UPDATED"} - Network accessline 72
{"url": "https://example.com/jobs/2", "type": "URL_UPDATED"} - Network accessline 78
- **Scope:** `https://www.googleapis.com/auth/indexing` - Network accessline 90
View your quota in the [Google API Console](https://console.cloud.google.com/apis/api/indexing.googleapis.com/quotas). Google removed the outdated quota request form on 2026-10-16; see [Indexing API quota and pricing](https://developers.goo
skills/seo-google/references/nlp-api.md
- Network accessline 7
Entities use `POST https://language.googleapis.com/v1/documents:analyzeEntities`. - Network accessline 9
`POST https://language.googleapis.com/v2/documents:annotateText`. - Network accessline 54
1. Go to [console.cloud.google.com/apis/library](https://console.cloud.google.com/apis/library)
skills/seo-google/references/pagespeed-crux-api.md
- Network accessline 13
**Endpoint:** `GET https://www.googleapis.com/pagespeedonline/v5/runPagespeed` - Network accessline 28
{ "id": "https://example.com/", - Network accessline 29
"id": "https://example.com/", - Network accessline 73
**Endpoint:** `POST https://chromeuxreport.googleapis.com/v1/records:queryRecord` - Network accessline 80
{ "origin": "https://example.com", - Network accessline 81
"origin": "https://example.com", - Network accessline 115
{ "record": { "key": { "origin": "https://example.com" }, - Network accessline 116
"record": { "key": { "origin": "https://example.com" }, "metrics": { - Network accessline 117
"key": { "origin": "https://example.com" },
skills/seo-google/references/search-console-api.md
- Network accessline 13
**Endpoint:** `POST https://www.googleapis.com/webmasters/v3/sites/{siteUrl}/searchAnalytics/query` - Network accessline 50
"rows": [ { "keys": ["seo tools", "https://example.com/tools"], - Network accessline 51
{ "keys": ["seo tools", "https://example.com/tools"], "clicks": 150, - Network accessline 52
"keys": ["seo tools", "https://example.com/tools"], - Network accessline 86
**Endpoint:** `POST https://searchconsole.googleapis.com/v1/urlInspection/index:inspect` - Network accessline 91
{ "inspectionUrl": "https://example.com/page", - Network accessline 92
"inspectionUrl": "https://example.com/page", - Network accessline 124
**Base:** `https://www.googleapis.com/webmasters/v3/sites/{siteUrl}/sitemaps` - Network accessline 150
**Base:** `https://www.googleapis.com/webmasters/v3/sites`
skills/seo-google/references/supplementary-apis.md
- Network accessline 7
**Endpoint:** `GET https://kgsearch.googleapis.com/v1/entities:search` - Network accessline 27
"detailedDescription": { "articleBody": "Google LLC is an American...", "url": "https://en.wikipedia.org/wiki/Google" - Network accessline 28
"articleBody": "Google LLC is an American...", "url": "https://en.wikipedia.org/wiki/Google" }, - Network accessline 29
"url": "https://en.wikipedia.org/wiki/Google" - Network accessline 30
}, "image": { "url": "..." }, "url": "https://www.google.com" - Network accessline 31
"image": { "url": "..." }, "url": "https://www.google.com" }, - Network accessline 32
"url": "https://www.google.com" - Network accessline 49
**Endpoint:** `GET https://customsearch.googleapis.com/customsearch/v1` - Network accessline 77
**Endpoint:** `GET https://webrisk.googleapis.com/v1/uris:search`
skills/seo-google/references/youtube-api.md
- Network accessline 45
1. Go to [console.cloud.google.com/apis/library](https://console.cloud.google.com/apis/library)
skills/seo-hreflang/LICENSE.txt
skills/seo-hreflang/SKILL.md
- Network accessline 74
### 5c. Region-specific Search units (EEA, South Africa, Türkiye) - Google documents Search experiences that exist only in certain regions (documentation added 2026-09-08; https://developers.google.com/search/docs/appearance/aggregator-fe - Network accessline 75
- Google documents Search experiences that exist only in certain regions (documentation added 2026-09-08; https://developers.google.com/search/docs/appearance/aggregator-features): - **EEA only:** aggregator units and supplier units (ho - Network accessline 76
(documentation added 2026-09-08; https://developers.google.com/search/docs/appearance/aggregator-features): - Network accessline 129
<link rel="alternate" hreflang="en-US" href="https://example.com/page" /> - Network accessline 130
<link rel="alternate" hreflang="en-GB" href="https://example.co.uk/page" /> - Network accessline 131
<link rel="alternate" hreflang="fr" href="https://example.com/fr/page" /> - Network accessline 132
<link rel="alternate" hreflang="x-default" href="https://example.com/page" /> - Network accessline 141
Link: <https://example.com/page>; rel="alternate"; hreflang="en-US", - Network accessline 142
<https://example.com/fr/page>; rel="alternate"; hreflang="fr", - Network accessline 143
<https://example.com/page>; rel="alternate"; hreflang="x-default" - Network accessline 175
<?xml version="1.0" encoding="UTF-8"?> <urlset xmlns="http://www.sitemaps.org/schemas/sitemap/0.9" - Network accessline 176
<urlset xmlns="http://www.sitemaps.org/schemas/sitemap/0.9" - Network accessline 177
xmlns:xhtml="http://www.w3.org/1999/xhtml"> - Network accessline 178
<url> <loc>https://example.com/page</loc> <xhtml:link rel="alternate" hreflang="en-US" href="https://example.com/page" /> - Network accessline 179
<loc>https://example.com/page</loc> - Network accessline 180
<xhtml:link rel="alternate" hreflang="en-US" href="https://example.com/page" /> - Network accessline 181
<xhtml:link rel="alternate" hreflang="fr" href="https://example.com/fr/page" /> - Network accessline 182
<xhtml:link rel="alternate" hreflang="de" href="https://example.de/page" /> - Network accessline 183
<xhtml:link rel="alternate" hreflang="x-default" href="https://example.com/page" /> - Network accessline 184
</url> <url> <loc>https://example.com/fr/page</loc> - Network accessline 185
<url> <loc>https://example.com/fr/page</loc> <xhtml:link rel="alternate" hreflang="en-US" href="https://example.com/page" /> - Network accessline 186
<loc>https://example.com/fr/page</loc> - Network accessline 187
<xhtml:link rel="alternate" hreflang="en-US" href="https://example.com/page" /> - Network accessline 188
<xhtml:link rel="alternate" hreflang="fr" href="https://example.com/fr/page" /> - Network accessline 189
<xhtml:link rel="alternate" hreflang="de" href="https://example.de/page" /> - Network accessline 190
<xhtml:link rel="alternate" hreflang="x-default" href="https://example.com/page" /> - Network accessline 211
| Language | URL | Self-Ref | Return Tags | x-default | Status | |----------|-----|----------|-------------|-----------|--------| | en-US | https://... | ✅ | ✅ | ✅ | ✅ | - Network accessline 212
|----------|-----|----------|-------------|-----------|--------| | en-US | https://... | ✅ | ✅ | ✅ | ✅ | | fr | https://... | ❌ | ⚠<U+FE0F> | ✅ | ❌ | - Network accessline 213
| en-US | https://... | ✅ | ✅ | ✅ | ✅ | - Network accessline 214
| fr | https://... | ❌ | ⚠<U+FE0F> | ✅ | ❌ | - Network accessline 215
| de | https://... | ✅ | ❌ | ✅ | ❌ |
skills/seo-hreflang/references/machine-translation-qa.md
- Network accessline 7
names "automated transformations like synonymizing, **translating**, or other obfuscation techniques" as scaled content abuse: https://developers.google.com/search/docs/essentials/spam-policies - Network accessline 9
https://developers.google.com/search/docs/essentials/spam-policies - Network accessline 56
- Current QRG (September 11, 2025; 182 pages; nothing newer through 2026-09-23): https://static.googleusercontent.com/media/guidelines.raterhub.com/en//searchqualityevaluatorguidelines.pdf (the services.google.com hsw-sqrg.pdf file is the 3
skills/seo-image-gen/LICENSE.txt
skills/seo-image-gen/SKILL.md
- Network accessline 22
This extension is built on [Claude Banana](https://github.com/AgriciDaniel/banana-claude), - Network accessline 103
{ "@type": "ImageObject", "url": "https://example.com/images/keyword-description.webp", - Network accessline 104
"@type": "ImageObject", "url": "https://example.com/images/keyword-description.webp", "width": 1200, - Network accessline 105
"url": "https://example.com/images/keyword-description.webp", - Network accessline 113
<meta property="og:image" content="https://example.com/images/og-image.webp" /> - Network accessline 141
|-------|-----------| | MCP not configured | Run `./extensions/banana/install.sh` | | API key invalid | New key at https://aistudio.google.com/apikey | - Network accessline 142
| MCP not configured | Run `./extensions/banana/install.sh` | | API key invalid | New key at https://aistudio.google.com/apikey | | Rate limited (429) | Wait 60s, retry. Free tier: ~10 RPM / ~500 RPD | - Network accessline 143
| API key invalid | New key at https://aistudio.google.com/apikey |
skills/seo-image-gen/references/cost-tracking.md
- Network accessline 7
| Model | Resolution | Cost/Image | Notes | |-------|-----------|-----------|-------| | Installed MCP model | Any | Verify before use | Check https://ai.google.dev/gemini-api/docs/pricing and installed MCP config | - Network accessline 8
|-------|-----------|-----------|-------| | Installed MCP model | Any | Verify before use | Check https://ai.google.dev/gemini-api/docs/pricing and installed MCP config | | Batch API | Any | Verify before use | Confirm availability and disc - Network accessline 9
| Installed MCP model | Any | Verify before use | Check https://ai.google.dev/gemini-api/docs/pricing and installed MCP config | - Network accessline 12
Do not quote fixed package prices unless they have been verified at https://ai.google.dev/gemini-api/docs/pricing.
skills/seo-image-gen/references/gemini-models.md
- Network accessline 83
https://generativelanguage.googleapis.com/v1beta/models/{model-id}:generateContent - Network accessline 159
Pricing is approximate and based on ~1,290 output tokens per image. Research suggests NB2 pricing may be ~$0.067/img (vs documented $0.039). Verify current pricing at https://ai.google.dev/gemini-api/docs/pricing - Network accessline 160
Research suggests NB2 pricing may be ~$0.067/img (vs documented $0.039). Verify current pricing at https://ai.google.dev/gemini-api/docs/pricing
skills/seo-image-gen/references/mcp-tools.md
- Network accessline 3
> Package: `@ycse/nanobanana-mcp` > GitHub: https://github.com/YCSE/nanobanana-mcp - Network accessline 4
> GitHub: https://github.com/YCSE/nanobanana-mcp - Network accessline 93
| Variable | Required | Description | |----------|----------|-------------| | `GOOGLE_AI_API_KEY` | Yes | API key from https://aistudio.google.com/apikey | - Network accessline 94
|----------|----------|-------------| | `GOOGLE_AI_API_KEY` | Yes | API key from https://aistudio.google.com/apikey | | `NANOBANANA_MODEL` | No | Override default model from the installed MCP package | - Network accessline 95
[Credential-related source omitted] - Access to secretsline 95
[Credential-related source omitted]
skills/seo-image-gen/references/post-processing.md
- Dangerous shell operationline 14
Install ImageMagick if not present: `sudo apt install imagemagick` (Debian/Ubuntu) or `brew install imagemagick` (macOS).
skills/seo-images/LICENSE.txt
skills/seo-images/SKILL.md
- Dangerous shell operationline 239
- `exiftool` -- EXIF/IPTC/XMP read/write (install: `sudo apt install libimage-exiftool-perl`) - Dangerous shell operationline 240
- `cwebp` -- WebP conversion (install: `sudo apt install webp`) - Network accessline 318
Primary source (Merchant Center AI-generated content policy): https://support.google.com/merchants/answer/14743464 - Network accessline 319
https://support.google.com/merchants/answer/14743464 - Network accessline 345
# Inject manually exiftool \ -XMP-iptcExt:DigitalSourceType="https://cv.iptc.org/newscodes/digitalsourcetype/trainedAlgorithmicMedia" \ - Network accessline 346
exiftool -XMP-iptcExt:DigitalSourceType="https://cv.iptc.org/newscodes/digitalsourcetype/trainedAlgorithmicMedia" - Network accessline 347
-XMP-iptcExt:DigitalSourceType="https://cv.iptc.org/newscodes/digitalsourcetype/trainedAlgorithmicMedia" \ - Dangerous shell operationline 434
| exiftool not installed | Fall back to ImageMagick for metadata. Recommend: `sudo apt install libimage-exiftool-perl` | - Dangerous shell operationline 435
| cwebp not installed | Fall back to ImageMagick or FFmpeg for WebP conversion. Recommend: `sudo apt install webp` |
skills/seo-local/LICENSE.txt
skills/seo-maps/LICENSE.txt
skills/seo-maps/SKILL.md
- Network accessline 196
1. Search for business name on each platform: - Google: infer from GBP data or Maps SERP result - Bing: `WebFetch https://www.bing.com/maps?q=BUSINESS+NAME+LOCATION` - Network accessline 197
- Google: infer from GBP data or Maps SERP result - Bing: `WebFetch https://www.bing.com/maps?q=BUSINESS+NAME+LOCATION` - Apple: manual check (no public API -- verify/claim Apple business listing presence; treat Apple Business launch/ - Network accessline 198
- Bing: `WebFetch https://www.bing.com/maps?q=BUSINESS+NAME+LOCATION`
skills/seo-page/LICENSE.txt
skills/seo-plan/LICENSE.txt
skills/seo-plan/assets/agency.md
- Network accessline 59
{ "@context": "https://schema.org", - Network accessline 60
"@context": "https://schema.org", - Network accessline 62
"name": "Agency Name", "description": "What the agency does", "url": "https://example.com", - Network accessline 63
"description": "What the agency does", "url": "https://example.com", "logo": "https://example.com/logo.png", - Network accessline 64
"url": "https://example.com", - Network accessline 65
"logo": "https://example.com/logo.png",
skills/seo-plan/assets/ecommerce.md
- Network accessline 67
{ "@context": "https://schema.org", - Network accessline 68
"@context": "https://schema.org", - Network accessline 69
"@type": "Product", "name": "Product Name", "image": ["https://example.com/product.jpg"], - Network accessline 70
"name": "Product Name", "image": ["https://example.com/product.jpg"], "description": "Product description", - Network accessline 71
"image": ["https://example.com/product.jpg"], - Network accessline 80
"price": "99.99", "priceCurrency": "USD", "availability": "https://schema.org/InStock", - Network accessline 81
"priceCurrency": "USD", "availability": "https://schema.org/InStock", "url": "https://example.com/product" - Network accessline 82
"availability": "https://schema.org/InStock", - Network accessline 83
"url": "https://example.com/product"
skills/seo-plan/assets/local-service.md
skills/seo-plan/assets/publisher.md
- Network accessline 52
{ "@context": "https://schema.org", - Network accessline 53
"@context": "https://schema.org", - Network accessline 59
"@type": "Person", "name": "Author Name", "url": "https://example.com/authors/author-name" - Network accessline 60
"name": "Author Name", "url": "https://example.com/authors/author-name" }, - Network accessline 61
"url": "https://example.com/authors/author-name" - Network accessline 66
"logo": { "@type": "ImageObject", "url": "https://example.com/logo.png" - Network accessline 67
"@type": "ImageObject", "url": "https://example.com/logo.png" } - Network accessline 68
"url": "https://example.com/logo.png" - Network accessline 69
} }, "image": ["https://example.com/article-image.jpg"], - Network accessline 70
}, "image": ["https://example.com/article-image.jpg"], "mainEntityOfPage": { - Network accessline 71
"image": ["https://example.com/article-image.jpg"], - Network accessline 72
"mainEntityOfPage": { "@type": "WebPage", "@id": "https://example.com/article-url" - Network accessline 73
"@type": "WebPage", "@id": "https://example.com/article-url" } - Network accessline 74
"@id": "https://example.com/article-url"
skills/seo-programmatic/LICENSE.txt
skills/seo-schema/LICENSE.txt
skills/seo-schema/SKILL.md
- Network accessline 72
### Still supported (do not flag): - QAPage (expanded comment-thread properties 2026-03-24), DiscussionForumPosting, Education Q&A (Quiz / `eduQuestionType=Flashcard`). For e-commerce, **hasAdultConsideration** (added 2026-05-20; value `htt - Network accessline 73
- QAPage (expanded comment-thread properties 2026-03-24), DiscussionForumPosting, Education Q&A (Quiz / `eduQuestionType=Flashcard`). For e-commerce, **hasAdultConsideration** (added 2026-05-20; value `https://schema.org/SexualContentConsid - Network accessline 90
{ "@context": "https://schema.org", - Network accessline 91
"@context": "https://schema.org", - Network accessline 111
{ "@context": "https://schema.org", - Network accessline 112
"@context": "https://schema.org", - Network accessline 135
{ "@context": "https://schema.org", - Network accessline 136
"@context": "https://schema.org",
skills/seo-schema/references/deprecated-types-2024-2026.md
- Network accessline 10
Announced at [Simplifying our Search rich results](https://developers.google.com/search/blog/2025/06/simplifying-search-results) - Network accessline 11
[Simplifying our Search rich results](https://developers.google.com/search/blog/2025/06/simplifying-search-results) - Network accessline 69
- Google retirement announcement (June 2025): https://developers.google.com/search/blog/2025/06/simplifying-search-results - Network accessline 70
- Special Announcement deprecation (July 2025): https://developers.google.com/search/blog/2025/06/simplifying-search-results - Network accessline 71
- HowTo retirement (September 2023): https://developers.google.com/search/blog/2023/08/howto-faq-changes - Network accessline 72
- FAQ restriction (August 2023): https://developers.google.com/search/blog/2023/08/howto-faq-changes - Network accessline 73
- FAQ rich result retirement (May 7, 2026): https://developers.google.com/search/updates#removing-faq-rich-result
skills/seo-sitemap/LICENSE.txt
skills/seo-sitemap/SKILL.md
- Network accessline 66
Google documents three subtypes with their own rules, validate per-subtype: - **Image** (`http://www.google.com/schemas/sitemap-image/1.1`): only two valid - Network accessline 67
- **Image** (`http://www.google.com/schemas/sitemap-image/1.1`): only two valid - Network accessline 113
<?xml version="1.0" encoding="UTF-8"?> <urlset xmlns="http://www.sitemaps.org/schemas/sitemap/0.9"> - Network accessline 114
<urlset xmlns="http://www.sitemaps.org/schemas/sitemap/0.9"> - Network accessline 115
<url> <loc>https://example.com/page</loc> <lastmod>2026-02-07</lastmod> - Network accessline 116
<loc>https://example.com/page</loc> - Network accessline 124
<?xml version="1.0" encoding="UTF-8"?> <sitemapindex xmlns="http://www.sitemaps.org/schemas/sitemap/0.9"> - Network accessline 125
<sitemapindex xmlns="http://www.sitemaps.org/schemas/sitemap/0.9"> - Network accessline 126
<sitemap> <loc>https://example.com/sitemap-pages.xml</loc> <lastmod>2026-02-07</lastmod> - Network accessline 127
<loc>https://example.com/sitemap-pages.xml</loc> - Network accessline 129
</sitemap> <sitemap> <loc>https://example.com/sitemap-posts.xml</loc> - Network accessline 130
<sitemap> <loc>https://example.com/sitemap-posts.xml</loc> <lastmod>2026-02-07</lastmod> - Network accessline 131
<loc>https://example.com/sitemap-posts.xml</loc>
skills/seo-technical/LICENSE.txt
skills/seo-technical/SKILL.md
- Network accessline 169
Google documents it as "a workaround and not a recommended solution" because of the added complexity and resource cost. See https://developers.google.com/search/docs/crawling-indexing/javascript/dynamic-rendering - Network accessline 171
See https://developers.google.com/search/docs/crawling-indexing/javascript/dynamic-rendering - Network accessline 213
"${CLAUDE_PLUGIN_ROOT}/scripts/claude-seo" run agent_ux_check.py https://example.com --json - Network accessline 258
`url_safety` refuses loopback and private addresses by default, so `http://localhost:3000` and a staging host on Tailscale fail with "Blocked hostname" or "Blocked IP literal". That default is deliberate: these scripts follow URLs found on - Network accessline 263
CLAUDE_SEO_LOCAL_TARGETS="localhost:3000,127.0.0.1:8080,100.101.102.103" \ "${CLAUDE_PLUGIN_ROOT}/scripts/claude-seo" run fetch_page.py http://localhost:3000/ - Network accessline 264
"${CLAUDE_PLUGIN_ROOT}/scripts/claude-seo" run fetch_page.py http://localhost:3000/
skills/seo-technical/references/stack-cve-exposure.md
- Network accessline 44
taking the system offline until it can be fully mitigated." - **Sources:** - https://www.php.net/archive/2026.php#2026-10-21-5 - Network accessline 45
- **Sources:** - https://www.php.net/archive/2026.php#2026-10-21-5 - https://github.com/php/php-src/security/advisories/GHSA-w8hw-w9fx-j79w - Network accessline 46
- https://www.php.net/archive/2026.php#2026-10-21-5 - Network accessline 47
- https://github.com/php/php-src/security/advisories/GHSA-w8hw-w9fx-j79w - Network accessline 48
- https://github.com/php/php-src/security/advisories/GHSA-6wmf-4rv5-p3rp - Network accessline 49
- https://www.ncsc.gov.uk/news/critical-security-issue-affecting-php - Network accessline 56
"${CLAUDE_PLUGIN_ROOT}/scripts/claude-seo" run fetch_page.py https://example.com --json - Network accessline 64
| `Server:` value (Apache/LiteSpeed/nginx) | response header | Host software, not proof of PHP by itself | | `Set-Cookie: PHPSESSID=` | response header | PHP session in use | | `Link: <...wp-json/>; rel="https://api.w.org/"` | response head - Network accessline 65
| `Set-Cookie: PHPSESSID=` | response header | PHP session in use | | `Link: <...wp-json/>; rel="https://api.w.org/"` | response header/HTML | WordPress (PHP) | | `<meta name="generator" content="WordPress ...">` | HTML `<head>` | WordPress - Network accessline 66
| `Link: <...wp-json/>; rel="https://api.w.org/"` | response header/HTML | WordPress (PHP) |
skills/seo/LICENSE.txt
skills/seo/SKILL.md
- Network accessline 157
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ Built by agricidaniel. Join the AI Marketing Hub community 🆓 Free → https://www.skool.com/ai-marketing-hub - Network accessline 158
Built by agricidaniel. Join the AI Marketing Hub community 🆓 Free → https://www.skool.com/ai-marketing-hub ⚡ Pro → https://www.skool.com/ai-marketing-hub-pro - Network accessline 159
🆓 Free → https://www.skool.com/ai-marketing-hub - Network accessline 160
⚡ Pro → https://www.skool.com/ai-marketing-hub-pro
skills/seo/references/cwv-thresholds.md
- Network accessline 17
- **Thresholds unchanged since original definitions**: ignore claims of "tightened thresholds" from SEO blogs. - **Anti-hallucination guard**: There is **no "Visual Stability Index" (VSI)**, **no "Core Web Vitals 2.0"**, no "Engagement Reli - Network accessline 19
- As of the **August 2026 CrUX dataset** (18,294,881 origins, published 2026-09-08): **55.6%** of origins pass all three CWV (down 0.2 points MoM; July 2026 was 55.7%), and Chrome flags the continued INP regression as a cause for concern wi - Network accessline 39
soft-navigation entries so RUM tools can measure LCP, INP and CLS per SPA route change. Chrome has not yet said how CrUX will report soft navigations (https://developer.chrome.com/docs/web-platform/soft-navigations-experiment, - Network accessline 40
change. Chrome has not yet said how CrUX will report soft navigations (https://developer.chrome.com/docs/web-platform/soft-navigations-experiment, updated 2026-09-02). - Network accessline 41
(https://developer.chrome.com/docs/web-platform/soft-navigations-experiment, - Network accessline 97
[Credential-related source omitted] - Network accessline 98
[Credential-related source omitted] - Access to secretsline 98
[Credential-related source omitted] - Network accessline 99
"https://www.googleapis.com/pagespeedonline/v5/runPagespeed?url=URL" - Network accessline 107
- **Lighthouse 13.5.0** (September 2026, latest stable): Lighthouse 13.0 (Oct 2025) migrated performance audits to **insight-based audits** aligned with the DevTools Performance panel and removed legacy audits (first-meaningful-paint, font- - Network accessline 108
- **PSI / PSI API v5** run Lighthouse 13.x (updated 2025-10-20). The **PWA category was removed in Lighthouse 12**; do not parse a `pwa` category. Mobile lab **CPU throttling was increased on 2024-12-05** (higher mobile lab TBT since then; - Network accessline 109
- **CrUX Vis** replaced the CrUX Dashboard (Looker Studio), which was **shut down at end of November 2025** (October 2025 was its final dataset; the CrUX Connector is no longer updated). Use [CrUX Vis](https://cruxvis.withgoogle.com) or the
skills/seo/references/free-backlink-sources.md
- Network accessline 50
### Moz API (Tier 1) - **Endpoint:** `https://api.moz.com/jsonrpc` (JSON-RPC 2.0) - Network accessline 50
### Moz API (Tier 1) - **Endpoint:** `https://api.moz.com/jsonrpc` (JSON-RPC 2.0) - Network accessline 51
- **Endpoint:** `https://api.moz.com/jsonrpc` (JSON-RPC 2.0) - Network accessline 51
- **Endpoint:** `https://api.moz.com/jsonrpc` (JSON-RPC 2.0) - Network accessline 52
- **Free tier:** 2,500 rows/month, 1 request per 10 seconds (verify current limits at https://moz.com/products/api: free tier limits may change) - Network accessline 52
- **Free tier:** 2,500 rows/month, 1 request per 10 seconds (verify current limits at https://moz.com/products/api: free tier limits may change) - Network accessline 53
- **Signup:** https://moz.com/products/api (credit card required, not charged) - Network accessline 53
- **Signup:** https://moz.com/products/api (credit card required, not charged) - Network accessline 61
### Bing Webmaster Tools (Tier 2) - **Endpoint:** `https://ssl.bing.com/webmaster/api.svc/json/` - Network accessline 61
### Bing Webmaster Tools (Tier 2) - **Endpoint:** `https://ssl.bing.com/webmaster/api.svc/json/` - Network accessline 62
- **Endpoint:** `https://ssl.bing.com/webmaster/api.svc/json/` - Network accessline 62
- **Endpoint:** `https://ssl.bing.com/webmaster/api.svc/json/` - Network accessline 63
- **Free tier:** Unlimited for verified sites - **Signup:** https://www.bing.com/webmasters (Microsoft account) - **Comparison:** Backlink-domain gaps between two registered properties that - Network accessline 63
- **Free tier:** Unlimited for verified sites - **Signup:** https://www.bing.com/webmasters (Microsoft account) - **Comparison:** Backlink-domain gaps between two registered properties that - Network accessline 64
- **Signup:** https://www.bing.com/webmasters (Microsoft account) - Network accessline 64
- **Signup:** https://www.bing.com/webmasters (Microsoft account)
skills/seo/references/local-schema-multilocation.md
- Network accessline 8
// Homepage: Organization with branchOf references { "@context": "https://schema.org", - Network accessline 8
// Homepage: Organization with branchOf references { "@context": "https://schema.org", - Network accessline 8
// Homepage: Organization with branchOf references { "@context": "https://schema.org", - Network accessline 9
{ "@context": "https://schema.org", "@type": "Organization", - Network accessline 9
{ "@context": "https://schema.org", "@type": "Organization", - Network accessline 9
{ "@context": "https://schema.org", "@type": "Organization", - Network accessline 10
"@context": "https://schema.org", - Network accessline 10
"@context": "https://schema.org", - Network accessline 10
"@context": "https://schema.org", - Network accessline 11
"@type": "Organization", "@id": "https://example.com/#org", "name": "Brand Name", - Network accessline 11
"@type": "Organization", "@id": "https://example.com/#org", "name": "Brand Name", - Network accessline 11
"@type": "Organization", "@id": "https://example.com/#org", "name": "Brand Name", - Network accessline 12
"@id": "https://example.com/#org", - Network accessline 12
"@id": "https://example.com/#org", - Network accessline 12
"@id": "https://example.com/#org", - Network accessline 13
"name": "Brand Name", "url": "https://example.com" } - Network accessline 13
"name": "Brand Name", "url": "https://example.com" } - Network accessline 13
"name": "Brand Name", "url": "https://example.com" } - Network accessline 14
"url": "https://example.com" - Network accessline 14
"url": "https://example.com" - Network accessline 14
"url": "https://example.com" - Network accessline 17
// Each location page: individual LocalBusiness { "@context": "https://schema.org", - Network accessline 17
// Each location page: individual LocalBusiness { "@context": "https://schema.org", - Network accessline 17
// Each location page: individual LocalBusiness { "@context": "https://schema.org", - Network accessline 18
{ "@context": "https://schema.org", "@type": "Dentist", - Network accessline 18
{ "@context": "https://schema.org", "@type": "Dentist", - Network accessline 18
{ "@context": "https://schema.org", "@type": "Dentist", - Network accessline 19
"@context": "https://schema.org", - Network accessline 19
"@context": "https://schema.org", - Network accessline 19
"@context": "https://schema.org", - Network accessline 20
"@type": "Dentist", "@id": "https://example.com/locations/downtown/#location", "name": "Brand Name - Downtown", - Network accessline 20
"@type": "Dentist", "@id": "https://example.com/locations/downtown/#location", "name": "Brand Name - Downtown", - Network accessline 20
"@type": "Dentist", "@id": "https://example.com/locations/downtown/#location", "name": "Brand Name - Downtown", - Network accessline 21
"@id": "https://example.com/locations/downtown/#location", - Network accessline 21
"@id": "https://example.com/locations/downtown/#location", - Network accessline 21
"@id": "https://example.com/locations/downtown/#location", - Network accessline 22
"name": "Brand Name - Downtown", "branchOf": { "@id": "https://example.com/#org" }, "address": { ... }, - Network accessline 22
"name": "Brand Name - Downtown", "branchOf": { "@id": "https://example.com/#org" }, "address": { ... }, - Network accessline 22
"name": "Brand Name - Downtown", "branchOf": { "@id": "https://example.com/#org" }, "address": { ... }, - Network accessline 23
"branchOf": { "@id": "https://example.com/#org" }, - Network accessline 23
"branchOf": { "@id": "https://example.com/#org" }, - Network accessline 23
"branchOf": { "@id": "https://example.com/#org" },
skills/seo/references/maps-api-endpoints.md
- Network accessline 22
**Endpoint:** `POST https://api.dataforseo.com/v3/serp/google/maps/live/advanced` - Network accessline 22
**Endpoint:** `POST https://api.dataforseo.com/v3/serp/google/maps/live/advanced` - Network accessline 23
**Pricing source:** https://dataforseo.com/pricing - Network accessline 23
**Pricing source:** https://dataforseo.com/pricing - Network accessline 57
**Endpoint:** `POST https://api.dataforseo.com/v3/business_data/google/my_business_info/live` - Network accessline 57
**Endpoint:** `POST https://api.dataforseo.com/v3/business_data/google/my_business_info/live` - Network accessline 58
**Pricing source:** https://dataforseo.com/pricing/business-data - Network accessline 58
**Pricing source:** https://dataforseo.com/pricing/business-data - Network accessline 78
**Endpoint:** `POST https://api.dataforseo.com/v3/business_data/google/reviews/task_post` - Network accessline 78
**Endpoint:** `POST https://api.dataforseo.com/v3/business_data/google/reviews/task_post` - Network accessline 79
**Pricing source:** https://dataforseo.com/pricing/business-data - Network accessline 79
**Pricing source:** https://dataforseo.com/pricing/business-data - Network accessline 107
**Endpoint:** `POST https://api.dataforseo.com/v3/business_data/google/questions_and_answers/live` - Network accessline 107
**Endpoint:** `POST https://api.dataforseo.com/v3/business_data/google/questions_and_answers/live` - Network accessline 113
**Note:** Google discontinued its own My Business Q&A API on 2025-11-03 (https://developers.google.com/my-business/content/sunset-dates); public Q&A is reportedly being replaced by an AI "Ask" experience (secondary reports only). This endpo - Network accessline 113
**Note:** Google discontinued its own My Business Q&A API on 2025-11-03 (https://developers.google.com/my-business/content/sunset-dates); public Q&A is reportedly being replaced by an AI "Ask" experience (secondary reports only). This endpo - Network accessline 119
**Endpoint:** `POST https://api.dataforseo.com/v3/business_data/business_listings/search/live` - Network accessline 119
**Endpoint:** `POST https://api.dataforseo.com/v3/business_data/business_listings/search/live`
skills/seo/references/maps-free-apis.md
- Network accessline 13
**Base URL:** `https://overpass-api.de/api/interpreter` - Network accessline 13
**Base URL:** `https://overpass-api.de/api/interpreter` - Network accessline 14
**Docs:** https://wiki.openstreetmap.org/wiki/Overpass_API - Network accessline 14
**Docs:** https://wiki.openstreetmap.org/wiki/Overpass_API - Network accessline 28
curl -s "https://overpass-api.de/api/interpreter" \ - Network accessline 28
curl -s "https://overpass-api.de/api/interpreter" \ - Network accessline 34
curl -s "https://overpass-api.de/api/interpreter" \ - Network accessline 34
curl -s "https://overpass-api.de/api/interpreter" \ - Network accessline 40
curl -s "https://overpass-api.de/api/interpreter" \ - Network accessline 40
curl -s "https://overpass-api.de/api/interpreter" \ - Network accessline 65
- Data quality varies by region (excellent in Europe, inconsistent elsewhere) - Volunteer-contributed data; may be outdated - Interactive tester: https://overpass-turbo.eu/ - Network accessline 65
- Data quality varies by region (excellent in Europe, inconsistent elsewhere) - Volunteer-contributed data; may be outdated - Interactive tester: https://overpass-turbo.eu/ - Network accessline 67
- Interactive tester: https://overpass-turbo.eu/ - Network accessline 67
- Interactive tester: https://overpass-turbo.eu/ - Network accessline 73
**Base URL:** `https://api.geoapify.com/v2/places` - Network accessline 73
**Base URL:** `https://api.geoapify.com/v2/places` - Network accessline 74
**Docs:** https://apidocs.geoapify.com/docs/places/ - Network accessline 74
**Docs:** https://apidocs.geoapify.com/docs/places/ - Network accessline 75
**Pricing:** https://www.geoapify.com/pricing - Network accessline 75
**Pricing:** https://www.geoapify.com/pricing - Network accessline 87
[Credential-related source omitted] - Network accessline 87
[Credential-related source omitted] - Network accessline 109
**Base URL:** `https://nominatim.openstreetmap.org` - Network accessline 109
**Base URL:** `https://nominatim.openstreetmap.org` - Network accessline 110
**Docs:** https://nominatim.org/release-docs/latest/api/Overview/ - Network accessline 110
**Docs:** https://nominatim.org/release-docs/latest/api/Overview/ - Network accessline 111
**Policy:** https://operations.osmfoundation.org/policies/nominatim/ - Network accessline 111
**Policy:** https://operations.osmfoundation.org/policies/nominatim/ - Network accessline 124
curl -s "https://nominatim.openstreetmap.org/search?q=123+Main+St+Austin+TX&format=json&addressdetails=1" \ - Network accessline 124
curl -s "https://nominatim.openstreetmap.org/search?q=123+Main+St+Austin+TX&format=json&addressdetails=1" \ - Network accessline 131
curl -s "https://nominatim.openstreetmap.org/reverse?lat=40.7128&lon=-74.0060&format=json" \ - Network accessline 131
curl -s "https://nominatim.openstreetmap.org/reverse?lat=40.7128&lon=-74.0060&format=json" \ - Network accessline 150
# Nominatim: enforce 1 req/sec with sleep for addr in "${addresses[@]}"; do curl -s "https://nominatim.openstreetmap.org/search?q=${addr}&format=json" \ - Network accessline 150
# Nominatim: enforce 1 req/sec with sleep for addr in "${addresses[@]}"; do curl -s "https://nominatim.openstreetmap.org/search?q=${addr}&format=json" \ - Network accessline 151
for addr in "${addresses[@]}"; do curl -s "https://nominatim.openstreetmap.org/search?q=${addr}&format=json" \ -H "User-Agent: claude-seo/1.7.0" - Network accessline 151
for addr in "${addresses[@]}"; do curl -s "https://nominatim.openstreetmap.org/search?q=${addr}&format=json" \ -H "User-Agent: claude-seo/1.7.0" - Network accessline 152
curl -s "https://nominatim.openstreetmap.org/search?q=${addr}&format=json" \ - Network accessline 152
curl -s "https://nominatim.openstreetmap.org/search?q=${addr}&format=json" \
skills/seo/references/maps-gbp-checklist.md
skills/seo/references/schema-types.md
- Network accessline 95
| ConferenceEvent | 2025-12-08 | Schema.org v29.4 addition (schema.org/docs/releases.html); no Google rich result | | PerformingArtsEvent | Long-standing schema.org type | Event subtype; no dedicated Google rich result | | hasAdultConsidera - Network accessline 95
| ConferenceEvent | 2025-12-08 | Schema.org v29.4 addition (schema.org/docs/releases.html); no Google rich result | | PerformingArtsEvent | Long-standing schema.org type | Event subtype; no dedicated Google rich result | | hasAdultConsidera - Network accessline 96
| PerformingArtsEvent | Long-standing schema.org type | Event subtype; no dedicated Google rich result | | hasAdultConsideration | 2026-05-20 | Product variant / Merchant listing; **required for adult-oriented products**; Google Search supp - Network accessline 96
| PerformingArtsEvent | Long-standing schema.org type | Event subtype; no dedicated Google rich result | | hasAdultConsideration | 2026-05-20 | Product variant / Merchant listing; **required for adult-oriented products**; Google Search supp - Network accessline 97
| hasAdultConsideration | 2026-05-20 | Product variant / Merchant listing; **required for adult-oriented products**; Google Search supports only `https://schema.org/SexualContentConsideration` | - Network accessline 97
| hasAdultConsideration | 2026-05-20 | Product variant / Merchant listing; **required for adult-oriented products**; Google Search supports only `https://schema.org/SexualContentConsideration` | - Network accessline 120
1. ✅ `@context` is `"https://schema.org"` (not http) - Network accessline 120
1. ✅ `@context` is `"https://schema.org"` (not http) - Network accessline 131
- [Google Rich Results Test](https://search.google.com/test/rich-results) - Network accessline 131
- [Google Rich Results Test](https://search.google.com/test/rich-results) - Network accessline 132
- [Schema.org Validator](https://validator.schema.org/) - Network accessline 132
- [Schema.org Validator](https://validator.schema.org/)
How the signals fit together
Facts from a static read of the files at the pinned commit. They describe what the code does, not why.
Some files could not be read; the facts below still hold.
Signal confidence: 500 facts
- Network access in code of the plugin configuration.claude-plugin/marketplace.json:1High confidence
- Network access in code of the plugin configuration.claude-plugin/marketplace.json:2High confidence
- Network access in code of the plugin configuration.claude-plugin/marketplace.json:15High confidence
- Network access in code of the plugin configuration.claude-plugin/marketplace.json:16High confidence
- Network access in code of the plugin configuration.claude-plugin/marketplace.json:17High confidence
- Network access in code of the plugin configuration.claude-plugin/marketplace.json:18High confidence
- Network access in code of the plugin configuration.claude-plugin/marketplace.json:19High confidence
- Network access in code of the plugin configuration.claude-plugin/marketplace.json:20High confidence
- Network access in code of the plugin configuration.claude-plugin/marketplace.json:71High confidence
- Network access in code of the plugin configuration.claude-plugin/marketplace.json:72High confidence
- Network access in code of the plugin configuration.claude-plugin/marketplace.json:73High confidence
- Network access in code of the plugin configuration.claude-plugin/marketplace.json:74High confidence
- Network access in code of the plugin configuration.claude-plugin/marketplace.json:75High confidence
- Network access in code of the plugin configuration.claude-plugin/marketplace.json:76High confidence
- Network access in code of the plugin configuration.claude-plugin/plugin.json:5High confidence
- Network access in code of the plugin configuration.claude-plugin/plugin.json:6High confidence
- Network access in code of the plugin configuration.claude-plugin/plugin.json:7High confidence
- Network access in code of the plugin configuration.claude-plugin/plugin.json:8High confidence
- Network access in code of the plugin configuration.claude-plugin/plugin.json:9High confidence
- Network access in code of the plugin configuration.claude-plugin/plugin.json:10High confidence
- Network access in code of the plugin configuration.claude-plugin/plugin.json:11High confidence
- Network access in prose of the SKILL.mdseo-ahrefs/SKILL.md:16Low confidence
- Network access in prose of the SKILL.mdseo-ahrefs/SKILL.md:17Low confidence
- Network access in prose of documentationseo-image-gen/LICENSE.txt:3Low confidence
- Network access in prose of documentationseo-image-gen/LICENSE.txt:4Low confidence
- Network access in prose of the SKILL.mdseo-image-gen/SKILL.md:22Low confidence
- Network access in code of the SKILL.mdseo-image-gen/SKILL.md:104High confidence
- Network access in code of the SKILL.mdseo-image-gen/SKILL.md:105High confidence
- Network access in code of the SKILL.mdseo-image-gen/SKILL.md:106High confidence
- Network access in code of the SKILL.mdseo-image-gen/SKILL.md:114High confidence
- Network access in prose of the SKILL.mdseo-image-gen/SKILL.md:127Low confidence
- Network access in prose of the SKILL.mdseo-image-gen/SKILL.md:128Low confidence
- Network access in prose of the SKILL.mdseo-image-gen/SKILL.md:143Low confidence
- Network access in prose of the SKILL.mdseo-image-gen/SKILL.md:144Low confidence
- Network access in prose of the SKILL.mdseo-image-gen/SKILL.md:145Low confidence
- Access to secrets in the frontmatter of the SKILL.md: a variable, placeholder or call, not a stored valueseo-bing/SKILL.md:6Low confidence
- Network access in prose of documentationseo-dataforseo/LICENSE.txt:3Low confidence
- Network access in prose of documentationseo-dataforseo/LICENSE.txt:4Low confidence
- Network access in prose of documentationseo-firecrawl/LICENSE.txt:3Low confidence
- Network access in prose of documentationseo-firecrawl/LICENSE.txt:4Low confidence
- Access to secrets in prose of the SKILL.mdseo-firecrawl/SKILL.md:193Low confidence
- Network access in prose of the SKILL.mdseo-matomo/SKILL.md:18Low confidence
- Network access in prose of the SKILL.mdseo-matomo/SKILL.md:19Low confidence
- Network access in prose of the SKILL.mdseo-matomo/SKILL.md:65Low confidence
- Network access in prose of the SKILL.mdseo-matomo/SKILL.md:66Low confidence
- Network access in prose of the SKILL.mdseo-matomo/SKILL.md:67Low confidence
- Network access in prose of the SKILL.mdseo-matomo/SKILL.md:68Low confidence
- Access to secrets in the frontmatter of the SKILL.md: a variable, placeholder or call, not a stored valueseo-profound/SKILL.md:6Low confidence
- Access to secrets in prose of the SKILL.mdseo-profound/SKILL.md:20Low confidence
- Access to secrets in the frontmatter of the SKILL.md: a variable, placeholder or call, not a stored valueseo-seranking/SKILL.md:6Low confidence
and 450 more
Only the first 500 facts are listed.
Works with
| Agent | Status | Evidence | Install to |
|---|---|---|---|
| Claude Code | Native | Manifest .claude-plugin/marketplace.json | .claude/skills/<skill-name>/ |
| Codex | Native | Manifest AGENTS.md | .agents/skills/<skill-name>/ |
| Cursor | Compatible | Standard SKILL.md extensions/ahrefs/skills/seo-ahrefs/SKILL.md | .cursor/skills/<skill-name>/ |
| Gemini CLI | Compatible | Standard SKILL.md extensions/ahrefs/skills/seo-ahrefs/SKILL.md | .gemini/skills/<skill-name>/ |
| GitHub Copilot | Compatible | Standard SKILL.md extensions/ahrefs/skills/seo-ahrefs/SKILL.md | .github/skills/<skill-name>/ |
| OpenCode | Compatible | Standard SKILL.md extensions/ahrefs/skills/seo-ahrefs/SKILL.md | .opencode/skills/<skill-name>/ |
- Native The repository ships a manifest, folder or frontmatter field for this agent.
- Compatible A standard SKILL.md that this agent can read.
- Unknown No evidence either way.
Derived automatically from paths, manifests and frontmatter. Not tested on each agent.
Explore alternatives and comparisons
Add this badge to your README
It updates every night and links to this page.
[](https://hotskills.dev/skill/agricidaniel-claude-seo/)