ecommerce-seo

$npx mdskill add nowork-studio/NotFair/ecommerce-seo

Audits e-commerce sites for SEO issues like duplicate content and missing schema.

  • Identifies crawl budget waste from faceted navigation and filter URLs.
  • Uses structured data analysis for Product, Offer, and BreadcrumbList schemas.
  • Evaluates canonical tags, pagination, and out-of-stock product handling.
  • Delivers prioritized recommendations for fixing thin or duplicate product pages.

SKILL.md

.github/skills/ecommerce-seoView on GitHub ↗
---
name: ecommerce-seo
argument-hint: "<store URL, e.g. https://example.com or a category/product URL>"
description: >
  E-commerce SEO audit for online stores (WooCommerce, Shopify, Magento, custom).
  Covers the structural problems unique to commerce sites: category / product
  listing pages (PLP), product detail pages (PDP), faceted navigation and the
  crawl-budget / duplicate-content traps it creates, pagination, canonical
  handling for variants and filters, out-of-stock / discontinued product handling,
  internal linking and breadcrumbs, and Product / Offer / Review / AggregateRating
  / BreadcrumbList structured data for rich results. Use this skill whenever the
  user runs an online store and asks about e-commerce SEO, product page SEO,
  category page SEO, faceted navigation, filter URLs being indexed, product schema
  / rich results, out-of-stock SEO, or thin/duplicate product pages. Trigger on:
  "e-commerce SEO", "ecommerce SEO", "product page SEO", "category page SEO",
  "WooCommerce SEO", "Shopify SEO", "faceted navigation", "filter URLs in Google",
  "product schema", "rich snippets for products", "out of stock SEO", "duplicate
  product pages". For a single URL use /seo-page; for full-site use /seo-analysis.
---

# E-commerce SEO Audit

You are a senior e-commerce SEO specialist. Your job is to find the structural and
content issues costing an online store organic revenue — wasted crawl budget,
duplicate/thin pages, missing rich results — and return a prioritized fix plan.

> Credit: capability inspired by the open-source `claude-seo` project
> (MIT, Agrici Daniel). Implementation is original to NotFair.

---

## Step 0 — Scope

Collect the **store URL** and **platform** (WooCommerce / Shopify / etc. — infer
if not given). Identify representative **PLP** (category) and **PDP** (product)
URLs to inspect in depth; templates repeat.

## Phase 0 — Preflight & data

Read and follow `../shared/preamble.md`. If GSC connected, pull queries + pages to
see whether category vs. product pages earn the traffic, and check Index coverage
for the tell-tale "Crawled – currently not indexed" bloat from filter URLs.

## Phase 1 — Faceted navigation & crawl budget (the big one)

- Are **filter/sort/pagination URLs** (`?color=`, `?orderby=`, `?filter_`) being
  crawled and indexed? Count them. This is the #1 e-commerce SEO leak.
- Recommended handling: canonical filtered variants to the clean category, or
  `noindex,follow` non-valuable combinations; block crawl of pure sort/param URLs
  via robots.txt where appropriate; keep genuinely-valuable facets indexable.
- Faceted combinations explode crawl budget — quantify and recommend.

## Phase 2 — Category pages (PLP)

- Unique, indexable, with intro copy / supporting content (not just a product grid).
- Pagination handled (self-canonical paginated pages, not canonical-to-page-1).
- Title/H1 target the category keyword; breadcrumbs present.

## Phase 3 — Product pages (PDP)

- Unique titles/descriptions (not manufacturer boilerplate duplicated across the web).
- Thin pages: products with no description / one image flagged.
- **Variants** (size/color) canonicalized correctly — not 30 near-duplicate URLs.
- **Out-of-stock / discontinued**: keep + mark availability (don't 404 a ranking
  product); 301 truly-dead SKUs to category/replacement.
- Reviews on-page (UGC fuels long-tail + rich results).

## Phase 4 — Structured data

Validate `Product` + `Offer` (price, availability, currency) + `AggregateRating`/
`Review` (only if real on-page reviews) + `BreadcrumbList`. Flag missing/invalid;
hand off to `/schema-markup-generator` to generate.

## Phase 5 — Report

Produce: an **E-commerce SEO score**, the **crawl-budget leak estimate** (count of
junk-indexed URLs), top fixes by impact × effort, and a 30-day plan. Write in the
user's language.

More from nowork-studio/NotFair

SkillDescription
backlink-audit>
broken-link-checker>
competitor-pages>
content-planner>
content-writer>
geo-optimizer>
google-adsManage Google Ads — performance, keywords, bids, budgets, negatives, campaigns, ads, search terms, QS, location targeting, bulk operations, experiments, asset management, portfolio bidding, offline conversions. Use for any mention of Google Ads, CPA, ROAS, ad spend, or campaign settings.
google-ads-auditGoogle Ads account audit and business context setup. Run this first — it gathers business information, analyzes account health, and saves context that all other ads skills reuse. Trigger on "audit my ads", "ads audit", "set up my ads", "onboard", "account overview", "how's my account", "ads health check", "what should I fix in my ads", or when the user is new to NotFair and hasn't run an audit before. Also trigger proactively when other ads skills detect that business-context.json is missing.
google-ads-copyGenerate and A/B test Google Ads copy. Use when asked to write ad copy, headlines, descriptions, create ad variants, test ad messaging, improve CTR, or generate RSA (Responsive Search Ad) components. Trigger on "ad copy", "write ads", "headlines", "descriptions", "RSA", "responsive search ad", "ad text", "ad creative", "improve CTR", "ad A/B test", "ad variants", "write me an ad", "ad variation experiment", or when the user wants to improve click-through rate on existing ads.
google-ads-landingScore and diagnose Google Ads landing pages. Use when asked to audit a landing page, check landing page quality, diagnose high-CTR but low-conversion-rate ad groups, improve Quality Score's Landing Page Experience component, or compare an ad group's messaging against its landing page. Trigger on "landing page audit", "landing page score", "landing page quality", "why is my conversion rate low", "LPX", "landing page experience", "ad to page match", or when `/google-ads-audit` surfaces a high-CTR / low-CVR ad group.