All skills
agricidaniel avatar

/seo-ecommerce

@93b720e
by Agrici.Danielagricidaniel/claude-seo18k stars
2,665

Analyze ecommerce SEO across product pages, product schema, Shopping visibility, marketplace signals, and keyword gaps. Use only for stores, catalogs, or product listings.

Use this Skill: https://skilld.dev/gh/agricidaniel/claude-seo/seo-ecommerce

This session only. Nothing lands on disk.

SKILL.md

≈47 tokens always: the name and description. ≈3.6k when used: this file. ≈3k more on demand in 2 files.

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:

"${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

  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.

{
  "@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

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

Source: SKILL.md on GitHub

1 warning1d4 checks · Risk SAFE
  • Gen Agent Trust Hub1d

    The skill is a comprehensive e-commerce SEO analysis tool. It processes external web content from user-provided URLs and retrieves marketplace data through the DataForSEO API. While the skill is legitimate in its purpose, it possesses an inherent surface for indirect prompt injection by ingesting untrusted HTML content and marketplace data, and it performs network-level probing of external endpoints to validate protocol profiles.

  • Socket1d

    No alerts

  • Snyk1d

    Risk: MEDIUM · 1 issue

  • ZeroLeaks5mo

    Score: 93/100 · 2 sections analyzed

Signed by skilld at 93b720e. This ties the file your Agent reads to that commit on GitHub. It does not review the instructions.

Last checked against GitHub 2 days ago.

Activeupdated 3 days ago
user-invocable
true
argument-hint
<url or keyword>
compatibility
Enhanced with DataForSEO Merchant API (optional)
Other metadata
metadata
{
  "author": "AgriciDaniel",
  "original_author": "Matej Marjanovic (Pro Hub Challenge)",
  "version": "2.4.1",
  "category": "seo"
}

README badge

README badge for agricidaniel/claude-seo/seo-ecommerce