Shopify Markets en SEO: hreflang, domeinen en vertalingen
Terug naar blog

Shopify Markets en SEO: hreflang, domeinen en vertalingen

8 min leestijd

Shopify Markets regelt hreflang automatisch, maar alleen als elke markt een eigen URL heeft: een eigen domein, een subdomein of een submap zoals /nl-be/. Zonder eigen URL per markt ziet Google maar één versie van je shop.

Shopify Markets regelt hreflang automatisch, maar alleen als elke markt een eigen URL heeft: een eigen domein, een subdomein of een submap zoals /nl-be/. Zonder eigen URL per markt ziet Google maar één versie van je shop. De belangrijkste SEO-keuzes zitten dus in de domeinstructuur, de vertalingen en het uitzetten van automatische redirects. Daarna moet je controleren wat Shopify werkelijk in de HTML zet.

Wat Shopify Markets doet

Met Shopify Markets beheer je vanuit één store meerdere landen of regio's. Per markt stel je in:

  • Welke landen erbij horen.
  • Welke talen beschikbaar zijn.
  • Welke valuta en prijzen gelden.
  • Welk domein, subdomein of welke submap de markt gebruikt.

Voor SEO is dat laatste het belangrijkste. Een markt zonder eigen URL toont dezelfde URL aan iedereen, met alleen een andere valuta op basis van locatie. Google crawlt vooral vanuit de Verenigde Staten en ziet dan één versie. Je Belgische of Duitse markt bestaat voor Google dan niet als aparte pagina.

Meer over de commerciële kant van Markets staat in Shopify Markets: internationaal verkopen. Dit artikel gaat over de SEO-kant.

De drie domeinopties

Je kiest per markt hoe de URL eruitziet.

OptieVoorbeeldVoor SEO
Submapvoorbeeldshop.nl/nl-be/Alle autoriteit op één domein, eenvoudig beheer
Subdomeinbe.voorbeeldshop.nlWerkt, maar wordt vaker als aparte site behandeld
Eigen domein (ccTLD)voorbeeldshop.beSterk landsignaal, maar autoriteit moet per domein worden opgebouwd

Voor de meeste Nederlandse webshops die naar België en eventueel Duitsland uitbreiden, is de submap de verstandigste keuze. Alle links en signalen komen op één domein binnen. Een eigen .be- of .de-domein heeft vooral zin als je lokaal merk al op dat domein bestaat of als klanten in dat land sterk op lokale domeinen vertrouwen.

De afweging tussen deze vormen staat uitgebreider bij het begrip subdomein vs submap.

Shopify bouwt submappen op als taal plus land, bijvoorbeeld:

voorbeeldshop.nl/          → Nederland, Nederlands (primair)
voorbeeldshop.nl/nl-be/    → België, Nederlands
voorbeeldshop.nl/fr-be/    → België, Frans
voorbeeldshop.nl/de-de/    → Duitsland, Duits

Hoe Shopify hreflang genereert

Zodra markten een eigen domein of submap hebben, voegt Shopify zelf hreflang-tags toe in de <head> van elke pagina. Dat gebeurt via content_for_header in je thema, dus je hoeft het niet zelf in Liquid te bouwen.

Een productpagina krijgt dan iets als:

html
<link rel="alternate" hreflang="nl-NL" href="https://voorbeeldshop.nl/products/x300">
<link rel="alternate" hreflang="nl-BE" href="https://voorbeeldshop.nl/nl-be/products/x300">
<link rel="alternate" hreflang="fr-BE" href="https://voorbeeldshop.nl/fr-be/products/x300">
<link rel="alternate" hreflang="de-DE" href="https://voorbeeldshop.nl/de-de/products/x300">
<link rel="alternate" hreflang="x-default" href="https://voorbeeldshop.nl/products/x300">

Elke versie verwijst naar alle andere versies en naar zichzelf. Shopify zet daarbij ook een x-default, meestal naar de primaire markt.

Wat je moet controleren:

  • Staan de tags er echt? Bekijk de paginabron, niet de DOM in je browser. Een oud of zwaar aangepast thema kan content_for_header op een ongebruikelijke plek hebben of een app die de head herschrijft.
  • Dubbele hreflang. Heb je ooit een hreflang-app of eigen Liquid-code toegevoegd, dan staan er nu twee sets. Verwijder de handmatige set.
  • Canonical per versie. Elke marktversie moet een zelfverwijzende canonical hebben. /nl-be/products/x300 canonicaliseert naar zichzelf, niet naar de Nederlandse versie. Shopify doet dat standaard goed, maar thema-aanpassingen kunnen het breken.
bash
curl -s https://voorbeeldshop.nl/nl-be/products/x300 | grep -E 'hreflang|rel="canonical"'

Vertalingen: wat Shopify wel en niet vertaalt

Een markt met een andere taal heeft vertaalde content nodig. Anders staat er onder /de-de/ gewoon Nederlandse tekst met Duitse hreflang. Dat is voor Google een tegenstrijdig signaal en voor bezoekers onbruikbaar.

Vertalen doe je met de Translate & Adapt-app van Shopify of met een vertaalapp van derden. Let op deze onderdelen:

URL-handles. Je kunt per taal een vertaalde handle instellen. /de-de/products/laufschuh-x300 in plaats van /de-de/products/hardloopschoen-x300. Dat is beter voor bezoekers en geeft een relevant woord in de URL. De vaste prefixen /products/, /collections/, /pages/ en /blogs/ blijven Engels; die kun je niet aanpassen. SEO-titels en meta descriptions. Worden per resource apart vertaald. Vergeet je die, dan toont Google in Duitsland een Nederlandse title. Metafields en metaobjects. Specificaties en andere content in metafields moet je apart vertalen. Bij veel apps zit die content buiten de standaard vertaalflow. Thema-teksten. Knoppen, labels en meldingen in het thema vertaal je via de taalbestanden of de app. Alt-teksten. Van productafbeeldingen, voor Google Afbeeldingen in het doelland.

Over machinevertaling: automatisch vertalen is toegestaan, zolang het resultaat behulpzaam is voor de lezer. Google waarschuwt wel tegen grootschalige ongecontroleerde vertalingen met als doel zoekverkeer. Laat in elk geval de belangrijkste categorie- en productpagina's door iemand nalezen die de taal spreekt.

Nederland en België: dezelfde taal, toch twee markten

De meest voorkomende situatie voor Nederlandse webshops: een Belgische markt in het Nederlands. De teksten zijn grotendeels hetzelfde. Is dat duplicate content?

Nee, mits hreflang klopt. Google begrijpt dat nl-NL en nl-BE dezelfde taal zijn voor verschillende landen. Met correcte hreflang toont Google in België de Belgische versie.

Maak de versies wel echt Belgisch waar het ertoe doet:

  • Verzendkosten en levertijd voor België.
  • Betaalmethoden: Bancontact in plaats van of naast iDEAL.
  • Prijzen inclusief de juiste btw als je die per land differentieert.
  • Woordkeuze waar Belgisch-Nederlands echt anders is.
  • Retourvoorwaarden en contactgegevens.

Zet niet per ongeluk een canonical van de Belgische naar de Nederlandse versie. Dan verdwijnt de Belgische versie uit de index en ondermijn je de hreflang.

Automatische redirects: uitzetten

Shopify en veel apps kunnen bezoekers automatisch doorsturen naar de markt die bij hun IP-adres past. Voor SEO is dat een risico. Googlebot crawlt vooral vanaf Amerikaanse IP-adressen. Stuur je die automatisch door naar je primaire of Amerikaanse markt, dan ziet Google je andere versies mogelijk niet.

Google adviseert zelf om bezoekers niet geforceerd door te sturen op basis van locatie, maar een melding te tonen. De betere aanpak:

  • Geen automatische redirect. Iedereen komt op de URL waar hij op klikte.
  • Een melding of banner: "Het lijkt erop dat je in België bent. Naar de Belgische shop?"
  • Een landkiezer in de header of footer, met gewone links naar de andere marktversies.

Shopify's eigen geolocatie-app werkt met zo'n melding in plaats van een harde redirect. Controleer bij apps van derden hoe ze het doen.

Sitemaps per markt

Shopify genereert een sitemap.xml voor de primaire markt. Voor marktversies op submappen of eigen domeinen zijn er aparte sitemaps per taal en land. Dien de sitemaps in Search Console in voor elke versie die je wilt laten indexeren. Bij eigen domeinen per markt voeg je elk domein als aparte property toe.

Controleer daarna in het Pagina's-rapport of de marktversies worden geïndexeerd. Zie je /nl-be/-URL's massaal als "Duplicaat, Google heeft een andere canonieke versie gekozen", dan klopt de hreflang of de differentiatie tussen de versies niet.

Prijzen en valuta in de structured data

Elke marktversie toont zijn eigen prijs en valuta. Dat moet ook in de Product-markup terugkomen. Op /de-de/products/x300 hoort de Offer de prijs en priceCurrency van de Duitse markt te bevatten, niet de Nederlandse prijs uit de primaire markt.

De meeste moderne thema's bouwen de JSON-LD op met de prijs van de actieve markt. Oudere thema's of losse schema-apps gebruiken soms een vaste prijs of valuta. Controleer het per markt in de paginabron en met de Rich Results Test.

Hetzelfde geldt voor je productfeed. Wil je in meerdere landen in Google Shopping of de gratis productvermeldingen verschijnen, dan lever je per land de juiste prijs, valuta en landingspagina aan. De landingspagina in de feed moet naar de marktversie wijzen, zodat de prijs op de pagina gelijk is aan die in de feed.

Shopify Markets of aparte stores?

Sommige merchants draaien per land een aparte Shopify-store, vaak met Shopify Plus. Voor SEO heeft dat een nadeel: Shopify koppelt aparte stores niet automatisch met hreflang. Dat moet je zelf bouwen, bijvoorbeeld met een mapping van productidentificaties tussen stores en een eigen snippet die de juiste URL's per store in de head zet.

Aparte stores hebben zin als het assortiment, de voorraad of de operatie per land echt verschilt. Gaat het alleen om taal, valuta en een paar prijsverschillen, dan is Markets voor SEO de eenvoudigere route. Wanneer Plus extra mogelijkheden biedt, staat op onze pagina over Shopify Plus.

Checklist voor een Shopify-shop met meerdere markten

  1. Elke markt heeft een eigen submap, subdomein of domein.
  2. Hreflang staat in de paginabron, één set, voor alle markten, inclusief x-default.
  3. Elke versie heeft een zelfverwijzende canonical.
  4. Vertalingen dekken titles, meta descriptions, handles, metafields, thema-teksten en alt-teksten.
  5. Geen automatische redirect op basis van IP, wel een melding en een landkiezer.
  6. Sitemaps per versie ingediend in Search Console.
  7. Marktspecifieke informatie (verzending, betaalmethoden, retour) per land correct.
  8. Interne links binnen een markt blijven binnen die markt. Een link in /nl-be/ naar /collections/sale zonder prefix stuurt de bezoeker naar de Nederlandse versie.

Dat laatste punt ontstaat vaak door hardcoded links in het thema of in menu's. Gebruik in Liquid de routes-objecten en relatieve links via de juiste locale, zodat Shopify de prefix zelf toevoegt.

Wil je een hreflang-set voor een ander platform of voor aparte stores opbouwen, gebruik dan onze hreflang generator. De bredere aanpak voor meertalige shops staat op onze pagina over internationale SEO, en de Shopify-specifieke beperkingen op Shopify SEO.

Veelgestelde vragen

Voegt Shopify Markets automatisch hreflang toe?

Ja, zodra je markten een eigen domein, subdomein of submap hebben. Shopify plaatst de tags via content_for_header. Zonder eigen URL per markt wordt er geen bruikbare hreflang gegenereerd, omdat alle markten dezelfde URL delen.

Is een submap of een eigen domein beter voor SEO?

Voor de meeste webshops een submap. Alle autoriteit blijft op één domein. Een eigen landendomein geeft een sterker lokaal signaal, maar je moet de autoriteit per domein apart opbouwen.

Is een Nederlandse en Belgische versie met dezelfde tekst duplicate content?

Niet als hreflang correct is ingesteld met nl-NL en nl-BE. Google toont dan per land de juiste versie. Zorg wel dat landspecifieke informatie zoals verzending en betaalmethoden klopt.

Kan ik de URL-prefixen /products/ en /collections/ vertalen?

Nee. Die prefixen zijn vast in Shopify. De handle na de prefix kun je per taal wel vertalen, zoals /de-de/products/laufschuh-x300.

Moet ik automatische redirects naar het juiste land aanzetten?

Liever niet. Googlebot crawlt vooral vanaf Amerikaanse IP-adressen en kan door een automatische redirect je andere marktversies missen. Toon een melding met een suggestie en een landkiezer.

Ruthger Idema

Geschreven door Ruthger Idema

15+ jaar ervaring in e-commerce development. Gespecialiseerd in Magento, Shopify en Laravel maatwerk.

Meer over ons team →
Deel dit artikel:

Wil je jouw e-commerce naar het volgende niveau?

Plan een vrijblijvend gesprek met onze experts over Magento, Shopify of Laravel maatwerk.

Plan een Tech Check