Hreflang foutloos implementeren voor meertalige webshops: x-default, return-tags, sitemaps vs head, platform-aanpak voor Magento en Shopify, en de vijf meest gemaakte fouten.
Hreflang implementatie — meertalige webshops correct instellen
70% van de hreflang-implementaties bevat fouten. Dat klinkt dramatisch, maar Google zelf geeft in zijn Search Console documentatie aan dat verkeerde hreflang-tags een van de meest voorkomende technische SEO-fouten zijn. Het gevolg: Nederlandse bezoekers landen op je Franstalige pagina, of Google toont je .be-variant aan iemand in Amsterdam. Conversieratio's zakken, bounce rates stijgen.
Voor webshops met meerdere talen of regio's is hreflang implementatie geen optionele afwerking. Het is de infrastructuur die bepaalt welke pagina Google aan wie toont.
Wat hreflang precies doet — en wat niet
Hreflang vertelt Google: "Deze pagina bestaat in meerdere talen of voor meerdere regio's, en dit zijn de varianten." Het is een signaal, geen harde instructie. Google kan het negeren. Maar als je het correct implementeert, verminder je content duplication-signalen en verbeter je de relevantie per markt aanzienlijk.
Wat hreflang NIET doet: het rangschikt je pagina niet hoger. Het stuurt bezoekers niet automatisch door op basis van locatie. En het vervangt geen correcte URL-structuur of kwalitatieve content per taal.
Wij zien bij klanten dat een correcte hreflang-implementatie gemiddeld 15-25% meer organisch verkeer oplevert op de niet-primaire taalversies, simpelweg omdat Google de juiste variant gaat serveren.
De anatomie van een correcte hreflang-tag
Een hreflang-tag heeft drie verplichte onderdelen: de tag zelf, de taal- of regio-code, en de absolute URL van de alternatieve pagina.
<link rel="alternate" hreflang="nl" href="https://www.voorbeeld.nl/product/" />
<link rel="alternate" hreflang="nl-BE" href="https://www.voorbeeld.be/product/" />
<link rel="alternate" hreflang="fr-BE" href="https://www.voorbeeld.be/fr/product/" />
<link rel="alternate" hreflang="x-default" href="https://www.voorbeeld.nl/product/" />
Elke pagina verwijst naar zichzelf én naar alle alternatieven. Dat is de return-tag-eis: als pagina A verwijst naar pagina B, moet pagina B ook terugverwijzen naar pagina A. Ontbreekt die return-tag, dan negeert Google de hele set.
Taal- en regio-codes correct gebruiken
Gebruik ISO 639-1 voor taal (nl, fr, de, en) en ISO 3166-1 alpha-2 voor regio (NL, BE, DE). Combinaties schrijf je als taal-REGIO: nl-BE, fr-BE, de-DE.
| Situatie | Correcte code | Fout |
|---|---|---|
| Nederlands voor Nederland | nl of nl-NL | dutch, NL |
| Nederlands voor België | nl-BE | nl-be, be-nl |
| Frans voor België | fr-BE | fr, BE-fr |
| Engels internationaal (fallback) | x-default | en-all, default |
| Duits voor Duitsland | de-DE | de, duits |
Regiocodes zijn altijd hoofdletters. Taalcodes zijn altijd kleine letters. Google is hier tolerant op syntax, maar crawlers en validatietools niet — en fouten stapelen zich op.
x-default: de meest vergeten tag
x-default is je fallback voor bezoekers die in geen enkele gedefinieerde taal- of regiocombinatie vallen. Een bezoeker uit Japan, een Google Bot zonder taalvoorkeur — ze landen op je x-default-variant.
Stel x-default in op je meest neutrale of commercieel sterkste variant: doorgaans de Engelse internationale versie, of voor Nederlandse shops de .nl-versie als je geen andere landen target.
Vergeet x-default, en Google heeft geen fallback. Dat leidt tot inconsistente siteweergave in zoekresultaten.
Implementatielocaties: vs sitemap
Je kunt hreflang op twee plekken implementeren: in de van elke pagina, of in je XML-sitemap. Beide zijn geldig. Toch zijn ze niet uitwisselbaar in de praktijk.
is de meest directe methode. Google ziet de tags bij elke crawl van de pagina. Nadeel: bij grote catalogi — denk aan 50.000+ SKU's in meerdere talen — word je HTML zwaar. Elke pagina draagt alle hreflang-tags mee.
In de sitemap schaal je beter. Eén sitemap-bestand beschrijft alle relaties. Geen overhead in de HTML. Maar: de sitemap moet volledig en actueel zijn. Een verouderde sitemap met hreflang-fouten is erger dan geen sitemap.
<url>
<loc>https://www.voorbeeld.nl/product/</loc>
<xhtml:link rel="alternate" hreflang="nl" href="https://www.voorbeeld.nl/product/" />
<xhtml:link rel="alternate" hreflang="nl-BE" href="https://www.voorbeeld.be/product/" />
<xhtml:link rel="alternate" hreflang="x-default" href="https://www.voorbeeld.nl/product/" />
</url>
Voor webshops met meer dan 10.000 URL's adviseren wij altijd de sitemap-aanpak. In de praktijk werken Magento en Shopify hier beide goed mee, maar de configuratie verschilt sterk.
Platform-specifieke aanpak
Magento 2 met store views
Magento werkt met store views per taal en/of regio. Elke store view heeft een eigen base URL. Hreflang-tags worden gegenereerd vanuit de store configuratie.
Standaard doet Magento dit niet automatisch correct. De meeste Magento-installaties missen x-default of genereren relatieve in plaats van absolute URLs.
Wat je nodig hebt:
- Een hreflang-extensie die store view-relaties automatisch doorvertaalt naar
-tags - Zorg dat alle store views een unieke, canonieke base URL hebben
- Schakel de sitemap-module in en configureer deze per store view
- Controleer via Search Console of de sitemaps correct worden geïndexeerd per property
Wij zien bij Magento klanten regelmatig dat de sitemap per store view wél wordt aangemaakt, maar dat de hreflang-tags in de sitemap niet cross-store verwijzen. Elke store view verwijst dan alleen naar zichzelf — wat het punt volledig mist.
De oplossing: configureer de hreflang-extensie zodat hij alle store views kent en de relaties schrijft vanuit één bronbestand.
Shopify Markets
Shopify Markets (de opvolger van losse taalklonen) beheert meertalige en multi-region shops via één admin. Hreflang-tags worden automatisch gegenereerd voor actieve markets.
Dat klinkt ideaal, maar er zijn kanttekeningen:
- Shopify gebruikt subfolders per markt (
/nl-be/,/fr-be/) binnen één domein, tenzij je een custom domain koppelt aan een market - Bij custom domains per market moet je de hreflang-tags handmatig valideren — Shopify genereert ze niet altijd correct cross-domain
- Producten die niet beschikbaar zijn in een bepaalde market worden soms toch gecrawld, wat losse URLs oplevert zonder return-tags
Voor Shopify Plus klanten: controleer bij elke market-toevoeging je hreflang-output via de bron of een validator. Shopify Markets is stabiel, maar niet foutloos.
De vijf meest gemaakte hreflang-fouten
1. Geen return-tagsDe meest voorkomende fout. Pagina A verwijst naar B, maar B verwijst niet terug naar A. Google negeert de hele tag-set.
2. Relatieve URLshref="/product/" in plaats van href="https://www.voorbeeld.nl/product/". Hreflang vereist absolute URLs. Altijd.
3. Inconsistente canonicals
Je canonical tag wijst naar URL A, je hreflang-tag naar URL B. Google weet niet welke hij moet volgen. De canonical wint, waardoor je hreflang-signaal verdwijnt.
4. x-default ontbreektBesproken hierboven. Behandel het als verplicht, niet optioneel.
5. Tags op 404- of redirect-pagina'sAls een hreflang-URL doorverwijst of een 404 teruggeeft, is de tag waardeloos. Na een replatforming of URL-structuurwijziging moeten hreflang-tags worden bijgewerkt vóór de go-live.
Validatie en monitoring
Implementeren is stap één. Valideren is stap twee die de meeste teams overslaan.
Tools die wij gebruiken:
- Google Search Console — Internationalisatie-rapport toont hreflang-fouten per property. Verplichte stap na elke implementatie.
- Screaming Frog — Crawlt hreflang-tags, detecteert ontbrekende return-tags en kapotte URLs in bulk.
- hreflang.org checker — Snelle spot-check per URL, handig voor isolated validation.
In de praktijk: stel Search Console in voor elke domeinvariant als aparte property. Dan zie je per markt of de hreflang-tags worden opgepikt. Een hreflang-fout in Search Console is altijd een actie-item, niet een waarschuwing die je kunt negeren.
Hreflang en URL-structuur: kies bewust
Voordat je hreflang implementeert, moet je URL-structuur vaststaan. Er zijn drie opties:
| Structuur | Voorbeeld | Voordelen | Nadelen |
|---|---|---|---|
| ccTLD | .nl, .be, .de | Sterkste geo-signaal | Duurder, meer beheer |
| Subdomain | nl.site.com | Flexibel, aparte crawl | Minder sterk dan ccTLD |
| Subfolder | site.com/nl/ | Eenvoudig, één domain authority | Geo-targeting via Search Console nodig |
Voor Benelux-shops zien wij het vaakst de combinatie voorbeeld.nl + voorbeeld.be (ccTLD) of voorbeeld.nl + voorbeeld.nl/fr/ (subfolder voor de Franstalige markt). Beide werken goed, mits hreflang consistent is geïmplementeerd.
Kies je voor ccTLD's: stel elk domein in als aparte Search Console property en voeg geo-targeting toe. Kies je voor subfolders: dat doe je via de Search Console-instelling op directory-niveau.
Hreflang en JavaScript-rendering: een valkuil
Steeds meer shops gebruiken een headless of hybride frontend. React, Vue, Next.js. Als je hreflang-tags worden gegenereerd via client-side JavaScript, heeft Google een probleem.
Google indexeert JavaScript-gerenderde content, maar trager en minder betrouwbaar dan server-side HTML. Hreflang-tags die pas verschijnen na JavaScript-executie worden mogelijk genegeerd of te laat opgepikt.
De regel is simpel: hreflang-tags moeten aanwezig zijn in de server-rendered HTML. Server-side rendering (SSR) of static site generation (SSG) is niet optioneel als je hreflang correct wilt implementeren in een JavaScript-frontend.
Voor onze eigen projecten met React + Express SSR geldt: hreflang-tags worden in de server response injecteerd, nog voor de browser JavaScript uitvoert. Geen uitzonderingen.
Bij headless Magento of headless Shopify-setups: controleer altijd via curl -A Googlebot of de tags zichtbaar zijn in de raw server response.
Wat kost een correcte implementatie?
Dat hangt af van je platform en catalogusgrootte. Een ruwe indicatie:
- Nieuwe Magento-installatie met hreflang vanaf dag één: 4-8 uur configuratie + extensie
- Bestaande Magento-shop retrofitten met hreflang: 8-20 uur, afhankelijk van store view-complexiteit
- Shopify Markets activeren met hreflang-validatie: 2-6 uur
- Maatwerk Laravel-webshop met dynamische hreflang via sitemap: reken op 8-16 uur ontwikkeling
Voor Laravel maatwerk geldt: bouw hreflang vanaf het begin in je route-structuur en sitemap-generator. Retrofitten is altijd duurder dan correct beginnen.
Veelgestelde vragen
Moet ik hreflang ook gebruiken als ik maar twee talen heb?
Ja. Zodra je twee of meer taalvarianten hebt van dezelfde pagina, heeft Google hreflang nodig om de juiste te serveren. Zonder hreflang kiest Google zelf — en dat is zelden wat jij wilt.
Werkt hreflang ook voor regionale prijsverschillen zonder andere taal?
Ja. Je kunt nl-NL en nl-BE gebruiken voor dezelfde taal, verschillende regio. Google gebruikt dan het geo-signaal om de juiste versie te tonen. Dit werkt ook voor EUR-prijzen vs. andere valuta.
Wat als mijn producten niet in alle talen beschikbaar zijn?
Maak geen hreflang-tag aan voor een combinatie die niet bestaat. Een hreflang-tag naar een pagina die een 404 of redirect teruggeeft is schadelijker dan geen tag. Filter je sitemap zodat alleen beschikbare URL-combinaties worden opgenomen.
Hoe snel verwerkt Google hreflang-wijzigingen?
Na een correcte implementatie duurt het doorgaans 2-6 weken voor Google de volledige set heeft gecrawld en verwerkt. Bij grote catalogi langer. Gebruik Search Console om te monitoren of de tags worden opgepikt — en verwacht geen onmiddellijk resultaat.
Hreflang goed instellen kost een dag werk. Verkeerd instellen kost je maanden aan misgelopen organisch verkeer in markten waar je al aanwezig bent. Heb je een meertalige webshop op Magento of Shopify en twijfel je aan je huidige implementatie? Neem contact op — we auditen je hreflang-setup en geven een concreet actieplan.

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