---
name: seo-ecommerce
description: |
  E-commerce SEO audit and optimization for product pages, product schema, category taxonomy,
  and Korean marketplace presence.
  Triggers: product SEO, e-commerce audit, product schema, category SEO, Smart Store, marketplace SEO,
  상품 SEO, 이커머스 감사, 쇼핑몰 SEO.
---

# E-Commerce SEO Audit

## Purpose

Audit e-commerce sites for product page optimization, structured data validation, category taxonomy health, duplicate content issues, and Korean marketplace presence (Naver Smart Store, Coupang, Gmarket, 11번가).

## Core Capabilities

1. **Product Page SEO Audit** - Title, meta description, H1, image alt text, internal links, canonical tags
2. **Product Schema Validation** - Product, Offer, AggregateRating, Review, BreadcrumbList structured data
3. **Category Taxonomy Analysis** - Depth check, breadcrumbs, faceted navigation handling
4. **Duplicate Content Detection** - Parameter variants, product variants, pagination issues
5. **Korean Marketplace Presence** - Naver Smart Store, Coupang, Gmarket, 11번가

## Data Source Selection

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>
```

**OurSEO MCP (Claude Desktop equivalent):**
```
mcp__ourseo__crawl_website(url="<site>", max_pages=100)
mcp__ourseo__audit_page(url="<product-url>", audit_type="schema")
```

**Semrush MCP (e-commerce keyword + competitor):**
```
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
1. Discover product pages via our-seo-agent CLI, pre-fetched JSON, or sitemap crawl
2. For each product page check:
   - Title tag: contains product name, under 60 chars
   - Meta description: includes price/feature info, under 155 chars
   - Single H1 with product name
   - All product images have descriptive alt text
   - Canonical tag present and correct
   - Sufficient internal links (related products, breadcrumbs)
   - Open Graph tags for social sharing
3. Score severity: critical/high/medium/low

### 2. Product Schema Validation
1. Extract JSON-LD and Microdata from product pages
2. Validate Product type: name, image, description (required)
3. Validate Offer: price, priceCurrency, availability (required)
4. Validate AggregateRating: ratingValue, reviewCount (required)
5. Validate Review: author, reviewRating (required)
6. Check BreadcrumbList implementation
7. Assess Google rich result eligibility
8. Check Naver Shopping specific requirements (Korean name, KRW price, absolute image URLs)

### 3. Category Taxonomy Analysis
1. Crawl category pages from sitemap or homepage navigation
2. Measure taxonomy depth (warn if > 4 levels)
3. Check breadcrumb presence on every category page
4. Identify faceted navigation URLs that are indexable without proper canonicals
5. Count child category links for structure assessment

### 4. Duplicate Content Detection
1. Group URLs by base path (stripping query parameters)
2. Identify parameter variants (?color=, ?size=, ?sort=)
3. Detect product variant URL duplicates (e.g., /product-red vs /product-blue)
4. Flag paginated pages missing self-referencing canonicals

### 5. Korean Marketplace Presence
1. Extract brand name from site (og:site_name or title)
2. Search each marketplace for brand products:
   - Naver Smart Store (smartstore.naver.com)
   - Coupang (coupang.com)
   - Gmarket (gmarket.co.kr)
   - 11번가 (11st.co.kr)
3. Check Naver Smart Store-specific SEO elements
4. Verify naver-site-verification meta tag
5. Check Korean content ratio for Naver visibility

## Output Format

```markdown
## E-Commerce SEO Audit: [domain]

### Score: [0-100]/100

### Product Page Issues
- **Critical**: [count] issues
- **High**: [count] issues
- **Medium**: [count] issues
- **Low**: [count] issues

#### Top Issues
1. [severity] [issue_type] - [message]
   Recommendation: [fix]

### Category Structure
- Categories found: [count]
- Max depth: [number]
- Breadcrumbs present: [count]
- Faceted navigation issues: [count]

### Schema Validation
- Pages with schema: [count]/[total]
- Valid schemas: [count]
- Rich result eligible: [count]
- Common errors: [list]

### Korean Marketplaces
- Naver Smart Store: [Found/Not Found]
- Coupang: [Found/Not Found]
- Gmarket: [Found/Not Found]
- 11번가: [Found/Not Found]

### Recommendations
1. [Priority fixes ordered by impact]
```

## Common Issues

| Issue | Impact | Fix |
|-------|--------|-----|
| Missing Product schema | High | Add JSON-LD Product with offers |
| No canonical on product variants | High | Add self-referencing canonical |
| Images without alt text | High | Add product name to alt text |
| Category depth > 4 levels | Medium | Flatten taxonomy |
| Missing breadcrumbs | Medium | Add BreadcrumbList schema and visible nav |
| Faceted nav creating duplicates | High | Use canonical or noindex on filtered pages |
| Missing Naver verification | Medium | Add naver-site-verification meta tag |
| Price not in KRW for Korean market | Medium | Add KRW pricing to schema |

## Limitations

- Cannot access logged-in areas (member-only products)
- Marketplace search results may vary by region/IP
- Large catalogs require sampling (default 50 pages)
- Cannot validate JavaScript-rendered product content without headless browser

## Notion Output (Required)

All audit reports MUST be saved to OurDigital SEO Audit Log:
- **Database ID**: `2c8581e5-8a1e-8035-880b-e38cefc2f3ef`
- **Properties**: Issue (title), Site (url), Category (E-Commerce SEO), Priority, Found Date, Audit ID
- **Language**: Korean with English technical terms
- **Audit ID Format**: ECOM-YYYYMMDD-NNN
