Guides / Fix schema errors

How to Fix Common WooCommerce Product Schema Errors

Opened Search Console or the Rich Results Test and found a wall of Product warnings? Here are the errors WooCommerce stores hit most, what each one means, and exactly how to resolve it.

First: errors vs. warnings

Google separates errors (which can disqualify the rich result) from warnings (which limit how rich it can be). Fix errors first, then clear warnings to unlock the full result and stronger AI citation.

“Missing field 'name' / 'offers' / 'image'” (errors)

These are required. A missing name usually means the schema is malformed; a missing offers means price data didn’t render (common on variable products before a variation is selected); a missing image means no product image URL was emitted. Ensure every product has an image and that the offer block always renders with price, priceCurrency, and availability.

“Missing field 'brand'” (warning)

WooCommerce doesn’t always output brand. Add it from your brand attribute or taxonomy:

"brand": { "@type": "Brand", "name": "TrailMaster" }

“Missing field 'gtin' / 'mpn'” (warning)

Add a product identifier. Use the GTIN property matching the barcode length (gtin12 for UPC, gtin13 for EAN), or mpn plus brand when there’s no barcode. Never invent a GTIN. See the identifiers guide.

“Missing field 'aggregateRating' / 'review'” (warning)

Only add these if you genuinely have reviews — never fake them, which violates Google’s policies. If you collect reviews, map them into aggregateRating with a real ratingValue and reviewCount.

Duplicate Product blocks

If two Product blocks appear on one page, your theme and a plugin are both emitting schema. Pick one source and disable the other. Conflicting blocks can cause Google to read the wrong data or ignore both.

Price or availability mismatch

If your schema says InStock at one price but the page or feed says otherwise, Google flags it and may disapprove Merchant listings. The fix is structural: drive page, schema, and feed from one source of truth so they can’t disagree.

Invalid currency or price format

Use a plain decimal for price (89.00, not $89) and an ISO 4217 code for priceCurrency (USD). Currency symbols or thousands separators inside the value trigger validation errors.

How to validate after each fix

  1. Run the URL through Google’s Rich Results Test.
  2. Cross-check with the Schema.org validator.
  3. In Search Console, use the Products enhancement report and click Validate fix after deploying.
Most of these errors come from incomplete or conflicting schema sources. Easy Woo API emits one complete, validated Product block per product — with identifiers, brand, and consistent pricing — so the warnings clear at the source. See the Product schema guide to start.