A

Structured data

MEDIUM

Product `sku` populated

Each Product JSON-LD node carries a non-empty `sku` string or numeric value. A stable SKU lets agents track and re-identify your product across catalogs.

What this check looks for

SKU is the merchant's internal identifier and a useful stable key for agents to track products across sessions. We accept any non-empty string or a number; whitespace-only strings don't count. v2 drops severity to MEDIUM because Google's merchant listing treats SKU as optional. Coverage ≥ 90% passes; ≥ 50% partial; otherwise fail.

Which AI surfaces it affects

  • Google AI Mode (UCP)80
  • ChatGPT (ACP)60
  • Microsoft Copilot60
  • Meta AI60
  • Perplexity40

Weighted against the live specs — ACP 2026-04-17, UCP 2026-04-08.

How to fix it

Populate `sku` on every Product JSON-LD node

Shopify

A few minutes
  1. Admin → Products → variants → fill in the `SKU` field per variant.
  2. Bulk-edit: expose the SKU column and fill in blanks.
  3. Theme JSON-LD should reference `{{ variant.sku | json }}`.

BigCommerce

A few minutes
  1. Catalog → Products → Inventory tab: populate `SKU / Product Code` for every product and variant.
  2. Stencil's default `product-view.html` already binds `{{product.sku}}`.

WooCommerce

A few minutes
  1. Products → edit → Inventory tab → enable SKU + fill it in.
  2. For bulk updates, use WP All Import or WooCommerce SKU Generator.

Custom / headless

Developer
  1. Bind `sku` in your Product JSON-LD template to your inventory model's SKU field.
  2. Emit it as a string even if your inventory stores it numerically.
<script type="application/ld+json">
{
  "@context": "https://schema.org",
  "@type": "Product",
  "name": "Example Hat",
  "sku": "HAT-001-BLK-M",
  "offers": {
    "@type": "Offer",
    "price": "49.99",
    "priceCurrency": "USD",
    "availability": "https://schema.org/InStock"
  }
}
</script>

The spec it's pinned to

  • schema.org/Product.sku

    schema.org defines `sku` as the merchant's internal stock-keeping unit. Optional but recommended — agents use it as a fallback identifier when GTIN/MPN aren't present.

  • Google merchant listing — sku optional

    Google's merchant listing rich result does not require `sku`; it accepts any of GTIN, MPN, or merchant-set identifiers. We surface SKU as a soft recommendation only.

schema.org/sku

Does your store pass this check?

Run the full audit — 82 checks across five AI shopping surfaces. Most tools only check whether you get mentioned; we check whether an agent can buy from you.

Related structured data checks

← All 82 checks