Guide
Google product category mapping
Google product category mapping means turning your own category tree (Women > Dresses > Midi) into one value from Google's product taxonomy (2271). Google now assigns a category to every product by itself, so the job is to override it where Google guesses wrong or where the category drives attribute rules and campaigns. The fastest reliable method is a two-column lookup sheet from store category to Google ID, applied in the feed, with rules for the products the sheet does not cover.
We connect your store, build the feed and keep it in sync. Updated 2026-10-27.
At a glance
- google_product_category takes one value: either the numeric ID (2271) or the full path (Apparel & Accessories > Clothing > Dresses), never both.
- Google auto-assigns a category to every product; submitting one overrides that guess. Use the most specific category that fits.
- The current taxonomy file (version 2021-09-21) lists 5,595 categories with IDs, downloadable as .txt or .xls in several languages.
- Map by ID: it works in every language and survives renamed paths. Keep your own tree in product_type, which is free text.
- In Textfinity, we set up a Google Sheet with store category in column A and Google ID in column B as the mapping: is in google sheet list as the condition, replace from google sheet as the transform.
Do you still need Google product category mapping?
Google's spec now says every product is automatically assigned a category from its taxonomy, and that google_product_category overrides the assignment. So an empty column is no longer a disapproval. Mapping still pays off in three places: when the auto-assigned category is wrong (a phone case filed as a phone), when the category decides which attributes are required (apparel needs color, size, gender and age group), and when campaigns or product groups are split by category.
It also matters off Google. Meta's catalog asks for google_product_category or fb_product_category and accepts the Google value, so one mapping serves both channels. A store with a clean category tree can map it once and stop thinking about it; a store whose categories are marketing collections (Summer Edit, Gifts under $50) needs rules on product type or title instead.
ID or path: the format Google accepts
| Form | Example | When to use it |
|---|---|---|
| Numeric ID | 2271 | Default. Language-independent, short, and unaffected by path wording. |
| Full path | Apparel & Accessories > Clothing > Dresses | Readable for reviewers; must match the taxonomy text exactly, in the feed's language. |
| product_type (your tree) | Women > Dresses > Midi | Not a substitute. Free text for your own structure and campaign splits. |
From Google Merchant Center Help, Google product category attribute, and the taxonomy-with-ids file, both checked 2026-10-27. In XML, escape & and > in the path form.
A mapping method that scales past 50 categories
Export the distinct values of your category column (product_type, Shopify Type or the WooCommerce category path); a 3,000-variant fashion catalog might carry only 60. Put them in column A of a Google Sheet and the most specific Google ID for each in column B.
In the feed, give google_product_category an if / else rule. If the category column is in google sheet list (an exact match against column A), replace from google sheet, which swaps the text for column B of the first worksheet; else fall back to a regexp rule on the title or a broad parent ID. The condition matters: the replace step substitutes text, so a category missing from the sheet would otherwise pass through as your own path, which Google rejects. List longer paths above shorter ones, since a row for Women > Dresses also matches inside Women > Dresses > Midi. Editing a cell changes the next build without touching the mapping.
Run a feed hygiene check on the result: field completeness shows what share of products got a category, and value consistency flags spelling variants in the source column (Dresses, dresses, Dress) that each need a row in the sheet.
Common category mapping mistakes
- Using the parent when a child exists: Electronics > Audio > Audio Components > Headphones & Headsets (505771) when the product is clearly Headphones (543626).
- Mapping by collection: a Black Friday collection is not a category. Map from product type or a dedicated metafield.
- Submitting your own path in google_product_category. Google only accepts taxonomy values; your tree goes in product_type.
- Pasting an English path into a German feed. The path form is language-specific; the ID is not.
- Accessories filed with the main product: cases, chargers and spare parts each have their own branch (Mobile Phone Cases is 2353, Mobile Phones is 267).
Examples
Worked examples, by situation
Three catalogs, three category sources, three ways to get from store category to Google ID.
Collection paths to IDs through a lookup sheet
Before
product_type: Women > Dresses > Midi product_type: Women > Outerwear > Parkas google_product_category: (empty)
After
google_product_category: 2271 google_product_category: 5598 product_type: unchanged
How we set it up
We map google_product_category with the condition [product_type] is in google sheet list → replace from google sheet on product_type, else leave empty for Google to assign. Column A holds the 60 distinct paths, column B the IDs (2271 Dresses, 5598 Coats & Jackets).
Split accessories from devices with a regexp
Before
category: Phones|Accessories title: Clear Case for Pixel 9
After
google_product_category: 2353 (the phones themselves stay 267)
Conditional rules on google_product_category
if [title] matches regexp (?i).*\b(case|cover)\b -> 2353
else if [title] matches regexp (?i).*\bheadphones?\b -> 543626
else if [category] is in google sheet list -> replace from google sheet
else -> 222How we set it up
We give google_product_category if / else if / else conditions with matches regexp on the title before the sheet lookup, and Electronics (222) as the last resort. Mapping regexps match from the start of the value, hence the leading .*. The same column feeds the Meta catalog.
One ID that works in a German feed
Before
kategori: Soffbord google_product_category: Möbel > Tische > Couchtische
After
google_product_category: 1395
How we set it up
We map google_product_category with the condition [kategori] is in google sheet list → replace from google sheet on kategori, with IDs instead of German paths. The ID is valid whatever the feed language, so the Swedish and German feeds share one sheet.
No category column at all
Before
title: Hydrating Gel Cleanser 150 ml title: Velvet Matte Lipstick, Rosewood
After
google_product_category: 2526 google_product_category: 3021
How we set it up
We give google_product_category a static value per conditional rule: matches regexp (?i).*cleanser on the title gives 2526, (?i).*lipstick gives 3021. A 120-SKU catalog can skip the sheet and keep five or six regexp rules.
Copy this plan
Plan: map your categories this afternoon
Steps 2 and 3 happen in a spreadsheet; the rest are rules we set up in Textfinity.
01
Send us the store and pick the category column
Pick the column that holds your category: product_type, Shopify Type, a metafield or the WooCommerce category path. Check how many distinct values it has.
What we set up: We connect the store and inspect the values in the product explorer.02
Download Google's taxonomy with IDs
Get the taxonomy-with-ids file (.txt or .xls) from the Google product category help page. Search it rather than browsing the tree. This step is outside Textfinity.
03
Build the lookup sheet
Column A: each distinct store category, exactly as it appears. Column B: the most specific Google ID. Leave nothing blank; use a parent ID only when no child fits.
04
Apply the sheet in the feed
Point google_product_category at the sheet, keyed on your category column.
What we set up: We map google_product_category with the condition [category] is in google sheet list → replace from google sheet.05
Catch the leftovers
Add conditional rules for products the sheet misses, matched on title or product type.
What we set up: We add else if [title] matches regexp → static value conditions to google_product_category.06
Check coverage and spelling variants
Run feed hygiene; completeness should be close to 100%, and value consistency lists category spellings that need their own sheet row.
What we set up: We run a new feed hygiene check.
Customization tips
Make it yours
Map only where Google guesses wrong
With auto-assignment, a partial mapping is fine. Start with the categories that carry attribute rules (apparel) or that you split campaigns on, and leave the long tail to Google. The trade-off: less control over the tail, much less maintenance.
Most specific, but not invented
Go as deep as the taxonomy goes for the product, but do not force a leaf that does not fit. A correct parent beats a wrong child, which can pull in attribute requirements that do not apply.
Keep the sheet next to the merchandising team
A Google Sheet lookup lets whoever adds new categories also add the ID, without access to the feed. The cost is discipline: a new category with no row falls through to your fallback rule, so check completeness after each launch.
Use product_type for your own tree
Campaign structure is better served by product_type, which you control and can change. Reserve google_product_category for what Google needs to classify the item.
FAQ
Questions about google product category mapping
Is google_product_category required in Google Merchant Center?
Not for every product any more. Google automatically assigns a category from its taxonomy to all products, and the attribute overrides that assignment. It is worth submitting where Google's guess is wrong, where the category decides required attributes such as apparel sizes, and where campaigns are split by category.
Should I use the category ID or the full path?
Either is accepted, but not both in one value. The numeric ID is safer: it is shorter, it works in any feed language, and it does not break on small differences in path wording or spacing.
How many Google product categories can a product have?
One. Google asks for the single category that best describes the product, as specific as the taxonomy allows. Your own multi-level structure goes in product_type instead.
Where do I download the Google product taxonomy?
From the Google product category page in Merchant Center Help, as taxonomy-with-ids in .txt or .xls. Other languages are available from the same page; if your language is missing, use the English path or the numeric ID.
Does a Meta catalog use the same category?
Yes. Meta's catalog accepts google_product_category as an alternative to fb_product_category, so a Google mapping can be reused in a Meta feed without a second taxonomy.
Set up for you
Have your category tree turned into Google IDs in one sheet.
Send us your store. We build the two-column lookup sheet with you and apply it to google_product_category in every feed, so new categories only need a new row.
Tell us your store and channels. We reply within 24 hours.