A

Product data

HIGH

Brand 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
  1. Admin → Products: confirm every product has the `Vendor` field populated.
  2. In your theme JSON-LD template, set `"brand": { "@type": "Brand", "name": {{ product.vendor | json }} }`.

BigCommerce

A few minutes
  1. Catalog → Brands → create/verify each brand, assign every product.
  2. In `templates/components/products/product-view.html`, ensure JSON-LD references `"brand": { "@type": "Brand", "name": "{{product.brand.name}}" }`.

WooCommerce

A few minutes
  1. Install "WooCommerce Brands" or "Perfect Brands for WooCommerce" (free).
  2. Assign every product to a Brand; Yoast/RankMath emit it as `Product.brand` automatically.

Custom / headless

Developer
  1. Bind `brand` in your Product JSON-LD template AND add an OG `product:brand` meta tag.
  2. 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.

schema.org/brand

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 product data checks

← All 82 checks