Schema markup for fashion products: which structured data does AI search read?
Product, Offer and ProductGroup markup describe price, availability, sizes and colours in a form machines can parse. Here is what to mark up for apparel, and what markup cannot do.
KEY TAKEAWAYS Summary by the editors
- Google's merchant listing markup requires a Product with name, image and an Offer with price and currency, and recommends apparel-relevant properties such as color, size, material, gtin and audience.
- Google's product variant markup uses ProductGroup with variesBy, hasVariant and productGroupID, and supports variation by colour, size, material, pattern, suggested age and suggested gender.
- Google states that no special schema.org markup is needed to appear in AI Overviews or AI Mode, but that structured data should match the visible text on the page.
- OpenAI lists structured metadata from first-party and third-party providers, such as price and product description, among the inputs for ChatGPT shopping results.
- Structured data is only as good as the product information behind it, so PIM quality, consistent identifiers and accurate availability matter more than the markup itself.
For fashion products, the structured data that search engines and AI shopping features read is schema.org Product and Offer markup, extended with ProductGroup for size and colour variants. It states price, currency, availability, identifiers, materials, sizes and return terms in a machine-readable form. It does not guarantee visibility, but it removes ambiguity about facts that assistants otherwise have to infer from the page.
What structured data do AI search features actually use?
Google is explicit that AI Overviews and AI Mode need no special markup. Its guidance says there is no special schema.org structured data to add for these features, and that structured data should match the visible text on the page. Product markup still matters, because Google uses it for merchant listing experiences and recommends keeping Merchant Center information up to date as part of the same fundamentals.
OpenAI describes a similar logic for ChatGPT. Its help page on shopping results lists "structured metadata from first-party and third-party providers (e.g., price, product description)" among the inputs, and says merchants can apply to provide a direct product feed. In practice, the same clean product facts need to flow into on-page markup, merchant feeds and any direct feeds to assistants.
Which properties should a fashion product page mark up?
Google's merchant listing documentation sets the minimum and the recommended fields. For apparel, the recommended product properties carry most of the value.
| Property | Level | Status | Fashion example |
|---|---|---|---|
| name, image | Product | Required | Wool-blend overcoat, front and back images |
| offers.price, priceCurrency | Offer | Required | 289.00, CHF |
| availability | Offer | Recommended | InStock, OutOfStock, PreOrder |
| color, size, material, pattern | Product | Recommended | Navy, M, 70% wool 30% polyamide, herringbone |
| gtin, sku, mpn | Product | Recommended | Unique per size and colour variant |
| audience (PeopleAudience) | Product | Recommended | Target gender and age group |
| brand.name | Product | Recommended | Brand as printed on the label |
| hasMerchantReturnPolicy, shippingDetails | Offer | Recommended | Return window and shipping cost |
Google recommends setting return and shipping policies once at organisation level and using offer-level markup only to override them, which avoids repeating and contradicting the same policy across thousands of product pages.

How do you mark up sizes and colours as variants?
A ProductGroup groups the variants of one parent product, so that shared facts are stated once and the differences are stated per variant. Google's variant guidance sets out how:
- ProductGroup holds shared information such as name, brand, description and reviews.
- variesBy lists the dimensions that differ, using schema.org URLs; Google supports color, size, material, pattern, suggestedAge and suggestedGender.
- hasVariant nests each variant Product, or each variant points to its parent with isVariantOf.
- productGroupID carries the parent identifier (the style or parent SKU); variants can reference it with inProductGroupWithID, and the values must match if both are used.
- Each variant needs its own unique identifier, such as a sku or gtin.
For a typical style available in four colours and seven sizes, that means one ProductGroup and 28 variant Products, each with its own identifier, price and availability. This is where many fashion sites fall short: markup often describes only the default colour and size, or reports "in stock" while most sizes are sold out.
Where should the data come from?
Two fashion-specific details cause most problems. Colour names are often creative ("midnight", "forest") and differ by season, while shoppers and assistants filter by plain colours; keep both, with a normalised value in markup and feeds. Size systems also vary by market, so state whether a size is EU, UK, US or an alpha size, and keep size labels identical between the size selector, the size chart and the markup. The same discipline helps on-site filters and marketplace feeds, not only AI search.
Availability needs the same care. Markup and feeds should reflect live stock per size, updated as often as the shop itself, so that an assistant does not recommend a size that sold out days ago.
Markup should be generated from the product information management (PIM) system and the commerce platform, not typed into templates. The same source should feed the merchant feed, so that page markup and feed agree. Google's Merchant Center rules show why consistency matters: the gender attribute, for example, is required for free listings of Apparel and Accessories products and for Shopping ads targeting Brazil, France, Germany, Japan, the United Kingdom and the United States.
- Agree a single style and variant identifier scheme across PIM, ERP, shop and feeds.
- Normalise colour names into a controlled list while keeping the marketing colour name for display.
- Store fibre composition and size systems as structured attributes, not free text.
- Generate JSON-LD server-side from those attributes and the live price and stock.
- Validate with Google's Rich Results Test and monitor Search Console reports for errors.
Is llms.txt or other new markup needed?
llms.txt is a community proposal for a markdown file that gives AI agents an overview of a site with links to detailed content. It is not a recognised standard for search inclusion, and Google states that no new machine-readable files or AI text files are needed to appear in its AI features. For product discovery, complete Product and Offer markup and accurate feeds remain the priority.

What are the limits of structured data?
Structured data clarifies facts; it does not create demand or authority. A perfectly marked-up page with thin descriptions, poor images or no reviews will still be outranked or left out. Markup also exposes errors faster: if stock, price or sizes are wrong in the source system, structured data spreads the error to every surface that reads it. Treat the markup project as a product data quality project with an SEO benefit, owned jointly by e-commerce, product data and IT teams.
Frequently asked questions
What schema markup should a clothing product page have?
At minimum a Product with name and image, and an Offer with price and priceCurrency. For apparel, add availability, color, size, material, brand, gtin or sku, audience and return and shipping policies, and use ProductGroup for variants.
How do I mark up size and colour variants?
Use a ProductGroup with variesBy set to the schema.org size and color properties, list each variant with hasVariant, and give the group a productGroupID. Each variant needs its own sku or gtin, price and availability.
Does structured data help with ChatGPT and Google AI Mode?
Google says no special markup is required for AI Overviews or AI Mode, but product markup and Merchant Center data feed its shopping experiences. OpenAI lists structured metadata such as price and description among inputs for ChatGPT shopping results.
Do I need an llms.txt file?
No. llms.txt is a community proposal, not a requirement, and Google states that no AI text files are needed for its AI features. Accurate product markup and feeds are more important for fashion e-commerce.
One edition every weekday morning. Read in five minutes. Free for industry professionals.



