Setting up a Google Merchant Center feed on WooCommerce
A Google Merchant Center feed lists every product with the attributes Google expects: id, title, description, link, image_link, price, availability and a recognised product identifier. On WooCommerce, the point that most often breaks the Shopping listing isn’t a missing attribute but variations sent as a single item instead of a separate feed entry per variation.
The situations I handle
- Only a product’s default colour or size shows up in Google Shopping
- Out-of-stock variations still showing as available
- Google product categories poorly matched to the site’s WooCommerce categories
- The feed set up once when the plugin was installed and never rechecked since
- Uncertainty over which attributes are actually mandatory before customising a feed
- Stock updated on the site but not reflected in Merchant Center for hours
How I set up the feed on WooCommerce
-
Checking the core attributes
I check every product sends a stable id (reference or SKU), a title, a description, the link to the product page, an image_link, price with the right currency, availability, and a recognised product identifier (GTIN, or brand + MPN) or, failing that, identifier_exists=no.
-
Splitting variations into separate items
Each variation (size, colour, material) must appear in the feed as its own item, with its own id and its own GTIN where applicable. Without that, Google can only show the parent product’s default variation.
-
Mapping Google categories
I map each WooCommerce category to a suitable Google Product Category instead of leaving a generic default one, which is a frequent cause of disapproval or poor classification.
-
Syncing stock with the feed
I make sure a WooCommerce stock update actually triggers a feed refresh, not the other way round: stock accurate on the site but a feed lagging by hours creates a gap Google penalises.
-
Checking after publishing
I check each product’s status in Merchant Center, in particular the variations, to confirm they appear individually and not just under the parent reference.
The unsplit variations trap
On WooCommerce, a variable product groups several variations under one listing. A poorly configured feed plugin sometimes only sends the default variation to Merchant Center, with a single price and a single availability for the whole product.
The result: a shopper searches for a specific colour in Google Shopping, clicks the ad, and lands on a listing where that colour isn’t necessarily the one shown first, or worse, a variation advertised as available when it’s actually sold out. Every variation needs treating as a product in its own right in the feed, with its own id.
<item>
<g:id>REF-0001-BLEU-M</g:id>
<g:item_group_id>REF-0001</g:item_group_id>
<g:title>Exemple de produit - Bleu, M</g:title>
<g:price>29.90 EUR</g:price>
<g:availability>in_stock</g:availability>
</item>
Related pages
-
Google Merchant Center feed from PrestaShop
The official module and core attributes on PrestaShop.
-
Fixing Merchant Center errors
The ordered method for reading a disapproval reason and fixing it.
-
Product feed for the Meta catalogue
Adapting the same feed for Meta Shopping instead of duplicating it as is.
-
WooCommerce, my main platform
The other WooCommerce topics I deal with day to day.
Describe your need in one minute
A few targeted questions so I can reply with an estimate rather than another questionnaire.