E-Commerce Schema Markup
Product, Offer, BreadcrumbList and visible FAQ markup help machines parse the page. Never fake reviews or ratings. Schema follows what shoppers can see.
Schema markup (structured data, often JSON-LD) is a machine-readable restatement of what the page already shows. For e-commerce, the useful types are Product, Offer, BreadcrumbList, and FAQPage—the last only when a visible FAQ exists.
It does not replace product page SEO or technical SEO. It does not make a duplicate manufacturer description unique. Search engines may use it for rich results; they are not obligated to.
The conceptual SEO loop is How E-Commerce SEO Works. The e-commerce SEO guide is the full sequence.
When you debug JSON-LD, the JSON formatter and JSON validator catch syntax errors. Google’s Rich Results Test (or successor) checks type eligibility against current docs.
Product and Offer
A PDP should expose:
- Product: name, image, description, sku/mpn/gtin when you have them, brand.
- Offer: price,
priceCurrency, availability (InStock / OutOfStock / BackOrder as appropriate), URL.
Those values must match the visible price and stock. Dynamic pricing and geo-price need the markup to follow what that user would see, or you should omit rather than lie.
Variant products: mark up the product the page represents. If the URL is the parent, do not claim a specific size’s GTIN unless that is what you sell on that URL.
| Property | Must match | Common error |
|---|---|---|
offers.price | On-page price | Sale price in schema, regular on page (or reverse) |
availability | Add-to-cart state | Always InStock |
image | Primary product image | Logo or a lifestyle shot of a different SKU |
name | H1 / title | Marketing slogan that is not the product name |
BreadcrumbList
If you show breadcrumbs, you may mark them up. The list must match the visible trail and the links shoppers can click. See internal linking.
Do not invent a deeper hierarchy in JSON-LD than the page shows. Do not mark breadcrumbs on a URL that has none.
FAQ — only when visible
FAQPage is for pages that display questions and answers in HTML (not in an accordion that never appears without JS, if you can avoid that). Typical: shipping FAQ on a shipping policy page, or a short PDP FAQ that is actually on the PDP.
Do not add FAQ schema to every product with the same three generic questions. That is spam. Do not hide answers and mark them up anyway.
Reviews and ratings — never fake
Do not output AggregateRating or Review markup for:
- Ratings you invented.
- Counts copied from another site.
- “4.9 stars” with no visible reviews.
If you have no reviews, omit the types. If a platform app injects fake stars, that is a merchant-quality problem, not an SEO opportunity.
Google’s review-snippet policies are strict. Follow current documentation. This article will not describe how to game them.
Implementation notes
- Generate JSON-LD from the same product object as the template (Shopify metafields, WooCommerce product object, headless API).
- One primary Product node per PDP; do not paste three conflicting blocks from three apps.
- Organization / WebSite schema on the homepage is optional housekeeping; it does not rank the catalog.
- Keep schema out of
noindexpages you do not want enhanced.
Shopify and WooCommerce both accumulate leftover schema from uninstalled apps—view-source after changes.
Validation cadence
After theme or app changes: validate a sample PDP, a collection (if you mark collections at all—many stores should not force CollectionPage junk), and a guide with FAQ.
Search Console enhancement reports lag. Syntax-valid JSON that contradicts the page can still be ignored or penalized as spam.
Schema is a honesty layer. Describe the offer on the page. Stop there.
What not to mark up
Skip or be extremely conservative with:
- CollectionPage on thin grids with no unique copy. You are asserting a collection document that category SEO has not earned.
- ItemList of every product on a collection if the HTML grid is paginated or JS-only—the list will not match what a crawler sees.
- VideoObject for a file that is not on the page.
- Speakable and other experimental types you do not use.
Organization schema with a fake sameAs list of social profiles you do not operate is the same class of error as fake reviews: the graph is lying.
Variants, sales, and price validity
If the PDP shows a range (“from $40”), do not mark a single price of $40 unless that is the selected variant’s price. Either mark the variant the URL represents or omit Offer until the template has a single displayed price.
priceValidUntil should be a real date if you use it (end of a sale you will honor). An evergreen fake expiry is a policy problem.
Out of stock: OutOfStock plus a visible status. Do not keep InStock to “preserve rich results.”
Apps and duplicate JSON-LD
View-source after installing a reviews app, an SEO app, and a theme feature that also prints Product. Three Product nodes with three prices is worse than none. Keep a single generator: theme, one app, or your headless renderer.
When you uninstall an app, search the theme for leftover application/ld+json. Shopify and WooCommerce both accumulate this debris.
A practical rollout
- PDP: Product + Offer only, matching price and availability.
- BreadcrumbList where crumbs exist.
- FAQ only on URLs that already show Q&A.
- Reviews only if visible, legitimate, and policy-compliant—otherwise never.
Validate five URLs in different templates, not only the homepage. The homepage is not the catalog.
Validating and Testing E-Commerce Structured Data Graphs
Search engine crawlers rely on structured schema markup to construct rich snippets (star ratings, price displays, in-stock badges) in search engine result pages. Implementing invalid schema code causes Google to disqualify your store from rich results.
Follow this technical testing workflow:
- Schema.org Validator: Test raw JSON-LD markup against official Schema.org standards to ensure proper object nesting and valid vocabulary syntax.
- Google Rich Results Test: Verify that Google recognizes your
Product,BreadcrumbList, andFaqPageentities and reports zero errors or missing critical fields. - Google Search Console Monitoring: Regularly audit the 'Merchant Listings' and 'Product Snippets' status reports in Google Search Console to detect invalid price currencies, missing product identifiers (GTIN/UPC), or expired offer dates across your catalog.
Key takeaways
- Schema describes visible content. It does not create stock, reviews, or rankings by itself.
- Product + Offer (price, currency, availability) is the core pair for PDPs. BreadcrumbList should match the on-page crumbs.
- FAQ schema belongs only when the questions and answers are visible on that URL.
- Never mark up fake ratings, invented review counts, or offers you will not honor. That is a policy and trust failure.
Frequently asked questions
Will Product schema get me rich results?+−
Eligible markup is a prerequisite, not a guarantee. Google documents current rich-result types and policies. Availability, merchant policies, and review rules change. Validate and watch Search Console enhancements—do not promise stars in a pitch.
Should I add Review schema if I do not show reviews?+−
No. If reviews are not on the page, do not mark them up. If you use a third-party review widget, the markup must match visible, legitimate reviews.
JSON-LD or Microdata?+−
JSON-LD is the usual choice for stores: one block generated from the product object. Keep it in sync with the template. Format and validate with a JSON formatter and validator during development.
Related tools
- JSON Formatter & Prettifier
Format, indent, prettify, and inspect raw JSON payloads, API responses, and Schema.org structured data locally in your browser.
- JSON Validator & Syntax Linter
Validate raw JSON strings, identify syntax error line numbers, and inspect Schema.org structured data payloads for compliance.
- Meta Title Preview & Pixel Width Checker
Preview how your page title displays in Google search results and verify pixel widths to prevent desktop and mobile truncation.
- Meta Description Preview & Pixel Checker
Preview how your meta description displays across desktop and mobile search snippets and test character boundaries for maximum CTR.
Related guides
- E-Commerce SEO Guide
A practical map of e-commerce SEO: information architecture, keyword research, product and category pages, technical indexation, schema, Core Web Vitals and measurement.
Related articles
- Product Page SEO
Product SEO is unique titles, specs, variant indexation and internal links. Duplicate manufacturer copy—not missing adjectives—is the usual ranking problem.
- E-Commerce Technical SEO
Technical SEO for stores is duplicates, canonicals, robots, sitemaps, JavaScript rendering and parameter URLs. Fix the catalog graph before you rewrite copy.
- How E-Commerce SEO Works
Catalog SEO is crawl, index, rank, then convert. Stores differ from blogs: thousands of URLs, filters, duplicates and thin product copy change the work.