Skip to content
ThemesIonic — home
WooCommerce

WooCommerce Google Shopping: Product Feeds for Merchant Center

Google Shopping, Meta catalogs and TikTok all read the same thing: a product feed. WooCommerce does not generate one, so the real choices are which channels you need, how the feed stays in sync, and which product data you fill in first.

5 min read intermediate

Some links on this page are affiliate links: if you buy through one, we may earn a commission at no extra cost to you. It does not change what we recommend; see the editorial policy.

Google Shopping does not read your store — it reads a feed. A product feed is a file, usually XML or CSV, listing every product with its title, price, availability, image, link and identifiers. Google Merchant Center fetches it on a schedule, checks it against your product pages, and decides what can be shown. Meta, TikTok, Pinterest and Microsoft read feeds in much the same way. WooCommerce holds all of that data but does not publish a feed, so getting into Google Shopping means choosing how to generate one.

What core WooCommerce gives you

More than people expect, and it is worth filling in before choosing any tool:

  • Title, description, price, sale price and stock status on every product.
  • A GTIN field. The Inventory tab has a "GTIN, UPC, EAN, or ISBN" field, and each variation has its own. It is also included in the CSV export, so it can be filled in bulk.
  • Product images with a featured image first — the one channels use as the main picture.
  • Variations as separate items with their own price, stock, SKU and GTIN, set up as described in product variations.

Since WooCommerce 9.6 core also has a Brands taxonomy. What it does not have is the feed file itself, a way to map your categories to Google's product taxonomy, or fields such as condition and MPN that channels expect.

Two ways to generate the feed

Approach Good for Limits
Google's free integration (Google for WooCommerce) Stores that only care about Google: it connects Merchant Center and syncs products Google channels only
A feed plugin Several channels, custom feeds, control over every field A licence, and one more thing to configure

If Google is the only channel, start with Google's own free extension. Once Meta catalogs, TikTok or comparison-shopping sites are on the list, maintaining separate integrations for each gets tedious, and a single feed tool is easier to keep consistent.

The data that decides approval

Most Merchant Center rejections come down to a short list:

  1. Price mismatch. The feed says one price, the page another. Causes: prices entered excluding tax while the page shows including tax (or the reverse), a currency switcher changing the page price, a sale that started after the feed was built, and full-page caching serving an old price — see clearing the WordPress cache. The feed must use what the shopper actually sees in that country.
  2. Availability mismatch. Out-of-stock products still listed as in stock because the feed refreshes once a day and stock changes hourly.
  3. Missing identifiers. Branded products without a GTIN; own-brand products without brand and MPN.
  4. Images. Placeholder images, watermarks, text overlays and images too small for the channel.
  5. Landing page problems. Links that redirect, pages blocked by a consent wall or login, and products that 404 because they were trashed but stayed in the feed.

Filling in GTINs is the highest-value data work, and the CSV workflow in importing products with CSV handles it for a whole catalogue at once.

What a feed tool has to handle

  • Channel formats. Google, Meta (Facebook and Instagram), TikTok, Pinterest and Microsoft each want slightly different fields and files.
  • Category mapping from your WooCommerce categories to each channel's taxonomy, saved once, not per product.
  • Attribute mapping for brand, MPN, condition, colour and size, from wherever you store them.
  • Variations listed as separate items grouped under the parent.
  • Scheduled refresh often enough that price and stock stay in sync.
  • Filters to keep certain products — samples, hidden items, B2B-only stock — out of the feed.

This is the gap a feed plugin fills. WebToffee's WooCommerce Product Feed generates feeds for Google, Meta (Facebook and Instagram), TikTok, Pinterest, Microsoft Shopping and other channels as CSV, XML or TXT, maps categories and attributes, includes variations and GTIN, MPN and brand fields, and refreshes the files on a schedule you set.

Refresh frequency

Daily is the usual default, and it is too slow for stores with fast-moving stock or frequent sales. Match the refresh to how often prices and stock change. A store running a weekend sale should refresh the feed when the sale starts and ends, not wait for the nightly run. Scheduled generation in WordPress usually runs on WP-Cron, which fires only when someone visits the site, so a large catalogue on a schedule will benefit from a real server cron.

Free listings and ads

Merchant Center can show products in free listings without any ad spend, and the same feed powers Shopping ads when you start them. Get the feed clean on free listings first: diagnostics are the same, and fixing a rejected feed while paying for clicks is expensive. Conversion tracking for ads is a separate setup, related to the tools in WordPress analytics plugins.

Common mistakes

  • Submitting the store URL instead of a feed. Merchant Center needs the file, not the homepage.
  • Prices without the right tax treatment for the target country.
  • Leaving GTIN empty for branded goods, then wondering why impressions are low.
  • Feeding hidden or private products, whose links fail review.
  • Ignoring diagnostics after the first approval; disapprovals arrive later as data drifts.

Verify

  1. Open the generated feed URL in a browser and check a few products by hand.
  2. Compare one product's feed price with its page price, logged out and from the target country.
  3. In Merchant Center, check the diagnostics tab for item-level issues after the first fetch.
  4. Mark one product out of stock and confirm the feed reflects it after the next refresh.
  5. Spot-check a variable product: each variation should appear with its own price and image.

Frequently asked

No. Core WooCommerce stores the product data, including a GTIN field, but does not publish a feed. You need an extension: Google's own free integration covers Google channels, while feed plugins generate files for several channels at once.
The feed and the product page disagree, usually because of tax display, a currency switcher, a sale price that started or ended after the feed was generated, or a cached page. Refresh the feed more often and make sure it uses the same price the shopper sees.
For branded products that have one, yes — Google uses it to match listings, and missing GTINs limit visibility. Products you make yourself usually have no GTIN; they are identified by brand and MPN instead, and if they have neither GTIN nor MPN the feed should say so with identifier_exists set to no rather than leave the field empty.

Related guides