Short answer: the fastest way to a working WooCommerce Google Shopping feed
A WooCommerce Google Shopping feed is a list of your products, with prices, stock and identifiers, that Google Merchant Center reads to show them in Shopping ads and free listings. For most stores the quickest route is the free Google for WooCommerce plugin or a feed plugin that publishes an XML file Merchant Center fetches daily. The hard part is not the setup; it is keeping feed prices and availability identical to what Google sees on your product pages.
If you sell a few hundred simple products in one country, a plugin is enough. Large catalogues with variants, several currencies or prices coming from an ERP usually need a feed built from your own catalogue logic.
Why Merchant Center disapproves WooCommerce products
Google checks every product three ways: the feed, the landing page it crawls and the structured data on that page. If they disagree, the product is disapproved or limited. Typical WooCommerce causes:
- VAT. In the UK and EU, prices must include VAT. Stores set to "display prices excluding tax" for B2B fail immediately.
- Variable products. The feed sends a variation at £49, but the product URL opens the parent with a default variation at £59.
- Caching. A full-page cache serves yesterday's price after a sale ends.
- Scheduled sales. The sale price changes at midnight; the feed refreshes at 6 am.
- Currency and geo plugins. Google crawls from the US and gets dollars.
- Theme JavaScript. The price is rendered in the browser, so the crawler sees an empty or placeholder price.
Which feed option should you use?
| Option | Cost | How it sends data | Good for | Watch out for |
|---|---|---|---|---|
| Google for WooCommerce (official) | free | API sync, plus Google Ads setup | small and mid-size catalogues, one country | limited control over titles and custom rules |
| Feed plugins (Product Feed PRO, CTX Feed and similar) | free to about €200 a year | XML or CSV file, scheduled fetch | rule-based titles, several feeds (Google, Meta, comparison sites) | heavy feed generation on large catalogues can slow the server |
| Feed management tools (DataFeedWatch, Channable and similar) | from about €50–€100 a month (estimate) | import your feed, transform, export | many channels and countries | another subscription and another place where data can drift |
| Custom feed from your catalogue | part of the build | XML file or Merchant API | ERP prices, variants, multi-currency, B2B | needs a developer to maintain |
If you use an API-based plugin, check that it has moved to the Merchant API. Google sunset the Content API for Shopping on 18 August 2026; requests began failing intermittently from 1 September 2026, and Google announced that all endpoints would be switched off in early 2027. Google for WooCommerce uses the Merchant API from version 3.8.1. File-based feeds are not affected.
What the feed must contain
Limits and allowed values below follow Google's product data specification.
| Attribute | Required? | WooCommerce source | Notes |
|---|---|---|---|
id |
yes | product or variation ID | stable, max 50 characters; never reuse |
title |
yes | product name plus key attributes | max 150 characters; brand, type, size, colour |
description |
yes | short or long description | plain text, no promotional text |
link |
yes | product URL | for variations, a URL that preselects that variation |
image_link |
yes | featured image | at least 500 × 500 px for all products (Google's minimum since 31 January 2027); 800 px+ recommended |
availability |
yes | stock status | in_stock, out_of_stock, preorder or backorder |
price |
yes | regular price incl. VAT | with currency, e.g. 49.00 GBP |
sale_price |
if on sale | sale price and schedule | add sale_price_effective_date for scheduled sales |
brand |
yes for most new products | attribute or taxonomy | your own brand for private-label goods |
gtin |
yes if one exists | custom field (EAN or UPC) | WooCommerce has a GTIN, UPC, EAN or ISBN field in recent versions |
mpn |
if no GTIN | SKU or manufacturer code | combine with brand |
identifier_exists |
if no GTIN or MPN | flag | no for custom or handmade items |
item_group_id |
for variants | parent product ID | groups sizes and colours |
shipping |
yes, or account settings | shipping zones | simpler to set in Merchant Center |
Step by step: setting up the feed
- Prepare WooCommerce. Show prices including VAT on product pages, make every variation URL preselect its attributes, and fill in brand and GTIN for every product that has one.
- Set up Merchant Center. Add business details, verify and claim your domain, and set shipping and returns in the account. Account-level shipping rules are easier to maintain than per-product shipping.
- Choose the feed method. Connect Google for WooCommerce, or publish an XML feed and add it in Merchant Center as a scheduled fetch, ideally a few times a day.
- Exclude what you should not advertise. Out-of-stock lines you will not restock, B2B-only products and items without images.
- Exclude cart and feed URLs from page caching, and purge the product page cache whenever price or stock changes.
- Check structured data. Your theme or SEO plugin outputs Product schema; its price, currency and availability must match the feed.
- Review diagnostics. Fix account issues first, then the issues affecting the most products.
- Link Google Ads and start with free listings and one Shopping or Performance Max campaign. In the EEA and UK, Shopping ads run through a Comparison Shopping Service (CSS); a third-party CSS can lower your cost per click compared with Google's own.
Variable products: the most common source of trouble
WooCommerce stores variations as children of a parent product, while Google expects one item per variation. Get these three things right and most variant problems disappear:
- One item per variation. Each size or colour is its own item with its own
id, price, availability and GTIN, and all of them share the parent'sitem_group_id. - A URL that opens the right variation. Use the variation link with its attributes in the query string (for example
?attribute_pa_size=m), and make sure the theme actually preselects it and shows that variation's price in the HTML. - Consistent attributes. Send
size,colorand, for clothing,genderandage_group, using the same values on the page and in the feed.
If your theme shows a price range ("£49–£69") until a variation is chosen, Google may read the lowest or the first number. Show a single price for the preselected variation instead.
Common Merchant Center errors and how to fix them
Exact wording varies between the classic and the newer Merchant Center interface, but these are the issues WooCommerce stores hit most:
| Issue | What it means | WooCommerce fix |
|---|---|---|
| Mismatched value (page crawl) [price] | page price differs from feed price | show prices incl. VAT, fix variation URLs, purge cache on price change |
| Mismatched value (page crawl) [availability] | page says out of stock, feed says in stock (or vice versa) | refresh the feed after stock changes; stop caching stock status |
| Automatic updates: Mismatched price | Google is overriding your price from the page | fix the mismatch source; Google still treats mismatches as critical errors that can lead to account suspension |
| Missing value [gtin] / Limited performance due to missing value: GTIN [gtin] | product has a GTIN but you did not send it | fill the GTIN field; add brand and MPN |
| Invalid value [gtin] / Incorrect GTIN | wrong length or check digit, or a GTIN that belongs to another product | use the manufacturer's EAN, not internal barcodes |
| Image too small [image link] | below the 500 × 500 px minimum | upload larger originals; do not send thumbnails |
| Promotional overlay on image | watermark, logo or "sale" badge on the image | send a clean image; keep badges in the theme, not the file |
| Missing shipping costs | no shipping rule for that country | add account-level shipping in Merchant Center |
| Unavailable desktop landing page | crawler got a 404, 5xx, or a block | check redirects, security plugins and firewall rules for Googlebot |
| Misrepresentation (account level) | missing trust information | add clear contact details, returns policy, terms and real company data |
Quick checklist before you submit
- Prices on product pages include VAT and match the feed to the penny
- Every variation has its own
id,linkanditem_group_id - Brand and GTIN filled for every manufactured product
- Images are at least 500 × 500 px (800 px+ preferred), without text or badges
- Shipping and returns set in Merchant Center
- Contact page, returns policy and company details visible on the site
- Product pages not blocked by
robots.txt, a firewall or a cookie wall - Feed refreshed at least daily, and after every price campaign
What a Google Shopping feed costs
| Item | Cost (estimate, excl. VAT) |
|---|---|
| Google for WooCommerce or a free feed plugin | €0 |
| Premium feed plugin | €0–€200 a year |
| Feed management tool | €50–€300 a month |
| One-off cleanup of a disapproved feed (variants, GTINs, VAT, caching) | €400–€1,500 |
| Custom feed from an ERP-driven catalogue | part of an Enterprise build |
| Google Ads spend | your budget; free listings cost nothing |
At Raao, GA4 and SEO setup come with every store, and Merchant Center feeds are part of larger builds; see pricing. Starter starts at €1,900 and Launch at €3,900; ERP-driven catalogues with feeds for several channels fall under Enterprise. Hosting and maintenance starts from €89 a month, with updates and monitoring that help keep feeds healthy after plugin and theme changes.
How we did it for Kuiba
Kuiba sells more than 10,000 configurable products from 25+ European brands, which is exactly where off-the-shelf feeds break: hundreds of finishes and sizes per product, and supplier catalogues that change constantly.
- A configurator with price matrices for finishes, dimensions and accessories, so configurable products are priced correctly online.
- Automated supplier imports for brands such as Bonaldo, Calligaris, Nardi and Miele, with AI-assisted category mapping that keeps the catalogue clean.
- Google Merchant, Meta, TikTok and Pinterest feeds generated from that one catalogue.
- Server-side GA4 and Meta Conversions API, so campaigns fed by those products are measured accurately.
If your feed keeps getting disapproved or your catalogue has outgrown a plugin, see what we build on our ecommerce page or book a free 30-minute call.