Guide
Google Shopping feed optimization
Google Shopping feed optimization means changing the product data you send to Merchant Center so each product is eligible, matches more of the searches it should, and can be managed in campaigns. Google has no keywords for Shopping: the feed is what it matches against. Work in this order: fix errors, complete identifiers, rebuild titles, set categories and product_type, fill attributes, improve descriptions, add custom labels, then images. Each step below has a before/after and the rule that applies it to the whole catalog.
We connect your store, build the feed and keep it in sync. Updated 2026-10-27.
At a glance
- Eligibility first: disapproved or limited products earn nothing, so clear Merchant Center errors before rewriting anything.
- Titles are the text shoppers see first and the main place for the words they search: brand, product type and key attributes in the first 70 characters, within Google's 150.
- Complete gtin, brand and mpn, a correct google_product_category and your own product_type path; together they decide which queries and comparisons a product can join.
- Custom labels (custom_label_0 to 4, max 100 characters and 1,000 unique values each) turn margin, season or bestseller status into campaign structure.
- On the feeds Textfinity has profiled, the average title uses about 20 of the 150 characters Google allows; that gap is usually the first win.
Google Shopping feed optimization, in priority order
- 1. Errors and warnings: read item issues in Merchant Center and fix the cause in the feed: missing identifiers, price or availability mismatches, small images, missing apparel attributes.
- 2. Identifiers: a valid gtin lets Google match your offer to the product it already knows; brand is required for new products; mpn where there is no gtin.
- 3. Titles: rebuild from attributes so the words people search for come first.
- 4. Categories: google_product_category from the taxonomy (the ID is recommended) and product_type with your own full path, up to 750 characters.
- 5. Attributes: color, size, material, pattern, gender and age_group where they apply; they feed filters on Google and are required for apparel in six countries.
- 6. Descriptions, highlights and details: plain-text descriptions that state facts, 2 to 100 product_highlight lines of up to 150 characters, and product_detail for specs.
- 7. Custom labels: margin band, season, bestseller, clearance, for campaign and bidding structure.
- 8. Images: the original, uncropped product image. Google enforces a 500 x 500 pixel minimum for all product images from January 31, 2027.
Product title optimization: patterns by vertical
A title pattern is an ordered list of attributes. The order changes by vertical because shoppers search differently: brand-led in electronics, product-and-attribute-led in fashion and home. Keep promotional words, prices and SKU codes out; Google disallows promotional text in titles.
| Vertical | Pattern | Example |
|---|---|---|
| Apparel | Brand + gender + product type + attribute + color + size | Marlow Women's Linen Shirt, Relaxed Fit, Sand, M |
| Electronics | Brand + product line + model + key spec + color | Kinto Aura 3 Wireless Earbuds, ANC, 32 h Battery, Black |
| Furniture | Brand + product type + material + size + color | Alder Dining Table, Solid Oak, 180 x 90 cm, Natural |
| Beauty | Brand + product + key ingredient or benefit + size | Lumi Hydrating Face Cream with Ceramides, 50 ml |
| Food and drink | Brand + product + origin or variety + weight | Kaffa Roasters Ethiopia Guji Coffee Beans, 250 g |
| Auto parts | Brand + part + fitment + part number | Brenna Front Brake Pads for VW Golf VII, BP-2231 |
Attributes and categories: matching more of the right searches
Google reads structured attributes as well as text. A dress with color, size, material and pattern filled can show when a shopper filters for "linen" or "green"; the same dress with those words only in the description may not. Fill the attributes that apply to your vertical, using consistent values (one spelling of "Navy", not three), and keep multi-value fields such as color to the primary color first.
google_product_category tells Google what the product is; Google also categorizes automatically, so set it when its guess is wrong or the category triggers required attributes. product_type is yours: a path such as Home > Dining > Tables > Extendable that you can use to subdivide Shopping campaigns. Only the first product_type value is used for bidding and reporting, so put the main path first.
Custom labels: let the feed steer campaigns
| Label | Example values | Built from |
|---|---|---|
| custom_label_0: margin | margin-high, margin-mid, margin-low | Google Sheet of margin bands joined by SKU |
| custom_label_1: season | summer, winter, all-season | Product tags or a collection, mapped by condition |
| custom_label_2: sales velocity | bestseller, steady, slow | A sheet exported from your analytics weekly |
| custom_label_3: price band | under-50, 50-150, over-150 | Lookup of price ranges, or set per collection |
| custom_label_4: promotion | black-friday, clearance | Static value on a filtered set during the promotion |
Max 100 characters per value and 1,000 unique values per label across the account; values are never shown to shoppers.
How to test a feed optimization
Change one field set at a time and let it run long enough for the campaign to collect data. Title tests are the clearest: rebuild titles for one product group, leave a comparable group as it was, and compare impressions and click-through rate for both in Google Ads over the same weeks. Avoid changing bids or budgets in the same window, or you cannot tell which change did what.
Keep ids stable through all of this. Google keys performance history to the product id, so an optimization that changes ids starts every product from zero.
Product feed optimization beyond Google
The same work carries over to Microsoft Shopping, Meta, Pinterest and TikTok catalogs: complete identifiers, factual titles, accurate categories and labels for campaign structure. The values differ (Meta recommends 65-character titles and spells availability with a space), so optimize once in the source and let each channel feed apply its own format.
Sources checked
Examples
Worked examples, by situation
Six optimizations, each from a different catalog and each targeting a different part of the checklist.
Title rebuilt from attributes
Before
Relaxed Linen Shirt
After
Marlow Women's Relaxed Linen Shirt, Sand, M
How we set it up
We map title as an advanced expression: [product_vendor] + " Women's " + [product_title] + ", " + [variant_color] + ", " + [variant_size], reading the Shopify Color and Size options directly (Shopify fields take underscores inside an expression). Feed hygiene's length distribution shows the average title length before and after.
Model number and key spec in the title
Before
Wireless Earbuds Black
After
Kinto Aura 3 Wireless Earbuds, ANC, 32 h Battery, Black
How we set it up
We set up an AI config that enhances the title from title, description and manufacturer, with model and battery as additional context. Textfinity's AI titles run 100 to 150 characters with the key information in the first 70. The title column uses replace from AI config, which takes only accepted generations.
Promotional text removed by regex
Before
SALE!! Oak Cutting Board – FREE SHIPPING – 30% OFF
After
Oak Cutting Board
How we set it up
We map title with remove from regexp (?i)\s*([–-]\s*)?(sale!*|free shipping|\d+% off)\s*([–-]\s*)? and test it on a sample in the product explorer first, so a product genuinely named "Sale Bench" is not stripped.
product_type rebuilt for campaign structure
Before
product_type: New In
After
product_type: Esszimmer > Tische > Ausziehtische google_product_category: 4355
How we set it up
We map product_type with replace from google sheet (column A the store collection, column B the German path) and google_product_category with replace from a second sheet holding the taxonomy ID in column B. The sheets find and replace substrings, so column A holds full collection names and each rule is conditioned on is in google sheet list. Shopping campaigns are then subdivided by the first product_type level.
Margin and bestseller labels from two sheets
Before
No custom labels; one campaign for all products
After
custom_label_0: margin-high custom_label_2: bestseller
How we set it up
We join a margin sheet and a weekly sales sheet as merged sources, both keyed on SKU, then map custom_label_0 as a rename of margin_band and custom_label_2 as a rename of velocity. Campaigns split on the labels in Google Ads.
Identifiers completed instead of products excluded
Before
gtin empty on 41% of products; identifier_exists unset
After
gtin from supplier data on 97%; brand + mpn on the rest
How we set it up
We join the supplier file as a merged source on SKU, then map gtin as a rename of the supplier EAN and mpn as a rename of the supplier part number. identifier_exists no stays reserved for products that truly have no identifiers.
Copy this plan
Plan: one optimization pass this week
Merchant Center diagnostics and Google Ads reporting happen in Google's interfaces; the fixes happen in the feed.
01
List the errors
Export item issues from Merchant Center and group them by cause. Textfinity does not import these, so this step happens in Google's interface.
02
Profile your feed
Check completeness per attribute, title lengths against the 150-character limit and inconsistent values.
What we set up: We run feed hygiene on your catalog: completeness per column, length distribution against Google's limits and value consistency.03
Fill identifiers and attributes
Join barcodes and part numbers from supplier files; split color and size from option strings.
What we set up: We join supplier files as merged sources and map gtin, color and size with rename or remove from regexp.04
Rebuild titles
Pick the pattern for your vertical and build it from attributes, or generate titles with an AI config and review them.
What we set up: We build the title pattern as an advanced expression, or set up an AI config that enhances titles and use only the generations you accept.05
Add categories and custom labels
Map google_product_category and product_type from a lookup sheet, and the labels you will use to split campaigns.
What we set up: We map google_product_category and product_type with replace from google sheet, and fill custom_label_0 as a rename of a column from your merged sheet.06
Measure, then do the next field
Compare the changed product group with an unchanged one in Google Ads over the same period before moving on.
Customization tips
Make it yours
Template titles or AI titles
A template is exact and costs nothing per product, but every title reads the same way. AI titles read naturally and pull in details from the description, but need review before they are used. Many stores template the spec-driven lines and generate the rest.
Long titles are allowed, not required
Google allows 150 characters and shows fewer. Use the length for attributes shoppers search for, not repeated synonyms. The first 70 characters are the ones to get right.
Few label values, many products per value
Labels with dozens of values split campaigns into groups too small to learn from. Three margin bands and a handful of seasons usually beat a label per collection.
Optimize the source once, format per channel
Clean attributes in the source improve every channel at once. Channel-specific changes (title length for Meta, availability spelling) belong in each channel's feed, not in the store.
FAQ
Questions about google shopping feed optimization
What is Google Shopping feed optimization?
Improving the product data sent to Google Merchant Center, mainly titles, identifiers, categories, attributes, descriptions, custom labels and images, so products are approved, match more relevant searches and can be grouped into campaigns.
What should I optimize first in a Google Shopping feed?
Errors that keep products out, then identifiers (gtin, brand, mpn), then titles. Titles are the most visible text in a listing and the main place for the words shoppers search, and most store titles use a fraction of the 150 characters available.
How long should Google Shopping titles be?
Up to 150 characters are allowed. Put brand, product type and the key attributes in roughly the first 70 characters, since shorter placements cut the rest, and use the remaining space for further attributes rather than repetition.
What are custom labels used for in Google Shopping?
custom_label_0 to custom_label_4 hold values you define, such as margin band, season or bestseller, up to 100 characters each and 1,000 unique values per label. They are not shown to shoppers; you use them to split campaigns and set bids.
Set up for you
We'll set up the first optimization pass in Textfinity this week.
Send us your store URL. We configure the identifiers, title rules and custom labels in Textfinity without touching the store, you review the AI titles before any go live, and the software rebuilds the feed on schedule.
Tell us your store and channels. We reply within 24 hours.