WooCommerce
Fixing duplicate product schema in WooCommerce (Woo core, themes and Yoast)
WooCommerce core, your theme and an SEO plugin can each emit Product schema, and conflicting blocks make assistants back off. Here is how to get to one clean source and verify it.
By ShopToAI Team · Updated Jul 16, 2026
More structured data is not better if it contradicts itself. On WooCommerce this is a common trap: your product page ends up with two or three Product blocks, from different sources, that disagree on price or availability. An assistant that sees conflicting markup does the safe thing and backs off. Here is why it happens and how to get back to one clean source.
Why WooCommerce ends up with duplicate schema
Several things on a typical store can each emit Product markup:
- WooCommerce core, which outputs its own structured data.
- Your theme, which sometimes adds its own.
- An SEO plugin, such as Yoast or Rank Math, which builds a schema graph.
- Extra schema plugins layered on top.
Any two of these can produce a Product block, and they rarely agree perfectly. Duplicate Product schema shows up on a large share of store audits, so if you have not checked, assume you might have it.
Why it hurts
An assistant or search engine reading two Product blocks with different prices or availability cannot tell which is true. Contradiction reads as unreliable data, and unreliable data is a reason to recommend a competitor instead. One correct block beats three that argue with each other.
How to fix it: pick one source
The goal is a single Product block per page. A few paths:
- Use the official bridge. The Yoast WooCommerce SEO add-on is built to merge WooCommerce and Yoast output into one unified schema graph rather than two competing ones.
- Turn off the extras. If a plugin or theme is emitting a second block, disable its Product schema so only your chosen source remains.
- Filter it out in code. Yoast exposes the wpseo_json_ld_output filter, so a developer can switch its schema off entirely when another source is authoritative:
`add_filter( 'wpseo_json_ld_output', '__return_false' );`
Whichever route you take, the rule is the same: decide which source owns your Product schema, and silence the rest.
How to verify
Do not assume it is fixed; check it. Run the page through Google's Rich Results Test and confirm there is exactly one Product block with the right price, availability and identifiers. Then re-check after any plugin or theme update, since those can quietly reintroduce a second source.
An audit does this across your whole catalog at once and flags pages with duplicate or conflicting markup. Check your store. For the full WooCommerce setup, see the guide; shoptoai's plugin places one correct Product block and mutes the duplicates from Woo core and your SEO plugin, so there is a single source of truth. See pricing.
Common questions
How do I know if I have duplicate schema?
Run the product page through Google's Rich Results Test. If it reports more than one Product item, or an audit flags conflicting price or availability, you have duplicates to consolidate.
Should I just delete all schema to be safe?
No. Structured data is what makes you readable to assistants. The fix is one correct Product block, not zero. Keep a single authoritative source and mute the rest.