Available for projects & agency overflow · Quick reply, from the person who does the work

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.

Describe my issue Send a message

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

  1. 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.

  2. 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.

  3. 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.

  4. 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.

  5. 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.

flux-google.xml
<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

Describe your need in one minute

A few targeted questions so I can reply with an estimate rather than another questionnaire.

outil
api
sens
frequence (facultatif)
Please provide an email or a phone number so I can get back to you.

Please provide an email or a phone number so I can get back to you.

Frequently asked questions

Why does only one colour show up in Google Shopping?
Because the feed is probably only sending a single item for the whole variable product. Each variation needs to appear as its own item with its own id for Google to show them all.
Do I need a GTIN for every variation?
When the manufacturer assigns one per variation (colour or size), yes. Otherwise, identifier_exists=no applies to the variation itself, not just the parent product.
How do I map WooCommerce categories to Google categories?
I map each site category to a specific Google Product Category rather than letting the plugin apply a generic default one.
Does WooCommerce stock sync automatically with the feed?
It depends on the plugin used and how often it regenerates the feed. I always check the real delay between a stock update and its effect on the feed.
Does the same feed work for Meta or Pinterest?
The attribute structure is close, but I recommend adapting the feed rather than reusing it as is, especially for categories and platform-specific fields.