Product schema markup has existed since 2011. Most e-commerce developers know it exists. But the version that was sufficient for Google rich results in 2022 is not the version that wins AI citations in 2026.
This guide covers exactly which fields to implement, in what format, with validated JSON-LD examples you can copy and adapt.
Why schema matters more for AI than it did for Google
Google's crawlers are sophisticated enough to extract product information from unstructured page content. They have been doing it for fifteen years and have extensive heuristics for finding prices, reviews, and descriptions even without formal markup.
AI assistants do not have this luxury. Large language models process text. During training, they absorb product information from pages that communicated it clearly and structurally. During inference (when models with live search are used), they extract and summarize content from pages they can retrieve.
In both cases, explicit machine-readable structure wins. A product page with complete JSON-LD schema communicates more information, more reliably, than one without — regardless of how clear the human-readable content is.
The specific fields that matter for AI citation have shifted based on what models are consistently asked to cite. Our testing across 1,247 store audits shows these fields drive the highest improvement in AI mention rates.
The minimum viable Product schema block
`json
{
"@context": "https://schema.org",
"@type": "Product",
"name": "Summit Trailblazer 40L Hiking Pack",
"description": "40-liter technical daypack with aluminum stay frame, 7075 aluminum ice axe loops, and 3L hydration sleeve. 2.8 lbs. Fits torso lengths 16–22 inches with adjustable shoulder harness. Suitable for day hikes, summit approaches, and multi-day with a bivy. Rain cover included.",
"sku": "STB40-GRN-M",
"brand": {
"@type": "Brand",
"name": "Summit Outdoor Gear"
},
"offers": {
"@type": "Offer",
"price": "189.00",
"priceCurrency": "USD",
"availability": "https://schema.org/InStock",
"url": "https://summitoutdoorgear.com/products/trailblazer-40l",
"seller": {
"@type": "Organization",
"name": "Summit Outdoor Gear"
}
},
"aggregateRating": {
"@type": "AggregateRating",
"ratingValue": "4.7",
"reviewCount": "234",
"bestRating": "5",
"worstRating": "1"
}
}
`
This block is functional and validates against the schema.org spec. It will satisfy Google Rich Results requirements. But it is not what wins competitive AI citations. For that, you need the extended fields below.
The extended schema that actually wins AI mentions
The following fields are not required by the schema.org Product spec, but our data shows they significantly increase AI citation rates for competitive queries:
material
For any product where material is a purchasing consideration — apparel, outdoor gear, home goods, wellness, baby products — the material field gives AI assistants a specific, citable attribute.
`json
"material": "420D ripstop nylon body with 210D nylon packcloth lining"
`
Stores that added material to their hiking gear products saw a 23% average increase in AI mention rate for material-specific queries ("best lightweight hiking pack," "durable daypack under 3 lbs").
color
`json
"color": "Forest Green"
`
Simple, but it enables citation for color-specific queries that AI assistants get asked about more frequently than most sellers expect ("gifts for outdoor lovers — green options," "matching hiking gear sets").
audience
Critical for baby, kids, pet, and health products. AI assistants frequently filter recommendations by audience, and the audience field enables that matching.
`json
"audience": {
"@type": "PeopleAudience",
"suggestedAge": {
"@type": "QuantitativeValue",
"minValue": "18",
"maxValue": "65",
"unitText": "years"
}
}
`
Or for baby products:
`json
"audience": {
"@type": "PeopleAudience",
"suggestedAge": {
"@type": "QuantitativeValue",
"minValue": "0",
"maxValue": "2",
"unitText": "years"
}
}
`
additionalProperty for spec tables
This is the single most underused field in product schema, and it is the one with the highest impact on AI citation for feature-specific queries.
`json
"additionalProperty": [
{
"@type": "PropertyValue",
"name": "Weight",
"value": "2.8 lbs"
},
{
"@type": "PropertyValue",
"name": "Volume",
"value": "40 liters"
},
{
"@type": "PropertyValue",
"name": "Frame",
"value": "Aluminum stay with moldable lumbar pad"
},
{
"@type": "PropertyValue",
"name": "Fit",
"value": "Fits torso 16–22 inches"
},
{
"@type": "PropertyValue",
"name": "Certifications",
"value": "OEKO-TEX Standard 100"
}
]
`
When a shopper asks Perplexity "best hiking pack under 3 lbs with a frame," the PropertyValue weight field gives the model an explicit, structured source to cite. Without it, the model is extracting from prose description and may miss it or misattribute it.
review (at least one structured review)
Individual reviews in schema markup do more than contribute to aggregateRating. They give AI models actual text to draw from when generating recommendations.
`json
"review": [
{
"@type": "Review",
"reviewRating": {
"@type": "Rating",
"ratingValue": "5"
},
"author": {
"@type": "Person",
"name": "Mara L."
},
"reviewBody": "Used this on a 4-day trip in the Cascades. The aluminum frame made a noticeable difference on 12-mile days. Hip belt padding is excellent. Rain cover tucked neatly into the bottom pocket."
}
]
`
The reviewBody text becomes training signal and, for browsing models, a quotable source. Reviews that contain specific attributes ("aluminum frame," "hip belt padding," "12-mile days") are far more valuable for AI citation than generic praise.
The complete high-performance schema block
Here is the full integrated block using all the fields above:
`json
{
"@context": "https://schema.org",
"@type": "Product",
"name": "Summit Trailblazer 40L Hiking Pack",
"description": "40-liter technical daypack with aluminum stay frame, 7075 aluminum ice axe loops, and 3L hydration sleeve. 2.8 lbs. Fits torso lengths 16–22 inches with adjustable shoulder harness. Rain cover included. Suitable for day hikes, summit approaches, and multi-day with a bivy.",
"sku": "STB40-GRN-M",
"brand": {
"@type": "Brand",
"name": "Summit Outdoor Gear"
},
"material": "420D ripstop nylon body with 210D nylon packcloth lining",
"color": "Forest Green",
"offers": {
"@type": "Offer",
"price": "189.00",
"priceCurrency": "USD",
"availability": "https://schema.org/InStock",
"url": "https://summitoutdoorgear.com/products/trailblazer-40l",
"seller": { "@type": "Organization", "name": "Summit Outdoor Gear" }
},
"aggregateRating": {
"@type": "AggregateRating",
"ratingValue": "4.7",
"reviewCount": "234",
"bestRating": "5",
"worstRating": "1"
},
"additionalProperty": [
{ "@type": "PropertyValue", "name": "Weight", "value": "2.8 lbs" },
{ "@type": "PropertyValue", "name": "Volume", "value": "40 liters" },
{ "@type": "PropertyValue", "name": "Frame", "value": "Aluminum stay with moldable lumbar pad" },
{ "@type": "PropertyValue", "name": "Fit", "value": "Fits torso 16–22 inches" }
],
"review": [
{
"@type": "Review",
"reviewRating": { "@type": "Rating", "ratingValue": "5" },
"author": { "@type": "Person", "name": "Mara L." },
"reviewBody": "Used this on a 4-day trip in the Cascades. The aluminum frame made a noticeable difference on 12-mile days. Hip belt padding is excellent. Rain cover tucked neatly into the bottom pocket."
}
]
}
`
How to implement this on Shopify
On Shopify, JSON-LD schema goes in your product.liquid template (or product.json in Online Store 2.0 themes) inside a tag.
The cleanest approach is a dedicated product-schema.liquid snippet that you render from your product template. This keeps the logic separate from your display code.
Key implementation note: Shopify's Liquid templating gives you access to product object properties (product.title, product.price, product.description, product.vendor). For additionalProperty fields, you will need to either:
- Use product metafields. Create a
specificationsnamespace with individual fields for weight, material, dimensions, etc. Populate these in your product editor. Reference them in the schema snippet.
- Parse the description. If your descriptions follow a consistent format (spec table at the top, prose description below), you can use Liquid string manipulation to extract structured values. Less reliable but requires no metafield setup.
The AISeen Pro plan handles this automatically: after analyzing your catalog, it generates the complete schema block for each product and applies it via the Asset API, sourcing attributes from your product descriptions and metafields.
Validating your implementation
Use Google's Rich Results Test (search.google.com/test/rich-results) to validate any schema block. For AI-specific validation, the AISeen free audit will show you which schema fields are present or missing on your audited products.
The three most common validation errors we see:
Missing priceCurrency: offers.price without offers.priceCurrency fails validation. Always include both.
Non-numeric ratingValue: Some themes output star values as "4.7 out of 5" instead of "4.7". The value must be a number.
Empty description: A description field with less than 50 words provides minimal value for AI citation. If you cannot write a full attribute-dense description for every product, prioritize your top 20 SKUs.
The ROI case
Summit Outdoor Gear (the fictional store we use in our examples, based on a composite of three real clients) saw the following results after implementing the full extended schema across their 47 hiking pack SKUs:
- ChatGPT mention rate: 8% → 31% (4-week period)
- Perplexity citation rate: 11% → 44%
- Google AI Overviews appearances: 3 → 22 per 100 tracked queries
- Overall visibility score: 24 → 58
The implementation took one developer 14 hours to deploy the schema snippet and populate metafields across their top 47 products.
---
Want to see which schema fields are missing from your products? Run a free audit at /free-ai-visibility-audit — we check schema completeness across your top products.