Guides / Google Merchant feed
How to Create a Google Merchant Center Feed from WooCommerce
A product feed is how your WooCommerce catalog gets into Google Shopping, free product listings, and Performance Max campaigns. Get the attributes right and approval is routine; get them wrong and items quietly get disapproved. Here’s the practical version.
What a Merchant Center feed is
A feed is a structured list of your products — one row or item per product — with a defined set of attributes Google understands. You can submit it as XML (RSS/Atom), a delimited text file, or via the Content API. The cleanest approach for most stores is a single hosted feed URL that Google fetches on a schedule, so it’s always current.
Required attributes
These must be present on every item or the product won’t list:
| Attribute | What it is |
|---|---|
id | Unique, stable product ID (your SKU works well). |
title | Product name, ideally with key attributes. |
description | Accurate product description. |
link | Canonical product page URL. |
image_link | Main product image (meets Google’s size rules). |
availability | in_stock, out_of_stock, preorder, or backorder. |
price | Price with currency; must match the landing page. |
Strongly recommended attributes
brandandgtin(ormpn) — identifiers tie you to known products and improve match rates.condition— new, refurbished, or used.product_typeandgoogle_product_category— classification.color,size,age_group,gender— required for apparel and variants.shippingandtax— where not configured at the account level.
What a feed item looks like (XML)
<item>
<g:id>ABC-123</g:id>
<title>TrailMaster Waterproof Backpack 30L</title>
<description>30L waterproof hiking backpack with laptop sleeve.</description>
<link>https://yourstore.com/product/trailmaster-backpack/</link>
<g:image_link>https://yourstore.com/wp-content/uploads/backpack-1.jpg</g:image_link>
<g:availability>in_stock</g:availability>
<g:price>89.00 USD</g:price>
<g:brand>TrailMaster</g:brand>
<g:gtin>0012345678905</g:gtin>
<g:condition>new</g:condition>
</item>
Three ways to generate the feed
1. A feed plugin
Dedicated WooCommerce feed plugins map your products to Merchant attributes and output a hosted file. They work, but many are heavy, run scheduled cron jobs that strain shared hosting, and store a second copy of your catalog that can drift out of sync.
2. The Content API
The most powerful and the most work: you push updates to Google programmatically. Best for large catalogs with engineering resources.
3. A live, always-current feed endpoint
Instead of generating and storing a file, serve the feed straight from your catalog. Easy Woo API exposes feed-ready JSON and XML endpoints that reflect your live products — so the feed Google fetches is never stale, and you point Merchant Center at one URL and forget it. See how it works.
The disapprovals to avoid
- Price/availability mismatch. Google re-checks your landing page. The feed and the live page must agree, including currency and sale prices.
- Missing GTIN/brand. For products that have identifiers, omitting them limits eligibility.
- Image problems. Placeholder images, logos, or images below the minimum size get items rejected.
- Uncrawlable landing pages. If Googlebot can’t fetch the product URL, the item is disapproved.