Product Schema for Ecommerce: What to Include (and What to Skip)
Practical guide to product schema markup for small ecommerce sites — which fields matter, what Google ignores, and how to set it up without breaking things.
# Product Schema for Ecommerce: What to Include
If you sell things online, product schema is one of the few SEO tasks with an unusually good effort-to-payoff ratio. Done right, it gives Google enough structured information to show your product with a price, a star rating, and an availability label right in the search results. Skipped or done wrong, your listing looks like a plain blue link next to a competitor already showing five gold stars.
This guide is for small business owners and site operators who want to understand what product schema is, which fields actually matter, and how to add it without breaking your site.

What product schema actually is
Schema markup is structured data you add to your page that tells search engines, in a machine-readable way, what the page is about. For a product page, that means: this is a product, here's its name, here's the price, here's whether it's in stock.
You write it in JSON-LD — a small block of code inside a tag in the page's HTML. Google reads it, validates it, and may use it to show a rich result in search.
The word may matters. Valid schema doesn't guarantee rich results. But without it, you definitely won't get them.
Why bother
Three practical reasons:
- Visibility. Rich snippets with price and stars take up more vertical space and pull more attention than plain blue links.
- Shopping eligibility. Google's free product listings, the merchant section, and shopping tabs all rely on correct product structured data.
- Voice and assistant queries. When someone asks an assistant "how much is this," structured data is the path of least resistance for the answer.
If you run a small Shopify, WooCommerce, BigCommerce, or Wix store, you probably already have some product schema — your platform inserts a default block. Whether that block is complete, correct, and matches the page is a different question.
The fields that actually matter
Google's product structured data documentation lists a long set of properties. Most small ecommerce sites only need a focused subset.
Required (do not skip)
name— The product name. Match the visible H1. Don't pad it with brand and SKU and category if those aren't visible to the customer.image— One or more image URLs pointing to actual product photos, not lifestyle banners. Google prefers multiple high-quality images, ideally in different aspect ratios (1:1, 4:3, 16:9).offers— A nested object holding price information. Insideoffers:
- price — The numeric price, as a string. No currency symbol.
- priceCurrency — Three-letter ISO code like USD, EUR, GBP.
- availability — A schema.org URL. Common values: https://schema.org/InStock, https://schema.org/OutOfStock, https://schema.org/PreOrder.
With just these, Google has enough to consider showing a rich result.
Strongly recommended
description— A short, accurate product description. One or two sentences; don't dump your full marketing copy.sku— Your internal product identifier.brand— A nestedBrandobject with aname. If you sell your own goods, this is your store name.aggregateRating— Only include if you actually have reviews. NeedsratingValueandreviewCount. Padded ratings here are a fast path to a manual penalty.review— Individual review objects. Same rule: only real reviews from real customers.
Useful for some stores
gtin,mpn,isbn— Universal product identifiers. If you resell branded products, include these where possible. They help Google match your listing to manufacturer data.shippingDetails— Lets shipping costs appear in shopping results. Requires careful nesting.hasMerchantReturnPolicy— Useful for shopping listings; not necessary for basic rich snippets.
Fields you can usually ignore
additionalProperty for every spec under the sun, audience, award, productionDate, and complex multi-offer arrays unless you genuinely have variant pricing.
The rule of thumb: if a field doesn't appear visibly on the page, don't put it in the schema. Schema describes what the user sees. Inventing fields the page doesn't show is exactly the pattern Google flags as misleading.

A real example
Say you run a small candle business with a product page for a "Cedar & Sage Soy Candle." It costs $24, is in stock, and has 87 reviews averaging 4.6 stars. A clean schema block:
{
"@context": "https://schema.org/",
"@type": "Product",
"name": "Cedar & Sage Soy Candle",
"image": [
"https://yourstore.com/images/cedar-sage-1.jpg",
"https://yourstore.com/images/cedar-sage-2.jpg"
],
"description": "Hand-poured soy candle with cedar and sage essential oils. 8 oz, approximately 45 hours burn time.",
"sku": "CS-SOY-8",
"brand": {
"@type": "Brand",
"name": "Hearth & Wick"
},
"offers": {
"@type": "Offer",
"url": "https://yourstore.com/products/cedar-sage-candle",
"priceCurrency": "USD",
"price": "24.00",
"availability": "https://schema.org/InStock"
},
"aggregateRating": {
"@type": "AggregateRating",
"ratingValue": "4.6",
"reviewCount": "87"
}
}
Drop that inside a tag in your page's HTML.
The most common mistakes
These come up over and over when auditing small ecommerce sites.
Mismatched price. Schema says "price": "24.00" but the page shows $19.99 because of a sale. Google checks. When schema and page disagree, Google may ignore the schema or flag the page in Search Console. Generate schema dynamically from the same data source as the visible price.
Invented review counts. The single most common form of structured data abuse: a store with three reviews shows "reviewCount": "247" in schema. Sometimes deliberate; more often a leftover from a theme template. Only include aggregateRating if reviews actually display on the page.
Wrong availability values. "InStock" or "in stock" will fail validation. The value must be a full schema.org URL like https://schema.org/InStock. Valid values include InStock, OutOfStock, PreOrder, BackOrder, Discontinued.
Schema on category pages. Product schema belongs on individual product detail pages. Putting it on a category listing (with ten products) is a misuse Google's docs specifically warn against. For collections, use ItemList, not Product.
Duplicate or conflicting schema. Your theme inserts one block. A plugin inserts another. You added a third manually because the first two weren't working. Pick one source of truth. Inspect the page HTML and remove the extras.

Auditing your own product page
A practical sequence when you want to check whether your schema is working.
Step 1 — View the source. Open a product page, right-click, and pick "View Page Source." Search for application/ld+json. You should find at least one block. Count them.
Step 2 — Run the URL through Google's Rich Results Test. It tells you whether the schema is valid, which rich result types you're eligible for, and any warnings or errors with specific field names.
Step 3 — Compare schema to page. Walk through every field. Does the name match the H1? Does the price match the visible price? Is the availability correct right now? Do the image URLs load?
Step 4 — Check Search Console. Look at the Enhancements section for the "Product snippets" report. It surfaces valid pages, errors, and warnings across the whole site. With hundreds of products, this is where you spot systemic issues.
If you're not sure where to start, run your store through our free website audit. It checks structured data presence and validity across the pages it crawls, and flags the common issues without you inspecting each page by hand.
Platform-specific notes
Shopify — Most modern themes include product schema by default. Older or heavily customized themes may insert outdated or invalid blocks. Review apps like Loox or Judge.me inject their own aggregateRating, which can conflict with the theme's. Check for duplicates.
WooCommerce — The core plugin outputs basic product schema; Yoast SEO and RankMath both extend it. Running multiple SEO plugins at once is the most common source of duplicate or contradictory schema on WooCommerce sites.
BigCommerce — Strong default output. Custom Stencil themes can override it, so verify after any theme customization.
Wix and Squarespace — Both auto-generate product schema. You have less direct control. Fixes usually involve the store editor or a code injection feature, not a JSON file you edit.
Custom builds — You control everything, and the price-mismatch and stale-availability problems are entirely yours to prevent.
What Google does and doesn't promise
Google's stance, restated in their helpful content guidance and structured data documentation, is roughly:
- Valid structured data makes you eligible for rich results.
- Eligibility doesn't mean appearance. Google's systems decide per query and per page.
- Misleading structured data — fake reviews, mismatched prices, fields describing things not on the page — can result in manual action against your site.
The right mental model: get it accurate and complete, then move on. Don't tweak it weekly hoping for a ranking bump. Schema is plumbing, not magic.
A mini-checklist before you ship
Run this check on five products from different categories:
- [ ] Exactly one product schema block per page
- [ ]
namematches the visible H1 - [ ]
imageURLs load and show actual product photos - [ ]
priceandpriceCurrencymatch what the customer sees - [ ]
availabilityreflects current stock status - [ ]
aggregateRatingonly present if real reviews exist on the page - [ ] No padded review counts
- [ ] Page passes Google's Rich Results Test with no errors
- [ ] Search Console shows no critical issues in the Products report
- [ ] Schema updates automatically when price or stock changes
If all five clear this list, your store is probably in good shape. If they don't, fix the template — not just the individual pages — so the issue doesn't keep coming back.

Keeping it working
Once schema is clean, the work shifts from setup to maintenance. The things that break it over time:
- Theme updates that overwrite custom schema blocks
- App installations that inject conflicting schema
- Inventory feeds that don't push availability updates to the front end
- Sale pricing that's displayed visually but not reflected in the schema generator
- Review apps removed without removing the leftover
aggregateRatingblock
Set a calendar reminder to spot-check a handful of product pages once a quarter, or after any significant change. Ten minutes prevents the slow drift that quietly kills rich results.
The takeaway
Product schema is one of the few small-business SEO tasks where being thorough and accurate genuinely pays off — and where cutting corners (fake reviews, mismatched prices, padded data) genuinely costs you. Include the fields that match what's actually on the page, validate with Google's tools, and check it again every few months.
If you'd like a second opinion on whether your store's product pages are schema-clean and rich-result-ready, run your site through our free website audit. It looks at structured data alongside the other ecommerce signals — page speed, mobile usability, Core Web Vitals — that move the needle for small online stores.
Schema isn't a growth hack. It's the digital equivalent of putting price tags on the shelf. Get it right, keep it accurate, and your products show up in search the way they're supposed to.
Sources
Related Tools
Related Fixes
Check your website for free
Get an instant score and your top 3 critical issues in under 60 seconds.
Get Your Free Audit →