Schema markup for AI search is useful, but it isn't a magic key. Google says structured data "isn't required" for its AI features, while Microsoft Bing says schema helps its AI systems "interpret with confidence" what a page is about. For a D2C brand, four types are worth doing well: Product (with Offer and Review), Organization, a return policy, and FAQ. They make your facts easy for machines to read, and they keep your listings eligible for the rich results that still feed shopping and AI answers.
This post covers what Google, Bing and OpenAI have actually said about structured data, the four schema types to prioritise, copy-paste JSON-LD for each, and the mistakes that quietly break them.
Does schema markup for AI search actually matter?
Here is what the official sources say, as of October 2026. Not what agency decks say.
Google. Its guide to optimizing for generative AI search, last updated July 2026, is blunt: "Structured data isn't required for generative AI search, and there's no special schema.org markup you need to add." In the same breath, it says it's "a good idea to continue using it as part of your overall SEO strategy" because it keeps you eligible for rich results. AI Overviews are built on Google's normal index and rankings, so anything that helps you there helps indirectly.
Microsoft Bing (and Copilot). Bing is more positive. In an October 2025 post on optimizing for AI search answers, Bing product manager Krishna Madhavan wrote that "Schema is a type of code that helps search engines and AI systems understand your content" and that it "can label your content as a product, review, FAQ, or event, turning plain text into structured data that machines can interpret with confidence."
ChatGPT. OpenAI hasn't said ChatGPT reads JSON-LD on your site. For shopping, it has built a separate route: a product feed that merchants send directly, with "identifiers, descriptions, pricing, inventory, media, and fulfillment options". The fields are close to what Product schema already holds. If your schema is clean, building that feed later is much easier.
So the honest summary: schema won't get a weak page cited. But it removes doubt about your facts (price, stock, brand, ratings, return window), and AI engines are built to prefer facts they can trust. It's cheap, it's mostly a one-time job, and it helps normal search too. Do it, but don't expect it to do the work of good pages.
Which schema types do AI engines actually use?
No engine publishes a list. But the overlap between Google's supported features, Bing's guidance and OpenAI's feed fields points clearly at a short list for D2C brands.
| Schema type | Where it goes | What it tells AI engines | Priority |
|---|---|---|---|
Product + Offer |
Every product page | Name, brand, price in ₹, stock, GTIN, images | Do first |
AggregateRating / Review |
Product pages with real reviews | How buyers rate it, and how many | Do first if you have reviews |
Organization |
Home page or About page | Who you are, logo, official profiles, contact | Do first |
MerchantReturnPolicy |
Inside Organization or Offer | Return window, fees, how to return | Do this month |
FAQPage |
Pages with a visible FAQ | Question and answer pairs | Optional, low effort |
BreadcrumbList |
Product and collection pages | Where a page sits in your catalogue | Nice to have |
Notice what isn't here: invented types, "AI schema" plugins, or markup for things that aren't on the page. Google's structured data guidelines say "Don't mark up content that is not visible to readers of the page", and that applies to every type below.
How do you write Product schema for AI search?
Product schema is the most important one for a D2C brand. It's the machine-readable version of your product page, and it's where "price", "in stock" and "4.5 stars" come from.
Google's merchant listing documentation requires name, image and an offers object with a price and a priceCurrency. It recommends description, brand, gtin, aggregateRating, availability, shippingDetails and hasMerchantReturnPolicy. Only pages where a shopper can actually buy are eligible for merchant listings, so this goes on your product pages, not collection pages.
Here's a complete example for a protein-bar brand. Swap in your own values.
<script type="application/ld+json">
{
"@context": "https://schema.org",
"@type": "Product",
"name": "Peanut Butter Protein Bar, 20 g protein (Pack of 6)",
"description": "High-protein bar with 20 g whey protein, 4 g fibre and no added sugar. 60 g per bar.",
"image": [
"https://example.in/images/pb-bar-1x1.jpg",
"https://example.in/images/pb-bar-4x3.jpg",
"https://example.in/images/pb-bar-16x9.jpg"
],
"sku": "PB-BAR-6",
"gtin13": "8901234567890",
"brand": { "@type": "Brand", "name": "Example Nutrition" },
"aggregateRating": {
"@type": "AggregateRating",
"ratingValue": "4.4",
"reviewCount": "312"
},
"offers": {
"@type": "Offer",
"url": "https://example.in/products/peanut-butter-protein-bar",
"price": "540.00",
"priceCurrency": "INR",
"availability": "https://schema.org/InStock",
"itemCondition": "https://schema.org/NewCondition",
"shippingDetails": {
"@type": "OfferShippingDetails",
"shippingRate": { "@type": "MonetaryAmount", "value": "0", "currency": "INR" },
"shippingDestination": { "@type": "DefinedRegion", "addressCountry": "IN" },
"deliveryTime": {
"@type": "ShippingDeliveryTime",
"handlingTime": { "@type": "QuantitativeValue", "minValue": 0, "maxValue": 1, "unitCode": "DAY" },
"transitTime": { "@type": "QuantitativeValue", "minValue": 2, "maxValue": 5, "unitCode": "DAY" }
}
}
}
}
</script>
Three things that matter more than they look:
- The description should hold facts, not adjectives. "20 g protein, 4 g fibre, no added sugar" is something an AI answer can repeat. "Delicious guilt-free fuel" isn't.
- Price and stock must match the page. If your app updates the visible price for a sale but the JSON-LD still says the old price, you're feeding engines wrong data. Check after every sale.
- Add the GTIN if you have one. The barcode number on your pack links your product to the same item on Amazon, Flipkart, Nykaa or Blinkit, so engines know it's one product, not five.
If you're on Shopify, your theme probably outputs some Product JSON-LD already. Check what's there before adding more. Two competing Product blocks with different prices is worse than one complete one.
How do you add Review and rating schema without breaking the rules?
Reviews are one of the factors buyers weigh, and OpenAI's shopping help says ChatGPT may consider "price, reviews, and ease of use" when picking products. Marking them up makes your rating explicit instead of something a crawler has to guess from a widget.
Two rules from Google's review snippet documentation catch D2C brands out:
- Put ratings on the Product, not the Organization. Google says that if a business controls the reviews about itself, its pages using
OrganizationorLocalBusinessmarkup are "ineligible for star review feature". That includes reviews shown through an embedded third-party widget. Product reviews on product pages are fine. - Every review needs an author and a rating. A
Reviewneedsauthor,reviewRatingandratingValue. AnAggregateRatingneedsratingValueplus eitherratingCountorreviewCount.
To mark up individual reviews too, add a review array inside the Product block from above:
"review": [
{
"@type": "Review",
"author": { "@type": "Person", "name": "Priya S." },
"datePublished": "2026-09-14",
"reviewRating": { "@type": "Rating", "ratingValue": "5", "bestRating": "5" },
"reviewBody": "Keeps me full till lunch. Not too sweet, which I liked."
}
]
Mark up only reviews that are shown on the page, and never hand-pick five-star reviews for the markup while hiding the rest. Your review app (Judge.me, Yotpo or similar) may already output this. Check before duplicating it.
What should Organization schema include?
Organization schema answers "who is this brand?" It's how engines connect your website to your Instagram, your Amazon store, your LinkedIn page and your logo, so they treat them as one entity.
Google's Organization documentation, updated September 2026, has no required properties. It recommends putting it on your home page or About page, and lists name, url, logo, sameAs, contactPoint, address, plus newer commerce properties like hasMerchantReturnPolicy and hasShippingService.
<script type="application/ld+json">
{
"@context": "https://schema.org",
"@type": "Organization",
"name": "Example Nutrition",
"url": "https://example.in",
"logo": "https://example.in/images/logo-512.png",
"description": "Indian D2C brand making high-protein snacks with no added sugar.",
"email": "care@example.in",
"telephone": "+91-98765-43210",
"address": {
"@type": "PostalAddress",
"addressLocality": "Pune",
"addressRegion": "MH",
"addressCountry": "IN"
},
"sameAs": [
"https://www.instagram.com/examplenutrition",
"https://www.linkedin.com/company/examplenutrition",
"https://www.youtube.com/@examplenutrition",
"https://www.amazon.in/stores/ExampleNutrition"
],
"hasMerchantReturnPolicy": {
"@type": "MerchantReturnPolicy",
"applicableCountry": "IN",
"returnPolicyCategory": "https://schema.org/MerchantReturnFiniteReturnWindow",
"merchantReturnDays": 7,
"returnMethod": "https://schema.org/ReturnByMail",
"returnFees": "https://schema.org/FreeReturn"
}
}
</script>
The sameAs list is the part most brands skip. Only include profiles you own and keep active. The return policy block uses schema.org's MerchantReturnPolicy type, and it's worth adding because "what's the return policy?" is exactly the kind of question shoppers ask AI assistants before buying. If your policy says 7 days, the markup should say 7, not the 30 days you had last year.
Is FAQ schema still worth adding?
Lower priority than it used to be, but still cheap. Google's FAQ rich results, the expandable questions under a search result, were already limited to government and health sites, and Google's FAQ documentation now notes the feature stopped appearing in Search from 7 May 2026. So don't add FAQ markup expecting a bigger Google listing.
Why bother at all? FAQPage is still a valid schema.org type, Bing names FAQ among the content types schema helps AI systems understand, and FAQs are the natural format for the questions buyers ask AI assistants. If you already have a visible FAQ on a product or guide page, marking it up takes ten minutes:
<script type="application/ld+json">
{
"@context": "https://schema.org",
"@type": "FAQPage",
"mainEntity": [
{
"@type": "Question",
"name": "Is this protein bar okay for diabetics?",
"acceptedAnswer": {
"@type": "Answer",
"text": "It has no added sugar and 6 g of total sugar per bar, from peanuts and milk. If you are diabetic, check with your doctor before adding it to your diet."
}
},
{
"@type": "Question",
"name": "How long does it stay fresh?",
"acceptedAnswer": {
"@type": "Answer",
"text": "Six months from the manufacturing date printed on the pack. Store below 30°C, away from direct sunlight."
}
}
]
}
</script>
The text in the markup must match the visible answer word for word, or close to it. And the real value is the questions themselves. Pull them from WhatsApp chats, support tickets and Amazon or Nykaa Q&A, not from your imagination.
What schema mistakes stop AI engines trusting your data?
Most broken schema we see on D2C sites isn't missing. It's wrong. Run through this list:
- Stale prices or stock. Markup says ₹499 and in stock; the page says ₹549 and sold out.
- Duplicate blocks. Theme, review app and SEO app each output their own Product block, with different values.
- Ratings on the home page. A site-wide "4.8 stars" in Organization markup. Ineligible for stars, and it looks like gaming.
- Invisible content. FAQs, reviews or claims in the JSON-LD that aren't on the page.
- Wrong currency.
USDleft over from a theme demo instead ofINR. - Missing
@contextor broken JSON. One stray comma and the whole block is ignored. - Marketing copy as description. Adjectives where facts should be.
- Dead
sameAslinks. An old Twitter handle or a closed marketplace store.
Google's guidelines warn that misleading markup can trigger a manual action, which removes rich result eligibility. More practically, wrong data in your schema is wrong data in someone's AI answer.
How to check yours
Pick your best-selling product page and your home page, and do this:
- Paste each URL into Google's Rich Results Test. It shows which types it finds and any errors.
- Paste the same URLs into the Schema Markup Validator for a stricter schema.org check, including types Google doesn't show as rich results.
- Compare the price, stock, rating and return days in the output against what a shopper sees on the page. They must match.
- Count the Product blocks. If there's more than one, decide which app owns it and turn the others off.
- In Search Console, check the Merchant listings and Product snippets reports for errors across all pages.
Schema is only one input. To see whether AI engines actually mention and cite your brand for the questions that matter, get our free AI visibility report. If AI crawlers can't reach your product pages, no markup will help, so it's also worth running the free AI crawler checker. And if you want the whole job done, from schema to the pages that get cited, that's our Get Found work.
FAQ
Does schema markup help you show up in ChatGPT?
OpenAI hasn't confirmed that ChatGPT reads JSON-LD on websites. Its shopping help says it uses structured metadata such as price and description from first- and third-party providers, and it offers a separate product feed for merchants. Clean Product schema makes both easier, but it won't get a weak page cited.
Is schema markup required for Google AI Overviews?
No. Google says structured data isn't required for generative AI search and there's no special markup for it. It still recommends structured data for rich results, and AI Overviews draw on the same index, so keep it.
Which schema type should a D2C brand add first?
Product with a complete Offer (price in INR, availability, shipping) on every product page, then Organization on your home page. Add ratings and a return policy next. FAQ markup comes last.
Should I remove FAQ schema now that Google dropped FAQ rich results?
You don't need to. FAQPage is still valid schema.org markup and Bing lists FAQ among the types that help its AI systems. Just make sure the marked-up questions and answers are visible on the page.
Can a plugin do all of this for me?
A good Shopify theme, review app or SEO plugin can output most of it. The work is checking that only one tool outputs each type, that the values match the page, and that the facts in the description are specific.
If you'd like to know where your brand stands in AI answers before touching any code, start with the free AI visibility report. It shows which buyer questions you appear for and which fixes matter most. Or get in touch and we'll look at your product pages with you.