Skip to content
Published Authored byBilly Reiner

Schema · How-to

Shopify Brand schema

Brand is the Schema.org type for the entity that manufactures or markets a product1. On Shopify, most themes auto-emit a Brand object inside Product with name derived from product.vendor3. The 2026 upgrade: layer on logo, url, and sameAs so AI shopping engines and Merchant Center confirm the brand as a real entity, not a free-text field.

Shopify's own Catalog optimisation doc names Vendor among the seven product fields AI platforms read2. Brand in JSON-LD is the structured-data version of that Vendor field. When the brand IS the merchant (most DTC Shopify stores), link Brand to the site-wide Organization with a shared @id so the two entities consolidate into one in AI engine knowledge graphs.

What Brand schema is

Per Schema.org v30.0, Brand is 'a name used by an organization or business person for labeling a product, product group, or similar.' Brand inherits from Intangible (Thing > Intangible > Brand). Most-used properties: name (Text), logo (ImageObject or URL), url (URL), sameAs (URL — reference pages disambiguating the brand's identity), slogan, aggregateRating, review.

Mental model: Brand is the manufacturer or marketer label attached to a Product or Service. It is not the merchant Organization that runs the storefront — though on a single-brand DTC Shopify store, the two are often the same entity. When that's the case, the cleanest implementation gives Brand and Organization a shared @id, so AI engines consolidate them.

How Brand maps to Shopify's product.vendor

Shopify's product model includes a Vendor field (Admin > Products > [product] > Product organization > Vendor). Most Shopify themes derive Brand.name from product.vendor in the auto-emitted Product schema. For a single-brand store, every product carries the same Vendor and the auto-emitted Brand is consistent. For a multi-brand retailer (a store selling 50 vendors' products), Brand.name correctly varies per product. The auto-emission usually stops at Brand.name — logo, url, and sameAs are the merchant's job.

Brand fields and what to populate

The Brand properties most-used on Shopify storefronts: name (required by Google when Brand is present), logo (ImageObject or URL — recommended; the brand's wordmark or symbol), url (URL — recommended; the brand's home page), sameAs (URL — recommended; Wikipedia, Wikidata, the brand's social profiles, the manufacturer's own site if different from the merchant).

  • name — required. On Shopify: {{ product.vendor | escape }}.
  • logo — recommended. For a single-brand store: {{ shop.brand.logo | image_url: width: 300 }} if you've set the Shopify Brand asset, or a metafield URL. Width minimum 112 pixels per Google's Organization doc; 300+ is safer.
  • url — recommended. For a single-brand store: {{ shop.url }}. For a multi-brand store: a per-vendor metafield URL if available.
  • sameAs — recommended. URLs to the brand's verified profiles — Wikipedia/Wikidata first, then Instagram, X, LinkedIn, Facebook. For a single-brand DTC store, this is the brand's full social footprint.
  • slogan — optional. The brand tagline. Useful for AI engine entity attribution.

JSON-LD example — Brand as Product sub-object

The block below is the Brand sub-object inside a complementary Product block for a Shopify single-brand DTC store. It references the site-wide Organization (defined separately in theme.liquid) by @id, so AI engines treat Brand and Organization as one consolidated entity.

JSON-LD Brand inside Product, referencing Organization by @id
 "brand": { "@type": "Brand", "@id": "{{ shop.url }}#organization", "name": "{{ product.vendor | escape }}", "url": "{{ shop.url }}", "logo": { "@type": "ImageObject", "url": "{{ shop.brand.logo | image_url: width: 600 }}", "width": 600, "height": 600 }, "sameAs": [ "https://www.instagram.com/yourbrand/", "https://www.linkedin.com/company/yourbrand", "https://x.com/yourbrand" ] } 

For a multi-brand store, drop the logo, url, sameAs fields and emit Brand with just name derived from product.vendor. Better to ship a structurally correct minimal Brand than a fake enriched one.

Validation

Rich Results Test against a PDP with Brand authored should report Product detected, Brand parsed inside Product, zero errors. Common warning: 'Brand.url is recommended' (clears when you add it). For a single-brand store where Brand shares @id with Organization, the test sometimes reports the entities as merged — that's intended, not an error.

For Merchant Center alignment, Brand must match the brand attribute in the Merchant Center feed. Mismatch (e.g. JSON-LD says 'Acme Co.' while the feed says 'Acme Company') causes Merchant Center disapproval even when both are structurally valid Brand entities. Audit both sources before going live.

Shopify gotchas

Three Shopify-specific gotchas. First: empty product.vendor — if a merchant leaves the Vendor field blank on a product, Shopify's auto-emitted Brand object emits with an empty name, which validators flag. Always populate Vendor or wrap the Brand emission in a Liquid conditional. Second: vendor not matching brand — some Shopify stores use Vendor as an internal supplier name instead of the consumer brand. Audit which value is in product.vendor before assuming. Third: forgetting | escape on product.vendor, which breaks JSON when vendor names contain apostrophes (Levi's, McDonald's).

A fourth gotcha for stores running the Shopify Brand asset (Shop.brand): the shop.brand.logo Liquid object only returns a value if the merchant has populated Settings > Brand > Logo. Older stores often have this empty — verify before referencing in the JSON-LD, or branch with a Liquid conditional.