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:
@@ -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
|
||||
|
||||
Reference in New Issue
Block a user