NexalSEO is a WordPress SEO plugin, so most of the Product schema below is built for you the moment the WooCommerce module is on. This tutorial covers the two fields it can’t fill on its own — brand, GTIN/MPN — plus how to check the rest and validate the result.
What a Product result actually needs
Google’s structured-data guidelines for Product markup ask for a handful of specific fields, not a generic description: price, availability, brand, a unique identifier (GTIN or MPN), and, where they exist, review data. Miss enough of them and Google can decline to show a rich result at all, no matter how well the page ranks. The steps below walk through each field in NexalSEO, in the order most stores are missing them.
Turn on the WooCommerce module
In wp-admin, go to Nexal SEO → Settings → Modules and enable WooCommerce if it isn’t already (it’s on by default whenever WooCommerce is active). This is what tells NexalSEO to attach Product nodes to your product pages instead of generic WebPage schema.
Let price, availability and reviews build themselves
Once the module is on, NexalSEO reads price and stock status straight from each WooCommerce product and pulls in up to five recent approved reviews as Review nodes automatically — there’s no field to fill in for these three. If a product is still flagged as incomplete later in this guide, check that it has a price set and at least one approved review, not a plugin setting.
Give every product a resolvable Brand entity
Google’s Product guidelines list brand alongside GTIN as a key identifier — without it, near-identical products from different manufacturers are harder to disambiguate. NexalSEO looks for a brand taxonomy term under any of these plugin conventions: product_brand, pwb-brand, pa_brand, yith_product_brand, or berocket_brand. If your store doesn’t use a brand plugin, add a pa_brand product attribute, assign it to every product, and NexalSEO will pick it up on the next page load — no re-save required.
Add a GTIN or fall back to MPN
On WooCommerce 9.2 and newer, NexalSEO reads the native “Global Unique ID” field on the product’s Inventory tab and outputs it as gtin. If a product has no GTIN, set an MPN instead — NexalSEO uses it as a fallback identifier so the product still qualifies for a unique-identifier check.
Run the WooCommerce SEO audit
Open Nexal SEO → WooCommerce SEO for the 5-card store audit. The Incomplete Product Schema card lists every product still missing price, availability or review data by name, and the Missing Brand Entity card does the same for brand. Fix the named products first — they’re the ones actively losing the rich result, not a background estimate. Full breakdown of all five cards on the WooCommerce SEO audit page.
Validate with Google’s Rich Results Test
Paste a product URL into Google’s Rich Results Test to confirm the Product node is valid and connected — NexalSEO outputs it as part of one @graph alongside your Organization and WebSite nodes, rather than a disconnected snippet. If a field still shows as missing there after steps 2–4, the audit cron may not have re-scanned that product yet; click “Rescan now” on the WooCommerce SEO screen to force it.
Why this runs as a connected graph, not per-page snippets
Every schema type NexalSEO outputs — Product, Organization, BreadcrumbList, and the rest — is written as one connected @graph per page instead of separate, disconnected JSON-LD blocks. That’s what lets a product’s Brand entity, its parent Organization, and its reviews all reference the same IDs instead of duplicating data three times. See the full list of the 21 supported types on the schema markup page.
The WooCommerce module, the 5-card audit, and the connected schema graph are all free, with no product limit. See what else is included on the Free vs Pro page.
Download NexalSEO free