Structured data
MEDIUMProduct `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- Admin → Products → variants → fill in the `SKU` field per variant.
- Bulk-edit: expose the SKU column and fill in blanks.
- Theme JSON-LD should reference `{{ variant.sku | json }}`.
BigCommerce
A few minutes- Catalog → Products → Inventory tab: populate `SKU / Product Code` for every product and variant.
- Stencil's default `product-view.html` already binds `{{product.sku}}`.
WooCommerce
A few minutes- Products → edit → Inventory tab → enable SKU + fill it in.
- For bulk updates, use WP All Import or WooCommerce SKU Generator.
Custom / headless
Developer- Bind `sku` in your Product JSON-LD template to your inventory model's SKU field.
- 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.
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.