Pushbuild

Product structured data for WooCommerce stores

Structured data is the JSON-LD block in a product page that tells search engines and AI shopping tools exactly what you sell: the name, price, stock, brand, barcode and rating. WooCommerce adds some of it on its own. This guide covers what it includes, what is usually missing, and how to fill the gaps without two plugins fighting over the same markup.

What WooCommerce adds on its own

WooCommerce core prints Product JSON-LD on single product pages. It includes the name, description, image, SKU, URL and an Offer with price, currency and stock status. If product reviews are turned on and a product has reviews, it adds the rating and reviews too.

Recent WooCommerce versions also have a GTIN, UPC, EAN or ISBN field on the product's Inventory tab, which is added to the markup when it is filled in. On an older version, that field is not there.

What is usually missing

  • Brand. Core WooCommerce has no brand in its markup unless a brands feature or plugin supplies it.
  • GTIN or MPN, because the field exists but is empty on most catalogues.
  • Variants. A variable product often shows a single price range rather than each variation's own price and stock.
  • Shipping and returns, which Google's merchant listing documentation supports through shipping details and a return policy.
  • Attributes such as colour, size and material, which live in WooCommerce attributes but are not always carried into the markup.

Plugin or custom code?

An SEO plugin such as Yoast WooCommerce SEO or Rank Math can extend the product markup, and is often enough for a simple catalogue. Custom code makes sense when your data lives in custom fields, a supplier feed or an ERP, or when you need variant-level markup the plugin does not produce.

Whichever you choose, make sure only one source writes the Product markup. A theme, an SEO plugin and a review plugin can each print their own block, and two conflicting Product entries on one page are worse than one complete one.

Filling in the data

The markup is only as good as the catalogue behind it. Barcodes and part numbers usually come from supplier price lists or packaging. A spreadsheet import, or a script that matches supplier rows to your SKUs, can fill thousands of products at once; see data entry and conversion for that kind of job.

How to check it

Paste a product URL into Google's Rich Results Test or the Schema Markup Validator to see every block on the page. Search Console's merchant listings and product snippets reports show errors across the whole store once Google has crawled it. To see how a sample of your pages grades for AI shopping tools, run the free AI shopping check. If you want the markup and missing data handled for you, see AI shopping readiness.

Updated 2026-10-23. General guidance, not advice for your situation; we scope each project in writing before any work starts.

Questions people ask first

Do I need a plugin for WooCommerce structured data?

No. WooCommerce adds basic Product markup on its own. A plugin or custom code is for the fields it leaves out, such as brand and variants.

Where do I enter a GTIN in WooCommerce?

In recent versions, on the product's Inventory tab, in the GTIN, UPC, EAN or ISBN field. Variations have their own field.

Why don't my review stars show in Google?

Google decides when to show stars, and markup does not guarantee them. First check that the rating is actually in the markup and that only one Product block is on the page.

Will changing structured data affect my rankings?

Structured data helps search engines understand the page and qualify for richer results. It is not a ranking shortcut, but errors can cost you those richer results.

Tell us what you need built.

Tell us the process and the tools involved, or call. We reply with questions or a written scope.

hello@pushbuild.com

(617) 299-8887