hreflang uitgelegd: onze opzet voor 12 talen en 5 fouten

Door SEOgrinder · Gepubliceerd · Bijgewerkt · 9 min leestijd

Kort antwoord: hreflang is een aanduiding in de broncode die Google vertelt welke pagina’s taal- of regioversies van dezelfde inhoud zijn, zodat Google Zoeken elke bezoeker de passende versie kan tonen. Elke versie moet zichzelf en alle andere noemen, en elk paar moet naar elkaar verwijzen, anders kunnen de aanduidingen worden genegeerd. Hieronder lees je hoe seogrinder.com hreflang voor twaalf talen instelt, gevolgd door vijf hreflang-fouten uit de documentatie van Google.

Wat doet hreflang en wanneer heb je het nodig?

Google legt het idee uit op de pagina Tell Google about localized versions of your page. Heb je meerdere versies van een pagina voor verschillende talen of regio’s en vertel je Google dat, dan helpt dat Google Zoeken volgens de documentatie om gebruikers naar de meest geschikte versie te sturen. De woorden van Google: “help Google Search point users to the most appropriate version of your page by language or region”.

Google noemt drie situaties waarin dit wordt aanbevolen:

  • De hoofdinhoud blijft in één taal en alleen het sjabloon, zoals de navigatie en de voettekst, is vertaald.
  • Je hebt kleine regionale verschillen in vergelijkbare inhoud in één taal, bijvoorbeeld Engels voor de VS, het Verenigd Koninkrijk en Ierland.
  • Je inhoud is volledig vertaald, bijvoorbeeld een Nederlandse en een Engelse versie van elke pagina.

Google kan alternatieve versies ook zelf vinden, maar raadt aan ze uitdrukkelijk aan te geven. Een vertaalde pagina is geen duplicaat: versies “are only considered duplicates if the main content of the page remains untranslated” (Google).

Twee dingen die hreflang niet is. Het is niet de manier waarop Google de taal van een pagina herkent: Google schrijft dat het “doesn't use hreflang or the HTML lang attribute to detect the language of a page” (Google). De pagina over meertalige websites vult aan dat Google daarvoor de zichtbare inhoud gebruikt. En het is geen belofte over rankings: Google noemt één doel, namelijk elke zoeker de bijpassende versie laten zien.

Zo koppelt seogrinder.com twaalf talen

Dit deel beschrijft de blog van seogrinder.com zoals wij die op 5 november 2026 aantroffen. De startpagina / heeft geen hreflang-tags. Elk artikel is een eigen pagina in één taal. Lees de tags zelf uit:

curl -sS https://seogrinder.com/nl/blog/seo-audit-checklist-uitvoeren | grep '<link rel="alternate" hreflang'

Dat levert 13 regels op, op alle twaalf versies van dit artikel dezelfde:

<link rel="alternate" hreflang="en" href="https://seogrinder.com/en/blog/seo-audit-checklist">
<link rel="alternate" hreflang="ar" href="https://seogrinder.com/ar/blog/qaimat-tadqiq-seo">
<link rel="alternate" hreflang="de" href="https://seogrinder.com/de/blog/seo-audit-checkliste">
<link rel="alternate" hreflang="es" href="https://seogrinder.com/es/blog/checklist-seo-auditoria">
<link rel="alternate" hreflang="fr" href="https://seogrinder.com/fr/blog/checklist-audit-seo-gratuite">
<link rel="alternate" hreflang="hi" href="https://seogrinder.com/hi/blog/seo-audit-checklist-hindi">
<link rel="alternate" hreflang="it" href="https://seogrinder.com/it/blog/checklist-audit-seo">
<link rel="alternate" hreflang="ja" href="https://seogrinder.com/ja/blog/seo-chekkurisuto">
<link rel="alternate" hreflang="ko" href="https://seogrinder.com/ko/blog/seo-chekeuliseuteu-jeomgeom">
<link rel="alternate" hreflang="nl" href="https://seogrinder.com/nl/blog/seo-audit-checklist-uitvoeren">
<link rel="alternate" hreflang="pl" href="https://seogrinder.com/pl/blog/checklista-seo-audyt">
<link rel="alternate" hreflang="pt" href="https://seogrinder.com/pt/blog/checklist-de-auditoria-seo">
<link rel="alternate" hreflang="x-default" href="https://seogrinder.com/en/blog/seo-audit-checklist">

Wat het blok laat zien:

  • Eén methode. De tags staan in de HTML-kop. Deze pagina’s sturen geen hreflang in een HTTP-header, en sitemap.xml bevat geen xhtml:link-vermeldingen. Google noemt de drie methoden gelijkwaardig en ziet geen voordeel in het gebruik van alle drie.
  • Gewone taalcodes. Twaalf codes, geen regio’s, omdat er van elke taal precies één versie van het artikel bestaat.
  • De pagina noemt zichzelf. Op de Nederlandse versie is de regel nl het eigen adres. Alle twaalf versies hebben dezelfde regels.
  • Eenvoudige tags. Ze staan in de <head>, elk als één <link> zonder extra attributen. Google vraagt om een nette kop en waarschuwt ertegen hreflang in één tag te combineren met attributen als media.
  • De canonical wijst naar zichzelf. Elke versie noemt het eigen adres als canonical, niet het Engelse. Dat past bij wat Google zegt: vertaalde versies zijn geen duplicaten.
  • Een eigen adres per taal, geen automatische omleiding. /nl/blog/seo-audit-checklist-uitvoeren heeft een Nederlandse slug. Google raadt aparte adressen per taal aan boven cookies of browserinstellingen en ontraadt het bezoekers door te sturen op grond van hun vermoedelijke taal. Een verzoek aan de Engelse pagina met Accept-Language: de geeft 200 en blijft daar (getest op 5 november 2026). Elk artikel heeft bovendien een taalmenu met gewone links naar de andere versies.

Zo is het gebouwd. Elk artikelbestand noemt zijn onderwerp in een regel group. De blogcode verzamelt alle bestanden met dezelfde group, drukt per lid één <link> af (eerst Engels, daarna op taalcode) en zet x-default op de Engelse versie. Een taal zonder bestand krijgt geen regel. Een onderwerp dat er alleen in het Engels en Duits is, heeft daarom drie regels: en, de en x-default. Google staat onvolledige verzamelingen toe: “you can omit some languages on some pages; Google will still process the ones that point to each other” (Google).

Zo hebben wij geteld. Deze lus leest alle artikeladressen uit de sitemap en telt op elke pagina de hreflang-regels:

for u in $(curl -sS https://seogrinder.com/sitemap.xml | grep -o 'https://seogrinder.com/[a-z][a-z]/blog/[^<]*'); do
  curl -sS "$u" | grep -c '<link rel="alternate" hreflang'
done | sort | uniq -c

Op 5 november 2026 kwam er 408 13 uit: 408 pagina’s met 13 regels (twaalf talen plus x-default). Een klein script haalde daarna dezelfde 408 pagina’s op en vergeleek de tags: elke pagina noemt zichzelf, elk genoemd adres antwoordt met 200 en noemt de pagina terug, en x-default is het Engelse adres. Onze blogcontrole (check:blog) test die regels voor elke artikelpagina telkens als we de blog wijzigen.

Waar dient x-default voor?

Google noemt x-default “recommended for specifying the fallback page for users whose language settings don't match any of your site's localized versions” (Google). Verplicht is het niet.

Google voegt toe dat elke pagina de waarde mag dragen, maar dat ze “was designed for language selector pages and so it will work best with those”. Een taalkeuzepagina voor artikelen hebben wij niet, dus onze terugvalpagina is de Engelse versie van hetzelfde artikel. Bij de overzichtspagina’s van de blog is dat /en/blog. Dat is onze keuze, geen regel.

Veelgemaakte fouten: 5 hreflang-fouten uit de documentatie van Google

De pagina van Google heeft een onderdeel “Common Mistakes” met drie vermeldingen, en de richtlijnen noemen twee andere eisen met “must”. Dat zijn de vijf hieronder. Google zegt niet hoe vaak elke fout voorkomt. Slechts bij twee noemt de pagina een gevolg: ontbrekende terugverwijzingen (de tags worden genegeerd) en gereserveerde regiocodes (dat deel wordt genegeerd). Bij de andere staat alleen de regel.

1. Ontbrekende terugverwijzingen

Noemt pagina X pagina Y, dan moet pagina Y pagina X noemen. De regel van Google: “If two pages don't both point to each other, the tags will be ignored” (Google). Google geeft de reden erbij: een andere website mag zichzelf niet zomaar als alternatieve versie van jouw pagina kunnen opgeven. Los het op door op elke versie hetzelfde blok links af te drukken, uit één gedeelde bron. Is een volledige verzameling lastig bij te houden, dan mag je volgens Google op sommige pagina’s talen weglaten. Nieuw toegevoegde talen moeten wel in beide richtingen linken met de oorspronkelijke of overheersende taal.

2. Een versie die zichzelf niet noemt

De richtlijn voor alle methoden: “Each language version must list itself as well as all other language versions” (Google). Voor de HTML-methode betekent dat: één link per versie, “including itself”, en op elke versie dezelfde verzameling. Wat er zonder verwijzing naar zichzelf gebeurt, zegt Google niet. Behandel het als een fout en voeg de regel toe.

3. Taalcodes die niet geldig zijn

Het eerste deel van de waarde is een taal in ISO 639-1-notatie, eventueel gevolgd door een regio. Google schrijft: “Specifying the region alone is not valid”. In het voorbeeld met België is be fout, omdat het de taalcode voor Wit-Russisch is. De juiste codes zijn de-BE, nl-BE en fr-BE. Codes die niet in die normen staan, zoals es-419, worden niet ondersteund (schriftcodes als zh-Hans zijn toegestaan). Hoofdletters of kleine letters maken niet uit, maar de regio schrijf je volgens de norm met hoofdletters.

4. Regiocodes die niet geldig zijn

De regio moet een officieel toegekende code volgens ISO 3166-1 alpha 2 zijn. Voor codes die voor iets anders gereserveerd zijn, geldt: “Google Search ignores that part of the annotation”. Google noemt EU, UN en UK als zonder effect. Voor het Verenigd Koninkrijk is de code GB, zoals in het eigen voorbeeld en-GB van Google.

5. Relatieve of onvolledige adressen

“Alternate URLs must be fully-qualified, including the transport method (http/https)” (Google). Het voorbeeld van Google: https://example.com/foo, niet //example.com/foo of /foo.

Zo controleer je hreflang

Met de hand: voer de curl-opdracht van hierboven uit op een van je pagina’s en kijk of de pagina zichzelf noemt. Haal daarna elk adres uit de uitvoer op en zoek de eerste pagina terug. Dat is de test op terugverwijzingen. Google noemt ook testtools van derden en zegt dat ze “are not maintained or checked by Google”.

Met SEOgrinder, ons eigen gereedschap dat we zelf bouwen: scan een pagina, open het tabblad “Pagina bij Google” en zoek de kaart “Talen (hreflang)”. Die controleert de codes, de verwijzing naar zichzelf, x-default, of de doelen antwoorden en of ze terugverwijzen. Is alles in orde, dan staat er één regel. Anders toont de kaart elke controle met zijn resultaat, en komen de problemen in de takenlijst.

FoutDit laat SEOgrinder zien (voorbeeldtekst)
1. Ontbrekende terugverwijzingen“2 doelen linken niet terug”
2. Geen verwijzing naar zichzelf“Pagina verwijst niet naar zichzelf”
3 en 4. Ongeldige codes“1 ongeldige taalcode” (taal en regio worden getoetst aan de normen die Google noemt)
5. Relatieve adressenGeen eigen regel: SEOgrinder zet een relatief adres om naar een volledig adres voordat het controleert, dus zoek deze fout in de broncode

Twee grenzen. SEOgrinder haalt hooguit tien doelen per pagina op. Bij onze pagina’s met 13 vermeldingen controleert het er tien en zegt dat ook (“10 van 13 vermeldingen opgehaald en gecontroleerd”). En het beoordeelt de pagina die je invoert. Voor een hele website loop je de adressen in een lus langs, zoals hierboven.

Veelgestelde vragen

Heb ik hreflang nodig als elke taal een eigen adres heeft?

Verplicht is het niet. Google kan versies ook zonder hreflang vinden, maar zegt dat het meestal het beste is ze uitdrukkelijk aan te geven.

Verbetert hreflang mijn ranking?

Dat beweert de pagina van Google niet. Ze noemt als doel gebruikers naar de meest geschikte versie te leiden, op basis van taal of regio. Een positie kan niemand beloven.

Welke van de drie methoden moet ik kiezen?

Voor Google zijn ze gelijkwaardig, en meerdere tegelijk geven geen voordeel. Volgens Google passen HTML-tags bij websites zonder sitemap of zonder mogelijkheid om HTTP-headers in te stellen, en de header bij bestanden zonder HTML, zoals pdf’s. Wij gebruiken de HTML-tags.

Je volgende stap

Voer de curl-opdracht uit op een van je pagina’s en controleer of ze zichzelf noemt en of een doel terugverwijst. Scan de pagina daarna met SEOgrinder, open “Pagina bij Google”, herstel de eerste regel in de kaart “Talen (hreflang)” die een probleem meldt en klik op Opnieuw controleren. Waar hreflang staat tussen acht groepen controles, laat onze SEO-audit checklist zien.

Lees ook

Meer uit de blog