Product structured data is JSON-LD code on a product page that tells Google the product’s name, images, price, availability, reviews and delivery terms. Combined with a product feed in Google Merchant Center, it makes your products eligible for price-and-stock rich results, the Shopping tab and other Google surfaces, free of charge.
What is the difference between product snippets and merchant listings?
Google’s Product documentation names two features that use the same Product markup:
| Feature | For which pages | What it adds |
|---|---|---|
| Product snippets | Product pages where people cannot buy directly (reviews, comparison and editorial pages) | Review stars, ratings, pros and cons on editorial reviews |
| Merchant listings | Pages where shoppers can buy from you | Price, availability, shipping details, return policy, apparel sizing |
Include the properties required for merchant listings and the page is also eligible for product snippets. Google can add to results ratings, shipping costs, availability, return information and price drops. Price drops are calculated by Google and not guaranteed to appear.
Why does this matter for ecommerce SEO?
A result with a price, stock status and stars takes more space and answers a buyer’s question before the click. On top of that, structured data is the way you describe products so Google reads them correctly, instead of guessing from page text. Google’s page on this says you can add structured data to your pages, upload a feed to Merchant Center and opt into free listings, or do both. Using both maximizes eligibility and helps Google understand and verify your data. Some features fill gaps from the other source: a product snippet can take its price from your feed when the page has none.
Google’s May 2026 guide on generative AI features recommends Merchant Center feeds for product data. Structured data does not need special treatment for AI features, but a clean feed and accurate markup are the sources Google can check.
Which properties does Google require?
From Google’s merchant listing documentation:
- Product:
name,image(Google recommends several high-resolution images in 16x9, 4x3 and 1x1 ratios) andoffers. - Offer:
price(greater than zero) andpriceCurrency(three-letter ISO 4217 code such as USD or EUR). Merchant listings need a singleOffer, not anAggregateOffer, because the merchant must be the seller. - Recommended:
availability,itemCondition,priceValidUntil,url,brand,sku,mpn, GTIN fields,description,aggregateRatingandreview. - Shipping and returns: Google prefers one global policy under
Organization, referenced from the offer, over repeatingshippingDetailsandhasMerchantReturnPolicyon every product.
A minimal example:
{
"@context": "https://schema.org/",
"@type": "Product",
"name": "Merino hiking socks",
"image": ["https://example.com/img/socks-1x1.jpg"],
"sku": "SOCK-001",
"brand": { "@type": "Brand", "name": "Fellwind" },
"offers": {
"@type": "Offer",
"url": "https://example.com/merino-hiking-socks/",
"price": 18.50,
"priceCurrency": "EUR",
"availability": "https://schema.org/InStock",
"itemCondition": "https://schema.org/NewCondition"
}
}
How do you set up product markup and Merchant Center, step by step?
- Check your page type. Each marked-up page must let shoppers buy one product (or variants of one product). Category and listing pages do not qualify for merchant listings.
- Check what your platform already outputs. Shopify, WooCommerce and most themes print Product markup. Test a product URL in the Rich Results Test before adding anything, to avoid duplicates.
- Fill the required and recommended properties, including GTIN, brand and availability. Use one URL for each currency offered.
- Put the markup in the initial HTML. Google notes that JavaScript-generated Product markup can make crawling less frequent and less reliable (see JavaScript SEO).
- Show the same data on the page. Price, availability and ratings in the markup must match what a shopper sees.
- Mark sales correctly. Add
priceTypeset tohttps://schema.org/StrikethroughPriceon the original price only, and setpriceValidUntilfor the sale period. - Create a Merchant Center account and add your products. New accounts are opted into free listings by default. For existing accounts, open Marketing methods and check the Free listings card. Upload a feed or connect your store through its Google channel app.
- Complete the feed attributes. Google’s free listings page requires id, title, link, image link, price, description, availability and shipping, plus condition, brand and GTIN or MPN where they apply. Add return policy information, ideally in Merchant Center. Shipping settings are mandatory in listed countries such as the US, UK, Germany and Japan.
- Fix issues. Work through the Needs attention tab on the Products page.
Free listings show products in the Shopping tab, in Google Search results (price, availability, reviews), in Google Images and Lens, on YouTube in some countries and on other Google surfaces.
How do you measure the result?
- Search Console has Product snippets and Merchant listings reports with valid items, warnings and errors.
- Merchant Center shows product status and diagnostics, and a performance report for free listings clicks and impressions.
- In Search Console’s Performance report, filter by search appearance to compare CTR for product results and plain ones.
- Compare price and stock in markup, feed and page on a sample of products every month. A mismatch is the first thing to fix.
What mistakes should you avoid?
- Markup that disagrees with the page: a price in JSON-LD different from the visible one, or a product marked in stock when it is sold out.
- Marking up category pages as if they were one product.
- Fake or copied reviews and ratings that the page does not show (see customer reviews).
- Missing GTINs for products that have them.
- Duplicate markup from a theme and an app, each printing a different price.
- Leaving shipping and return details out, which stops listings in countries that require them.
- Heavy images that slow product pages (see image file size).
Where can you learn more?
The free digital marketing module of the Fe/male Switch startup school covers the SEO foundations of an online shop. Next steps on SEO100: read the general structured data rules, then check that your product URLs sit in your XML sitemap.