seo-ecommerce

Installation
SKILL.md

seo-ecommerce (M18)

Conditional commerce module: it runs only when commerce signals are detected, then audits (a) product structured data for Search and (b) whether an AI shopping agent can actually read and act on the store. Reference: references/schema-tier1.md (Product + Offer, Review/AggregateRating rows). Platform-specific ids — Shopify's Catalog and UCP defaults among them — live in references/platforms/shopify.md and are emitted by the platform-conditional checks, not from here.

Inputs

Work from the PageSnapshot named in your dispatch envelope: read parsed from <run_dir>/pages/<slug>.json (jsonld[], metas[], text_sample) and vertical from the envelope — the commerce gate is decided there; <run_dir>/site/discovery.json carries the probes for /.well-known/ucp and /api/ucp/mcp (status, content-type, body); <run_dir>/profile.json names the platform. Grep pages/<slug>.html for verbatim evidence; site artifacts live in <run_dir>/site/{robots.json,sitemaps.json,discovery.json}. Deterministic findings already emitted by audit.mjs are listed in <run_dir>/findings.deterministic.json — do not re-emit those ids; add model-judged findings only. If invoked directly with a URL/path and no snapshot exists, first run node "${CLAUDE_PLUGIN_ROOT}/scripts/snapshot.mjs" <target> --out "${CLAUDE_PLUGIN_DATA}/runs" and use the printed snapshot path.

Audits

Working from the PageSnapshot (parsed_rendered when render.used is not none, else parsed):

  1. Commerce gate: detect commerce signals (price/currency text, add-to-cart/buy controls, Product/Offer schema, og:type=product). If none, every M18 finding is not_applicable (severity 0) — do not force product schema onto non-commerce pages.
  2. Product + Offer: Product has name, image; Offer has price, priceCurrency, availability (schema.org/InStock etc.). Per references/schema-tier1.md.
  3. AggregateRating / Review: if ratings are visibly shown, expect AggregateRating (ratingValue, reviewCount/bestRating) and/or Review (author). Never mark up ratings that are not visible on the page.
  4. Page → schema → feed consistency: schema price/priceCurrency/availability must match the visible on-page values and the merchant feed. Mismatches risk disapproval and lost rich results.
  5. Faceted navigation: filter/sort URLs (?color=, ?sort=) should canonicalize to the clean product/category URL or be noindex, to avoid index bloat and duplicate-content dilution.
  6. Variants / ProductGroup: multi-variant products should use ProductGroup with hasVariant and variesBy, not duplicate standalone Product blocks per SKU.

Agentic commerce readiness (ecommerce only)

Shopping agents do not read a product page the way a shopper does: they look for a machine-readable merchant profile, a catalog they are allowed to enumerate, and a feed whose fields parse. These checks run only when the ecommerce vertical is active, and they populate the conditional AI category for M18 (weight 6) alongside the Search category.

Installs
186
GitHub Stars
74
First Seen
Jun 2, 2026