Google Shopping: Product Feed Optimization to Boost Sales
> cd .. / HUB_EDITORIALE
Marketing digitale

Google Shopping: Product Feed Optimization to Boost Sales

[2026-07-15] Author: Ing. Calogero Bono
> share
Zenithby Meteora Web The operating system for your business. Social, clients, bookings and invoices in one platform. Gyms, barbers, professionals. Discover Zenith Free demo · no card

You run an e‑commerce store and invest in Google Shopping, but impressions are low and ROAS is flat? Nine times out of ten, the problem is the product feed. At Meteora Web, we see it every day: great products, poor feed. The fixes are often small but the impact huge. This guide covers how Google Shopping feeds work, the most common mistakes, and how to optimize for the Italian market — from code to strategy.

How does the Google Shopping product feed work?

Google Shopping isn't like text ads. You don't pick keywords — your feed decides when and where your products appear. The feed is a file (XML, CSV, TSV) containing all product data: title, description, price, availability, images, GTIN, MPN, brand, etc. Google matches this feed against the user's search query. If the feed is incomplete or has errors, products won't show — or worse, get disapproved.

We've been working with Google Shopping since the Froogle days. The core structure hasn't changed: send a data file, Google processes it and uses it for Shopping ads. What has changed is competition: without optimization, you stay invisible.

Sponsored Protocol

Required and recommended attributes

Google requires: ID, title, description, product link, image link, price, availability, brand, GTIN, condition. For Italy, GTIN is crucial: if your products have barcodes, include them. Otherwise, disapproval risk is high. Brand must be present, even for unbranded items – use a placeholder.

Feed format

You can generate a feed from your e‑commerce platform (WooCommerce, Shopify, Magento). WooCommerce plugins like Google Listings & Ads sync automatically, but often miss GTIN or variant attributes. We build custom feeds for clients using WooCommerce filters. Example to add GTIN from SKU:

add_filter( 'woocommerce_gpf_gtin', 'add_gtin_from_sku', 10, 2 );
function add_gtin_from_sku( $gtin, $product_id ) {
    $product = wc_get_product( $product_id );
    if ( $product && $product->get_sku() ) {
        return $product->get_sku();
    }
    return $gtin;
}

Works if SKU matches GTIN – otherwise map via custom meta.

What are the most common feed errors and how to avoid them?

After years of consulting, we've identified 5 critical errors that ruin Shopping campaigns. Number one: price mismatch. If the feed price differs from the website, Google disapproves the product until fixed. Same for availability: mark “in stock” but product is out of stock? Immediate suspension.

Sponsored Protocol

Low‑quality images

Google requires minimum 100x100 pixels, but to compete you need at least 800x800. We had a clothing e‑commerce client with 250x250 images; after switching to 1200x1200 professional photos, CTR jumped 40%. If you don't have professional shots, use white background and no heavy watermarks.

Unoptimized titles and descriptions

Product titles must include keywords. Our format: [Brand] + [Model] + [Type] + [Attributes] – [Condition]. Example: “Nike Air Max 270 Men Running Shoes White – New”. Avoid all caps and abbreviations. Descriptions must be unique – no copy‑paste. Describe features and benefits for the user.

Missing GTIN, MPN, or brand

Especially for barcoded products (electronics, apparel, food), GTIN is mandatory. If you don't have codes, get UPC/EAN from suppliers. Otherwise use MPN (manufacturer part number). Brand cannot be empty.

Sponsored Protocol

How to optimize the feed to improve ROAS?

Optimization means adding attributes Google uses to better match products. Here are the highest‑impact moves.

Use product attributes for targeting

For the Italian market, add shipping with cost and delivery times. Set tax (VAT included in price) and installment if you offer installments. Richer feeds get rewarded. Also add product_type to categorize (e.g. “Clothing > Shoes > Running”).

Segment by performance

Use custom labels (custom_label_0 to custom_label_3) to tag products by margin, seasonality, best‑sellers. Then in Google Ads, create separate campaigns per label. For example, “high_margin” with higher bids. Populate labels via feed using a custom WooCommerce field.

Real‑time updates

Feed must update whenever price, availability, or image changes. WooCommerce with Google Listings & Ads does this automatically. For static feeds (manually uploaded CSV), you risk suspension. We set up a cron job exporting the feed every 30 minutes: wget -O /var/www/feed.xml "https://yoursite.com/wp-json/woocommerce-gpf/v1/feed". Then configure Merchant Center to fetch it every 2 hours.

Sponsored Protocol

What attributes are essential for the Italian market?

Italy is not the US. Users search in Italian, want prices with VAT included, and clear shipping info. Set feed language to Italian and target country to Italy. Prices in EUR with VAT. For clothing, specify gender and age_group. For food or cosmetics, check additional requirement like color, size, pattern. We managed a shoe store feed: adding size and color per variant quadrupled impressions.

How to automatically update the feed with WordPress and WooCommerce?

If you use WooCommerce, Google Listings & Ads is the easiest: install, connect Merchant Center, and feed auto‑syncs. For customization (exclude products, add labels), use a custom feed. We build PHP exports that query the database and output CSV. Example snippet:

$products = wc_get_products( array( 'limit' => -1 ) );
$output = fopen( 'php://output', 'w' );
fputcsv( $output, array( 'id', 'title', 'price', 'gtin', 'custom_label_0' ) );
foreach ( $products as $product ) {
    $gtin = get_post_meta( $product->get_id(), 'gtin_field', true ) ?: $product->get_sku();
    $label = $product->is_on_sale() ? 'on_sale' : 'full_price';
    fputcsv( $output, array( $product->get_id(), $product->get_name(), $product->get_price(), $gtin, $label ) );
}
fclose( $output );

Optimize with batch processing for catalogs over 10,000 products. Run via WP‑CLI or cron.

Sponsored Protocol

What to do now

Stop reading and start acting:

  1. Check Merchant Center. Go to Diagnostics, fix all errors and warnings, especially disapproved items.
  2. Add missing GTIN and brand. Contact suppliers if needed.
  3. Optimize titles and images. Write descriptive titles with keywords. Upload images ≥800x800, clean background.
  4. Set custom labels. Segment by margin, season, or best‑seller.
  5. Monitor ROAS. If a product gets many impressions but few clicks, try changing the title or image.

Google Shopping is won on the feed. We see it every day. For the whole picture of paid campaigns, read our Google Ads & PPC pillar guide. For specific feed issues, contact us – we always start with data.

> share
Ing. Calogero Bono

> AUTHOR_EXTRACTED

Ing. Calogero Bono

Ingegnere informatico, fondatore di Meteora Web e Zenith OS. System administrator e progettista di piattaforme, app e CMS proprietari, con esperienza in sviluppo full-stack, marketing digitale ed ecosistema Google.
[ Read Full Dossier ]

> METEORA_WEB // DIGITAL AGENCY

We build the digital presence your business deserves.

Websites, social media, online advertising, e-commerce and high-performance hosting, engineered with method by computer engineers in Sciacca, for all of Italy.

> MW_JOURNAL

> READ_ALL()