In short
- Most modern Shopify themes output Product or ProductGroup markup through the structured_data Liquid filter, so check before adding apps.
- Google's merchant listing markup requires name, image and an offer with a price above zero and a currency code.
- Star ratings are eligible on product pages, but self-serving reviews marked up as Organization or LocalBusiness are not.
- Google stopped showing FAQ rich results from 7 May 2026, so FAQ schema is no longer a rich-result tactic.
- Define store-wide shipping and return policies once under Organization markup and override them at offer level only when needed.
Shopify schema markup is structured data, usually JSON-LD, that tells Google exactly what a page contains: a product with a price and stock status, reviews with a rating, or the business behind the store. In 2026, Product and Organization markup are the two that matter most for Shopify stores. Review markup only earns stars on product pages, and FAQ markup no longer produces FAQ rich results in Google Search at all.
That last point surprises a lot of store owners, because FAQ schema was a popular SEO tactic for years. This guide covers what each schema type does today, what Google requires, how Shopify themes handle it, and how to check your own store.
- Most modern Shopify themes already output Product markup through the structured_data Liquid filter; check it before adding apps.
- Google's merchant listing markup requires name, image and an offer with price and currency; shipping, returns, GTIN and ratings are recommended.
- Star ratings are only eligible on product pages; self-serving reviews on Organization or LocalBusiness markup are not.
- Google stopped showing FAQ rich results in May 2026, so FAQ schema is no longer a rich-result tactic.
What schema markup does, and what it does not do
Structured data helps Google understand a page and makes it eligible for richer displays in search: price, availability, star ratings, shipping and returns information, and variant options. According to Google's product structured data documentation, this can appear in Search results, Google Images and Google Lens.
Schema markup is not a ranking shortcut. It does not make a thin page rank, and valid markup does not guarantee a rich result. Treat it as making your product data clear and machine-readable, which supports everything else you do.
Product markup: the one every Shopify store needs
Product snippets vs merchant listings
Google distinguishes between two experiences. Product snippets are for pages where a shopper cannot buy directly, such as review or comparison articles. Merchant listings are for pages where a shopper can buy the product, which is every Shopify product page. Merchant listings support extra details such as shipping, returns and apparel sizing.
Required and recommended properties
Google's merchant listing documentation sets out the following, as of September 2026:
| Level | Required | Recommended |
|---|---|---|
| Product | name, image, offers | description, brand, sku, gtin or mpn, aggregateRating, review, color, size, category |
| Offer | price (greater than zero), priceCurrency (ISO 4217, such as INR) | availability, itemCondition, url, priceValidUntil, shippingDetails, hasMerchantReturnPolicy |
In July 2026, Google also added guidance on using validFrom, validThrough and priceValidUntil to mark the date range of sale prices, which is useful if you run festive sales with scheduled price changes (Google Search Central: Latest updates).
Variants: ProductGroup
Shopify products with sizes or colours are a natural fit for Google's product variant markup. It uses a ProductGroup with productGroupID, variesBy (for example size or colour) and hasVariant, which nests each variant as its own Product with its own price, SKU and availability. Google notes that this makes products eligible to show variant information in merchant listing experiences.
How Shopify themes handle Product markup
Shopify provides a Liquid filter called structured_data. Used on a product, it outputs schema.org Product markup, or ProductGroup when the product has variants. Many current themes use it, often in the main product section, like this:
{{ product | structured_data }} inside a script tag of type application/ld+json.
Older or heavily customised themes may still have hand-written JSON-LD in a snippet such as product-schema.liquid or inside the product section. The common problems we see in audits are:
- Two or three sets of Product markup on one page (theme plus an SEO app plus a reviews app), sometimes with conflicting prices.
- Missing brand, SKU or GTIN because those fields are empty in the Shopify admin.
- Availability hard-coded as InStock even when the variant is sold out.
- Prices output without currency, or in the wrong currency on international storefronts.
The fix is usually to pick one source of Product markup, remove the others, and fill the underlying product data properly: vendor, SKU and barcode fields in the admin feed straight into good markup.
Review markup: stars on products, not on your brand
Google's review snippet guidelines require an author and a reviewRating for individual reviews, and a ratingValue plus either ratingCount or reviewCount for AggregateRating. On a Shopify product page, AggregateRating normally sits inside the Product markup.
The important restriction is on self-serving reviews. Google states that if the entity being reviewed controls the reviews about itself, pages using LocalBusiness or any other Organization structured data are not eligible for star review features. In practice:
- Eligible: customer reviews of a specific product, marked up on that product page.
- Not eligible: a "4.8 stars from 2,000 customers" rating for your brand, marked up as Organization on your home page, even if it comes from an embedded review widget.
Most Shopify review apps, such as Judge.me, Loox, Yotpo and Okendo, can inject AggregateRating into your product markup or output their own. Check which one is active so you do not end up with two ratings blocks on the same page.
Also make sure the rating in your markup matches what shoppers see on the page. Marking up reviews that are not visible, or inflating counts, breaks Google's guidelines and can lead to a manual action.
FAQ markup: what changed in 2026
Google restricted FAQ rich results to well-known government and health sites back in 2023. In 2026 it went further. Google's changelog records that the FAQ rich result would no longer appear in Google Search starting 7 May 2026, and in June 2026 it removed the FAQ rich result documentation entirely (Google Search Central: Latest updates).
What that means for your store:
- Adding FAQPage markup to product or collection pages will not produce expandable FAQ results in Google Search.
- Existing FAQPage markup is not harmful, so there is no urgent need to strip it out, but do not pay for apps or development work sold on the promise of FAQ rich results.
- Visible FAQ content on the page still has value. Clear questions and answers help shoppers, reduce support tickets and give search engines well-structured text to understand.
In other words, keep writing good FAQs for people. Just stop treating the markup as a rich-result tactic.
Organization markup: your store's identity card
Organization markup tells Google who runs the site. Google's Organization documentation says there are no required properties and recommends placing it on the home page or a single page that describes the organisation. Useful properties include name, url, logo (at least 112 by 112 pixels), sameAs links to your social profiles, contactPoint, address, telephone and email.
For ecommerce, Organization has become more important because Google now supports store-wide policies at this level:
- hasMerchantReturnPolicy: Google clarified in July 2025 that merchant-level return policies must be defined under Organization, with offer-level policies supporting only a subset.
- Shipping policies: in November 2025 Google added support for merchant-level shipping policy markup in Search.
The merchant listing documentation recommends defining standard shipping and return policies once under Organization and using offer-level shippingDetails or hasMerchantReturnPolicy only to override them for specific products. For an Indian D2C brand with a single "7-day returns, free shipping over ₹499" policy, that means one clean block on the home page rather than repeating it on every product.
Quick reference: which schema goes where
| Schema type | Where on a Shopify store | Rich result potential in 2026 |
|---|---|---|
| Product or ProductGroup with Offer | Every product page | Price, availability, shipping, returns, variants |
| AggregateRating and Review | Inside Product markup | Star ratings on product results |
| Organization with policies | Home page or About page | Supports brand and merchant information |
| BreadcrumbList | Product, collection and blog pages | Breadcrumb trail in results |
| Article | Blog posts (structured_data filter supports articles) | Article understanding, not a special display |
| FAQPage | Optional | None in Google Search since May 2026 |
How to test your Shopify schema in 15 minutes
- Pick one simple product, one product with variants and one sold-out product.
- Run each through Google's Rich Results Test. Check that Product or merchant listing items are detected with no critical errors.
- Expand the detected items and confirm price, currency and availability match the page, especially for the sold-out product.
- Count the Product items. If you see more than one per page, find which theme file or app is adding the duplicate.
- Test your home page for Organization markup with the Schema Markup Validator, which checks schema.org validity beyond Google's supported features.
- In Search Console, open the Merchant listings and Product snippets reports under Shopping to monitor errors across the whole site over time.
If your store also sells through Google Merchant Center, keep the prices and availability in your markup consistent with your feed. Mismatches are a common source of disapprovals.
Structured data is one item in a wider technical review; our free website audit checklist puts it alongside speed, UX and conversion checks.
Get your structured data working for you
Schema problems are rarely dramatic, but duplicated markup, missing GTINs and wrong availability quietly limit how your products appear in Google. If you want your theme's markup audited and cleaned up alongside the rest of your technical SEO, our Shopify SEO services cover exactly that.
Frequently asked questions
Most current Shopify themes output Product markup automatically, often using Shopify's structured_data Liquid filter, which produces Product or ProductGroup markup. Older or customised themes may use hand-written JSON-LD instead. Run a few product URLs through Google's Rich Results Test to see exactly what your theme outputs before installing any schema app.
Not for rich results. Google's changelog shows FAQ rich results stopped appearing in Google Search from 7 May 2026. Existing FAQ markup does no harm, but it is not worth paying for. Visible FAQ content on the page is still useful for shoppers and for search engines understanding the page.
Common causes are missing or duplicate AggregateRating markup, ratings that do not match what is visible on the page, or marking up brand-level reviews on the home page, which Google treats as self-serving and ineligible. Valid markup also does not guarantee stars; Google decides whether to show them.
Often not. If your theme already outputs clean Product markup and your reviews app adds ratings, an extra schema app can create duplicate or conflicting data. An app or custom code makes sense when you need Organization policies, breadcrumbs or fixes your theme does not handle, and only after removing overlaps.
Merchant listings are for pages where shoppers can buy the product directly, such as Shopify product pages, and support extras like shipping, returns and variants. Product snippets are for pages that discuss products without selling them, such as review articles. Google's documentation covers both, with different recommended properties.