Product Structured Data: Get Richer Results in Google

In this article10 sections
Product schema markup is a small block of structured data on each product page that describes the product to search engines in a standard format: its name, image, brand, price, currency, stock status, reviews and more. Search engines can use it to show richer listings, such as the price, availability and star rating under your result, and to understand your catalogue for shopping features. It does not replace good content or guarantee higher rankings, but it helps your listings stand out and reduces the chance of search engines misreading your pages.
Key takeaways
- Structured data describes your product in a machine-readable way; the usual format is JSON-LD in the page code.
- The most important fields are name, image, description, brand, identifiers such as GTIN, and an offer with price, currency and availability.
- Everything in the markup must match what shoppers see on the page.
- Test with Google's Rich Results Test and watch Search Console for errors and warnings.
- Most platforms generate the markup automatically, but themes and extensions often break or duplicate it.
What structured data is and why it helps
Search engines read your pages much as people do, but they have to guess what each piece of text means. Is "49.99" a price, a model number or a size? Structured data removes the guesswork. It labels each fact using a shared vocabulary, defined by schema.org, that major search engines understand.
For online stores, the benefits include:
- Richer search results showing price, stock status and ratings, which can attract more clicks.
- Eligibility for shopping features, such as free product listings and product panels.
- Clearer understanding of variants, brands and identifiers, which helps search engines match your products to searches.
- Consistency between your website and your product feeds.
Google's guide to product structured data sets out the fields it supports and the rules it applies.
The fields that matter most
| Field | What it holds | Tips |
|---|---|---|
| name | The product name | Match the visible heading |
| image | One or more product image URLs | Use high-quality, crawlable images |
| description | A short product description | Use the real description, not marketing filler |
| brand | The brand name | Use the manufacturer's brand, not your store name, unless it is your own brand |
| sku, gtin, mpn | Product identifiers | Include GTINs where products have them |
| offers: price, priceCurrency | The selling price and currency | Must match the price shown on the page |
| offers: availability | In stock, out of stock, pre-order and so on | Update automatically with stock changes |
| aggregateRating, review | Average rating and individual reviews | Only genuine reviews shown on the page |
| shipping and returns details | Delivery costs, times and return policy | Helps shoppers compare total cost |
How product schema markup is added
JSON-LD
The recommended format is JSON-LD: a block of structured text in the page's code that sits alongside the visible content rather than woven through it. It is easy to generate from product data and easy to test.
Platform and theme
Most e-commerce platforms, including Magento, output basic product markup. Themes and extensions sometimes add their own, which can create duplicate or conflicting blocks. Check what your store actually outputs, not what the theme documentation promises.
Dynamic values
Prices, sale prices and stock status change often. Make sure the markup is generated from the same live data as the page, so it updates automatically. Hard-coded values quickly become wrong.
Variants
Products with several sizes or colours need careful handling. Either describe each variant with its own offer, or group variants so search engines understand they belong together. Google has published specific guidance for product variants; follow it, because variant markup is a common source of errors.
Reviews and ratings in the markup
Star ratings in search results can make a listing stand out, but the rules are strict:
- Ratings must come from genuine customer reviews of that product.
- The reviews must be visible on the page.
- You must not mark up reviews you wrote yourself or reviews of your whole store as if they were product reviews.
- Rating values must match what shoppers see.
Our guide to product reviews for ecommerce explains how to collect and display genuine reviews that support this markup.
Testing and monitoring
- Test sample pages with Google's Rich Results Test, including a simple product, a product with variants, a product on sale and an out-of-stock product.
- Check Search Console enhancement reports for product snippets and merchant listings. They show errors and warnings across all pages.
- Compare markup with the page. Spot-check that prices, stock and ratings match exactly.
- Re-test after changes to the theme, extensions or platform, which often affect markup.
- Watch your search appearance in Search Console for changes in clicks to product pages.
Keep a short list of test pages that represent each product type you sell, and check the same pages every time. That makes it easy to spot when something changes.
Our guide to technical SEO for online stores covers other structured data types, such as breadcrumbs and organisation details.
Common mistakes
- Price mismatches. The markup shows an old price or a price without tax while the page shows another.
- Stale stock status. Products marked in stock when they are sold out, or the reverse.
- Duplicate markup from the theme and an extension, sometimes with different values.
- Missing identifiers such as brand and GTIN, which limit eligibility for some shopping features.
- Markup on the wrong pages, such as product markup on category pages listing many products.
- Invented ratings or ratings from other sources, which can lead to manual actions.
Fixing problems in the right order
When Search Console reports structured data problems, fix errors before warnings. Errors usually stop a page from being eligible for rich results at all, while warnings point to missing optional details. Fix the template that produced the problem, then ask Search Console to validate the fix. It will recheck affected pages over the following days and confirm when the issue is resolved.
Structured data and product feeds
If you also send a product feed to Google Merchant Center, keep the feed and the on-page markup consistent. Differences in price or availability between the two can cause products to be disapproved in shopping results. A single source of product data for both reduces this risk.
A worked example
Here is a simplified example of product markup for a backpack, written in JSON-LD. Your developer or platform would generate this automatically from your product data.
{
"@context": "https://schema.org",
"@type": "Product",
"name": "Everyday 25L Backpack",
"image": ["https://www.example.com/images/backpack-black.jpg"],
"description": "Water-resistant 25-litre backpack with a padded 15-inch laptop sleeve.",
"sku": "BP-25-BLK",
"gtin13": "0123456789012",
"brand": { "@type": "Brand", "name": "Example Outdoor" },
"offers": {
"@type": "Offer",
"price": "59.00",
"priceCurrency": "EUR",
"availability": "https://schema.org/InStock",
"url": "https://www.example.com/everyday-25l-backpack"
},
"aggregateRating": { "@type": "AggregateRating", "ratingValue": "4.6", "reviewCount": "38" }
}
Every value here should match what the shopper sees: the same name, the same price in the same currency, the same stock status and the same rating and review count. If the page shows a sale price, the markup should show that sale price too. If the backpack comes in several colours, each colour needs its own image, identifier and offer, or a variant structure that groups them.
The url field points to the product page itself, and the currency uses the standard three-letter code, so there is no doubt which currency the price is in.
Notice what the example leaves out: there is no marketing language, no invented rating and no store-wide reviews. Structured data is a factual description, not an advert.
Shipping, returns and merchant listings
Shoppers compare total cost, not just price. Google can show delivery costs, delivery times and return policies alongside product results, which helps your listing compete when your delivery offer is strong.
You can provide this information in two main ways: through structured data on your pages, or through settings in Google Merchant Center if you use it. Many stores set delivery and returns in Merchant Center, because the rules apply across all products and are easier to maintain there. Whichever you use, keep the details accurate and in line with your published policies. If you change your free-delivery threshold or returns window, update the markup or settings at the same time.
Clear delivery and returns information also matters on the page itself. Our guides to ecommerce shipping strategy and writing an ecommerce returns policy explain how to present them.
Getting it right on your platform
Most store owners never write markup by hand. The practical job is making sure the platform, theme and extensions produce one correct block per product.
- Find out what generates the markup: the platform core, the theme, an SEO extension or a reviews tool. Ideally, one source does it all.
- Remove duplicates when two tools output product markup with different values.
- Connect reviews so the rating in the markup comes from the same review system shown on the page.
- Fill in product data: brands, identifiers and clean descriptions in the catalogue make the markup complete automatically.
- Test after every theme or extension update, because changes there often break markup without anyone noticing.
On Magento, structured data is typically handled by the theme and specialist extensions; on hosted platforms, by the theme and apps. In both cases, a quick test of a handful of product pages each month catches most problems early.
Frequently asked questions
Will structured data improve my rankings?
Not directly. It helps search engines understand your pages and can make your listings more attractive, which may increase clicks. Rankings still depend mainly on relevance and quality.
Why do my star ratings not show in Google?
Google decides when to show rich results. Ratings may not appear if the markup has errors, the reviews do not meet the guidelines or Google chooses not to display them for that search.
Does my platform already add product markup?
Most do, but themes and extensions often change it. Test a few product pages to see exactly what is output.
Should category pages have product markup?
Generally no. Product markup belongs on individual product pages. Category pages benefit from breadcrumb markup instead.
Not sure your product markup is correct? Ask us to audit your structured data, and we will fix errors and duplicates so your listings show the details shoppers look for.
Want an expert to look at your store?
Tell us what you are working on. A senior e-commerce consultant will reply within one working day with honest, practical advice. No obligation and no sales script.
- Reply within one working day
- Advice even if we are not the right fit
- Your details are never shared