feat(seo-skills): multi-backend Data Source Selection (#7)

Replaces single-vendor (Ahrefs-only) tool defaults with a per-task
backend menu across all 14 SEO skills. Each skill now lists every
capable MCP in allowed-tools and documents how to pick between
Semrush, Ahrefs, OurSEO Agent (CLI + MCP), DataForSEO, and GSC
in its SKILL.md Data Source Selection section.

Tool stubs (~40 new files) populated per skill with capability
deltas, call patterns, and explicit "not for this skill when"
callouts so the menu is self-correcting.

Skills affected: 19-keyword-strategy, 20-serp-analysis,
21-position-tracking, 22-link-building, 23-content-strategy,
24-ecommerce, 25-kpi-framework, 26-international, 27-ai-visibility,
28-knowledge-graph, 31-competitor-intel, 32-crawl-budget,
33-migration-planner, 34-reporting-dashboard.

Co-authored-by: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
This commit is contained in:
Andrew Yim
2026-05-14 03:15:32 +09:00
committed by GitHub
parent 1ca84f67ed
commit e527fb4b0f
71 changed files with 2647 additions and 258 deletions

View File

@@ -21,25 +21,75 @@ Audit e-commerce sites for product page optimization, structured data validation
4. **Duplicate Content Detection** - Parameter variants, product variants, pagination issues
5. **Korean Marketplace Presence** - Naver Smart Store, Coupang, Gmarket, 11번가
## MCP Tool Usage
## Data Source Selection
### SEO Data
```
our-seo-agent CLI: Primary product page data source (future); use --input for pre-fetched JSON
WebSearch / WebFetch: Supplementary product page data
This skill spans multiple data classes (crawl + schema + keyword + marketplace presence). **Pick one backend per data class** — typically you'll combine: one for crawl/schema, one for keyword/competitor.
| Backend | Best for | Notes |
|---|---|---|
| **OurSEO** (CLI + MCP) | **Default** for product-page crawl, product schema validation, category taxonomy, canonical/duplicate detection | CLI: `our collect crawl`, `our audit tech`, `our build kg-schema`. MCP: `mcp__ourseo__crawl_website`, `mcp__ourseo__audit_page`. Owns the crawl/audit/schema-fix surface end-to-end. |
| **Semrush MCP** (`mcp__semrush__*`) | E-commerce keyword discovery, organic competitor research, third-party site audit | `keyword_research`, `organic_research`, `siteaudit_research``get_report_schema``execute_report`. |
| **Ahrefs MCP** (`mcp__ahrefs__*`) | Product/category backlinks; third-party site audit | `site-explorer-top-pages` (which product/category pages earn links), `site-audit-issues`, `site-audit-page-explorer`. |
| **OurSEO CLI — DataForSEO** (`our keywords *`, `our serp *`) | Korean-market keyword + SERP batch for product/category terms | Claude Code only. `--location 2410` for Korean. |
| **WebSearch / WebFetch** | Korean marketplace presence check (Naver Smart Store, Coupang, Gmarket, 11번가) | Korean marketplaces aren't covered by Semrush/Ahrefs at the listing level — verify presence with direct queries. |
| **DataForSEO MCP** (`mcp__dfs-mcp__*`) | Fallback when `our` CLI isn't running | Same data as `our keywords *` / `our serp *`. |
### How to pick
1. **User named a backend explicitly** → use it.
2. **User preference memory** — read `feedback_seo_tool_preferences.md`; honor the task-type default.
3. **Task is product schema / on-page audit / duplicate detection** → use **OurSEO** (it owns the schema + canonical + fix engine).
4. **Task is e-commerce keyword discovery** → Semrush MCP (English) or OurSEO CLI (`--location 2410` Korean).
5. **Task is Korean marketplace presence** → WebSearch/WebFetch (no MCP backend covers this).
6. **Default for general e-commerce audits**: **OurSEO** (crawl + schema + fix) **paired with** Semrush MCP (keyword + competitor signal).
7. **Still ambiguous + non-trivial** → ask once via `AskUserQuestion`.
### Backend call patterns
**OurSEO CLI (product-page crawl + schema audit, default):**
```bash
our collect crawl https://<site>.com --max-pages 100
our audit tech https://<site>.com
our analyze mysql-batch --session <id> --export missing-schema --format excel
our build kg-schema --type Product --name "<product>" --url <product-url>
```
### WebSearch for Marketplace Checks
**OurSEO MCP (Claude Desktop equivalent):**
```
WebSearch: Search for brand presence on Korean marketplaces
WebFetch: Fetch and analyze marketplace listing pages
mcp__ourseo__crawl_website(url="<site>", max_pages=100)
mcp__ourseo__audit_page(url="<product-url>", audit_type="schema")
```
### Notion for Report Storage
**Semrush MCP (e-commerce keyword + competitor):**
```
mcp__notion__notion-create-pages: Save audit report to SEO Audit Log database
mcp__semrush__keyword_research(query="<product term>", database="us")
mcp__semrush__organic_research(query="<competitor.com>", database="us")
mcp__semrush__siteaudit_research(query="<site.com>", database="us")
```
**Ahrefs MCP (top pages + site audit):**
```
mcp__ahrefs__site-explorer-top-pages(target="<site>", country="us", limit=100)
mcp__ahrefs__site-audit-issues(project_id="<id>")
mcp__ahrefs__site-audit-page-explorer(project_id="<id>")
```
**OurSEO CLI — Korean batch:**
```bash
our keywords ideas "<product>" --location 2410 --limit 50
our serp ranked-keywords <site.com> --location 2410 --limit 100
```
**Korean marketplace presence (WebSearch):**
```
WebSearch: smartstore.naver.com "<brand>"
WebSearch: coupang.com "<brand>"
WebSearch: gmarket.co.kr "<brand>"
WebSearch: 11st.co.kr "<brand>"
```
Always record the chosen data source(s) in the report **Overview** so future audits can compare like-for-like.
## Workflow
### 1. Product Page Audit

View File

@@ -1,8 +1,16 @@
name: seo-ecommerce
description: |
E-commerce SEO audit and optimization. Triggers: product SEO, e-commerce audit, product schema, category SEO, Smart Store, marketplace SEO.
# Allowed tools list every backend the skill can pull e-commerce data from.
# Per-task selection happens in SKILL.md > Data Source Selection — NOT here.
allowed-tools:
- mcp__ahrefs__*
- mcp__ourseo__* # default for crawl + schema audit (audit_page, crawl_website)
- mcp__semrush__* # e-commerce keyword + organic_research + siteaudit_research
- mcp__ahrefs__* # site-explorer-* for product/category backlinks; site-audit-*
- mcp__claude_ai_Ahrefs__* # Ahrefs (Claude.ai namespace)
- mcp__dfs-mcp__* # DataForSEO MCP fallback
- Bash # `our` CLI: crawl, audit, schema commands
- mcp__notion__*
- WebSearch
- WebFetch

View File

@@ -1,15 +1,30 @@
# Ahrefs
# Ahrefs MCP
> TODO: Document tool usage for this skill
Use for **product/category backlinks** and third-party **site audit** views on e-commerce sites. Namespace: `mcp__ahrefs__*` / `mcp__claude_ai_Ahrefs__*`.
## Available Commands
## Key endpoints
- [ ] List commands
- `site-explorer-top-pages` — which product/category pages earn the most links/traffic
- `site-explorer-pages-by-backlinks` — link equity distribution across the catalog
- `site-audit-issues` — schema, canonical, parameter-URL issues from Ahrefs' crawler
- `site-audit-page-explorer` — per-page issue surfacing
- `keywords-explorer-overview` — product-term volume / KD
## Configuration
## Example
- [ ] Add configuration details
```
mcp__ahrefs__site-explorer-top-pages(target="<store>", country="us", limit=100)
mcp__ahrefs__site-audit-issues(project_id="<id>")
mcp__ahrefs__keywords-explorer-overview(keyword="<product>", country="us")
```
## Examples
## Strengths for this skill
- [ ] Add usage examples
- Surfaces which **product pages** earn external links — informs which products deserve hero-page promotion.
- Site Audit catches canonical / parameter-URL issues across the catalog without running your own crawler.
## Not for this skill when
- **Product schema validation** — OurSEO `audit_page` + `build kg-schema` owns this end-to-end.
- **Korean marketplace presence** (Naver Smart Store, Coupang, Gmarket, 11번가) — Ahrefs doesn't cover these. Use WebSearch.
- **Live catalog crawl of the target** — OurSEO `crawl_website` is more configurable.

View File

@@ -0,0 +1,44 @@
# OurSEO Agent (CLI + MCP)
**Default** for e-commerce crawl, product schema validation, category taxonomy audit, duplicate/canonical detection, and the schema-fix path. Only backend that owns the catalog audit → fix workflow end-to-end.
## CLI commands (Claude Code)
```bash
# Crawl the catalog
our collect crawl https://<store> --max-pages 500
our collect distributed https://<store> --workers 8 --max-pages 50000
# Technical + schema audit
our audit tech https://<store>
our analyze mysql-batch --session <id> --export missing-schema --format excel
# Build / fix Product schema
our build kg-schema --type Product --name "<product>" --url <product-url> --auto-sameas
our fix entity-schema --site https://<store> --type Product --entity-name "<product>" --cms <ghost|wordpress|strapi> --deploy
# Korean batch keyword work
our keywords ideas "<product>" --location 2410 --limit 50
our serp ranked-keywords <store> --location 2410 --limit 100
```
## MCP tools (Claude Desktop)
```
mcp__ourseo__crawl_website(url="<store>", max_pages=500)
mcp__ourseo__audit_page(url="<product-url>", audit_type="schema")
mcp__ourseo__audit_page(url="<product-url>", audit_type="tech")
```
## Strengths for this skill
- **Schema validation + deploy** — Product, Offer, AggregateRating, Review, BreadcrumbList. Validates AND can fix via CMS adapters.
- **Canonical + duplicate detection** — built into the crawl + audit stage.
- **Korean market batch** — `--location 2410` covers Korean e-commerce keyword work cheaply.
- **Distributed crawler** scales to multi-tenant catalog audits.
## Not for this skill when
- **Competitor organic research** — Semrush `organic_research` is cleaner.
- **Product/category backlink analysis** — Ahrefs `site-explorer-top-pages` + backlinks.
- **Korean marketplace presence detection** — WebSearch (Naver Smart Store, Coupang, Gmarket, 11번가).

View File

@@ -0,0 +1,34 @@
# Semrush MCP
Use for **e-commerce keyword discovery**, **organic competitor research**, and **third-party site audit** of stores.
Call pattern: discovery → `get_report_schema``execute_report`.
## Key reports
- `keyword_research` — product / category term volume + KD + intent
- `organic_research` — competitor store organic keywords + top pages
- `overview_research` — store-level traffic / visibility
- `siteaudit_research` — store-wide technical SEO audit
## Example
```
mcp__semrush__keyword_research(query="<product term>", database="us")
mcp__semrush__organic_research(query="<competitor store>", database="us")
mcp__semrush__siteaudit_research(query="<your store>", database="us")
```
Korean market: `database="kr"`.
## Strengths for this skill
- Cleanest competitor-store organic view (which product terms drive their traffic).
- Site audit catches site-wide technical issues quickly.
- `keyword_research` is the default for product/category term expansion.
## Not for this skill when
- **Product schema validation** — OurSEO owns this.
- **Korean marketplace presence** — WebSearch only.
- **Catalog crawl with custom configuration** — OurSEO `crawl_website`.