Definitie
OfferShippingDetails is structured data voor verzendkosten en levertijd van een product, per land. Google kan het tonen in merchant listings, naast prijs en retourbeleid.
Wat is OfferShippingDetails?
OfferShippingDetails is een Schema.org-type dat je via de property shippingDetails aan een Offer hangt. Het beschrijft wat verzending kost (shippingRate), naar welk land of gebied (shippingDestination) en hoe lang het duurt (deliveryTime).
De levertijd bestaat uit twee delen. handlingTime is de tijd tot het pakket het magazijn uit gaat. transitTime is de tijd die de vervoerder nodig heeft. Beide geef je op als minimum en maximum in dagen.
Inmiddels ondersteunt Google ook een verzendbeleid op organisatieniveau: een ShippingService via hasShippingService op je Organization. Dat is handig als bijna al je producten hetzelfde beleid hebben. OfferShippingDetails op productniveau gebruik je dan voor de uitzonderingen.
Voor meerdere landen of tarieven geef je meerdere OfferShippingDetails op, één per bestemming of tariefgroep. Met doesNotShip markeer je landen waar je niet naartoe verstuurt. Een bestemming kan een heel land zijn of een deel daarvan, bijvoorbeeld via postcodes.
Waarom het ertoe doet voor webshops
Verzendkosten zijn een van de grootste redenen om af te haken in de checkout. Wie ze al in het zoekresultaat ziet, klikt met minder verrassingen door. Google kan verzendinformatie tonen in merchant listings, het type resultaat in Shopping, Google Afbeeldingen en productpanelen.
De rekenstap: gratis verzending boven een drempel is een concurrentievoordeel, maar alleen als het zichtbaar is waar de vergelijking plaatsvindt. Zonder markup of Merchant Center-instelling weet Google het niet.
Let op de rangorde. Google gebruikt verzendinstellingen uit Merchant Center of Search Console vóór je markup, en productmarkup vóór markup op organisatieniveau. Heb je in Merchant Center al alles goed ingesteld, dan voegt de markup weinig toe. Heb je geen Merchant Center, dan is markup je belangrijkste bron.
Verzendinformatie en retourbeleid horen bij elkaar. Een shop die beide correct aanlevert via MerchantReturnPolicy en shippingDetails, geeft Google en de klant het complete plaatje: wat kost het, wanneer is het er en wat als het niet past. Dat zijn precies de vragen die iemand stelt voordat hij afrekent.
Magento, Shopify en Laravel
Magento 2 en Luma schrijven geen verzendinformatie uit in structured data. Je bouwt het zelf in de product-template, bij voorkeur op basis van dezelfde configuratie als je verzendmethoden, zodat een tariefwijziging niet op twee plekken hoeft. Tablerates met staffels per bedrag of gewicht zijn lastig volledig in markup te vatten; dan is Merchant Center de betere plek.
Shopify-thema's laten shippingDetails meestal weg. Een Shopify-shop met het Google-kanaal koppelt verzendinstellingen vaak al via Merchant Center. Controleer of die kloppen met je werkelijke tarieven per markt.
In Laravel genereer je de markup uit je eigen verzendtabel. Hetzelfde principe: één bron voor checkout, feed en markup.
Veelgemaakte fouten
Een shippingDestination ontbreekt, waardoor Google niet weet voor welk land het tarief geldt. Alleen NL opgeven terwijl je ook naar België verzendt. Een levertijd van 1 dag in de markup terwijl de checkout 2 tot 4 werkdagen belooft. En verzendkosten die verschillen tussen markup, feed en checkout. Die drie moeten hetzelfde zeggen.
Controleer na implementatie het rapport Verkopersvermeldingen in Search Console en de Rich Results Test. Kijk niet alleen naar fouten, maar ook naar waarschuwingen over ontbrekende velden. Een waarschuwing betekent dat de markup geldig is, maar dat Google minder kan tonen dan mogelijk.
Wijzig je tarieven, bijvoorbeeld rond de feestdagen of na een nieuw contract met een vervoerder, zet dat dan op dezelfde dag in checkout, feed en markup door. Een tarief dat in de zoekresultaten lager is dan in de checkout, kost vertrouwen en kan in Merchant Center tot afkeuringen leiden.
Gratis verzending naar NL, 1-2 dagen levertijd
"offers": {
"@type": "Offer",
"price": "129.95",
"priceCurrency": "EUR",
"shippingDetails": {
"@type": "OfferShippingDetails",
"shippingRate": { "@type": "MonetaryAmount", "value": "0", "currency": "EUR" },
"shippingDestination": { "@type": "DefinedRegion", "addressCountry": "NL" },
"deliveryTime": {
"@type": "ShippingDeliveryTime",
"handlingTime": { "@type": "QuantitativeValue", "minValue": 0, "maxValue": 1, "unitCode": "DAY" },
"transitTime": { "@type": "QuantitativeValue", "minValue": 1, "maxValue": 1, "unitCode": "DAY" }
}
}
}Verder lezen
Veelgestelde vragen
Moet ik verzendkosten per product in de markup zetten?+
Alleen als ze per product verschillen. Een standaardbeleid kun je op organisatieniveau of in Merchant Center vastleggen.
Wat wint als markup en Merchant Center verschillen?+
Google geeft voorrang aan de instellingen in Merchant Center of Search Console. Zorg vooral dat ze niet tegenstrijdig zijn.
