Blog/WooCommerce·5 min read

How I add rich snippets to WooCommerce (4 methods, 2026)

Add rich snippets to your WooCommerce store and show star ratings, prices, and stock status directly in Google. This guide walks you through quick methods to set it up and boost visibility.

Krunal vaghasiyaKrunal vaghasiya|November 20, 2025 · Updated June 2, 2026
How I add rich snippets to WooCommerce (4 methods, 2026)

Here’s the quickest way to add rich snippets to WooCommerce: install Rank Math, enable the WooCommerce module, and your product pages automatically get Product schema with ratings, price, and stock.

Takes 3 minutes. Google picks it up on the next crawl. That’s the 90% answer. It covers most stores.

But if Rank Math isn’t playing nicely with your theme, or you want review stars showing up when your SEO plugin refuses, or you’d rather hand-code the JSON-LD for full control, this guide walks through every real method I’ve used.

I’ll also cover the ugly problems nobody warns you about: duplicate schema from two plugins fighting each other, aggregate rating errors in Search Console, and why your stars disappear three days after they show up.

By the end, you’ll know exactly which method fits your setup and how to validate that Google actually sees it.

What are rich snippets and schema markup (the 60-second version)

What are rich snippets and schema markup

Schema markup is invisible code you add to a page so Google knows what’s on it. Not just “this page has words about a chair” but “this is a Product called Oak Dining Chair, priced at $249, in stock, with a 4.7 star rating from 86 reviews.”

Rich snippets are what happen when Google uses that schema to upgrade your search listing. Instead of a plain blue link, you get stars, price, availability, sometimes even an image.

Listings with rich snippets consistently out-click listings without them, which is the whole reason anyone bothers with this.

One thing to clear up: schema markup and rich snippets aren’t the same thing. Schema is the code you ship. Rich snippets are what Google chooses to show.

You can have a perfect schema and still not get stars, because Google makes the final call based on site quality, review authenticity, and a dozen signals outside your control. Most stores with a clean schema do get them, usually within 3 to 12 weeks.

The schema types a WooCommerce store actually needs

The schema types a WooCommerce store actually needs

Before jumping into plugins, know what you’re marking up. If you try to add everything, you’ll end up with a mess of conflicting schemas that Google ignores. Stick to these five, in this order of priority:

1. Product schema: The one that matters most. Covers name, image, description, SKU, brand, price, stock status, and review data. This is what triggers the star rating and price display in search. Every product page needs it.

2. Offer schema: Technically nested inside Product schema. Carries price, currency, sale price, availability, and shipping details. Rank Math and Yoast add this automatically when Product schema is enabled.

3. AggregateRating and Review schema: Also nested inside Product. AggregateRating is the single average (4.7 stars from 86 reviews). The review schema is for each individual review. Getting these right is what puts stars in your search listing.

4. BreadcrumbList schema: Describes your site hierarchy (Home → Category → Product). Helps Google show breadcrumbs under your listing instead of a long URL. Small CTR win, free to add.

5. Organization or LocalBusiness schema: Site-wide, not per product. Holds your brand name, logo, address, and contact details. Helps Google build your knowledge panel and assign authorship signals.

FAQ and HowTo schema get tempting because they used to trigger rich results. Google dialed those back in 2023, and they rarely show up on commercial pages now. Don’t waste time on them for product pages.

All your reviews in one place

Collect reviews, manage every response, and display them where they matter most.

Start Free →

Pick the right method for your store

Most WooCommerce stores don’t need multiple schema plugins. Pick one based on what you already have installed and what you actually need.

Your situation Best method Setup time
Already using Rank Math or want the simplest all-in-one  Method 1: Rank Math  3 minutes
Already using Yoast SEO Method 2: Yoast + Yoast WooCommerce SEO  4 minutes
Stars aren’t showing despite the schema being set up Method 3: Add a dedicated review plugin  5 minutes
The developer wants full control over every field Method 4: Manual JSON-LD  15 minutes

Whatever you pick, don’t stack two methods on the same schema type. Two plugins, both emitting Product schema, are the fastest way to break your rich snippets.

Rank Math auto-detects WooCommerce, pulls product data straight from your product fields, and outputs valid Product schema with zero per-product setup. For most WooCommerce stores this is the right answer.

Step 1: Install Rank Math and activate the WooCommerce module

Rank Math SEO WooCommerce

Go to Plugins → Add New, search “Rank Math SEO,” install, and activate. Run the setup wizard if it’s your first time.

Then open Rank Math → Dashboard and scroll to the modules list. Find the WooCommerce module and toggle it on. This enables WooCommerce-specific schema features.

Step 2: Configure Product schema defaults

Add rich snippets with Rank Math

Go to Rank Math → Titles & Meta → Products. Scroll to the Schema section. Make sure Schema Type is set to Product. Rank Math sets this by default, but confirm it hasn’t been overridden.

Add rich snippets with Rank Math

Under Rank Math → General Settings → WooCommerce, check that Remove WooCommerce Generator Tag and Remove Schema.org Markup are both enabled. The second one is critical. It stops WooCommerce from emitting its own basic schema, which would otherwise conflict with Rank Math’s richer version.

Step 3: Confirm the output

Open any product page on your store in an incognito tab. View the source and search for application/ld+json. You should see one Product schema block with your product’s name, price, SKU, brand, and (if the product has reviews) aggregateRating and review arrays.

If you see two Product schema blocks, your theme or another plugin is also emitting schema. Go back to Method 1, Step 2, and make sure the WooCommerce generator is turned off.

Rank Math handles price, availability, SKU, and brand automatically from WooCommerce product fields. It also picks up review data from the built-in WooCommerce review system and adds aggregateRating. No per-product work needed.

Method 2: Add rich snippets with Yoast SEO

Yoast is the other big SEO plugin. It ships basic Product schema in the free version and adds fuller ecommerce schema (GTIN, MPN, shipping details, offers) in the paid Yoast WooCommerce SEO addon.

Step 1: Install Yoast SEO and Yoast WooCommerce SEO

Add rich snippets with Yoast SEO

Install Yoast SEO from the plugin directory. For full product schema support, you’ll also want Yoast WooCommerce SEO, a paid add-on from Yoast.com.

The free Yoast plugin alone gives you a basic Product schema. The addon adds OpenGraph tags optimized for product shares, breadcrumb improvements, and the shipping and delivery fields that Google’s been pushing since 2022.

Step 2: Enable schema in Yoast settings

Add rich snippets with Yoast SEO

Go to Yoast SEO → Settings → Content Types → Products. Scroll to the Schema section. Set Page type to Item Page and Article type to Not an article type. This tells Yoast the page is a product listing, not a blog post.

Under Yoast SEO → Settings → Site features, turn on Schema.org data if it isn’t already.

Step 3: Configure the WooCommerce add-on (if installed)

Add rich snippets with Yoast SEO

With Yoast WooCommerce SEO active, open a product and scroll to the Yoast metabox. You’ll see new fields for Brand, GTIN, MPN, and shipping details. Fill these in for each product you want to achieve rich results for.

Brand and at least one identifier (GTIN or MPN) matter the most.

Google’s Merchant Center has been stricter about requiring product identifiers since 2024, and passing them through Yoast’s schema helps with both organic rich results and Shopping listings.

Save the product. View source on the live page to confirm a single Product schema block is present.

Method 3: Get review stars to show with a dedicated review plugin

WiserReview

Here’s a problem plenty of store owners hit: Rank Math or Yoast is installed, Product schema is outputting fine, everything validates in the Rich Results Test, but the stars in Google search still don’t show up.

The usual cause is review data. Rank Math and Yoast read reviews from WooCommerce’s native review system. If your reviews live in a third-party plugin like Judge.me or Reviews.io, Rank Math can’t always pull the data into its schema.

I’ve seen this break rich snippets on dozens of stores. Google sees Product schema without aggregateRating and hides the stars.

A dedicated review plugin that outputs its own JSON-LD review schema solves this. Below is the WiserReview flow as an example, but the same pattern applies to most review-focused plugins.

Step 1: Install the plugin

Plugin for WooCommerce rich snippets

From your WordPress dashboard, go to Plugins → Add New, search “WiserReview,” and click Install, then Activate. The plugin panel appears in your left menu.

Step 2: Connect your account

Open WiserReview → Settings inside WordPress.

WiserReview WooCommerce plugin settings

Paste your API key from your WiserReview account.

WiserReview API key configuration

You can find the API key inside your WiserReview dashboard under Settings → API Key. Log in to WiserReview if you’re not already signed in.

Click Save and your products sync automatically. Each review gets mapped to the correct WooCommerce product.

Step 3: Enable the rich snippet toggle

Generate Product Review Rich Snippet toggle in WiserReview

Turn on Generate Product Review Rich Snippet. The plugin injects JSON-LD review schema into the product page <head> automatically. What gets included:

  • Aggregate star rating
  • Total review count
  • Individual review text (for top reviews)
  • Product name, image, and SKU from WooCommerce

No code edits. Once enabled, Google can read review data on every product page.

Step 4: Critical check, make sure products have approved reviews

No reviews means no stars. Google won’t show aggregateRating unless the product actually has at least one approved review in the database.

If you just launched, collect a few reviews first (even 3 or 4 is enough to trigger stars in most niches).

Step 5: Test the output

Open Google’s Rich Results Test, paste a product URL, and run it. You should see “Product detected” with no errors and “aggregateRating” present.

If there are warnings about missing fields, such as GTIN or brand, leave them as is for now. Warnings don’t block rich snippets; errors do.

All your reviews in one place

Collect reviews, manage every response, and display them where they matter most.

Start Free →

Method 4: Manual JSON-LD schema (developer route)

Hand-coding schema gives you full control and zero dependency on plugin updates. Use this when plugins are conflicting, when you need fields no plugin exposes, or when you’re building a custom theme and want schema baked into the template.

Step 1: Pick where to inject the code

You have three options. In descending order of safety:

  • A child theme’s functions.php file with a wp_head hook. Safe because theme updates won’t overwrite it.
  • A custom plugin you create in /wp-content/plugins/your-schema/. Safest option. Survives theme changes.
  • Code Snippets plugin. Great for non-developers. Adds a GUI for PHP snippets.

Avoid editing single-product.php directly unless you’re comfortable with WooCommerce templating. It’s easy to break the template loop.

Step 2: Add the Product JSON-LD snippet

Here’s a minimal but complete Product schema for a WooCommerce product page. Paste this inside a function hooked to wp_head:

<script type=”application/ld+json”>
{
“@context”: “https://schema.org/”,
“@type”: “Product”,
“name”: “Your Product Name”,
“image”: “https://example.com/image.jpg”,
“description”: “Short product description”,
“sku”: “SKU123”,
“brand”: {
“@type”: “Brand”,
“name”: “Brand Name”
},
“offers”: {
“@type”: “Offer”,
“url”: “https://example.com/product-page”,
“priceCurrency”: “USD”,
“price”: “99.99”,
“availability”: “https://schema.org/InStock”,
“itemCondition”: “https://schema.org/NewCondition”
},
“aggregateRating”: {
“@type”: “AggregateRating”,
“ratingValue”: “4.5”,
“reviewCount”: “24”
}
}
</script>

For a real store, you’d replace the hardcoded values with WooCommerce function calls like $product->get_name(), $product->get_price(), $product->get_sku(), and $product->get_average_rating().

Step 3: Required fields (don’t skip these)

Google treats some fields as required for product-rich results: name, image, and at least one of review, aggregateRating, or offers. Skip these, and your snippet won’t show.

Recommended but not required: sku, brand, gtin, mpn, description. Including these improves your chances and unlocks additional rich results features, such as Google Shopping listings.

Step 4: Turn off competing schema

If you’re hand-coding schema, disable auto-schema from your SEO plugin for product pages.

  • In Rank Math, go to Titles & Meta → Products and set Schema to None.
  • In Yoast, disable the schema output via Settings → Site features.

Two sources of Product schema on one page is the most common cause of broken rich snippets I see.

Step 5: Validate and monitor

Run the Rich Results Test on a live product URL. Fix any errors (red). Warnings (yellow) are usually safe to leave.

Then log in to Google Search Console and open Enhancements → Products. This is where Google reports Product schema errors across your site.

Check it weekly after any schema change.

Plugin comparison: which one should you pick

Plugin Product schema Review schema Free? Best for
Rank Math Yes, automatic Yes (from WC reviews) Yes Most WooCommerce stores
Yoast SEO (free) Basic Limited Yes Blog-heavy sites
Yoast WooCommerce SEO Full Full (GTIN, brand, shipping) Paid add-on Shopping-focused stores
WiserReview Adds review layer Dedicated review schema Free plan available Stores where stars aren’t showing
All in One Schema Yes Yes (author reviews only) Yes Lightweight no-SEO-plugin setups

The combination I see most often in stores that consistently get stars: Rank Math for Product schema, plus a dedicated ecommerce review platform for reliable aggregateRating when WooCommerce native reviews aren’t enough. Only stack them if Rank Math alone isn’t generating stars for you.

Want review stars showing in Google consistently?

WiserReview adds dedicated review schema to your WooCommerce products, so star ratings show up in search even when your SEO plugin misses them.

Start Free →

How to test your rich snippets are working

How to test your rich snippets are working

Setting up a schema is one thing. Confirming Google actually reads it is another. Three tools, in order of when you use them:

1. Google Rich Results Test

Go to search.google.com/test/rich-results. Paste a product URL. Run it. You’ll see one of three outcomes:

  • Valid. Schema is clean. You’re eligible for rich results, though Google still decides whether to show them.
  • Valid with warnings. Schema works, but some recommended fields are missing (GTIN, brand, etc.). Fix if easy, leave if not.
  • Errors detected. Something’s broken. Rich results won’t show until you fix it.

Test at least three products: one in stock, one out of stock, and one with variations. Different product states sometimes expose bugs.

2. Schema Markup Validator

At validator.schema.org. This one’s stricter than the Rich Results Test and validates the full schema.org vocabulary, not just what Google uses for rich results. Useful when you’re hand-coding and want to be thorough.

3. Google Search Console → Enhancements

Once Google has crawled your schema (usually within days), Search Console starts showing a Products report under Enhancements. It reports errors at scale across your entire catalog, not just individual URLs. Check this weekly after any schema change.

This is where you’ll catch problems that affect only some products, such as out-of-stock items, missing availability fields, or products with zero reviews triggering aggregateRating warnings.

Common problems and how to fix them

rich snippets not showing

These are the issues I see most often when stores email me because their rich snippets aren’t working. I’ve run through all five of these enough times that my troubleshooting order is muscle memory now.

Problem 1: Duplicate Product schema (two plugins fighting)

Symptom: Rich Results Test shows Product schema is valid, but stars never appear in actual Google search results. View source shows two <script type="application/ld+json"> blocks both containing Product.

Fix: Pick one schema source. If you’re using Rank Math, disable WooCommerce’s built-in schema (Rank Math General Settings → WooCommerce → Remove Schema.org Markup).

If you’re running Yoast and a dedicated schema plugin, disable one of them. Google treats duplicate schema as a quality signal and usually ignores both.

Problem 2: aggregateRating error in Search Console

Symptom: Google Search Console shows errors like “Missing field aggregateRating” or “aggregateRating value is invalid.”

Fix: The product has no reviews yet. aggregateRating can’t be empty or zero. Either collect at least one review before enabling that schema field, or use a filter to exclude aggregateRating on products with no reviews.

Rank Math has a built-in filter for this. Most review plugins handle it automatically.

Problem 3: Wrong schema type applied

Symptom: Product pages are marked up as Article or BlogPosting. Rich Results Test says “This page is not eligible for product rich results.”

Fix: Happens when a blog-focused SEO plugin setting leaks into products. Go to your SEO plugin’s schema settings for products specifically (Rank Math: Titles & Meta → Products; Yoast: Settings → Content Types → Products) and force it to Product or Item Page. Not an article.

Problem 4: Stars showed up, then disappeared

Symptom: Rich snippets appeared for a week or two, then vanished. The schema is still valid.

Fix: Usually means Google downgraded rich result eligibility because review signals look thin or suspicious.

Common causes: reviews posted in a single burst, reviews from the same IP, product descriptions that don’t match the reviews.

Collect reviews organically over time, ensure they come from verified buyers, and avoid templates that encourage identical-sounding feedback.

Problem 5: Reviews exist, but aggregateRating is still empty

Symptom: Product has 10 reviews in WooCommerce, but the schema shows no aggregateRating.

Fix: Three things to check.

  • First, reviews must be approved (not pending).
  • Second, if you’re using a third-party review plugin (Judge.me, Loox, Stamped), Rank Math or Yoast might not be able to read the review data. You’ll need that plugin’s own schema output.
  • Third, clear your site cache and any SEO plugin cache. Rank Math and Yoast cache the schema output for performance, but a stale cache shows old data.

5 tips that actually matter for WooCommerce rich snippets

5 tips that actually matter for WooCommerce rich snippets

Five practical tips that help WooCommerce stores generate valid review schema and improve the chances of getting star-rating rich snippets in Google search results.

1. Match schema types to content types exactly

Product schema on product pages. Article schema on blog posts. Not the other way around. Google flags mismatches and drops rich result eligibility.

Your SEO plugin should set defaults per content type; double-check those settings if you migrated from another plugin.

2. Keep schema data visible on the page

If your schema says “In Stock” but the product page says “Out of Stock,” Google penalizes you. Same for prices, star ratings, and any other field.

Rich snippets are a trust layer. Google pulls listings that feel deceptive. Make sure what’s in the schema matches what customers see.

3. Only mark up what you display

Never add schema for content that’s hidden in collapsed accordions, behind JavaScript, or outside the visible viewport.

Google specifically calls this out as a reason to disable rich results. If an FAQ section is only visible after clicking, don’t add FAQPage schema to it.

4. Don’t add every schema type just because you can

Plugins like All in One Schema give you Event, Recipe, Course, and Book schemas. Your WooCommerce store probably doesn’t need any of them.

More schema types means more chances for errors, more Search Console noise, and Google disregarding valid schema because it’s surrounded by irrelevant ones.

Stick to Product, AggregateRating, Review, Breadcrumb, and Organization. That’s it.

5. Re-test after every theme or plugin change

Theme updates can overwrite schema output. Plugin updates can change how JSON-LD gets emitted. New plugins can add a conflicting schema.

Any of these is enough to break rich snippets overnight. Run the Rich Results Test after any site change that touches templates, schema, or the SEO plugin.

Wrap up

For most of the WooCommerce stores, the right answer is Rank Math with the WooCommerce module enabled. Three minutes, no per-product work, clean Product schema that pulls from WooCommerce directly.

If you’re on Yoast, add the WooCommerce SEO add-on for the same effect. If your reviews live in a third-party plugin and stars aren’t showing, add a dedicated review plugin that emits its own review schema.

Hand-code JSON-LD only if you need fields that no plugin exposes, or you’re building a custom theme.

Whichever path you pick, run the Rich Results Test right after setup and check Search Console’s Enhancements report weekly for the first month.

Most problems show up fast, and fixing them while the schema is fresh is much easier than untangling it six months later, when five plugins have touched it.

Rich snippets take 3 to 12 weeks to appear after Google recrawls your pages. Don’t panic if you don’t see stars on day one. Validate the schema, give it time, and keep an eye on Search Console.

All your reviews in one place

Collect reviews, manage every response, and display them where they matter most.

Start Free →

Frequently Asked Questions

Common questions about this topic

Install Rank Math, enable the WooCommerce module from its Dashboard, and your product pages automatically get Product schema with ratings, price, and stock. Setup takes around 3 minutes. Google picks it up on the next crawl, usually within a few days.
Anywhere from 3 to 12 weeks after Google recrawls your product pages. Speed depends on your site's crawl frequency, domain authority, and whether your schema validates without errors. You can force a recrawl by submitting the URL in Search Console, but Google still decides when to show rich results.
Usually one of three reasons: the product has no approved reviews (aggregateRating needs at least one review), your reviews live in a third-party plugin like Judge.me that doesn't feed data back to Rank Math or Yoast, or you have duplicate Product schema from two plugins fighting.
Most WooCommerce stores don't. Rank Math alone handles Product schema plus review data from native WooCommerce reviews. Add a dedicated review plugin only if your reviews live in a third-party system (Judge.me, Loox, Stamped) that Rank Math can't read, or if you want dedicated review schema for richer aggregateRating output.
WooCommerce includes very basic schema for products, but it's limited and often lacks the review data, brand, GTIN, and other fields Google needs for rich results. A proper SEO plugin like Rank Math or Yoast replaces that basic schema with fuller, richer Product schema that's actually eligible for stars and price display.

Written by

Krunal vaghasiya

Krunal vaghasiya

Krunal Vaghasiya is the founder of WiserReview and WiserNotify, which have served 10,000+ stores since 2020. He helps ecommerce brands build trust through fair, flexible, customer-led review management across every store and market.