Skip to content

Products · § 1.7.5

Variants, Options, and How Shopify Exposes Them to Search and AI

Published:

What Shopify says about variants

Shopify's Catalog optimization doc names variants — explicitly 'including Option name' — as one of seven product fields AI platforms consider. Variants are sub-SKUs under a single product (size + color combinations of one shirt; flavor + count of one supplement). Each variant has up to three Options (Option name + Option value), an individual price, an individual barcode, and its own inventory. The Catalog optimization doc names the Option name specifically because the value-pair structure (Option name 'Size' + Option value 'M') is how AI agents disambiguate between variants in shopping recommendations.

Variants live under the Variants panel in the product editor. Up to three Option names per product (e.g. Size, Color, Material). Up to 2048 variant combinations per product as of the Winter '26 Edition4. Each variant gets its own row with the Option values, price, SKU, barcode, and inventory.

The Option name field

Option name is the label of the variant axis — 'Size', 'Color', 'Material', 'Flavor', 'Pack count'. Option value is the specific value on that axis — 'M', 'Stone', 'Cotton', 'Vanilla', '30 capsules'. Both are AI-readable inputs per Shopify's Catalog optimization doc. The Option name signals to the AI agent what the variant axis represents; the Option value identifies the specific SKU.

Good Option names: Size, Color, Material, Pack count, Flavor, Scent. These are real attribute axes that AI agents key on. Bad Option names: Variation, Type, Style. These are placeholders that don't communicate the axis — the agent reads "variation: red" instead of "color: red" and has to infer the axis from the value.

The 'Default Title' trap on single-variant products

When a product has only one variant (e.g. a one-size-fits-all candle, a single-pack supplement), Shopify auto-assigns the Option name 'Title' with the Option value 'Default Title'. This is the most common AI shopping failure on small Shopify catalogs — every single-variant product has Option name 'Title' and Option value 'Default Title' in the Catalog feed, which reads to AI agents as a missing field.

Variant URLs and the canonical

Variants are exposed via query parameter URLs: /products/handle?variant=12345. Themes auto-canonical variant URLs back to the product URL — the variant URL's <link rel='canonical'> points to /products/handle without the variant parameter. This is the correct behaviour: each variant should not compete as a separate URL in search, because the underlying product description is shared. Google and AI agents read the product page and use the variant data structurally.

The exception worth knowing: stores that want variants to rank as separate pages (e.g. a furniture store where each color is a meaningfully different product) sometimes split variants into separate products entirely. This is a structural decision — if the variants share 90%+ of the description and differ only by color, keep them as variants under one product. If the variants are functionally different products (different materials, different price tiers, different use cases), split into separate products and link them as related.

The 2048-variant ceiling

Shopify's Winter '26 Edition raised the per-product variant ceiling to 2048 variants. This matters for stores with high-combination product catalogs — configurators, custom-print products, modular furniture. The raise was substantial; prior limits constrained configurator-style catalogs to a few dozen variants per product, forcing workarounds. The 2048 ceiling effectively removes the constraint for most catalogs.

The practical implication: configurator-style products that previously had to be split into multiple products (one product per dimension combination, for example) can be consolidated under one parent product with full variant coverage. The consolidation improves AI shopping discoverability because the agent reads one product with structured variants rather than 50 products with sparse descriptions.

How AI agents present variants in shopping cards

When an AI agent generates a shopping card for a Shopify product (in ChatGPT, Perplexity, Gemini, Copilot), it surfaces the product image, title, price, and a variant picker — usually showing the Option name + Option values inline. A product with Option name 'Color' and three values (Stone, Slate, Sand) renders as a three-option color picker in the card. A product with 'Default Title' renders as a single-button buy card with no picker.

The agent reads the variant data via the Catalog feed. Stores that set up real variants with real Option names get cleaner cards; stores that leave Default Title get sparse cards. The presentation difference compounds with the conversion difference: a buyer who can see the variant picker in the AI card commits to a specific SKU before clicking through; a buyer landing on the PDP with no preselected variant has to make the choice on the page, which adds friction.

Variant data is also where AI agents pull sizing information for clothing and footwear. A clothing PDP with Option name 'Size' and values XS-XXL gives the agent the size range to surface in the buyer's question ("which sizes are available?"). Without the Option name discipline, the agent has to scrape size data from the description prose — less reliable, less likely to surface.