
Feed Google Merchant multi-paese su PrestaShop
Diagnosi e fix di un feed Google Merchant fermo all'Italia: feed per-paese, header troncato, item_id sbagliato in cache e 6.750 prodotti ripuliti per Shopping.
Lo shop vendeva all’estero senza problemi sui marketplace, ma su Google Shopping Francia, Spagna, Germania e Irlanda erano ferme a zero prodotti. Il sospetto ovvio era “mancano le traduzioni” - e invece titoli e descrizioni erano tradotti al 99,6%. Il vero blocco era una riga di configurazione: il feed Google Merchant veniva generato solo per l’Italia, e per giunta troncato a 3 prodotti.
⚠️ Il problema: un feed tronco e mercati esteri a zero
La fotografia dal Merchant Center era impietosa. Per l’Italia il feed strutturato esportava 3 prodotti. Tre, su un catalogo da migliaia. Il resto Google se lo raccoglieva crawlando le pagine quando aveva tempo, senza un feed che glielo servisse pulito e ordinato: dati parziali, aggiornati a singhiozzo, in balìa del crawl budget. Francia, Spagna, Germania e Irlanda erano a 0 prodotti attivi.
Non mancavano prodotti né traduzioni: le lingue erano installate e i cataloghi tradotti. Il modulo che generava il feed era configurato per un solo locale (it_IT) e per giunta emetteva un feed troncato. Per Google, di fatto, un feed strutturato non esisteva - né per l’Italia né per l’estero.
Il risultato: campagne Shopping impossibili da attivare fuori dall’Italia, e in Italia prodotti in vetrina solo grazie alla buona volontà del crawler.
La diagnosi: isolare la variabile sui dati live
Prima di toccare la configurazione ho verificato sul database live quali fossero le lingue attive, la percentuale di traduzione per ogni locale e lo stato del feed per paese sul Merchant. Il metodo è isolare la variabile: il feed per-paese non esisteva perché non richiesto in configurazione, non perché mancassero i dati.
Le traduzioni erano al 99,6%: non erano loro il collo di bottiglia. Rincorrere i contenuti avrebbe fatto perdere settimane sul problema sbagliato.
✅ La soluzione: tre problemi in fila
a. Generare i feed per-paese
Aggiunti i locale mancanti (fr_FR, de_DE, es_ES, en_IE) e rigenerazione via cron. Risultato: 5 feed pieni (IT/FR/DE/ES/IE), tutti serviti in HTTP 200.
b. Il feed tedesco letto come CSV
Google rifiutava il feed DE con errori strani: “nome attributo non valido”, “colonna di intestazione vuota”, “troppi delimitatori”. La causa non era nei dati: il feed tedesco era troncato all’inizio, gli mancava l’header XML (<?xml>, <rss>, <channel>). Senza header, Google lo interpretava come CSV e falliva il parsing. Il modulo perdeva l’header sul primo locale del batch.
Il fix è un repair-pass idempotente nel cron: a fine generazione, se un feed non inizia con <?xml, l’header viene ripristinato da un feed integro. Si auto-ripara a ogni esecuzione, anche dopo un update del modulo.
c. item_id sbagliato per lingua (colpa della cache)
Con la full-page cache attiva, le pagine /fr/, /de/ venivano servite senza aggiornare il cookie della lingua: il tracking generava sempre un item_id italiano anche per gli utenti esteri, disallineando il remarketing dal feed. Fix: risoluzione della lingua a cascata (parametro esplicito, poi prefisso lingua nell’URL, poi contesto, poi fallback IT), verificata su tutte le lingue.
🛠️ La sitemap: spezzata per lingua, nuove pagine prima
Il feed alimenta Shopping; la sitemap alimenta l’indice organico - e anche quella era, di fatto, non generata. L’ho ricostruita spezzata in file piccoli e divisa per lingua (una sitemap per locale, raccolte in un sitemap-index), con le pagine nuove ordinate prima delle vecchie. Così Google scansiona per primo ciò che è appena entrato, invece di sprecare crawl budget a ripassare l’archivio. Su un catalogo multilingua che cresce è la differenza tra vedere i prodotti nuovi indicizzati in giorni o in settimane.
🛠️ L’ottimizzazione del catalogo: 6.750 prodotti ripuliti
Feed e sitemap portano i prodotti davanti a Google; poi serve che Google li approvi e li mostri. Merchant Center nasconde o disapprova i prodotti con overlay promozionali sulle immagini (badge “sconto”, cornici, watermark che coprono il prodotto), parole equivoche nei titoli e testo promozionale infilato nelle descrizioni (“spedizione gratis”, “offerta”, call-to-action).
Ho passato al setaccio 6.750 prodotti, in automatico: rimossi gli overlay che impedivano a Google di vedere davvero il prodotto, ripulite le parole ambigue, filtrato il promozionale dalle descrizioni. Un catalogo che rispetta le regole viene approvato di più e finisce in vetrina più spesso - il contrario di un feed pieno di prodotti che Google scarta a uno a uno. È lo stesso principio dell’automazione dei processi in una PMI: il lavoro ripetitivo su migliaia di righe non si fa a mano.
Il contorno che fa la differenza nel cross-border
Aprire i feed non basta: Google sospende l’account se i dati non sono coerenti col negozio.
- Spedizione estero: impostata nel Merchant come tabella per fasce d’ordine, identica a quella del checkout. Un mismatch tra feed e sito porta alla sospensione.
- Tempi di consegna: presi dal dato reale (mediana delle transizioni di stato ordine in PrestaShop) e impostati conservativi - Italia e estero Europa hanno tempi diversi, dichiararli male costa affidabilità.
- Attributi apparel (color, size, age_group, gender): dedotti per i capi da lavoro; per i prodotti su ordinazione,
backorderconavailability_date.
Il risultato: cinque feed Google Merchant multilingua
Da 3 prodotti nel feed italiano a cinque feed pieni (IT/FR/DE/ES/IE), circa 6.750 item validi per lingua, XML corretto e serviti in HTTP 200. Mercati esteri finalmente configurabili su Shopping, catalogo ripulito e approvato, sitemap per lingua che porta le pagine nuove in indice, tracking allineato al feed lingua per lingua. Da un canale export fermo a un’infrastruttura misurabile su cinque paesi.
Merchant Center a lavoro finito: le norme di spedizione Italia ed Estero (Francia, Germania e altri quattro paesi) completate e coerenti con il checkout.
La lezione
Il feed è il vero prodotto SEO e ADS dell’export: non le traduzioni, ma configurazione per-paese, coerenza di spedizione e tempi, e un item_id per lingua che regga la cache. È anche un vantaggio competitivo: nel settore, quasi nessun concorrente presidiava davvero l’estero su Shopping.
Vale per ogni canale, non solo per Google: sui marketplace il problema si ripresenta identico, e su ManoMano l’ho risolto separando il feed offerte dall’export del catalogo.
Vuoi aprire i mercati esteri su Google Shopping?
Configuro feed multi-paese, Merchant Center e tracking per il tuo PrestaShop, con la coerenza che evita le sospensioni: fa parte del mio lavoro su assistenza e ottimizzazione PrestaShop. Scrivimi da uno dei canali qui sotto e vediamo da quali mercati partire.
❓ Domande frequenti
Basta tradurre il sito per vendere su Google Shopping all'estero?
Perché Google rifiuta il mio feed con errori di colonne o delimitatori?
Il tracking manda l'item_id sbagliato con la cache attiva: come si risolve?
Perché Google Merchant disapprova o non mostra i miei prodotti?
Hai un progetto in testa?
Raccontami cosa ti serve o cosa non funziona. Rispondo entro 24 ore, senza preventivi a scatola chiusa.