Product data
HIGHBrand attribution on PDPs
Each PDP carries brand attribution — either via Product JSON-LD `brand` or via visible HTML (Open Graph or Microdata). Brand on every product is a primary agent filter and a required feed field.
What this check looks for
Brand on every product is a required feed field and a primary agent filter. This check is the presence-of-attribution counterpart to the shape-validation check `product-brand-string-or-object`. A PDP passes if either: (a) `extractBrand` returns a non-empty value from the Product JSON-LD, OR (b) the visible HTML carries a recognised brand attribution signal (`<meta property="product:brand">`, `<meta name="brand">`, `<meta property="og:brand">`, or a Microdata `itemprop="brand"` token). Coverage ≥ 95% passes; ≥ 70% 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
Surface brand attribution on every PDP
Shopify
A few minutes- Admin → Products: confirm every product has the `Vendor` field populated.
- In your theme JSON-LD template, set `"brand": { "@type": "Brand", "name": {{ product.vendor | json }} }`.
BigCommerce
A few minutes- Catalog → Brands → create/verify each brand, assign every product.
- In `templates/components/products/product-view.html`, ensure JSON-LD references `"brand": { "@type": "Brand", "name": "{{product.brand.name}}" }`.
WooCommerce
A few minutes- Install "WooCommerce Brands" or "Perfect Brands for WooCommerce" (free).
- Assign every product to a Brand; Yoast/RankMath emit it as `Product.brand` automatically.
Custom / headless
Developer- Bind `brand` in your Product JSON-LD template AND add an OG `product:brand` meta tag.
- Double-surface attribution makes the PDP robust to surface-specific parsing.
<meta property="product:brand" content="Acme">
<script type="application/ld+json">
{
"@context": "https://schema.org",
"@type": "Product",
"name": "Example Hat",
"brand": {
"@type": "Brand",
"name": "Acme"
},
"offers": {
"@type": "Offer",
"price": "49.99",
"priceCurrency": "USD",
"availability": "https://schema.org/InStock"
}
}
</script>The spec it's pinned to
schema.org/Product.brand
schema.org/Product.brand is a primary disambiguator agents use to map products across catalogs. Brand can be a string or a typed Brand/Organization object.
Google merchant listing — brand recommended
Google's merchant listing rich result recommends `brand` (mapped to `brand`); products without it match less reliably across the index.
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.