Productfeed van Magento 2 naar Google Merchant Center optimaliseren: GTIN instellen, disapprovals voorkomen, custom labels gebruiken en de juiste feedtool kiezen.
Magento 2 + Google Merchant Center — feed optimalisatie
Van elke 10 Shopping-campagnes die wij binnenkrijgen, heeft er minimaal 6 een feedprobleem. Geen bug in Google Ads, geen slecht bod — gewoon een productfeed die Google niet kan vertrouwen. Disapprovals, ontbrekende GTIN's, generieke product_types. Het resultaat: producten die niet verschijnen, of verschijnen op de verkeerde zoekopdrachten. Feedoptimalisatie is daarom geen nichetaak voor een feed-specialist. Het is de basis van elke Magento 2 Google Shopping-strategie.
Waarom feedkwaliteit direct Shopping-conversie bepaalt
Google gebruikt je feed als ranking-signaal. Hoe volledig en correct je attributen zijn, hoe relevanter je vertoningen. Wij zien bij klanten dat het toevoegen van GTIN's alleen al kan leiden tot 20–40% meer vertoningen op branded zoektermen — zonder campagnewijziging.
Incomplete feeds leiden tot drie concrete problemen:
- Disapprovals — producten worden afgekeurd en verschijnen niet.
- Lage relevantiescore — Google matcht je producten op minder zoekopdrachten.
- Hogere CPC — minder concurrerende positie voor vergelijkbare zoekopdrachten.
Feed is content. En slechte content kost je geld.
De feed-attributen die ertoe doen
GTIN — niet optioneel
De Global Trade Item Number (GTIN) is het meest onderschatte attribuut. Google vereist GTIN voor alle producten met een fabrikants-barcode. Ontbreekt het? Dan krijg je een warning of disapproval, afhankelijk van de categorie.
In Magento 2 staat de GTIN doorgaans niet standaard in de productcatalogus. Je moet hem handmatig als custom attribute aanmaken:
<!-- Magento 2: custom attribute aanmaken via data patch -->
<attribute>
<attribute_code>gtin</attribute_code>
<frontend_input>text</frontend_input>
<label>GTIN</label>
<required>0</required>
<user_defined>1</user_defined>
<searchable>0</searchable>
<visible_on_front>0</visible_on_front>
<used_in_product_listing>1</used_in_product_listing>
</attribute>
Na aanmaken: importeer GTIN-waarden via een CSV-import of koppel ze aan je ERP/PIM. Zonder GTIN-data in Magento kan geen feedtool dit attribuut meegeven.
product_type — eigen hiërarchie, niet Googles taxonomie
Het attribuut product_type is niet hetzelfde als google_product_category. Product_type is jouw eigen categoriestructuur, zoals Kleding > Heren > T-shirts. Google gebruikt dit voor targeting en rapportage in campagnes.
Vul het in met de volledige Magento-categoriepad. In Channable of Producthero kun je dit dynamisch ophalen. Bij native Magento-export moet je dit handmatig mappen.
custom_labels — segmenteren voor slimme biedingen
Custom labels (0 t/m 4) zijn de meest ondergebruikte attributen in Shopping-feeds. Ze hebben geen invloed op vertoningen, maar wel op hoe je campagnes structureert.
Gebruik ze voor:
- Marge-segmentatie — hoge marge vs. lage marge producten apart bieden
- Seizoen — zomerproducten vs. winterproducten
- Voorraad — producten met lage voorraad uitsluiten of lager bieden
- Actie — sale-producten apart targeten
Stel: je verkoopt kleding met marges tussen 15% en 60%. Met custom_label_0 = marge_hoog versus marge_laag kun je in Google Ads aparte biedstrategieën per groep instellen. Zonder labels is dat niet mogelijk.
Overige kritische attributen
| Attribuut | Verplicht | Veelgemaakte fout |
|---|---|---|
id | Ja | Gebruik stable SKU, niet database ID |
title | Ja | Te kort, geen merk of variant |
description | Ja | HTML-tags in beschrijving niet gecleanst |
link | Ja | URL zonder canonical redirect |
image_link | Ja | Te kleine afbeelding (< 250x250px) |
availability | Ja | Niet gesynchroniseerd met voorraad |
price | Ja | Inclusief btw vergeten voor NL |
brand | Aanbevolen | Leeg of generiek ingevuld |
condition | Aanbevolen | Ontbreekt volledig |
shipping | Vereist per land | Foute verzendkosten leiden tot disapproval |
Disapprovals voorkomen: de meestgemaakte fouten
Prijsafwijking tussen feed en website
Google crawlt je productpagina's periodiek. Als de prijs in je feed afwijkt van de prijs op de pagina, krijg je een disapproval. Dit gebeurt vaak bij:
- Tijdelijke acties die wel in Magento worden doorgevoerd, maar niet in de feed
- Btw-problemen: feed stuurt excl. btw, website toont incl. btw
Oplossing: gebruik altijd de sale_price en sale_price_effective_date attributen bij kortingsperiodes. En controleer je btw-configuratie in Magento — voor Nederlandse klanten wil je incl. btw in de feed.
Afbeeldingskwaliteit
Google keurt producten af met:
- Afbeeldingen kleiner dan 250x250 pixels (kleding: 250x250, overige: 100x100 minimaal)
- Watermarks, promotionele tekst of prijzen in de afbeelding
- Placeholder-afbeeldingen
In Magento 2: check of alle producten een base image hebben. Gebruik een script of Magento CLI om producten zonder afbeelding te identificeren:
bin/magento catalog:images:resize
# Controleer daarna via database welke producten geen image_path hebben:
# SELECT sku FROM catalog_product_entity WHERE entity_id NOT IN (
# SELECT entity_id FROM catalog_product_entity_media_gallery_value
# WHERE position = 1
# );
Shipping-configuratie ontbreekt
Voor Nederland moet je in Merchant Center verzendkosten configureren — óf in Merchant Center zelf, óf via het shipping-attribuut in de feed. Ontbreekt dit, dan disapproval.
Feed-tooling: native export vs. Channable vs. Producthero
Dit is een vraag die klanten ons regelmatig stellen. Het antwoord hangt af van catalogusgrootte, campagnecomplexiteit en budget.
Native Magento-export
Magento heeft geen ingebouwde Google Shopping-feed. Je hebt een extensie nodig, of je bouwt zelf een feed-endpoint. Opties als Mageplaza Google Shopping Feed of Xtento bieden basisexport.
Wanneer geschikt: kleine catalogus (< 500 producten), simpele campagnestructuur, beperkt budget. Nadelen: beperkte transformatie-mogelijkheden, geen automatische optimalisatie, geen goede foutrapportage.Channable
Channable is een feed-management platform voor meerdere kanalen tegelijk: Google, Bing, Bol.com, Amazon. Je koppelt via een API of datafeed-export vanuit Magento.
Wanneer geschikt: je verkoopt op meerdere kanalen, je wil uitgebreide rules voor titels en attributen, je hebt een marketingteam dat zelf feeds beheert. Kosten: reken op €50–€200/maand afhankelijk van producten en kanalen. Niet goedkoop, maar de ROI is snel terug als je campagnes goed staan. Nadelen: extra schakel tussen Magento en Google. Bij complexe configurabele producten (met veel varianten) moet je de parent/child-logica goed instellen.Producthero
Producthero is specifiek voor Google Shopping. Het combineert feed-management met campagne-automatisering en is sterk in Nederland.
Wanneer geschikt: je focust volledig op Google Shopping en wil feed + biedstrategie in één platform beheren. Kosten: doorgaans een percentage van je ad spend of een vast bedrag, afhankelijk van abonnement. Vraag altijd een proefperiode aan voordat je committeert. Nadelen: vendor lock-in. Je campagnestructuur raakt verweven met hun tooling. Overstappen kost tijd.Vergelijkingstabel
| Criterium | Native extensie | Channable | Producthero |
|---|---|---|---|
| Kosten | Eenmalig €100–400 | €50–200/mnd | % ad spend of vast |
| Multi-channel | Nee | Ja | Nee (Google-focus) |
| Feed-transformatie | Beperkt | Uitgebreid | Uitgebreid |
| Campagne-automatisering | Nee | Beperkt | Ja |
| Technische setup | Gemiddeld | Laag | Laag |
| Geschikt voor | Klein / eenvoudig | Meerdere kanalen | Google-only focus |
Feed-kwaliteit en Shopping-conversie: het verband
Feedoptimalisatie is geen set-and-forget. Google evalueert feeds continu. Een paar vuistregels uit de praktijk:
Titels zijn het belangrijkste veld. Google matcht zoektermen primair op de titel. Zet merk, productnaam en relevante variant (kleur, maat, materiaal) vooraan. "Blauwe Levi's 501 Jeans Heren W32 L32" presteert beter dan "Jeans heren blauw". Descriptions beïnvloeden long-tail matching. Schrijf descriptions die zoektermen bevatten die klanten gebruiken — niet de marketingtekst van je leverancier. Voorraadbeheer realtime. Een feed die twee keer per dag ververst, toont Google producten die out-of-stock zijn. Disapprovals volgen. Bij grotere catalogi: stel een Content API-koppeling in zodat voorraadwijzigingen direct worden doorgevoerd.Wij zien bij klanten met een geoptimaliseerde feed (GTIN aanwezig, goede titels, custom labels ingesteld) doorgaans een 15–35% lagere CPC dan voor de optimalisatie, bij gelijkblijvend of hoger conversiepercentage. Dat is het verschil tussen een winstgevende en een break-even campagne.
Magento 2 en de Content API
Voor serieuze shops is de Google Content API de volgende stap na feed-optimalisatie. In plaats van een dagelijkse feed-upload, push je wijzigingen direct naar Merchant Center via de API.
In Magento 2 kun je dit via een custom module of via Channable/Producthero regelen. Een directe integratie vereist:
- Service account aanmaken in Google Cloud Console
- Content API inschakelen
- Magento Observer of Cron-job die productupdates triggert
// Voorbeeld: Google Content API call vanuit Magento 2 (vereenvoudigd)
use Google\Service\ShoppingContent;
$client = new \Google_Client();
$client->setAuthConfig('/path/to/service-account.json');
$client->addScope(ShoppingContent::CONTENT);
$service = new ShoppingContent($client);
$product = new \Google_Service_ShoppingContent_Product();
$product->setOfferId($sku);
$product->setTitle($title);
$product->setGtin($gtin);
$service->products->insert($merchantId, $product);
Voor shops met dagelijkse voorraadmutaties is de Content API de enige manier om disapprovals door prijsafwijkingen structureel te voorkomen.
Wanneer is feedoptimalisatie NIET de oplossing?
Eerlijkheid: niet elk probleem in Shopping zit in de feed.
- Slechte producten — als je product geen toegevoegde waarde heeft ten opzichte van grotere spelers, helpt een betere feed je nauwelijks.
- Te klein budget — Google Shopping vereist voldoende data voor Smart Bidding. Bij budgetten onder €500/mnd kom je niet snel genoeg in een leerfase.
- Technische problemen op de website — trage checkout, gebroken mobiele UX, slechte productpagina's. Feed lost dit niet op.
Wil je een Magento webshop laten bouwen of bestaande shop doorontwikkelen, dan pakken wij altijd de feedkwaliteit mee als onderdeel van de technische review. Niet als apart traject, maar als integraal onderdeel van de e-commerce oplossing.
Veelgestelde vragen
Hoe vaak moet ik mijn productfeed verversen?
Google raadt minimaal één keer per dag aan. Bij shops met veel voorraadmutaties of dagelijkse prijswijzigingen is realtime synchronisatie via de Content API beter. Een verouderde feed leidt tot disapprovals bij prijsafwijkingen.
Wat doe ik als mijn producten geen GTIN hebben?
Voor eigen producten zonder fabrikants-barcode kun je identifier_exists op no zetten in je feed. Google accepteert dit, maar je verliest wel de voordelen van GTIN-matching. Voor merkproducten zijn GTIN's verplicht — haal ze op bij je leverancier of EAN-database.
Is Channable beter dan een native Magento-feedextensie?
Dat hangt af van je situatie. Voor een shop met één kanaal, weinig producten en een stabiele catalogus is een native extensie prima. Channable loont pas bij meerdere kanalen, complexe transformaties of een team dat zelf de feed wil beheren. De extra maandelijkse kosten zijn snel terugverdiend als campagnes goed staan.
Kan ik mijn bestaande Magento-feed direct laten controleren?
Ja. Upload je feed in Google Merchant Center en bekijk de diagnostics-tab. Daar zie je exact welke producten disapproved zijn en waarom. Wil je een grondige feedaudit laten uitvoeren, neem dan contact op — wij bekijken de feed en Merchant Center-diagnostics samen met je door.

Geschreven door Ruthger Idema
15+ jaar ervaring in e-commerce development. Gespecialiseerd in Magento, Shopify en Laravel maatwerk.
Meer over ons team →