Where should your Google product categories live: store, feed app or supplemental feed?
Keep your Google product categories in one place, as close to where the feed is built as you can: on the product in your store if your feed app reads it from there, in the feed tool if that is where the feed is assembled, or in a Merchant Center supplemental data source if you cannot edit either. Any of the three works. Two at once is where values start to disappear, because nobody knows which copy is the real one.
What this comes down to
- Pick one home for the category value; two homes means two copies that drift apart, and nobody knows which one Google received.
- On the product in your store is the default: the value travels with the product and exports with it.
- A supplemental data source suits teams that cannot edit the store, but it only updates products whose id it matches exactly.
- Whichever home you choose, keep a dated export of id and category ID, so an accidental wipe costs minutes rather than a week.
The three homes, side by side
| Home | Works well when | What goes wrong |
|---|---|---|
| On the product, in your store | Your feed app reads the field from the store, and you manage products there | A careless re-import can clear it; the field depends on your platform or plugin |
| In a feed tool | One tool builds feeds for several channels from rules | The values live in that tool only; switching tools means rebuilding them |
| Merchant Center supplemental source | You cannot or should not edit the store: an agency, a locked platform app | New products have no row until someone adds one; ids must match exactly |
A category stored in two places is a category nobody owns.
In the store: the default, with one trap per platform
Storing the category on the product means it is edited where the product is edited, and it leaves in every export. That is why it is the right default for most single stores. Each platform has one trap worth knowing before you commit:
- Shopify. Shopify’s own taxonomy and Google’s are separate columns, and filling one does not fill the other. Shopify’s documentation also warns that a blank non-required column in an import CSV overwrites the stored value as blank. A trimmed-down re-import can wipe every Google category in one click. The Shopify guide covers both.
- WooCommerce. The value is product meta added by your feed extension, not a WooCommerce category. A different extension may store it under a different key, so check before you switch extensions. The WooCommerce guide shows how to find the column.
In Merchant Center: a supplemental data source
A supplemental data source is a second file, usually two columns: id and google_product_category. It adds attributes to products already in your primary source. It cannot add products, and it only updates rows whose id, feed label and language match. You need the Advanced data source management add-on turned on before the option appears.
Its strength is independence: nobody touches the store, and the store’s apps cannot overwrite it. Its weakness is the same independence. A product added to the store today has no row in the supplemental file until someone writes one, so a new range can go out without categories and nobody notices. If you choose this home, put add a row to the category file on the launch checklist. The supplemental feed guide walks through the setup.
The real problem: two homes at once
Picture it: your store has a category on every product, set two years ago. An agency later adds a supplemental file with better values. Six months on, someone fixes a category in the store and cannot understand why Merchant Center still shows the old one. The supplemental file is overriding it, and the person fixing it does not know the file exists.
Nothing is broken in that story. Each copy did what it was built to do. The problem is that there are two copies, and nobody wrote down which one wins. Choose one home, and if an old copy has to stay, write in your feed notes that it is not the source.
Keep a backup that costs nothing
Whatever home you choose, keep a plain file with two columns: product id and category ID, dated. Export it after each round of categorisation. If an import wipes the store field or a feed tool is cancelled, you rebuild from the file instead of redoing the work.
The Bulk Mapper produces exactly that file from a product export, with the category ID and path on every row and the uncertain rows flagged for a person to check. Store IDs rather than names: the ID or path guide explains why.
Questions
Should I set the Google product category in Shopify or in Merchant Center?
Set it where your feed is built. If the app that sends your feed to Google reads the Google category from Shopify, keep it there. If you cannot edit the store, use a Merchant Center supplemental data source. Avoid doing both.
Does a supplemental feed override the category in my primary feed?
A supplemental data source adds or overrides attributes on products that already exist in your primary source, matched by id, feed label and language. It cannot add new products.
What happens to my categories if I change feed apps?
Values stored only inside the old app stay there. Before you switch, export product id and category ID to a file, then load that file into the new setup.
Read next
How to override Google's automatic product category with a supplemental feed
What a supplemental feed can and cannot change, when Google accepts a category override, and the exact two columns to submit in the file.
Whose job is the product feed? Owning it when five people touch it
Catalog, pricing, ads and tech teams all feed the product feed, but one person must own it. Who supplies what, and a one-page ownership note to write today.
What is product feed management, and when does a spreadsheet stop being enough?
The four jobs inside feed management, what Merchant Center already does for free, and the signs that a spreadsheet is no longer enough for your catalog.