Ecommerce schema markup: the complete guide for online shops

If you run an online shop, schema markup is one of the most directly commercial SEO investments you can make.

  • What Product schema does for your search listings
  • The difference between product snippets and merchant listings
  • What changed in November 2025 for shipping and returns

Think about the difference between two listings in Google search results. One is a plain blue link with a short description. The other shows a product image, a star rating, a price, whether it’s in stock, and how quickly it will arrive. Both might be selling the same product at the same price – but which one gets the click?

That’s what ecommerce schema markup delivers. For online shops, Product schema is one of the most directly commercially impactful types of structured data available. It doesn’t just make your listing look better – it pre-qualifies the click. Someone who sees your price and rating before clicking has already decided those are acceptable. That’s why rich results consistently convert at higher rates than standard organic listings.

This guide covers everything an online shop needs to know: the different types of Product schema, what each one unlocks, how reviews and ratings work, and the 2025 updates to shipping and returns markup that opened up rich merchant data to stores that don’t use Google Merchant Center. If you’d like a general introduction to structured data first, our schema markup guide covers the basics.

'Women's bikes for sale near me' query above an orange bicycle wheel with shopping cart icon – ecommerce SEO concept

Two types of Product schema – and why it matters which one you use

Google distinguishes between two classes of product structured data, and choosing the right one for each page makes a real difference to which rich results you’re eligible for.

Product snippets

Product snippets are for pages where you can’t buy the product directly – editorial reviews, comparison articles, round-up posts, or affiliate content. They have more flexibility around review information, including pros and cons markup. If you write product guides or ‘best of’ articles alongside your shop, this is the type to use on those pages.

Merchant listings

Merchant listings are for pages where customers can actually purchase from you – your product pages. This is the type most ecommerce stores need on their core catalogue. Merchant listings unlock a wider set of rich results: Shopping Knowledge panels, Popular Products in Google Images, Google Lens shopping experiences, shipping details, return policy information, and price drop alerts. They also support product variant data, which helps Google understand the relationship between product variations (sizes, colours, etc.).

Use Product snippets on editorial and review pages. Use Merchant listings on your actual product pages. Mixing them up means missing out on the rich results you should be eligible for.

What to include in your Product schema

Required properties

For merchant listings, Google requires the name property plus at least one of: offers, review, or aggregateRating. In practice, you should include all of them wherever possible.

  • name – the product name, exactly as it appears on the page
  • image – at least one high-quality product image. Multiple images and aspect ratios give Google more to work with across different surfaces
  • offers – pricing, availability, and currency (see below)

The Offer block – where the commercial detail lives

The Offer nested within your Product schema is what powers price display, stock status, shipping details, and price drop alerts in search results. Include:

  • price and priceCurrency – the current selling price in GBP (or relevant currency) and the ISO currency code
  • priceValidUntil – a date until which the price is guaranteed. Google uses historical pricing data to calculate Price Drop rich results, so keeping this accurate matters
  • availability – InStock, OutOfStock, PreOrder, or LimitedAvailability. Accurate stock status is one of the most important signals for buyer confidence
  • itemCondition – NewCondition, UsedCondition, or RefurbishedCondition
  • url – the canonical URL of the product page
  • seller – your organisation name, confirming who is selling the product
  • shippingDetails – shipping rate, destination, and delivery time (see the shipping section below)

Product identifiers – don’t skip these

Product identifiers help Google verify that your listing refers to a real, known product. They’re particularly important for AI search tools – a GTIN (barcode) signals to Google that this is a genuine product, not spam or an affiliate placeholder. Include whatever is available:

  • gtin13 / gtin8 / gtin12 – the product barcode (EAN or UPC)
  • mpn – the manufacturer part number
  • sku – your internal stock-keeping unit reference
  • brand – the brand name, nested as a Brand entity

Reviews and aggregate ratings

Star ratings in search results are one of the most effective click drivers available to ecommerce sites. To get them, you need AggregateRating schema – a summary of all your reviews showing average rating and total review count. A few important rules:

  • Reviews must be published on your own website. You cannot pull in ratings from Google, Trustpilot, or other third-party platforms.
  • The ratingValue and reviewCount must reflect what’s actually visible on the page – Google checks.
  • Aim for at least 5 genuine reviews before implementing aggregate ratings. Too few reviews can look thin and may not trigger the rich result.
  • Never fabricate or manipulate reviews. This is a manual penalty risk and a fundamental trust issue.

Individual Review schema can also be included, showing specific customer quotes – useful for products where the detail of what customers say matters as much as the score.

Shipping and return policies – a significant 2025 update

In November 2025, Google expanded how online merchants can share shipping and return policies with search. This is worth understanding, because it opened up merchant-level rich results to shops that don’t use Google Merchant Center.

Two ways to share your policies

Google now offers two distinct routes. You can configure shipping and return policies directly in Google Search Console – a UI-based method that doesn’t require any code. Or you can implement organisation-level structured data on your site, specifying a site-wide shipping and returns policy nested under your Organisation schema. Both approaches work; Search Console settings take precedence over structured data if you use both. Either way, product-level shipping or return markup on a specific product page will override your site-wide setting for that product – useful when you have a handful of products with non-standard shipping or returns.

The practical implication: previously, only shops connected to Google Merchant Center could get shipping and return details showing in search results. That limitation is gone. Any online shop recognised by Google as a merchant can now appear with fulfilment details – free shipping badges, delivery timeframes, and return window information – directly in search results.

What to mark up for shipping

At the product level, OfferShippingDetails lets you specify:

  • shippingRate – cost and currency of shipping (0 for free shipping)
  • shippingDestination – which countries or regions apply
  • deliveryTime – handlingTime (how long to dispatch) and transitTime (delivery window). Google can surface this as estimated delivery dates in search results

At the organisation level, you can set a site-wide shipping policy that applies globally, with product-level markup overriding it where needed – useful for shops with a mix of standard and express shipping options.

What to mark up for returns

MerchantReturnPolicy schema (nested under your Organisation) covers:

  • returnPolicyCategory – whether you offer a finite return window, unlimited returns, or no returns
  • merchantReturnDays – the number of days the customer has to return
  • returnMethod – by mail, in store, or at a kiosk
  • returnFees – free returns, or a specific fee amount

Schema beyond your product pages

Breadcrumb schema

BreadcrumbList schema on every page helps Google understand your site hierarchy – particularly important for ecommerce sites with deep category structures. It also produces the breadcrumb trail in search result snippets (Home > Category > Subcategory > Product Name), which gives shoppers immediate context about where a product sits in your range.

Organisation schema on your homepage

Your homepage should have Organisation schema (or more specifically, the OnlineStore subtype, which specifically describes ecommerce businesses), establishing your store as a named entity. This is where you nest your site-wide return and shipping policies, and where you include sameAs links to your social media profiles and any directory listings. This is the foundation that connects everything else.

FAQ schema on category and product pages

FAQ schema on key category pages – covering common questions like ‘Do you offer free returns?’, ‘How long does delivery take?’, ‘What sizes do you stock?’ – can significantly expand your search listing and is frequently cited in AI-generated shopping answers. It’s one of the highest-value additions to an ecommerce site that most shops overlook.

SiteLinksSearchBox

If your shop has a search function, SiteLinksSearchBox schema can surface a search box directly in your Google listing when someone searches for your brand by name. Useful for established stores with loyal customers searching specifically for them.

Platform-specific notes

Shopify

Shopify automatically generates basic Product schema for most themes – name, price, availability, and images. But the default implementation is often incomplete. It typically lacks GTIN/barcode identifiers, review schema, shipping details, and return policies. These need to be added via theme customisation, a specialist Shopify app, or manually implemented JSON-LD. Don’t assume Shopify has covered everything – test your product pages with the Rich Results Test to see exactly what’s there.

WooCommerce

WooCommerce generates basic product structured data, which can be significantly enhanced with plugins. Rank Math and Yoast SEO both improve the base schema output. For shipping details and return policies, additional configuration is needed. As with Shopify, validate the output – plugin-generated schema isn’t always complete enough to trigger rich results.

Custom-built sites

Custom ecommerce builds typically require schema to be implemented manually in JSON-LD, either hardcoded per product or generated dynamically from your product database. The dynamic approach is far more practical for stores with large catalogues – pulling product name, price, availability, and GTIN directly from the database ensures schema stays in sync with actual product data. This is something we handle as part of our ecommerce development work.

What the code looks like

Here’s a simplified merchant listing JSON-LD example for a single product page:

 

<script type="application/ld+json">
{
  "@context": "https://schema.org/",
  "@type": "Product",
  "name": "Example Folding Bike",
  "image": [
    "https://example.com/photos/folding-bike-1x1.jpg",
    "https://example.com/photos/folding-bike-4x3.jpg",
    "https://example.com/photos/folding-bike-16x9.jpg"
  ],
  "description": "Six-speed folding bike with mudguards and rack. Folds in 20 seconds.",
  "sku": "EX-FB-001",
  "gtin13": "5012345678901",
  "mpn": "FB-2026",
  "brand": {
    "@type": "Brand",
    "name": "Example Brand"
  },
  "aggregateRating": {
    "@type": "AggregateRating",
    "ratingValue": "4.8",
    "reviewCount": "127"
  },
   "offers": {
     "@type": "Offer",
    "url": "https://example.com/products/folding-bike",
    "priceCurrency": "GBP",
    "price": "1450.00",
    "priceValidUntil": "2026-12-31",
    "itemCondition": "https://schema.org/NewCondition",
    "availability": "https://schema.org/InStock",
    "seller": {
      "@type": "Organization",
      "name": "Example Shop"
    },
    "shippingDetails": {
      "@type": "OfferShippingDetails",
      "shippingRate": {
        "@type": "MonetaryAmount",
        "value": "0",
        "currency": "GBP"
      },
      "shippingDestination": {
        "@type": "DefinedRegion",
        "addressCountry": "GB"
      },
      "deliveryTime": {
        "@type": "ShippingDeliveryTime",
        "handlingTime": {
          "@type": "QuantitativeValue",
          "minValue": 0,
          "maxValue": 1,
          "unitCode": "DAY"
        },
        "transitTime": {
          "@type": "QuantitativeValue",
          "minValue": 1,
          "maxValue": 3,
          "unitCode": "DAY"
        }
      }
    }
  }
}
</script>

Common mistakes to avoid

  • Assuming your platform handles everything. Shopify, WooCommerce, and similar platforms generate basic schema – but rarely the complete markup needed for full merchant listing eligibility. Always validate.
  • Missing product identifiers. GTINs, MPNs, and SKUs are not optional extras. They help Google verify your products are real and legitimate, which matters significantly for AI search visibility.
  • Using third-party review ratings. You can’t mark up Google, Trustpilot, or Amazon ratings in your schema. Only reviews on your own site qualify.
  • Stale prices and availability. Nothing erodes shopper trust faster than a price in search results that doesn’t match the price on your site, or a product shown as in-stock that isn’t. Schema must reflect current, accurate data.
  • No shipping or return information. Since November 2025, all online merchants can surface fulfilment details in search. Not implementing this means leaving a trust and conversion signal unused.
  • One schema block for variable products. If a product comes in multiple sizes or colours, Google recommends using product variant structured data to clarify the relationships – not a single generic block covering all variants.

How to test your ecommerce schema

Google Rich Results Test – paste a product page URL to see exactly which rich results it’s eligible for. Run this on a sample of product pages, not just one, as your platform may generate inconsistent schema across the catalogue.

Schema Markup Validator – deeper structural validation. Useful for catching issues with nested Offer, ShippingDetails, or AggregateRating blocks.

Google Search Console – the Enhancements section will surface errors across your product catalogue. For shops with hundreds or thousands of products, this is the most practical way to spot systematic schema issues.

One additional check worth doing: search for a few of your products by name in Google and see what actually shows in the results. Rich results can take 2-4 weeks to appear after schema is implemented and crawled, but this is the quickest way to see what your shoppers actually see.

FAQs

FAQs

If you have a question, please use our short form here to send it over. We’re always happy to chat.

They serve different purposes. Product schema on your website improves how your pages appear in organic search results. Google Merchant Center feeds your products into Google Shopping ads and free Shopping listings. For maximum visibility across both organic search and Shopping, you ideally want both. But since the November 2025 update, you don’t need Merchant Center to get shipping and return information showing in organic rich results.

Typically 2-4 weeks after Google crawls your updated pages. You can speed this up by requesting indexing via the URL Inspection tool in Google Search Console, but Google still needs to process and validate the schema before rich results appear.

Yes – use OutOfStock as the availability value. Google won’t typically show out-of-stock products in Shopping experiences, but the schema still validates and ensures the page is ready to surface rich results as soon as stock returns. Update the availability as soon as product status changes.

Not directly – Google Shopping ads are driven by your Merchant Center feed, not by on-page schema. But providing both a Merchant Center feed and accurate Product schema on your pages gives Google more verified data to work with, which can improve how your products are matched to queries across both paid and organic surfaces.

Need help with your ecommerce site?

We build and optimise ecommerce websites with schema markup built in from the ground up – Product schema, merchant listings, shipping and return policies, and review integration. If you’re not sure what your current product pages look like to Google, we’re always happy to run a quick check and tell you what’s missing. Get in touch through our web development or SEO services pages.

Written by Jane Comar + Reviewed by James Hofton

Last updated: June 2, 2026

Get in touch

 

Talk to us about your next project. We’d love to hear from you.