Shopify product schema is the JSON-LD block your theme adds to each product page so Google and other systems can read name, price, stock and reviews as data. Dawn and Horizon generate it with Shopify's structured_data filter. That output covers the basics. Ratings, GTINs, shipping and returns need a review app, policy markup or Search Console settings.
Structured data does not get you into ChatGPT or AI Mode on its own. Google says so directly. What it does is remove doubt: the price, stock and policy facts a machine reads match what a shopper sees. This post covers what Google documents, what a stock Shopify theme ships, and how to close each gap. It is one part of our AI search guide for Shopify brands.
Does product schema help you show up in AI search?
Start with what Google has published. Its AI features documentation says: "There's also no special schema.org structured data that you need to add" to appear in AI Overviews or AI Mode. Its newer guide to optimizing for generative AI features (last updated July 10, 2026) repeats that structured data "isn't required for generative AI search."
The same guide still recommends structured data as part of normal SEO, because it drives rich result eligibility. Google also advises "making sure your structured data matches the visible text on the page."
Microsoft has gone a step further. In March 2025, Search Engine Land reported that Bing's Fabrice Canel confirmed at SMX Munich that schema markup helps Microsoft's LLMs understand content.
So the honest position is this. Schema is not a ranking trick for AI answers. It is a clean, machine-readable copy of your product facts. That matters most for price, availability, ratings and policies, where a wrong answer costs you the sale.
What should Shopify product schema include?
Google splits product markup into two features. Product snippets are for pages that review products. Merchant listings are for pages where the shopper can buy. Your PDPs are merchant listing pages. Here is what the merchant listing documentation asks for, and what a stock Shopify theme usually delivers.
| Property |
Google status |
Stock Shopify theme |
What good looks like |
name, image, offers |
Required |
Yes, via structured_data |
Matches the visible title, main images and price |
offers.price, priceCurrency |
Required |
Yes |
Price above zero, USD for US stores |
offers.availability |
Recommended |
Yes |
Flips to OutOfStock when inventory hits 0 |
brand.name |
Recommended |
Yes (vendor field) |
Your brand, not the supplier's name |
description |
Recommended |
Yes, from the product description |
Plain product facts, same as the page |
gtin |
Recommended |
Not in Shopify's documented example |
Valid UPC from the Barcode field |
aggregateRating, review |
Recommended |
No, needs a review app |
One rating block, tied to the same product |
shippingDetails |
Recommended |
No |
Rate and transit time, or set in Search Console |
hasMerchantReturnPolicy |
Recommended |
No |
Return window and fees, or set in Search Console |
itemCondition |
Recommended |
No |
NewCondition for new goods |
The "stock theme" column is based on Shopify's own structured_data filter reference. Its example output includes brand, description, image, name, url and an Offer with availability, price and currency. It does not show GTIN, ratings, shipping or returns.
What does a stock Shopify theme output?
Both of Shopify's free reference themes call the filter. In Dawn, the main product section prints {{ product | structured_data }} inside a JSON-LD script tag. In Horizon, the product information section does the same. Dawn's header also outputs an Organization and a WebSite block.
Since July 16, 2024, the filter outputs products with variants as ProductGroup, per the Shopify changelog. That follows Google's product variant guidance. If your theme is older or custom built, it may still have hand-written microdata from years ago. That is where most problems start.
To see what your theme outputs:
- Open a product URL in Google's Rich Results Test.
- Check that "Merchant listings" and "Product snippets" both appear as detected items.
- Open each detected item and read the property list against the table above.
- Run the same URL through the Schema Markup Validator to catch duplicates the Rich Results Test groups together.
Pick 5 URLs: a single-variant product, a multi-variant product, an out-of-stock product, a product with reviews and one with none.
How do you check your schema with the Rich Results Test?
The Rich Results Test shows three things you care about. First, which rich result types are detected. Second, errors, which block eligibility. Third, warnings, which are missing recommended fields.
Errors to fix first on a Shopify store:
- Price missing or zero. Free gifts and $0 sample products trigger this. Google requires a price above zero for merchant listings.
- Two Product entities on one page. Usually the theme block plus an old app or hand-coded block. Google then sees two products with different data.
- Rating without an item. A review app outputs
aggregateRating that is not connected to the theme's Product. The test reports a missing itemReviewed or a separate, incomplete Product.
- Stale
priceValidUntil. Google notes that a past date may stop the listing from showing. Some old themes hard-coded a date years ago.
After the page-level check, open Google Search Console. The Merchant listings and Product snippets reports under Shopping show errors across every indexed PDP, not just the 5 you tested. Google's rich result report overview explains each status.
How do you add review stars to Shopify product schema?
Google's review snippet documentation requires ratingValue plus ratingCount or reviewCount, and the rating must be visible on the page. Shopify's theme filter does not add ratings. Your review app does.
Most review apps have a rich snippets setting. Judge.me, for example, documents it under Settings > Google, SEO and AI > SEO Rich Snippets in its help article. JSON-LD is the default. The same article notes that ratings can take up to 30 days to appear in results after Google recrawls.
Three checks that solve most rating problems:
- One source of rating markup. If an SEO app and a review app both output ratings, turn one off.
- Same format as the theme. A JSON-LD theme plus a microdata review widget often produces a broken, orphaned rating.
- Server-rendered. Search the page source for
aggregateRating. If it only appears after JavaScript runs, crawlers that do not render JavaScript will not see it.
Ratings also feed systems beyond Google. OpenAI's product feed spec has review_count and star_rating fields. Our post on how AI chooses which brands to recommend covers the off-site side, and the Shopify review strategy guide covers collecting more of them.
How do you add shipping and return policy schema on Shopify?
You have three options, and Google ranks them. Per Google's return policy and shipping policy docs (both updated September 8, 2026), the order of precedence is:
- Content API for Shopping settings
- Merchant Center or Search Console settings
- Product-level markup (
shippingDetails and hasMerchantReturnPolicy on the Offer)
- Organization-level markup (
ShippingService and MerchantReturnPolicy under Organization)
Option 1: settings, no code. If you run Google Merchant Center through the Google & YouTube app, set shipping and returns there. Since November 2025, eligible sites without Merchant Center can also set them in Search Console. Google uses Search Console settings over your markup.
Option 2: one Organization block. Add hasMerchantReturnPolicy and hasShippingService to the Organization JSON-LD in your theme header. Google recommends placing it once, on the page describing the policy, not on every page.
Option 3: per product. Only for products whose policy differs, such as final-sale items.
For most $20k to $500k a month stores, Option 1 is enough for Google. Add Option 2 so other crawlers see the same facts. Make sure the numbers match Settings > Policies in Shopify admin.
How do you fix Shopify schema gaps without a developer?
Most fixes are settings, not code.
- GTIN. Fill the Barcode field on each variant in the Shopify product editor with the real UPC. Google's product data specification says to submit only valid GTINs and never guess. Bulk edit or CSV import handles hundreds of SKUs in one pass.
- Brand. Set the Vendor field to your brand name. The filter maps it to
brand.
- Description. Write factual opening copy. See our guide to product descriptions for AI search.
- Ratings. Turn on the review app's JSON-LD option. Turn off duplicate rating output from SEO apps.
- Shipping and returns. Set them in Merchant Center or Search Console.
- Duplicates. If an old schema app is installed, test with it disabled. The App Store category for SEO apps includes several that add or override product markup. Run one, not three. Our Shopify app stack guide covers app overlap.
You need a developer when the theme is custom, uses microdata, or renders markup with JavaScript. Google's merchant listing docs recommend putting Product markup in the initial HTML, because JavaScript-generated markup makes Shopping crawls less frequent and less reliable.
What should you not do with product schema?
Do not mark up anything shoppers cannot see. Google's review rules require ratings to be visible on the page. Hidden FAQ text, invented ratings and fake "in stock" values break Google's guidelines and can cost you rich results.
Do not buy "AI schema" packages that promise ChatGPT placement. No AI platform publishes a schema-based ranking rule. Our llms.txt for Shopify post covers a similar trap with discovery files.
Do not let schema and feed disagree. Google's product structured data intro recommends using both markup and a Merchant Center feed, because some experiences combine the two. A $34 price in the feed and $29 in markup is a mismatch. Our Google AI Mode shopping post covers the feed side, and our Google Shopping optimization guide covers feed quality.
What is a realistic 2-week plan?
Week 1: test 5 URLs, list every error and warning, and fix Barcode, Vendor and review app settings. Week 2: set shipping and returns in Merchant Center or Search Console, add the Organization policy block, remove duplicate markup and request recrawl of top sellers in Search Console.
Then watch the Merchant listings report for 4 weeks. Errors should trend to 0. If you want a fast outside read on schema and other PDP basics, run the free Shopify store grader. If you want a team to own it alongside CRO and feeds, book a call.