Guide

Ecommerce Schema Markup for Online Stores

Schema markup labels the facts on a page so search engines read them without guessing. A store needs Product markup with a nested Offer, ProductGroup markup for variants, Organization and BreadcrumbList markup, and a visible rating. Google no longer shows FAQ or HowTo results. Markup can make a page eligible for a richer result, but does not change its ranking.

By Mert Can Muftuoglu Updated 21 October 2026 13 min read

What schema markup tells a search engine

Schema markup is a block of code that names the things on your page: this is a product, this is its price, this is how many people rated it. Google already reads your visible text, and the markup tells it which value is the price.

The vocabulary is schema.org, a shared list of types and properties. You can write it in three formats: Microdata, RDFa and JSON-LD. Google supports part of that vocabulary, and only that part can produce a richer result.

Use JSON-LD. It sits in a script tag without changing your HTML elements, and your platform probably generates some of it already. The price goes in a nested Offer inside the product.

The smallest block a store page needs

product-page.html · application/ld+json

{ "@context": "https://schema.org",

"@type": "Product",

"name": "Merino Crew Sweater",

1 "image": "https://store.example/img/merino-crew.jpg",

"sku": "MC-1420",

"brand": { "@type": "Brand", "name": "Store Example" },

2 "offers": { "@type": "Offer",

"price": "89.00", "priceCurrency": "USD",

"availability": "https://schema.org/InStock" } }

  • 1Google lists name, image and offers as the required properties for a merchant listing.
  • 2The nested Offer carries price and currency, and a merchant listing needs a price above zero.
Property names from Google's merchant listing documentation; the product, the SKU and the price are an example.

The 2024 Web Almanac found JSON-LD on 41 percent of mobile pages, up from 34 percent in 2022. The Product type appeared on 0.77 percent of pages and BreadcrumbList on 5.66 percent.

A browser-based schema markup generator can draft the block for a page.

Which schema types an ecommerce site needs

An ecommerce site needs four schema types: Product, ProductGroup, Organization and BreadcrumbList. The first two go on the product page, Organization goes on one store-wide page, and BreadcrumbList follows your navigation.

TypeWhere it goesWhat it can show in SearchCore properties
Product with nested OfferProduct pageProduct snippet or merchant listingname, image, offers.price, offers.priceCurrency
ProductGroupProduct page with variantsVariant details in merchant listingsname, hasVariant, variesBy, productGroupID
OrganizationOne store-wide pageStore-level return policy and loyalty benefitsname, url, hasMerchantReturnPolicy
BreadcrumbListCategory and product pagesA category path in place of the URLitemListElement with at least two ListItems
AggregateRating inside ProductProduct pageStar rating in the resultratingValue plus ratingCount or reviewCount
The last column lists Google's required and core properties for each type.

Google's own ecommerce list adds two more: LocalBusiness if you have physical stores, and VideoObject for a product video.

Say you sell kitchenware. The Organization block goes on your home page once, the BreadcrumbList follows Home to Cookware to Pans, and every pan gets its own Product block with its own price.

Make the breadcrumb trail follow your internal linking map, because the markup describes the visitor's route.

Markup for product snippets and merchant listings

One Product block can qualify for two different results, and each one has its own requirements. Google calls them product snippets and merchant listings, and the merchant listing rules are stricter.

A product snippet is for pages where a shopper cannot buy the item from you, such as an editorial review. Google says meeting the merchant listing requirements also makes a page eligible for product snippets, so the stricter set is the one to build to.

A merchant listing is for the pages where you sell the product yourself. Google asks you for name, image and a nested Offer, and that Offer has to carry a real price.

Unlike product snippets, merchant listing experiences require a price greater than zero.

Google Search Central, Merchant listing (Product, Offer) structured data read 20 October 2026

So a call-for-price page, or a configurator with a zero placeholder, cannot qualify as a merchant listing.

Availability, shipping details and return policy are recommended properties. Google prefers the last two at the Organization level.

Google describes these features as changes to how a page appears in search results, and it does not guarantee that it will display the additional product details.

To raise a page's ranking, work on the other parts of your ecommerce SEO plan: product titles, category structure and internal links to the page.

Product variant markup with ProductGroup

A sweater sold in four colors is one parent product with four variants, but separate Product blocks on the color pages hide that relationship in the merchant listing markup. Google's answer is ProductGroup, with each variant nested under hasVariant.

Put the shared details on the group: brand, description, reviews. Put the differences on each variant, and list the differing properties in variesBy. Google accepts six values there, from color and size to material and pattern.

Put your parent SKU in productGroupID, and give every variant its own unique id, usually a SKU or GTIN.

Variant markup on one page and on many

What the group needsWhat each variant needs
One page, variants by query parameter A canonical url on the ProductGroup, usually the base product URLA distinct URL the site can preselect
One page per variant No url on the group, and the full group definition repeated on each pageComplete self-contained markup for that page
Google documents both cases; the url property is what changes between them.

On Shopify, the Liquid structured_data filter outputs a product as a schema.org Product when it has no variants and as a ProductGroup when it has one or more.

On WordPress, your SEO plugin usually generates the page's markup as a single connected block.

So check what your platform emits before you add anything. A review app writing its own Product node next to the theme's node is the most common way a store ends up with two prices in its markup.

Give our schema skill a product URL and it lists the markup that page is missing.

Property names from Google’s product variant documentationGroup the shared facts, keep the differences on the variant

Four color pages marked up as four unrelated products, next to the same four as one ProductGroup.

Group the shared facts, keep the differences on the variant

Put the Product markup in the initial HTML. Google says markup generated by JavaScript can make shopping crawls less frequent and less reliable.

Rules for review and rating markup

A star rating is the most visible thing your markup can add to a product result, and Google sets three conditions before it will show one.

First, Google says users should be able to see the aggregate rating on the marked-up page.

Second, aggregateRating needs ratingValue and at least one of ratingCount or reviewCount.

Third, Google says a page is not eligible for the star feature when the entity being reviewed controls the reviews about itself. So Organization and LocalBusiness markup cannot carry your own star rating.

For example, 143 customer reviews on a pan are fine on that pan's Product block. The same 143 reviews turned into a 4.8 rating of your store, in your Organization block, are not.

Organization markup for returns and loyalty

Ratings describe one product, while your return terms and loyalty program describe the whole store. Those store-level facts go in the Organization block, which you write once.

Google asks you to put your store-wide return policy in the Organization block's hasMerchantReturnPolicy property.

If some products have a different return policy, you override the organization-level policy inside the merchant listing markup for those products.

Loyalty programs go in Organization markup through hasMemberProgram, added in 2025, with member prices marked up on the product itself. Google clarified the documentation for both of these in July 2025, so check a block written before then against the current properties.

Say your members get 10 percent off. The program is described once at the organization level, and the member price sits on the products it covers.

How markup and your product feed work together

If you advertise or use free listings, your product data reaches Google twice: once through the Merchant Center feed and once through the markup on the page. Google reads the markup to correct the feed.

Automatic item updates use your page markup to refresh items when your submitted data is stale. That lowers your risk of disapprovals and account suspension over price and availability mismatches.

Google sets one condition: the structured data must match the values shown to the customer. A price in your markup that the shopper never sees counts as a mismatch.

Valid markup also unlocks the website crawl input method, so Google can build a primary product data source from your annotated pages. Treat that as a backstop, because Google says it does not replace regular feed updates.

Feed titles and attributes follow their own rules, covered in Google Shopping feed optimization.

For example, automatic item updates cover a flash sale price that changes on your site but stays unchanged in the feed.

Which schema types Google has retired

Your feed and your markup can both be valid while the result they aim at no longer exists. FAQPage and HowTo are both in that state.

Going forward, FAQ (from FAQPage structured data) rich results will only be shown for well-known, authoritative government and health websites. … While you can drop this structured data from your site, there is no need to proactively remove it.

Google Search Central, Changes to HowTo and FAQ rich results 8 August 2023, read 20 October 2026

Google's FAQPage documentation records that the feature stopped appearing in Google Search on 7 May 2026, and the documentation for it was removed in June 2026.

Dates from Google’s announcement and documentation changelogSort an old checklist by what Google still shows

The same schema types grouped by whether Google still displays their rich results. FAQPage and HowTo sit on the retired side.

Sort an old checklist by what Google still shows

FAQPage and HowTo markup stay valid; they simply produce no result.

ChangeDateWhat it means for a store
HowTo rich results deprecated13 September 2023HowTo markup earns nothing in Google Search
FAQ rich results restricted, then retired8 August 2023, then 7 May 2026FAQPage markup earns nothing in Google Search
Loyalty program markup addedJune 2025Member prices and benefits can appear on product results

Google says unused markup causes no problem in Search, so you can leave it until your next template change.

Does schema markup help in AI answers?

Ahrefs tested whether adding markup raises AI citations and found no lift. Rich results come from markup, while eligibility for AI answers comes from ordinary indexing.

Google's documentation on AI features says you do not need new machine readable files or markup to appear, and that there is no special schema.org structured data to add. It states one requirement: the page must be indexed and eligible to be shown with a snippet.

Ahrefs tested this in May 2026. Ahrefs compared 1,885 pages that added JSON-LD with matched control pages that did not, tracking both groups for 30 days before and 30 days after the change.

Change in AI citations after adding JSON-LD

Google AI Overviews -4.6% Google AI Mode 2.4% ChatGPT 2.2%
Source: Ahrefs, published 11 May 2026; 1,885 pages that added JSON-LD compared with matched control pages. Only the AI Overviews decline was statistically significant; the two small gains were indistinguishable from zero.

In Ahrefs' analysis of six million URLs, 53 percent of AI-cited pages contained JSON-LD, nearly three times the proportion among pages that were not cited.

That 53 percent may reflect broader page maintenance: sites that keep their markup up to date usually maintain the rest of their pages too.

In December 2025, Search Atlas compared how often OpenAI, Gemini and Perplexity cited domains with different levels of schema markup. Domains with complete schema coverage were cited no more often than those with little or none.

Semrush's correlation study of five million cited URLs found Organization markup on 25 percent of ChatGPT-cited pages and 34 percent of AI Mode citations. Product markup appeared on 1.5 percent of pages cited by ChatGPT and 2.5 percent of those cited by AI Mode.

Semrush's content study of 304,805 AI-cited URLs scored only the text visible on each page, and the cited group scored 21.60 percent higher on what it calls structured data elements. The same study says it did not evaluate schema markup, so that figure is not evidence for adding JSON-LD.

Put nothing in your markup you would not publish on the page. Ahrefs documents a test in which an invented address appeared only in a page's schema, and two assistants repeated it in their answers.

At a conference in March 2025 its search lead said schema markup helps Microsoft's language models make sense of content, as Search Engine Land reported.

Focus on the pages and third-party sources those engines cite, which our generative engine optimization guide covers step by step.

Common ecommerce schema mistakes

Five patterns account for most broken markup on store pages. Of these five, only the price mismatch triggers a Merchant Center disapproval; the other four produce no alert.

What breaks, and what it costs

Why it happensWhat you lose
Markup price differs from the page price Feed, theme and app each write their own valueMerchant Center disapprovals and ineligible rich results
Two Product blocks on one page A review app adds a node next to the theme nodeGoogle picks one set and your ratings may not be in it
Markup injected by JavaScript A front end renders the block client sideLess frequent and less reliable shopping crawls
Category page marked up as a Product A template loop writes Product for a listingAn invalid item and no eligibility
Ratings in the code only Stars in the markup that shoppers never seeIneligible for the review snippet
Each pattern costs a store eligibility for a rich result or a merchant listing.

SearchPilot ran a split test in October 2025 for a travel site whose breadcrumb schema was rendered client side. SearchPilot found that adding server-rendered breadcrumb schema alongside visible mobile breadcrumbs produced a statistically significant 5 percent increase in organic traffic.

SearchPilot published the opposite result for an ecommerce site in 2021. SearchPilot estimated that fixing the breadcrumb markup error so the breadcrumbs showed in the snippet reduced organic traffic by 7 percent on category pages, 6 percent on subcategories and 12 percent on product pages.

In the losing test the snippet showed the top-level category instead of the subcategory, so the result described the page less well than the URL had.

So before you ship a markup fix, look at the result it produces on a sample of pages.

Screaming Frog validates both the schema.org vocabulary and Google's required and recommended properties across every URL in a crawl, which is how you find an error that repeats on a template.

If your catalog is too large to crawl in-house, our technical SEO service can run the crawl and group the errors by template.

How to measure what your markup earns

Search Console reports two things about your markup: how many valid items Google found on each template, and how often the result type appeared in search.

Search Console counts valid items and errors for each type in its enhancement reports.

The performance report groups impressions by search appearance, so you can track increases or decreases for each result type.

Read it after Google has recrawled the templates you changed, which on a large catalog takes more than a day.

For example, after you add the nested Offer, watch valid merchant listing items climb and the error count on that template fall. If neither number moves, the block is not being read.

What schema markup costs to put in place

When the nested Offer is missing, you pay for the development work that adds the markup your platform's default templates leave out. For most stores, that takes a few hours. The markup itself costs nothing.

Shopify generates the Product or ProductGroup block for you, and on WordPress the SEO plugin generates a connected block of markup.

The default block usually leaves out four things: a nested Offer with a real price, variant grouping, ratings and your return policy.

A stock theme usually needs one change on the product template and one on the layout that carries your Organization block, so ask for an estimate in hours per template.

Add one round of retesting after deployment, because a template change can break the block it was meant to fix.

Check your product markup this week

You can scope that template work yourself with one product URL, one category URL and your home page. The five steps below use the Rich Results Test, your page source and a crawler.

  1. Test one product page in the Rich Results Test

    Note which experiences it detects, and read the errors for the merchant listing separately from the product snippet.

  2. Compare the markup with the page

    Price, availability and rating in the code have to match what the shopper sees. For example, a member price in the markup and a list price on the page is a mismatch.

  3. Search the raw HTML for your markup

    Look for application/ld+json in the page source rather than the rendered DOM. If the block only appears after JavaScript runs, move it into the initial HTML.

  4. Count the Product blocks

    More than one means your theme and an app are both writing markup. Keep one and extend it.

  5. Crawl the templates

    Run a structured data crawl over your product and category templates, then fix by template instead of by page.

Then fix the item that blocks the most pages. On most stores that is a missing nested Offer or a rating that exists only in the code.

If you need to scope that development work, our SEO audit services identify the template and the missing property.

Sources

  1. Google Search Central Product structured data: the two experience types, shown at each experience’s discretion last updated 10 December 2025, read 20 October 2026
  2. Google Search Central Merchant listing (Product, Offer) structured data: required name, image and offers, price greater than zero last updated 8 September 2026, read 20 October 2026
  3. Google Search Central Product variant (ProductGroup) structured data: hasVariant, variesBy, productGroupID, initial HTML last updated 8 September 2026, read 20 October 2026
  4. Google Search Central Review snippet structured data: visible ratings, required ratingValue and count, self-serving reviews excluded last updated 8 September 2026, read 20 October 2026
  5. Google Search Central Blog Changes to HowTo and FAQ rich results, with the 14 September 2023 update deprecating HowTo 8 August 2023, read 20 October 2026
  6. Google Search Central FAQPage structured data documentation changelog: feature no longer shown from 7 May 2026, documentation removed June 2026 changelog entries 8 May and 15 June 2026, read 20 October 2026
  7. Google Search Central AI features and your website: no new files or markup needed, indexing and snippet eligibility required last updated 10 December 2025, read 20 October 2026
  8. Google Search Central Include structured data relevant to ecommerce: BreadcrumbList, LocalBusiness, Organization, Product, ProductGroup, Review, VideoObject last updated 10 December 2025, read 20 October 2026
  9. Google Merchant Center Help About structured data markup for Merchant Center: automatic item updates and website crawl read 20 October 2026
  10. Ahrefs Does Schema Markup Increase AI Citations? A controlled study of 1,885 pages that added JSON-LD 11 May 2026
  11. Ahrefs Schema Markup: What It Is & How to Implement It, including the fictional-company address test on two engines 11 May 2026
  12. Semrush How Do Technical SEO Factors Impact AI Search? Five million cited URLs across ChatGPT Search and Google AI Mode 5 January 2026
  13. Semrush How We Built a Content Optimization Tool for AI Search: 304,805 AI-cited URLs, 11,882 prompts 14 January 2026
  14. Search Atlas The Limits of Schema Markup for AI Search: visibility across five levels of schema adoption 14 December 2025
  15. Web Almanac Structured Data chapter 2024: JSON-LD on 41 percent of pages, Product 0.77 percent, BreadcrumbList 5.66 percent 11 November 2024 Measured 22 months ago, on a surface that has moved since.
  16. SearchPilot Mobile breadcrumbs and server-side schema: a split test with a statistically significant 5 percent organic uplift 10 October 2025
  17. SearchPilot SEO split test lessons: fixing breadcrumb markup errors, negative on category, subcategory and product pages 23 May 2021 Measured 5 years ago, on a surface that has moved since.
  18. Schema.org Product: the type definition and its properties read 20 October 2026
  19. Schema.org ProductGroup: hasVariant, variesBy and productGroupID read 20 October 2026
  20. Schema.org Offer: the nested type that carries price, priceCurrency and availability read 20 October 2026
  21. Schema.org AggregateRating: ratingValue, ratingCount and reviewCount read 20 October 2026
  22. Shopify Liquid structured_data filter: Product without variants, ProductGroup with variants read 20 October 2026
  23. Screaming Frog Structured data testing and validation: schema.org vocabulary plus Google rich result feature validation read 20 October 2026
  24. Search Engine Land Microsoft Bing and Copilot use schema markup for their LLMs 19 March 2025 Measured 18 months ago, on a surface that has moved since.
  25. Schema.org Getting Started: the vocabulary and the Microdata, RDFa and JSON-LD formats read 20 October 2026
  26. Yoast Structured data with schema.org: the connected graph an SEO plugin writes read 20 October 2026
  27. PPC Land Google clarifies merchant return policies and loyalty programs documentation 11 July 2025 Measured 14 months ago, on a surface that has moved since.

Questions people ask

What is schema markup?

Schema markup is code in the schema.org vocabulary that labels the facts on a page, such as the price, the rating and the availability of a product. Search engines read it to interpret the page without inferring which number is which. Google supports part of that vocabulary, and only that part can appear as a richer result.

Which schema types does an ecommerce site need?

Product with a nested Offer goes on every product page, and ProductGroup goes there too when the product comes in variants. Organization goes once on a store-wide page. BreadcrumbList goes on category and product pages. Add aggregateRating only where real customer ratings are visible.

Does schema markup move my rankings?

Google documents product structured data as a change in appearance and does not guarantee the enhancement will be shown. It makes a page eligible for a richer result at the position it already holds.

Do I still need FAQ schema?

No. Google Search no longer shows FAQ or HowTo rich results. FAQ rich results were restricted to government and health sites in August 2023 and stopped appearing on 7 May 2026, and HowTo was deprecated in September 2023. Google says there is no need to remove the markup, so it can stay until your next template change.

Do I need a Merchant Center feed if my pages have Product markup?

Yes, if you want shopping surfaces. Google treats the feed as the primary source and uses your page markup to correct stale price and availability through automatic item updates. A website crawl can build a feed from your markup, but Google says it does not replace regular feed updates.