← Back to the blog
Insights

Optimising your product feed for Comparison Shopping Services

Once the technical CSS connection is in place, your product feed determines how Google understands your items, matches them to the right search queries, and displays them.

A CSS partner provides the technical foundation. It does not fix incorrect GTINs, incomplete titles, wrong prices or weak images.

The product title is a central element of Shopping ads and free listings. An accurate title matches the product to the right users.

Optimising your product feed is an ongoing task. It brings several areas together:

This guide explains feed optimisation for Comparison Shopping Services and covers the key attributes for Google Shopping, Merchant Center and CSS.

Your product feed has two data layers, and you need to maintain them separately

With CSS and Google Shopping, merchants often mix up two different data layers.

The merchant feed in Merchant Center supplies your shop's core data

This feed contains your online shop's product data, such as:

  • Product ID
  • Title
  • Description
  • Product page
  • Price
  • Availability
  • Images
  • Brand
  • GTIN
  • Variant information
  • Shipping data

This data drives Shopping ads and free listings. The feed remains essential even with a CSS partner.

CSS product pages also show their own, similarly structured product data

Comparison Shopping Services also offer their own product pages. For their organic display, Google lists 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 must be technically valid and structured so that merchants, Google and CSS providers can identify products unambiguously.

Six stages show you the right order for feed optimisation

Merchants often write new titles before fixing fundamental data errors.

A clear order of priorities makes more sense:

StageGoalTypical actions
1. ApprovalProducts must be technically eligibleRequired attributes, policies, URLs, identifiers
2. AccuracyFeed and shop must matchPrice, availability, variants, shipping
3. RelevanceGoogle must understand the productTitle, description, category, GTIN
4. PresentationThe listing must be compellingMain image, additional images, lifestyle images
5. ControlProducts must be groupable by commercial valueCustom labels, margin, season, stock
6. CurrencyData must be reliably kept in syncData sources, automation, Merchant API

An optimised title is no use if the product is rejected for a price error. And an approved feed is rarely optimal by default.

Stable product IDs and clean variants form the foundation

Every sellable product and every orderable variant needs a unique identifier.

A T-shirt with five sizes and four colours produces 20 variants. Each variant has its own combination of the following details:

  • Product ID
  • Colour
  • Size
  • Price
  • Availability
  • Image
  • GTIN
  • MPN

Submit variants individually and link them with a shared item_group_id. The title and attributes describe the specific version.

These five rules make a product ID stable

A product ID should:

  • stay permanently stable
  • be unique within the feed
  • not depend on price or stock level
  • ideally come from your inventory or shop system
  • identify the specific version in the case of variants

Keep the ID unchanged when you update the title, price or image. A new ID needlessly creates a new product for Google.

One ID for every size mixes up the variant after the click

A merchant uses the same ID for every shoe size. On the landing page, size 42 is pre-selected, while the feed states size 39.

The feed, the product page and the selectable variant then no longer match.

What works better:

  • a separate ID for each size and colour
  • the correct landing page variant
  • the matching variant image
  • the currently valid availability
  • a shared item_group_id

A precise title answers the most important buying questions first

The product title tells Google and users exactly what is on offer.

Depending on your range, a good title answers several of these questions:

  • Which brand?
  • Which model?
  • Which type of product?
  • For which target group?
  • Which version?
  • Which colour?
  • Which size?
  • Which material?
  • Which technical specification?
  • What quantity?

Google recommends precise titles that state variants such as colour and size directly in the text.

The right title structure depends on your product type

Product typePossible title structure
FashionBrand + target group + product type + material + colour + size
ElectronicsBrand + model + product type + key specification + colour
FurnitureBrand + product type + dimensions + material + colour
Household appliancesBrand + model + appliance type + power/capacity + colour
Spare partsBrand + product type + part number + compatibility
B2B productsBrand + product type + technical rating + material + packaging unit

Three examples show the difference between vague and precise

Too generic:

Women's jacket modern cheap

Better:

Brand Women's Transitional Jacket Water-Repellent Navy Size 40

Too promotional:

Top Pro Coffee Machine Buy Now Cheap

Better:

Brand Model Bean-to-Cup 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

The most important information belongs at the front

Some views truncate titles. So place important buying criteria at the start.

For well-known brands, the brand name comes first. For lesser-known manufacturers, the product type matters more.

There is no fixed rule for every range. What matters is the detail that lets users recognise the product instantly.

Stringing keywords together makes a title unreadable

A title like this adds no clarity:

Office Chair and Swivel Chair Cheap Buy Online.

Stringing similar terms together makes product titles unreadable and imprecise.

Better:

Brand Ergonomic Office Chair with Lumbar Support Black

Put synonyms, use cases and technical details into the description or additional attributes instead.

AI generates titles from data fields; you check the result

AI systems generate titles for large ranges from product data using fixed rules.

A good title template uses only the data fields you already have:

Build the product title from brand, model, product type, colour, size and material, without promotional claims.

Google distinguishes between title and structured_title. Use structured_title for AI-generated titles, and title or structured_title for manually created ones.

Check automated titles regularly for quality. Look out especially for:

  • invented attributes
  • duplicated terms
  • wrong units of measurement
  • truncated model names
  • missing variant details
  • unnatural translations
  • impermissible promotional claims

A good description sums up all product properties clearly

Many feed descriptions contain nothing more than the opening lines of the product page, leftover navigation text, HTML, or generic promotional copy.

A good feed description sums up all the important product properties in a clear way.

Depending on the product, this includes:

  • Function
  • Use case
  • Material
  • Dimensions
  • Technical specifications
  • Compatibility
  • Scope of delivery
  • Target group
  • special features

Google recommends structured descriptions of more than 200 characters. Product details and further images belong in separate attributes.

A comparison shows how much more a specific description says

Weak: “High-quality product, order online now and enjoy fast delivery.” This text gives neither Google nor customers any useful information about the product.

Better: “Electrically height-adjustable desk with a 160 × 80 cm top and an adjustment range from 65 to 130 cm. The frame has two motors, four memory positions and a 100 kg load capacity.” This text describes specific properties without superfluous search terms.

Highlights and detail tables round out a concise title

Deliberately keep the title and description limited to essential details.

With product_highlight, you submit key features in a structured way. Google recommends four to six highlights, with a minimum of two and a maximum of 100 entries of up to 150 characters each.

Examples:

  • Electrically height-adjustable from 65 to 130 cm
  • Memory function for four working heights
  • Load capacity up to 100 kg
  • Two low-noise motors
  • Desktop made from FSC-certified wood
AreaAttributeValue
DimensionsWidth160 cm
DimensionsDepth80 cm
CapacityLoad capacity100 kg
MaterialDesktopOak
ElectricalInput voltage230 V

The product_detail attribute stores structured technical information such as:

This keeps the title readable while technical details are available in a structured form.

GTIN, brand and MPN identify your product unambiguously

Unique product identifiers pinpoint every trade item precisely.

The most important details include:

  • gtin: Global Trade Item Number, for example EAN or UPC
  • brand: brand name
  • mpn: manufacturer part number

Google recommends all three details for correct matching and precise search results.

A made-up GTIN confuses your product with a different one

For products with an official GTIN, enter exactly that number and never make one up.

Most product variants have their own GTIN. This distinguishes a red T-shirt in size M from a blue one or one in size L.

Only genuine one-off items get identifier_exists set to no

One-off pieces, personalised items or custom-made products often have no GTIN, MPN or brand.

Use identifier_exists with the value no or false only for products without identifiers. Never use this attribute simply because data is missing for a normal branded product.

For private labels, your brand name becomes the brand attribute

For a private label, enter your brand name as brand. An internal item number works as the MPN if it identifies the product unambiguously.

Use these details consistently across your shop, feed, packaging and product page.

Two category fields separate Google's taxonomy from your own structure

The attributes google_product_category and product_type serve different purposes.

google_product_category places your product in Google's taxonomy

Here you place the product within Google's product taxonomy.

Example:

Apparel & Accessories > Clothing > Outerwear > Coats & Jackets

Google offers numerical category IDs and spelled-out paths for many product types.

Choose the most precise category. Place an office chair in the matching subcategory rather than simply under Furniture.

product_type reflects your own range structure

This field can reflect your own shop or catalogue structure.

Example:

Office Furniture > Office Chairs > Ergonomic Office Chairs

A well-matched product_type makes it easier to analyse and group products by your own catalogue logic.

Campaign logic belongs in custom labels, not in the category

Values like these don't belong in product_type:

  • high margin
  • bestseller
  • sale
  • campaign 3
  • PMax test
  • priority A

Use custom labels for this instead. The category describes the product itself.

A clear main image decides whether users notice your listing

The image often determines whether users notice a Shopping result at all.

Show the product clearly in the main image. Avoid:

  • wrong variants
  • tiny products in large image areas
  • poor cut-outs
  • inconsistent backgrounds
  • blurry shots
  • placeholder images
  • accessories not included in the offer shown as the dominant element

For product images, Google recommends high-resolution images with more than 1,500 pixels on the longest side.

The main image shows exactly the product you are selling

The image_link attribute shows the product actually on offer.

For variants, match the image to colour, material and version. If someone clicks a blue chair, that colour must be pre-selected as the variant.

Additional images answer further purchase questions

Use additional_image_link to submit up to ten images. Show further angles, details, packaging or applications there.

A sensible image sequence might look like this:

  • clear main image
  • side view
  • rear view
  • close-up detail
  • sense of scale
  • product in use
  • scope of delivery
  • packaging

With lifestyle_image_link, you submit lifestyle images separately from product images.

Google gives examples such as:

  • clothing on a model
  • furniture in a furnished room
  • several 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 furnished living room

Use the attribute to show the product in use alongside the plain main image.

For a sofa, the split could look like this:

Prices and availability must stay in sync

Wrong prices or missing availability after the click undermine your optimised feed.

The value in price must match the price on the product page. Match the currency to the target country and landing page.

For availability, Google supports, among others:

  • in_stock
  • out_of_stock
  • preorder
  • backorder

Align this value with your product page, checkout and structured data. For pre-orders or backorders, show the availability date on the product page too.

A temporarily unavailable product stays in the feed

Do not delete temporarily unavailable items straight from your data source.

Depending on the situation, you can:

  • use out_of_stock
  • pause the item using the relevant attribute
  • use backorder for items on backorder
  • use preorder for products not yet released

This keeps the mapping intact, so you can update the item once it is available again.

Repricing must update the shop, product page and feed at the same time

Dynamic pricing is often useful, but it increases the risk of price mismatches.

A repricing system must update every data layer alongside the shop price:

  • price in the shop system
  • price on the product page
  • structured data on the product page
  • Merchant Center data source
  • local price data, where applicable
  • CSS product data

Change the feed and the product page at the same time wherever possible, to avoid temporary price mismatches.

Structured data on the product page allows Google to update price and availability automatically. Even so, keep updating your product data yourself on a regular basis.

Repricing needs commercial limits

The lowest price is not automatically the most profitable one.

A sound system takes into account:

  • purchase price
  • margin
  • shipping costs
  • payment fees
  • return rate
  • advertising costs
  • minimum stock level
  • competitive level
  • desired market position

Set minimum prices and margin limits. Automatic price cuts do bring clicks, but they put your contribution margin at risk.

Bricks-and-mortar retailers need local stock information in addition to general product data.

You need to distinguish between:

  • the product itself
  • its availability at a specific store
  • a local price that may differ
  • collection and delivery options

Use your existing product data for local ads and free listings on Google too. Stock data can be reconciled automatically here.

For store-specific prices, the submitted data must exactly match the price shown on the relevant store page.

Stock and price differ between your stores

Product IDStoreStockPrice
CHAIR-100-BLUEBerlin-018£249
CHAIR-100-BLUEHamburg-020£249
CHAIR-100-BLUEMunich-033£259

Stock levels and prices for the same product can vary by location.

Use unique store IDs so that local data is mapped to the correct store without errors.

Five custom labels let you steer your range by business value

Add commercial metrics to your product data so you can steer your range deliberately by business value.

Google provides five custom labels for this:

  • custom_label_0
  • custom_label_1
  • custom_label_2
  • custom_label_3
  • custom_label_4

Values such as season, sales strength, price band, margin or launch stage help you group products in Shopping and Performance Max campaigns.

This mapping shows margin, sales strength and season at a glance

Custom labelMeaningExample values
custom_label_0Marginhigh, medium, low
custom_label_1Sales strengthbestseller, normal, slow mover
custom_label_2Stock levelcritical, normal, high
custom_label_3Seasonyear-round, summer, winter
custom_label_4Strategic rolefocus product, entry-level, accessory

This way you can quickly tell whether your campaign is mainly selling low-margin products.

A custom label is not a substitute for a second product ID

A custom label is not meant to be a second product ID.

Not very 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:

Form sensible groups that let you make clear decisions.

Range size and update frequency determine the right data source

Not every shop needs the same technical solution.

An automatically fetched file is enough for small, stable ranges

For small ranges with infrequent price changes, an automatically fetched file is usually enough.

Possible options include:

  • XML
  • TSV
  • an automated product data feed
  • direct shop integration

Above all, make sure data updates are reliable and on time.

Primary and supplemental sources combine product and business data

For larger ranges, it is best to combine a primary data source with supplemental ones.

The primary source contains, for example:

  • Product ID
  • Title
  • Price
  • Availability
  • Product link
  • Images
  • Margin classes
  • seasonal assignments
  • campaign labels
  • optimised titles
  • additional product attributes

A supplemental source provides:

In Merchant Center, a product can be assembled from a primary source and several supplemental data sources.

The Merchant API keeps large, dynamic ranges up to date

For frequent changes to prices, stock or the range, the Merchant API provides a stable foundation.

Manage primary and supplemental data sources through the Merchant API for different languages and feed labels.

If you update more than once a day, use the Products service instead of scheduled file fetches.

A practical breakdown therefore looks like this:

SituationSuitable solution
Small, stable product volumeautomatically fetched file
Additional margin or campaign datasupplemental data source
Frequent stock changesdirect API connection
Dynamic repricingAPI-based updates
Many countries and languagesstructured, centralised data architecture
Agency with many clientsstandardised API and validation processes

Localising product feeds for multiple countries

Always tailor international feeds individually to each target market.

The following can differ by target country:

  • Language
  • Currency
  • Price
  • VAT
  • Shipping costs
  • Availability
  • Size labels
  • Units of measurement
  • Product names
  • mandatory legal information
  • Product range

In the Merchant API, feedLabel, contentLanguage and target countries are independent of each other. Set target countries and shipping options separately.

Translate search behaviour, not just words

Literal translations often sound grammatically correct, but they can miss the commercial impact.

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 sizing standards

Create separate title rules for each language and adapt product titles to each market.

Five steps make every feed optimisation measurable

Adjust attributes step by step so you can measure the success of individual optimisations across your range precisely.

A controlled process works better.

Step 1: Form two comparable product groups

For example:

  • 200 products with optimised titles
  • 200 similar products with the previous titles
  • a product group with lifestyle images
  • a comparable product group without lifestyle images

Or:

Step 2: Document current performance

Record at least:

  • Impressions
  • Clicks
  • Click-through rate
  • Cost
  • Conversions
  • Conversion rate
  • Revenue
  • Cost-to-revenue ratio
  • Share of approved products

Step 3: Change only one factor at a time

Test titles, then images, and finally custom labels or product descriptions, one after another.

Step 4: Collect enough data for a reliable conclusion

Assess changes using larger product groups and account for seasonal effects. Two impressions per product are not enough for a reliable conclusion.

Step 5: Judge business value, not click-through rate

A new title might increase the click-through rate while attracting users who are less ready to buy.

So don't just ask:

Did the optimisation bring more clicks?

But also:

Did it bring more profitable orders or a higher contribution margin?

These are the most common errors in CSS product feeds

ErrorPossible consequenceBetter solution
Generic product titlesunclear matchingbuild in specific product attributes
Wrong or missing GTINweak product identificationcheck manufacturer data
One ID for all variantswrong version after the clicksubmit variants separately
Price mismatchrejection or poor user experiencesynchronise feed and shop
Outdated stock levelsclicks on unavailable productsupdate more frequently
Only one product imagetoo little purchase contextadd additional and lifestyle images
Category too genericimprecise classificationchoose the most specific matching category
Custom labels with no systemno meaningful analysisuse fixed definitions
Margins not factored inrevenue without profitabilityreflect margin in the feed
One feed for all languagesunnatural product titleslanguage-specific rules
Repricing only in the shopprice mismatchessynchronise all data sources
CSS as a substitute for feed qualitypotential goes unusedoptimise CSS and feed separately

A 30-day plan brings structure to your feed optimisation

Week 1: Check the technical health of your feed

Start with a stock-take:

  • How many products are approved?
  • Which errors occur most often?
  • Do price and availability match?
  • Are IDs stable?
  • Are variants correctly separated?
  • What share of GTINs are valid?
  • Which products have no images?

Prioritise fixing errors that stop products from being shown at all.

Week 2: Improve titles and identifiers

Select your 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 your key products, add:

  • high-resolution main images
  • alternative angles
  • close-up details
  • lifestyle images
  • product highlights
  • technical product details

Start with the products that get plenty of impressions but have a weak click-through or conversion rate.

Week 4: Build commercial control and automation

Define a custom label system and map:

  • Margin
  • Sales strength
  • Stock
  • Season
  • strategic priority

Match your update frequency to your range. Use an API where prices and stock are dynamic.

The CSS partner provides the infrastructure. Your data feed determines your success.

A good Comparison Shopping Service enables the CSS connection. The success of your range depends above all on high-quality product data.

First, make sure your products have unique identifiers, correct approvals, and up-to-date prices and stock levels.

Then come the measures that boost performance:

  • precise product titles
  • structured descriptions
  • correct GTINs
  • specific categories
  • compelling product images
  • lifestyle images
  • commercially minded custom labels
  • reliable automation

A strong product feed delivers the right information in the right attribute at the right time.

Look at your CSS connection, product data, prices and campaign logic together. That way, Google Shopping stays manageable even for large ranges.

Frequently asked questions about product feed optimisation for CSS

Does a CSS partner automatically optimise my product feed?

CSS connection and feed optimisation are separate services. Check the exact scope of service your provider offers.

Is lifestyle_image_link a mandatory attribute?

The attribute is optional. Use it for lifestyle or in-use images, such as clothing on a model or furniture in a furnished room.

Should I always use the maximum title length?

Write titles that are precise, clear and specific to the product. Google prefers exact details over filler words or pure promotional claims.

How often should I update my product feed?

Base the update frequency on your own stock and price changes. Use daily fetches for stable ranges, and an API or the Products service for frequent changes.

Do I always need a GTIN?

Only set identifier_exists to no if the product genuinely has no GTIN, MPN or brand.

Can I store margins directly in the feed?

Group your products into margin bands using a custom label. Google explicitly recommends custom labels for this kind of grouping.

Can the same product feed be used for several CSS partners?

Before switching or running providers in parallel, clarify accounts, data sources and approvals with your CSS providers. Keep the product information in Merchant Center consistent throughout.

What matters more: the product title or the product image?

The title describes the product and the image secures visual attention. Before optimising either element, check that the price, availability and product identification are correct.
Google CSS
£17/ month per domain
Get started
  • Free Google CSS migration
  • Full visibility in Google Shopping
  • 20% lower click prices
  • Visibility in free listings
  • 21 EU markets included
  • Premium email support
  • Cancel anytime