Optimize Product Feed for Comparison Shopping Services
Many merchants initially look to Comparison Shopping Services (CSS) for the biggest leverage. However, once the technical CSS integration is in place, it's primarily the product feed that determines which products Google correctly understands, for which queries they are eligible, and how convincingly they are presented.
A CSS Partner can establish a good technical and economic foundation. However, they cannot compensate for incomplete product titles, incorrect GTINs, outdated prices, or poor product images.
Google refers to the product title as one of the most visible components of a Shopping ad or free product listing. An accurate, specific title helps Google match the product to the right users.
Therefore, optimizing the product feed is not a one-time technical task. It combines:
This guide shows you how to optimize your product feed for Comparison Shopping Services and which attributes are particularly important for Google Shopping, Merchant Center, and CSS.
Two Product Data Levels You Should Differentiate
In CSS and Google Shopping, two different data levels are often mixed up.
1. The Merchant Feed in Google Merchant Center
This feed contains the product data from the online shop. This includes, for example:
- Product ID
- Title
- Description
- Product Page
- Price
- Availability
- Images
- Brand
- GTIN
- Variant Information
- Shipping Data
This data is used for Shopping ads and free product listings, among other things. The feed remains crucial even if the merchant is connected via a CSS Partner.
2. Product Data for CSS Product Pages
Comparison Shopping Services can also provide their own product pages. For the organic display of such CSS product pages, Google specifies attributes such as id, title, description, image_link, additional_image_link, google_product_category, product_type, brand, gtin, mpn, variant attributes, product_detail, and product_highlight.
The practical consequence is:
Product data should not only be technically valid. It must also be structured so that merchants, Google, and the CSS provider can uniquely identify the same products.
In What Order Should You Optimize Your Feed?
A common mistake is to immediately write new titles, even when fundamental data errors still exist.
A clear prioritization makes more sense:
| Level | Goal | Typical Measures |
|---|---|---|
| 1. Approval | Products must be technically permissible | Required attributes, policies, URLs, identifiers |
| 2. Accuracy | Feed and shop must match | Price, availability, variants, shipping |
| 3. Relevance | Google must understand the product | Title, description, category, GTIN |
| 4. Presentation | The offer must be convincing | Main image, additional images, lifestyle_image_link |
| 5. Control | Products must be economically groupable | Custom Labels, margin, season, stock |
| 6. Timeliness | Data must be reliably synchronized | Data sources, automation, Merchant API |
An elaborately optimized title is of little use if the product is rejected due to a pricing error. Conversely, an approved feed is by no means a good feed.
Stable Product IDs and Clean Variants Form the Foundation
Each salable product or independently orderable product variant requires a unique assignment.
For a T-shirt with five sizes and four colors, there isn't just one product, but up to 20 specific variants. Each variant can have its own combination of the following information:
- Product ID
- Color
- Size
- Price
- Availability
- Image
- GTIN
- MPN
Google's examples show that variants can be submitted separately and linked via a common item_group_id. Titles and variant attributes should accurately describe the respective version.
Good Rules for Product IDs
A product ID should:
- remain permanently stable
- be unique within the feed
- not depend on price or stock
- ideally originate from the ERP or shop system
- identify the specific version for variants
Don't use a new ID every time you change the title, price, or image. For Google, this would create a new offer, even though it is still the same product.
Typical Variant Error
A merchant submits all sizes of a shoe under the same ID. On the landing page, size 42 is selected by default, but in the feed, the product is described as size 39.
As a result, the feed, product page, and the actually selectable variant do not cleanly match.
Better is:
- a unique ID for each size and color
- the correct landing page variant
- the matching variant image
- the currently valid availability
- a common item_group_id
Optimize Product Titles: Precision Over Keyword Volume
The product title is not a classic SEO title and not an advertisement. It should explain to Google and the user as quickly as possible what specific product is being offered.
A good title answers several of these questions, depending on the assortment:
- Which brand?
- Which model?
- Which product type?
- For which target group?
- Which version?
- Which color?
- Which size?
- Which material?
- Which technical specification?
- Which quantity?
Google recommends accurate and specific titles and even displays variants like color and size directly in the title in its own examples.
Meaningful Title Structures by Product Type
| Product Type | Possible Title Structure |
|---|---|
| Fashion | Brand + Target Group + Product Type + Material + Color + Size |
| Electronics | Brand + Model + Product Type + Key Specification + Color |
| Furniture | Brand + Product Type + Dimensions + Material + Color |
| Home Appliances | Brand + Model + Appliance Type + Power/Capacity + Color |
| Spare Parts | Brand + Product Type + Part Number + Compatibility |
| B2B Products | Brand + Product Type + Technical Performance + Material + Packaging Unit |
Examples
Too generic:
Women's jacket modern cheap
Better:
Brand Women's Transitional Jacket Water-Repellent Dark Blue Size 40
Too promotional:
Top Professional Coffee Machine buy now cheap
Better:
Brand Model Automatic Coffee Machine 15 bar 1.8 l Black
Imprecise:
Industrial Pump Stainless Steel
Better:
Brand Centrifugal Pump 400 V 12 m³/h Stainless Steel DN 50
Most Important Information First
Not every title will be fully displayed in every view. Therefore, place the purchase-critical information at the beginning.
For a well-known brand product, the brand can come first. For a lesser-known manufacturer, the specific product type might be more important.
There's no rigid rule for all product ranges. The key is what information helps a user identify the product fastest.
No Artificial Keyword List
A title like this doesn't add clarity:
Office Chair Desk Chair Work Chair Swivel Chair buy cheap online
Multiple similar terms in a row make the title unreadable and dilute the specific product description.
Better:
Brand Ergonomic Office Chair with Lumbar Support Black
Synonyms, additional application areas, and technical details can be included in the description or other attributes.
Properly Label AI-Generated Product Titles
For large product ranges, AI systems can help generate titles from structured product data. However, the AI should not write "creatively" freely, but rather follow clear rules.
A sensible prompt or title template only uses existing fields:
Create a product title from brand, model, product type, color, size, and material. Do not invent characteristics and do not use promotional statements.
In the current Merchant Center documentation, Google distinguishes between the classic title attribute and structured_title. For titles generated with generative AI, structured_title should be used. Non-AI-generated titles can be submitted via title or structured_title.
Even with automated titles, quality control remains necessary. Specifically, check for:
- invented properties
- duplicate terms
- incorrect units of measurement
- truncated model designations
- missing variant information
- unnatural translations
- unauthorized promotional statements
Write Descriptions for Users and Systems
Many product descriptions in the feed consist only of the first paragraph of the product page. Others contain navigation elements, HTML remnants, generic manufacturer texts, or interchangeable promotional phrases.
A good feed description, on the other hand, should clearly summarize the most important product features.
Depending on the product, this includes:
- Function
- Application area
- Material
- Dimensions
- Technical data
- Compatibility
- Scope of delivery
- Target group
- Special features
For rich product displays, Google recommends detailed, well-structured descriptions and suggests more than 200 characters. Additionally, product details and further product images can be submitted via separate attributes.
Example of a Weak Description
High-quality product of the best quality. Order conveniently online now and benefit from our fast shipping.
This text could apply to almost any product. It provides no valuable information to Google or potential customers.
Better
Height-adjustable desk with electrically controlled frame, a work surface of 160 × 80 cm, and an adjustment range of 65 to 130 cm. The frame has two motors, a memory function for four heights, and a maximum load capacity of 100 kg.
This describes concrete features without overloading the text with search terms.
Effectively use product_highlight and product_detail
Not every piece of information needs to be squeezed into the title or description.
With product_highlight, you can convey concise product benefits or key features in a structured way. Google recommends four to six highlights; a minimum of two and a maximum of 100 are possible. A single highlight can contain up to 150 characters.
Examples:
- Electrically height-adjustable from 65 to 130 cm
- Memory function for four working heights
- Load capacity up to 100 kg
- Two silent motors
- Tabletop made from FSC-certified wood
| Area | Attribute | Value |
|---|---|---|
| Dimensions | Width | 160 cm |
| Dimensions | Depth | 80 cm |
| Performance | Load capacity | 100 kg |
| Material | Tabletop | Oak |
| Electrical | Input voltage | 230 V |
The product_detail attribute, on the other hand, is suitable for more structured technical specifications, for example:
This keeps the title readable, while technical information remains available in a structured format.
Submit GTIN, brand, and MPN correctly
Unique product identifiers help to clearly identify a specific commercial product.
The most important details include:
- gtin: Global Trade Item Number, e.g., EAN or UPC
- brand: Brand
- mpn: Manufacturer Part Number
Google recommends submitting all three pieces of information if possible. These product identifiers can help Google correctly categorize the offer and show users the product they are looking for.
Never invent GTINs
If a product has an official GTIN, precisely that number must be used. Do not generate your own sequences of numbers just to fill the field.
For variants, each specific variant often has its own GTIN. A red T-shirt in size M may therefore have a different GTIN than the same model in blue or size L.
Products without unique identifiers
Handmade unique items, customized products, or certain custom productions may not have a GTIN, MPN, or brand.
For products that genuinely have no unique identifiers assigned, identifier_exists can be used with the value 'no' or 'false'. This attribute should not be used to bypass missing data for normal branded products.
Private labels
For a true private label, you enter your brand as the 'brand'. An existing internal article number can, under certain conditions, serve as an MPN, provided it uniquely identifies the product as a manufacturer's item.
Consistent use across your shop, feed, packaging, and product page is important.
Distinguish between Google Product Category and your own product types
The attributes google_product_category and product_type serve different purposes.
google_product_category
This is where the product is classified into Google's predefined product taxonomy.
Example:
Apparel & Accessories > Clothing > Outerwear > Jackets & Coats
Google documents both numerical category IDs and written-out category paths, illustrating the assignment using numerous product types.
Choose the most specific matching category. An office chair should not just be generally classified under "Furniture" if a more precise subcategory is available.
product_type
This field can reflect your own shop or assortment structure.
Example:
Office Furniture > Office Chairs > Ergonomic Office Chairs
A clean product type helps you evaluate and group products according to your actual assortment logic.
Don't write campaign logic into your product categories
Values like these aren't helpful product types:
- high margin
- bestseller
- sale
- campaign 3
- PMax Test
- priority A
This kind of information belongs in custom labels. The category should describe what the product is, not how you want to advertise it.
Optimize product images and lifestyle_image_link
The image often determines whether a user even notices a Shopping result.
The main image should clearly show the specific product. Avoid:
- wrong variants
- tiny products in large image areas
- poor cut-outs
- inconsistent backgrounds
- blurry shots
- placeholder images
- accessories not included in the offer as dominant elements
For rich product presentations, Google recommends high-resolution images and suggests more than 1,500 pixels on the longest side.
The main image answers: What am I buying?
The image_link attribute should show the actual product being offered.
For variants, the image must match the color, material, or version. A user who clicks on a blue chair should not land on a product page with a red chair as the pre-selected variant.
Additional images answer further purchase decisions
You can submit additional views via additional_image_link. Google supports up to ten additional images. They can show, for example, different perspectives, details, packaging, or usage situations.
A useful image sequence could look like this:
- clear main image
- side view
- rear view
- detail shot
- size comparison
- product in use
- scope of delivery
- packaging
We combine CSS integration, feed quality, and campaign logic – so your products run cleanly, completely, and profitably on Google Shopping.
Request an offerWhat is lifestyle_image_link?
With lifestyle_image_link, lifestyle images can be submitted separately from classic product images.
Google cites these examples:
- clothing on a model
- furniture in a decorated room
- multiple products as a complete set
- products in a real-life usage situation
- image_link: Sofa cut out or on a neutral background
- additional_image_link: Side view, back, fabric detail
- lifestyle_image_link: Sofa in a fully furnished living room
This attribute is particularly suitable if you want your main image to remain factual and product-centric, but also want to convey the context of use.
For a sofa, the division could look like this:
Prices and availability must be synchronized
An optimized feed is worthless if users find a different price or an unavailable item after clicking.
The price submitted under 'price' must match the price on the respective product page. The currency must also match the target country and the visible currency on the landing page.
For availability, Google supports, among others:
- in_stock
- out_of_stock
- preorder
- backorder
The information must match the product page, checkout, and, if applicable, structured data. For pre-orders or backorders, an availability date is also required, which should also be visible on the product page.
Don't unnecessarily delete products
If an item is temporarily unavailable, you should not automatically delete it entirely from the data source.
Depending on the situation, you can:
- use out_of_stock
- control a pause via the corresponding attribute
- use backorder for backordered items
- use preorder for unreleased products
This generally maintains the product association, and the item can be updated when it becomes available again.
Safely implement repricing for Google Shopping
Dynamic price management can be useful in the Shopping environment. However, it increases the risk of price discrepancies.
A repricing system should not only change the visible shop price. It must simultaneously update all relevant data layers:
- price in the shop system
- price on the product page
- structured data on the product page
- Merchant Center data source
- local prices, if applicable
- CSS product data
The change should ideally occur as a connected process. If the feed is updated first, while the product page still shows the old price, a temporary discrepancy arises. The same applies in reverse order.
Google can use automatic product updates for price and availability if structured data is present on the product page. However, this feature is intended as an additional safeguard and does not replace regular product data updates.
Repricing needs economic boundaries
The lowest price is not automatically the most profitable price.
A sensible system considers:
- Purchase price
- Margin
- Shipping costs
- Payment fees
- Return rate
- Advertising costs
- Minimum stock
- Competition level
- Desired market position
Therefore, set minimum prices and margin limits. Otherwise, an automatic price reduction may generate more clicks, but at the same time destroy the contribution margin.
Cleanly connect local inventory with the product feed
Retailers with physical stores require local inventory information in addition to general product data.
A distinction must be made between:
- The product itself
- Its availability in a specific store
- Any differing local price
- Pickup and delivery options
Google enables retailers to use existing product data for local ads and free local product listings. Depending on the configuration, product data and local inventory data can be synchronized automatically.
For store-dependent prices, the price can either come from the primary product data source or from the local inventory data. It is crucial that the price visible on the respective store product page matches the submitted data.
Typical local inventory structure
| Product ID | Store | Stock | Price |
|---|---|---|---|
| CHAIR-100-BLUE | London-01 | 8 | €249 |
| CHAIR-100-BLUE | Manchester-02 | 0 | €249 |
| CHAIR-100-BLUE | Birmingham-03 | 3 | €259 |
The product remains the same. However, stock and price may differ by location.
A consistent store identifier is important. The store ID used in the local inventory data must be uniquely assigned to the respective store.
Use custom labels for profitable campaigns
A technically good feed describes the product. An economically good feed also contains information that allows you to manage your assortment based on business value.
Google provides five custom labels for this:
- custom_label_0
- custom_label_1
- custom_label_2
- custom_label_3
- custom_label_4
Google cites possible use cases such as season, sales performance, price range, margin, and launch date. The values are not visible to customers but are used for grouping and evaluation in Shopping and Performance Max campaigns.
Example of sensible assignment
| Custom Label | Meaning | Example Values |
|---|---|---|
| custom_label_0 | Margin | high, medium, low |
| custom_label_1 | Sales Performance | Bestseller, normal, slow-mover |
| custom_label_2 | Stock Level | critical, normal, high |
| custom_label_3 | Season | year-round, summer, winter |
| custom_label_4 | Strategic Role | focus product, entry-level, accessory |
This allows you, for example, to see whether your campaign is generating revenue but mainly selling low-margin products.
Avoid too many individual values
A Custom Label is not intended as a second product ID.
Less useful:
- custom_label_0 = SKU-183729
- custom_label_0 = SKU-183730
- custom_label_0 = SKU-183731
- custom_label_0 = high_margin
- custom_label_0 = medium_margin
- custom_label_0 = low_margin
More useful:
The values should form real groups that you can base decisions on.
Choose the right data source
Not every shop requires the same technical solution.
Small, relatively stable assortments
For a few products and infrequent price changes, an automatically retrieved file may be sufficient.
Possible formats include, for example:
- XML
- TSV
- automatically provided product file
- direct shop integration
It's not just the format that's crucial, but the reliability of the updates.
Medium-Sized Catalogs with Supplemental Business Data
In this scenario, a combination of primary and supplementary data sources can be useful.
For example, the primary source includes:
- Product ID
- title
- Price
- Availability
- Product link
- Images
- Margin classes
- Seasonal assignments
- Campaign labels
- Optimized titles
- Additional product features
A supplementary source provides:
After processing, a Merchant Center product can consist of a primary product input and several supplementary inputs.
Large or Highly Dynamic Catalogs
For frequent price, inventory, or catalog changes, the Merchant API is often the more robust foundation.
Google allows you to manage primary and supplementary data sources via the Merchant API. Data sources can be set up for specific languages and feed labels, or used more flexibly for multiple combinations.
For file-based data sources, Google notes that manual or scheduled fetches are not intended for arbitrary update frequencies. If updates are needed more than once a day, the Products Service should be used instead.
A practical division is therefore:
| Situation | Suitable Solution |
|---|---|
| Small, stable product quantity | automatically retrieved file |
| Additional margin or campaign data | supplementary data source |
| Frequent inventory changes | direct API integration |
| Dynamic repricing | API-based update |
| Many countries and languages | structured, central data architecture |
| Agency with many clients | standardized API and validation processes |
Localizing Product Feeds for Multiple Countries
An international feed is not simply a translated copy of a German feed.
Differences per target country can include:
- Language
- Currency
- Price
- VAT
- Shipping costs
- Availability
- Size designations
- Units of measurement
- Product names
- Legal disclosure requirements
- Assortment
In the Merchant API, feedLabel, contentLanguage, and target countries are separate configuration elements. A feed label like “DE” does not automatically mean that products are exclusively targeted to Germany. Target countries and shipping configuration must be set separately.
Translate Search Behavior, Not Just Words
A literal translation can be linguistically correct but commercially unsuitable.
For example, users in different countries may:
- Use different product terms
- Write measurements differently
- Combine brands and models differently
- Search more by materials or use cases
- Expect different size standards
Therefore, create your own title rules for each language. A common product database can form the basis, but the linguistic output should be localized.
How to Make Feed Optimizations Measurable
Don't change all attributes of your entire catalog at once. Otherwise, it will be hard to tell which measures actually helped.
A controlled process is better.
Step 1: Form Comparable Product Groups
For example:
- 200 products with optimized titles
- 200 similar products with previous titles
- Product group with lifestyle_image_link
- Comparable product group without lifestyle_image_link
Or:
Step 2: Document Prior Performance
Record at least:
- Impressions
- Clicks
- Click-through rate
- Costs
- Conversions
- Conversion rate
- Revenue
- Cost-of-sale ratio
- Share of approved products
Step 3: Change Only One Major Factor
For example, test titles first. Then images. Then custom_label_0-4 or product descriptions.
Step 4: Gather enough data
A product with two impressions doesn't provide reliable insights. Evaluate changes at the level of reasonably large product groups and consider seasonal effects.
Step 5: Evaluate business value over click-through rate
A new title can increase the click-through rate, but attract less purchase-ready users.
Therefore, don't just ask:
Did the optimization generate more clicks?
But also:
Did it generate more profitable orders or a higher contribution margin?
The most common CSS product feed errors
| Error | Potential Consequence | Better Solution |
|---|---|---|
| Generic product titles | Unclear attribution | Integrate specific product features |
| Incorrect or missing GTIN | Weak product identification | Check manufacturer data |
| One ID for all variants | Wrong execution after click | Submit variants separately |
| Price discrepancy | Rejection or poor user experience | Synchronize feed and shop |
| Outdated stock | Clicks on unavailable products | More frequent updates |
| Only one product image | Insufficient purchase context | Add additional and lifestyle images |
| Category too general | Imprecise classification | Choose the most specific suitable category |
| Custom Labels without system | No meaningful evaluation | Use fixed definitions |
| Margins not considered | Revenue without profitability | Map margin in the feed |
| One feed for all languages | Unnatural product titles | Language-specific rules |
| Repricing only in shop | Price discrepancies | Synchronize all data sources |
| CSS as a substitute for feed quality | Potential remains unused | Optimize CSS and feed separately |
A practical 30-day plan
Week 1: Check technical condition
First, take stock:
- How many products are approved?
- What are the most common errors?
- Are prices and availability correct?
- Are IDs stable?
- Are variants correctly separated?
- What is the proportion of valid GTINs?
- Which products have no images?
First, fix errors that completely exclude products from being displayed.
Week 2: Improve titles and identifiers
Select the most important product groups by revenue or potential.
Develop a title template per category and add:
- Brand
- Model
- Product type
- Key specification
- Variant details
At the same time, check GTIN, MPN and brand.
Week 3: Expand images and product information
For important products, add:
- High-resolution main images
- Alternative perspectives
- Detail shots
- Lifestyle images
- Product highlights
- Technical product details
Initially, focus on products with many impressions but a weak click or conversion rate.
Week 4: Economic control and automation
Define a Custom Label system and transfer:
- Margin
- Sales strength
- Stock
- Season
- Strategic priority
Then, check if your update frequency matches your product range. Dynamic prices and stock levels suggest an API-based solution.
Conclusion: The CSS Partner is the infrastructure, the feed is the performance lever
A good Comparison Shopping Service creates the conditions for a professional CSS connection. However, whether your assortment actually reaches its full potential depends largely on the quality of your product data.
Don't start with cosmetic optimizations. First, ensure that products are uniquely identified, correctly approved, and delivered with up-to-date prices and stock levels.
After that, follow these performance-enhancing measures:
- precise product titles
- structured descriptions
- correct GTINs
- specific categories
- convincing product images
- lifestyle images
- economical Custom Labels
- reliable automation
The best product feed doesn't contain as much information as possible. It contains the right information, in the right attribute, for the right product, and at the right time.
Especially with large assortments, feed optimization becomes a continuous process. Those who consider CSS connection, product data, price control, and campaign logic together create a much better foundation for scalable Google Shopping.
Frequent Questions about Product Feed Optimization for CSS
Does a CSS Partner automatically optimize my product feed?
Not necessarily. CSS integration and product feed optimization are initially distinct services. Some providers exclusively handle CSS integration, while others also offer feed management, consulting, or technical integrations. Therefore, check the specific scope of services.
Is lifestyle_image_link a mandatory attribute?
No. The attribute is optional. It's suitable if you want to submit lifestyle and in-use images separately from classic additional product images. Google mentions, for example, clothing on models or furniture in decorated rooms as possible use cases.
Should I always use the maximum title length?
No. A title should above all be accurate, understandable, and product-specific. Artificially extending it with synonyms and promotional statements does not improve the product description. Google emphasizes the accuracy and specificity of the title.
How often should I update the product feed?
That depends on how often prices and stock change. For a stable assortment, a daily fetch may be sufficient. For dynamic stock or repricing, more frequent API-based updates are sensible. For more frequent updates with file-based fetching, Google refers to the Products-Service.
Do I always need a GTIN?
Not every product has a GTIN. However, branded products and standardized merchandise often have unique product identifiers. Only if a product genuinely does not have a GTIN, MPN, or brand assigned, should identifier_exists be set to no accordingly.
Can I store margins directly in the feed?
Yes, for example, using a Custom Label. Instead of submitting the exact margin value, you can create groups like "high margin," "medium margin," and "low margin." Google explicitly names margin as a possible use case for custom labels.
Can the same product feed be used for multiple CSS Partners?
The technical implementation depends on the respective Merchant Center and CSS configuration. Fundamentally, the underlying product information should remain consistent. Before parallel operation or switching, you should clarify with the involved CSS providers which accounts, data sources, and approvals will be used.
What's more important: product title or product image?
Both fulfill different tasks. The title helps with the clear description and categorization of the product. The image strongly influences whether the offer is visually perceived and understood. However, before optimizing both, price, availability, and product identification must be correct.
Product Data and CSS from a Single Source
We combine CSS integration, feed quality, and campaign logic – so your products run cleanly, completely, and profitably on Google Shopping.
Request an offer