Much Better Schema Markup for WooCommerce Products

WooCommerce is a popular e-commerce plugin that offers a lot of flexibility, with a solid and well designed codebase, but WooCommerce is not an SEO plugin, so its Schema markup for search engines is very basic, and its social meta tags for Facebook, Twitter, and other social sites are non-existent.

You may have found your way here after sharing a WooCommerce product URL on Facebook, Pinterest, Twitter or another social site, or testing a product page using the Google Rich Results Test Tool or the Google Structured Data Test Tool, and being unimpressed with the minimal Schema markup provided by the WooCommerce plugin. The following guide provides a quick and easy way to improve your WooCommerce product meta tags and Schema markup, which will improve your search ranking, the product information shown in search results and on social sites, and your click-through-rates from search results and social sites.

Having better Schema markup will definitely improve your Google search ranking -- significantly in most cases. :)

Common Warnings for WooCommerce Markup

The Google Rich Results Test Tool, the Google Structured Data Test Tool, or the Google Search Console for site owners, may report one or more of the following errors for the minimal Schema markup offered by WooCommerce:

  • The aggregateRating field is recommended.
  • The brand field is recommended.
  • The review field is recommended.
  • This Product is missing a global identifier (e.g. isbn, mpn or gtin8).
  • No global identifier provided (e.g. gtin mpn isbn).
  • Missing field "businessDays".
  • Missing field "cutoffTime".
  • Missing field "deliveryTime".

The aggregateRating warning from WooCommerce's Schema markup can be addressed by having your customers leave one or more reviews for each of your products. Unfortunately, products without any reviews will not have an aggregateRating value (see bellow for a solution). If your product has several reviews, WooCommerce will only include the last review in the Schema Product markup, which may not reflect the total aggregateRating values (see bellow for a solution). All product reviews (ie. have a rating value) and comments (ie. no rating value) are combined by WooCommerce into a separate, disconnected Schema JSON-LD block for reviews, no matter if a review or comment has a rating value or not (see bellow for a solution). The following values should be included in the Schema markup when available, but WooCommerce cannot manage this information without using several 3rd party plugins and coding complex filters for its default Schema markup (see bellow for a solution).

  • Brand
  • GTIN-14
  • GTIN-13 (aka UPC)
  • GTIN-12 (aka EAN)
  • GTIN-8
  • ISBN
  • MPN (aka Manufacturer Part Number)

Although Google does not warn about the lack of a mainEntity or mainEntityOfPage value in the default Schema markup from WooCommerce, this property should be included so Google can recognize the Schema Product markup as the main subject of the webpage.

WPSSO - The Best Solution for Better Schema

The combination of the WPSSO Core Premium plugin and its WPSSO Schema JSON-LD Markup add-on (Standard or Premium) addresses all the default Schema markup weaknesses of WooCommerce, and includes many more Schema product properties for Google -- not to mention complete social meta tags for Facebook, LinkedIn, Pinterest, Twitter, and more.

WooCommerce provides only a single product offer in its Schema markup - even for variable products with different pricing - while WPSSO includes all product variation offers, grouped by currency, with complete product details for each offer (description, images, mpn, sku, gtin, item condition, availability, price, currency, VAT added, shipping delievery times, weight, width, height, length, fluid volume, and more). WPSSO includes product prices without VAT (by default), or can optionally include VAT in the offer prices. WPSSO offers an option to include aggregateRating and review properties for all your products, even if they do not have any reviews - and if your products have reviews (ie. with a star rating) and comments (ie. no rating value), they will be classified properly - added to the Schema Product markup as "reviews" and "comments" respectively.

WPSSO supports many additional WooCommerce product and variation attributes as well, including:

  • Brand
  • Color
  • Condition (possible values: Damaged, New, Refurbished, or Used)
  • Depth
  • GTIN-14
  • GTIN-13 (aka UPC)
  • GTIN-12 (aka EAN)
  • GTIN-8
  • GTIN
  • ISBN
  • Material
  • MPN (aka Manufacturer Part Number)
  • Size
  • Gender
  • Volume

See the WooCommerce integration notes for details on different ways you can include this product information in your WooCommerce shop (ie. using an add-on for WPSSO Core, a supported 3rd party plugin, WooCommerce Product Attributes, WordPress Custom Fields, or customized values in a Document SSO metabox).

Do you ship products?

In September 2020, Google announced support for shipping details in Schema markup. Adding shipping details to your Schema Product markup is especially important if you offer free or low-cost shipping options as this will make your products more appealing in Google search results. The WPSSO Core Premium plugin can provide shipping information for WooCommerce products, including shipping zones, methods, rates, and locations (continents, countries, states, and postal / zip codes) when the WPSSO Shipping Delivery Time for WooCommerce add-on is active.

A Step-by-Step Solution

  1. Install and activate the WPSSO Core plugin: From your site's Plugins > Add New page, search for "WPSSO Core".

  2. Install and activate the WPSSO Schema JSON-LD Markup add-on to provide Schema markup in JSON-LD format for Google Rich Results: From your WordPress site's Plugins > Add New page, search for "WPSSO JSON".

  3. Optionally install and activate the WPSSO Product Metadata for WooCommerce add-on to add GTIN, GTIN-8, GTIN-12 (UPC), GTIN-13 (EAN), GTIN-14, ISBN, MPN, depth, and volume information for WooCommerce products and variations: From your WordPress site's Plugins > Add New page, search for "WPSSO WCMD".

  4. Optionally install and activate the WPSSO Shipping Delivery Time for WooCommerce add-on to provide Google with shipping rates and delivery time estimates: From your WordPress site's Plugins > Add New page, search for "WPSSO WCSDT".

  5. To add support for WooCommerce products, 3rd party plugins, service APIs, and advanced settings, purchase the WPSSO Core Premium plugin and follow the installation guide provided in the post-purchase email (the Premium version is offered as a simple plugin update).

  6. Have a look through the SSO > Setup Guide for optimization and setting suggestions.

  7. For information on managing additional WooCommerce product information, and optionally including VAT in product offer prices, see the WooCommerce integration notes.

  8. In case you have any questions or issues, you can also open a ticket on the Premium Support site.