需要提供什么
商品与类目 URL、页面 HTML、结构化数据
你会得到什么
商品页问题、canonical / 索引建议与修复清单
使用前准备
完整分析需 claude-seo 的脚本与 references;真实价格、库存和评价必须由商家提供。
使用边界
不得为通过检查编造商品数据;结构化数据与技术修复不保证富结果或 AI 购物推荐。
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 |
1. Product Page Analysis (No DataForSEO Needed)
Fetch and parse any product page for on-page SEO quality.
Workflow
1. "${CLAUDE_PLUGIN_ROOT}/scripts/claude-seo" run render_page.py <url> --mode auto → raw/rendered HTML
2. "${CLAUDE_PLUGIN_ROOT}/scripts/claude-seo" run parse_html.py --url <url> → SEO elements
3. Analyze product-specific signals (below)
Product SEO Checklist
Title Tag
Meta Description
Heading Structure
Product Images
Internal Linking
Content Quality
Scoring
| Category |
Weight |
Criteria |
| Schema completeness |
25% |
Required + recommended Product fields |
| Title & meta |
15% |
Keyword placement, length, format |
| Image optimization |
20% |
Alt text, format, sizing, count |
| Content quality |
20% |
Unique description, specs, reviews |
| Internal linking |
10% |
Breadcrumbs, related products, categories |
| Technical |
10% |
Page speed, mobile rendering, canonical |
2. Google Shopping Intelligence (DataForSEO Merchant API)
Live competitive analysis from Google Shopping results.
Cost Guardrail (MANDATORY)
Before EVERY Merchant API call:
"${CLAUDE_PLUGIN_ROOT}/scripts/claude-seo" run dataforseo_costs.py check merchant_google_products_search
"status": "approved" -- proceed
"status": "needs_approval" -- show cost, ask user
"status": "blocked" -- stop, inform user
After each call:
"${CLAUDE_PLUGIN_ROOT}/scripts/claude-seo" run dataforseo_costs.py log merchant_google_products_search <cost>
Workflow
# Product search: who sells what at what price
"${CLAUDE_PLUGIN_ROOT}/scripts/claude-seo" run dataforseo_merchant.py search "<keyword>" --marketplace google
# Seller analysis: merchant ratings and dominance
"${CLAUDE_PLUGIN_ROOT}/scripts/claude-seo" run dataforseo_merchant.py sellers "<keyword>"
# Normalize results for analysis
"${CLAUDE_PLUGIN_ROOT}/scripts/claude-seo" run dataforseo_normalize.py results.json --module merchant
Analysis Outputs
Pricing Intelligence
- Price distribution: min, max, median, P25, P75
- Price outliers (> 2 standard deviations from median)
- Price-to-rating correlation
- Currency normalization to USD (or user-specified)
Seller Landscape
- Top 10 sellers by listing count
- Merchant rating distribution
- Free shipping prevalence
- New vs established sellers
Product Listing Quality
- Title keyword patterns in top listings
- Average rating and review count benchmarks
- Image count per listing
- Availability status distribution
Load references/marketplace-endpoints.md for full API parameter details.
3. Amazon Marketplace (DataForSEO)
Cross-marketplace intelligence comparing Google Shopping and Amazon.
Cost Guardrail (MANDATORY)
"${CLAUDE_PLUGIN_ROOT}/scripts/claude-seo" run dataforseo_costs.py check merchant_amazon_products_search
Amazon endpoints are in the warn_endpoints set -- always requires user approval.
Workflow
# Amazon product search
"${CLAUDE_PLUGIN_ROOT}/scripts/claude-seo" run dataforseo_merchant.py search "<keyword>" --marketplace amazon
# Cross-marketplace comparison
"${CLAUDE_PLUGIN_ROOT}/scripts/claude-seo" run dataforseo_merchant.py compare "<keyword>"
Cross-Marketplace Report
| Metric |
Google Shopping |
Amazon |
| Avg price |
$ |
$ |
| Median rating |
X.X |
X.X |
| Avg review count |
N |
N |
| Top seller share |
% |
% |
| Free shipping % |
% |
% |
4. Marketplace Keyword Gaps
Identify mismatches between organic and Shopping visibility.
Workflow
- Fetch organic rankings via seo-dataforseo:
dataforseo_labs_google_ranked_keywords for domain
- Fetch Google Shopping presence through the Merchant REST script (not an
MCP tool; the cost-ledger key is
merchant_google_products_search):
"${CLAUDE_PLUGIN_ROOT}/scripts/claude-seo" run dataforseo_merchant.py search <keyword>
for the top organic keywords
- Cross-reference results
Gap Types
| Gap Type |
Meaning |
Action |
| Organic Only |
Ranks organically but no Shopping ads |
Create Google Merchant Center feed, bid on these keywords |
| Shopping Only |
Shopping visibility but weak/no organic |
Create content (buying guides, comparison pages) for these keywords |
| Both Present |
Visible in both channels |
Optimize: ensure price consistency, enhance schema |
| Neither |
No visibility in either |
Low priority unless high volume |
Output Format
## Keyword Gap Analysis: example.com
### Opportunities: Organic → Shopping (12 keywords)
| Keyword | Organic Pos | Volume | CPC | Recommended Action |
|---------|------------|--------|-----|-------------------|
### Opportunities: Shopping → Organic (8 keywords)
| Keyword | Shopping Rank | Volume | CPC | Content Type Needed |
|---------|-------------|--------|-----|-------------------|
5. Product Schema Enhancement
Validate and generate Product schema following Google's current requirements.
Confirmed Required Properties (Google Merchant)
Confirmed required fields are name, image, and offers; use Offer, not AggregateOffer, for merchant listings. Merchant listings require a price greater than zero, and priceCurrency whenever price is set.
{
"@context": "https://schema.org",
"@type": "Product",
"name": "",
"image": [""],
"offers": {
"@type": "Offer",
"url": "",
"priceCurrency": "USD",
"price": "49.00",
"availability": "https://schema.org/InStock"
}
}
Recommended Properties (Enhance Rich Results)
sku -- product identifier
description, brand, offers.seller -- recommended context fields
gtin13 / gtin14 / mpn -- global trade identifiers
aggregateRating -- star rating + review count
review -- individual reviews (minimum 1)
color, material, size -- variant attributes
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 -- 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 https://schema.org/SexualContentConsideration
category -- Text, CategoryCode, or an array mixing both. Use custom
text for merchant-defined product types and CategoryCode with Google's
taxonomy URL plus codeValue for Google Product Categories.
Validation Rules
price must be a number string, not "$29.99" (no currency symbol)
availability must use full Schema.org URL enum
image should be array with >= 1 high-res image URL
priceCurrency must be ISO 4217 (USD, EUR, GBP)
- If
brand is present, brand.name must not be empty or "N/A"
- Sale periods use
validFrom plus either validThrough or
priceValidUntil, in ISO 8601 format. Include time and timezone when known.
- If
aggregateRating present: ratingValue and reviewCount required (the merchant-listing docs list reviewCount; the review-snippet docs also accept ratingCount)
- Do not include fake reviews or undisclosed incentivized reviews in visible
content or structured data. Clearly and prominently disclose incentives.
Schema Scoring
| Completeness |
Score |
| All required fields |
50/100 |
| + aggregateRating |
65/100 |
| + sku/gtin/mpn |
75/100 |
| + shippingDetails |
85/100 |
| + merchantReturnPolicy |
90/100 |
| + reviews (3+) |
100/100 |
Cross-Skill Integration
| Skill |
Integration Point |
| seo-schema |
Delegates Product schema generation; reuses validation logic |
| seo-images |
Product image audit (alt text, format, dimensions), plus DigitalSourceType: TrainedAlgorithmicMedia IPTC label for AI-generated product images (Merchant Center requirement) |
| seo-content |
Product description E-E-A-T and uniqueness analysis |
| seo-dataforseo |
Organic keyword rankings for gap analysis |
| seo-technical |
Core Web Vitals for product pages (LCP on hero image) |
| seo-hreflang |
Region-specific result units: in the EEA, product and (since 2026-09-18) local business queries can show aggregator and supplier units; the EEA, South Africa and Türkiye also have structured data carousels, each with its own eligibility rules (documented 2026-09-08) |
| seo-google |
GSC indexation + Performance data for product URLs (NOT Merchant Center feed validation, that is done in Merchant Center / the Merchant API; the legacy Content API for Shopping sunsets 2026-08-18) |
UCP: Universal Commerce Protocol (live)
Google-initiated open standard (co-developed with Shopify, Etsy, Wayfair,
Target, Walmart; payment partners Visa/Mastercard/Stripe/Adyen/Amex) for
letting AI agents discover, negotiate, and transact with merchants without
one-off integrations. Google confirms a first reference implementation for
conversational buying in AI Mode in Search. Broader Universal Cart rollout
details are reported from Google I/O 2026 keynote coverage; not confirmed on a
Google-owned source. ucp.dev lists 2026-08-25 as the latest spec release (Google's merchant
guide still documents 2026-04-08) in its date-based versioning scheme, not 1.0; two integration paths: Native
(default) and Embedded (approved merchants). Pairs with AP2 (reportedly
moving toward FIDO governance). Canonical: developers.google.com/merchant/ucp
and ucp.dev.
Merchants already on Google Merchant Center with clean Product schema can
declare a UCP profile at /.well-known/ucp listing capabilities
(dev.ucp.shopping.checkout, .fulfillment, .discount). See
references/ucp-universal-commerce-protocol.md for audit criteria,
capability examples, and the relationship to AP2 (Agent Payments Protocol).
Audit command
# Discover and validate the UCP profile
"${CLAUDE_PLUGIN_ROOT}/scripts/claude-seo" run ucp_check.py https://store.example.com --json
# 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
The script returns: profile presence, version, declared capabilities,
structural issues (missing fields, unknown capability IDs), and (with
--probe-endpoints) per-endpoint reachability. SSRF-blocked endpoints are
reported explicitly. Missing profile is reported as opportunity, not failure.
UCP itself is live; what's early is broad merchant adoption. Flag a literal
"version": "1.0" as invalid (UCP versions are date-based, e.g. 2026-04-08).
Error Handling
| Error |
Cause |
Response |
| No Product schema found |
Page lacks JSON-LD |
Analyze page content, generate recommended schema |
| DataForSEO credentials missing |
Env vars not set |
Run analysis without marketplace data, note limitation |
| Cost check blocked |
Daily budget exceeded |
Inform user, offer free-only analysis |
| Empty Shopping results |
No products for keyword |
Suggest broader keyword, check location settings |
| Amazon API timeout |
Network/rate limit |
Retry with backoff, fall back to Google-only |
| Invalid URL |
Malformed input |
Validate via google_auth.validate_url(), show error |
| Non-product page |
URL is category/homepage |
Run the store-level checks (UCP profile, category structure, feeds) and ask for a product URL for the product-level checks |
Output Template
## E-commerce SEO Report: [URL or Keyword]
### Overall Score: XX/100
### Product Page SEO
- Schema Completeness: XX/100
- Title & Meta: XX/100
- Image Optimization: XX/100
- Content Quality: XX/100
- Internal Linking: XX/100
### Marketplace Intelligence (if DataForSEO available)
- Google Shopping Listings: N products found
- Price Range: $XX - $XX (median: $XX)
- Top Seller: [name] (XX% market share)
- Amazon Comparison: [available/not checked]
### Top Recommendations
1. [Critical] ...
2. [High] ...
3. [Medium] ...
Generate a PDF report? Use `/seo google report`
---
name: seo-ecommerce
description: >
Analyze ecommerce SEO across product pages, product schema, Shopping
visibility, marketplace signals, and keyword gaps. Use only for stores,
catalogs, or product listings.
user-invocable: true
argument-hint: "<url or keyword>"
license: MIT
compatibility: "Enhanced with DataForSEO Merchant API (optional)"
metadata:
author: AgriciDaniel
original_author: "Matej Marjanovic (Pro Hub Challenge)"
version: "2.4.2"
category: seo
---
# 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 |
---
## 1. Product Page Analysis (No DataForSEO Needed)
Fetch and parse any product page for on-page SEO quality.
### Workflow
```
1. "${CLAUDE_PLUGIN_ROOT}/scripts/claude-seo" run render_page.py <url> --mode auto → raw/rendered HTML
2. "${CLAUDE_PLUGIN_ROOT}/scripts/claude-seo" run parse_html.py --url <url> → SEO elements
3. Analyze product-specific signals (below)
```
### Product SEO Checklist
#### Title Tag
- [ ] Contains primary product keyword
- [ ] Includes brand name
- [ ] Under 60 characters (no truncation in SERPs)
- [ ] Format: `[Product Name] - [Key Feature] | [Brand]`
#### Meta Description
- [ ] Contains product keyword + benefit
- [ ] Includes price or "from $XX" (triggers rich snippet interest)
- [ ] Call-to-action present (Shop now, Buy, Free shipping)
- [ ] Under 155 characters
#### Heading Structure
- [ ] Single H1 matching primary product name
- [ ] H2s for: Features, Specifications, Reviews, Related Products
- [ ] No duplicate H1 tags across product variants
#### Product Images
- [ ] Alt text includes product name + distinguishing feature
- [ ] File names are descriptive (not `IMG_001.jpg`)
- [ ] WebP format served (with JPEG fallback)
- [ ] At least 3 images per product (hero, detail, lifestyle)
- [ ] High-resolution images: Google recommends at least 50K pixels (width x height) for merchant listings; larger (for example 800px+) is common practice, not a rule
- [ ] Lazy loading on below-fold images only
#### Internal Linking
- [ ] Breadcrumb navigation: Home > Category > Subcategory > Product
- [ ] Related products section (cross-sell / upsell)
- [ ] Link back to category page with keyword-rich anchor
- [ ] Reviews section links to full review page (if separate)
#### Content Quality
- [ ] Unique product description (not manufacturer copy-paste)
- [ ] Word count >= 200 for product description body
- [ ] Specs table present (not just prose)
- [ ] User reviews on-page (UGC signals)
### Scoring
| Category | Weight | Criteria |
|----------|--------|----------|
| Schema completeness | 25% | Required + recommended Product fields |
| Title & meta | 15% | Keyword placement, length, format |
| Image optimization | 20% | Alt text, format, sizing, count |
| Content quality | 20% | Unique description, specs, reviews |
| Internal linking | 10% | Breadcrumbs, related products, categories |
| Technical | 10% | Page speed, mobile rendering, canonical |
---
## 2. Google Shopping Intelligence (DataForSEO Merchant API)
Live competitive analysis from Google Shopping results.
### Cost Guardrail (MANDATORY)
Before EVERY Merchant API call:
```bash
"${CLAUDE_PLUGIN_ROOT}/scripts/claude-seo" run dataforseo_costs.py check merchant_google_products_search
```
- `"status": "approved"` -- proceed
- `"status": "needs_approval"` -- show cost, ask user
- `"status": "blocked"` -- stop, inform user
After each call:
```bash
"${CLAUDE_PLUGIN_ROOT}/scripts/claude-seo" run dataforseo_costs.py log merchant_google_products_search <cost>
```
### Workflow
```bash
# Product search: who sells what at what price
"${CLAUDE_PLUGIN_ROOT}/scripts/claude-seo" run dataforseo_merchant.py search "<keyword>" --marketplace google
# Seller analysis: merchant ratings and dominance
"${CLAUDE_PLUGIN_ROOT}/scripts/claude-seo" run dataforseo_merchant.py sellers "<keyword>"
# Normalize results for analysis
"${CLAUDE_PLUGIN_ROOT}/scripts/claude-seo" run dataforseo_normalize.py results.json --module merchant
```
### Analysis Outputs
#### Pricing Intelligence
- Price distribution: min, max, median, P25, P75
- Price outliers (> 2 standard deviations from median)
- Price-to-rating correlation
- Currency normalization to USD (or user-specified)
#### Seller Landscape
- Top 10 sellers by listing count
- Merchant rating distribution
- Free shipping prevalence
- New vs established sellers
#### Product Listing Quality
- Title keyword patterns in top listings
- Average rating and review count benchmarks
- Image count per listing
- Availability status distribution
Load `references/marketplace-endpoints.md` for full API parameter details.
---
## 3. Amazon Marketplace (DataForSEO)
Cross-marketplace intelligence comparing Google Shopping and Amazon.
### Cost Guardrail (MANDATORY)
```bash
"${CLAUDE_PLUGIN_ROOT}/scripts/claude-seo" run dataforseo_costs.py check merchant_amazon_products_search
```
Amazon endpoints are in the `warn_endpoints` set -- always requires user approval.
### Workflow
```bash
# Amazon product search
"${CLAUDE_PLUGIN_ROOT}/scripts/claude-seo" run dataforseo_merchant.py search "<keyword>" --marketplace amazon
# Cross-marketplace comparison
"${CLAUDE_PLUGIN_ROOT}/scripts/claude-seo" run dataforseo_merchant.py compare "<keyword>"
```
### Cross-Marketplace Report
| Metric | Google Shopping | Amazon |
|--------|---------------|--------|
| Avg price | $ | $ |
| Median rating | X.X | X.X |
| Avg review count | N | N |
| Top seller share | % | % |
| Free shipping % | % | % |
---
## 4. Marketplace Keyword Gaps
Identify mismatches between organic and Shopping visibility.
### Workflow
1. Fetch organic rankings via seo-dataforseo:
`dataforseo_labs_google_ranked_keywords` for domain
2. Fetch Google Shopping presence through the Merchant REST script (not an
MCP tool; the cost-ledger key is `merchant_google_products_search`):
`"${CLAUDE_PLUGIN_ROOT}/scripts/claude-seo" run dataforseo_merchant.py search <keyword>`
for the top organic keywords
3. Cross-reference results
### Gap Types
| Gap Type | Meaning | Action |
|----------|---------|--------|
| **Organic Only** | Ranks organically but no Shopping ads | Create Google Merchant Center feed, bid on these keywords |
| **Shopping Only** | Shopping visibility but weak/no organic | Create content (buying guides, comparison pages) for these keywords |
| **Both Present** | Visible in both channels | Optimize: ensure price consistency, enhance schema |
| **Neither** | No visibility in either | Low priority unless high volume |
### Output Format
```
## Keyword Gap Analysis: example.com
### Opportunities: Organic → Shopping (12 keywords)
| Keyword | Organic Pos | Volume | CPC | Recommended Action |
|---------|------------|--------|-----|-------------------|
### Opportunities: Shopping → Organic (8 keywords)
| Keyword | Shopping Rank | Volume | CPC | Content Type Needed |
|---------|-------------|--------|-----|-------------------|
```
---
## 5. Product Schema Enhancement
Validate and generate Product schema following Google's current requirements.
### Confirmed Required Properties (Google Merchant)
Confirmed required fields are `name`, `image`, and `offers`; use `Offer`, not `AggregateOffer`, for merchant listings. Merchant listings require a `price` greater than zero, and `priceCurrency` whenever `price` is set.
```json
{
"@context": "https://schema.org",
"@type": "Product",
"name": "",
"image": [""],
"offers": {
"@type": "Offer",
"url": "",
"priceCurrency": "USD",
"price": "49.00",
"availability": "https://schema.org/InStock"
}
}
```
### Recommended Properties (Enhance Rich Results)
- `sku` -- product identifier
- `description`, `brand`, `offers.seller` -- recommended context fields
- `gtin13` / `gtin14` / `mpn` -- global trade identifiers
- `aggregateRating` -- star rating + review count
- `review` -- individual reviews (minimum 1)
- `color`, `material`, `size` -- variant attributes
- `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` -- 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 `https://schema.org/SexualContentConsideration`
- `category` -- `Text`, `CategoryCode`, or an array mixing both. Use custom
text for merchant-defined product types and `CategoryCode` with Google's
taxonomy URL plus `codeValue` for Google Product Categories.
### Validation Rules
1. `price` must be a number string, not "$29.99" (no currency symbol)
2. `availability` must use full Schema.org URL enum
3. `image` should be array with >= 1 high-res image URL
4. `priceCurrency` must be ISO 4217 (USD, EUR, GBP)
5. If `brand` is present, `brand.name` must not be empty or "N/A"
6. Sale periods use `validFrom` plus either `validThrough` or
`priceValidUntil`, in ISO 8601 format. Include time and timezone when known.
7. If `aggregateRating` present: `ratingValue` and `reviewCount` required (the merchant-listing docs list `reviewCount`; the review-snippet docs also accept `ratingCount`)
8. Do not include fake reviews or undisclosed incentivized reviews in visible
content or structured data. Clearly and prominently disclose incentives.
### Schema Scoring
| Completeness | Score |
|-------------|-------|
| All required fields | 50/100 |
| + aggregateRating | 65/100 |
| + sku/gtin/mpn | 75/100 |
| + shippingDetails | 85/100 |
| + merchantReturnPolicy | 90/100 |
| + reviews (3+) | 100/100 |
---
## Cross-Skill Integration
| Skill | Integration Point |
|-------|------------------|
| **seo-schema** | Delegates Product schema generation; reuses validation logic |
| **seo-images** | Product image audit (alt text, format, dimensions), plus `DigitalSourceType: TrainedAlgorithmicMedia` IPTC label for AI-generated product images (Merchant Center requirement) |
| **seo-content** | Product description E-E-A-T and uniqueness analysis |
| **seo-dataforseo** | Organic keyword rankings for gap analysis |
| **seo-technical** | Core Web Vitals for product pages (LCP on hero image) |
| **seo-hreflang** | Region-specific result units: in the EEA, product and (since 2026-09-18) local business queries can show aggregator and supplier units; the EEA, South Africa and Türkiye also have structured data carousels, each with its own eligibility rules (documented 2026-09-08) |
| **seo-google** | GSC indexation + Performance data for product URLs (NOT Merchant Center feed validation, that is done in Merchant Center / the **Merchant API**; the legacy Content API for Shopping sunsets 2026-08-18) |
## UCP: Universal Commerce Protocol (live)
Google-initiated open standard (co-developed with Shopify, Etsy, Wayfair,
Target, Walmart; payment partners Visa/Mastercard/Stripe/Adyen/Amex) for
letting AI agents discover, negotiate, and transact with merchants without
one-off integrations. Google confirms a first reference implementation for
conversational buying in AI Mode in Search. Broader Universal Cart rollout
details are reported from Google I/O 2026 keynote coverage; not confirmed on a
Google-owned source. ucp.dev lists **2026-08-25** as the latest spec release (Google's merchant
guide still documents 2026-04-08) in its **date-based versioning** scheme, not `1.0`; two integration paths: **Native**
(default) and **Embedded** (approved merchants). Pairs with **AP2** (reportedly
moving toward FIDO governance). Canonical: developers.google.com/merchant/ucp
and ucp.dev.
Merchants already on **Google Merchant Center** with clean Product schema can
declare a UCP profile at `/.well-known/ucp` listing capabilities
(`dev.ucp.shopping.checkout`, `.fulfillment`, `.discount`). See
`references/ucp-universal-commerce-protocol.md` for audit criteria,
capability examples, and the relationship to AP2 (Agent Payments Protocol).
### Audit command
```bash
# Discover and validate the UCP profile
"${CLAUDE_PLUGIN_ROOT}/scripts/claude-seo" run ucp_check.py https://store.example.com --json
# 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
```
The script returns: profile presence, version, declared capabilities,
structural issues (missing fields, unknown capability IDs), and (with
`--probe-endpoints`) per-endpoint reachability. SSRF-blocked endpoints are
reported explicitly. Missing profile is reported as opportunity, not failure.
UCP itself is live; what's early is broad merchant adoption. Flag a literal
`"version": "1.0"` as invalid (UCP versions are date-based, e.g. `2026-04-08`).
---
## Error Handling
| Error | Cause | Response |
|-------|-------|----------|
| No Product schema found | Page lacks JSON-LD | Analyze page content, generate recommended schema |
| DataForSEO credentials missing | Env vars not set | Run analysis without marketplace data, note limitation |
| Cost check blocked | Daily budget exceeded | Inform user, offer free-only analysis |
| Empty Shopping results | No products for keyword | Suggest broader keyword, check location settings |
| Amazon API timeout | Network/rate limit | Retry with backoff, fall back to Google-only |
| Invalid URL | Malformed input | Validate via `google_auth.validate_url()`, show error |
| Non-product page | URL is category/homepage | Run the store-level checks (UCP profile, category structure, feeds) and ask for a product URL for the product-level checks |
---
## Output Template
```
## E-commerce SEO Report: [URL or Keyword]
### Overall Score: XX/100
### Product Page SEO
- Schema Completeness: XX/100
- Title & Meta: XX/100
- Image Optimization: XX/100
- Content Quality: XX/100
- Internal Linking: XX/100
### Marketplace Intelligence (if DataForSEO available)
- Google Shopping Listings: N products found
- Price Range: $XX - $XX (median: $XX)
- Top Seller: [name] (XX% market share)
- Amazon Comparison: [available/not checked]
### Top Recommendations
1. [Critical] ...
2. [High] ...
3. [Medium] ...
Generate a PDF report? Use `/seo google report`
```