Wat zijn HTML lang en hreflang-attributen en hoe stel je die in?

Wat is de taal van een webpagina? Google en andere zoekmachines kunnen dit vaak achterhalen door te kijken naar het topleveldomein (bijv. .nl of .de) of de content op de pagina. Toch kun je zoekmachines een handje helpen door een HTML lang-attribuut bovenin de broncode van een pagina te plakken én een hreflang-attribuut in de header te zetten.

 

Zo plaats je een HTML lang-attribuut

HTML lang is een HTML-attribuut dat aangeeft in welke taal een webpagina is. Ook geeft het attribuut soms aan welke geografische regio getarget wordt. Het is handig als je website dezelfde pagina in meerdere talen heeft, zodat zoekmachines de juiste versie kunnen tonen op basis van de locatie of voorkeurstaal van de gebruiker.

Iedere website opent met een HTML-tag, bijvoorbeeld:

<html>

Wil je een lang-attribuut toevoegen, dan pas je deze HTML-tag aan. In het Nederlands wordt het dan:

<html lang=”nl-NL”>

Hiermee geef je aan dat de content van de pagina in het Nederlands is én dat jij je richt op Nederlanders. Is jouw pagina bedoeld voor Vlaamse bezoekers, dan pas je de HTML lang als volgt aan:

<html lang=”nl-BE”>

Wil jij je niet richten op Vlaanderen of Nederland, maar juist op het volledig Nederlandstalig taalgebied? Dan kun je beter de volgende attribuut gebruiken:

<html lang=”nl”>

Let op: je kunt slechts één HTML lang-tag per pagina gebruiken.

Zo plaats je een hreflang-attribuut

Heb je een Nederlandse én een Vlaamse website en wil je voorkomen dat zoekmachines beide websites indexeren? Dan kan het zinvol zijn om meerdere hreflang-attributen te plaatsen. Een hreflang-attribuut plaats je tussen de <head>-tags in de broncode en ziet er zo uit:

<link rel=”alternate” href=”https://www.jouwsite.nl/” hreflang=”nl-NL”>

Zo heeft Coolblue webshops in meerdere landen. Op iedere pagina staan daarom meerdere hreflang-tags om zoekmachines te informeren welke versies zijn moeten indexeren. Hreflang-attributen volgen dezelfde volgorde als HTML lang-tags: eerst de taalcode, dan de landcode.

Zie hieronder hoe Coolblue dit oplost op de homepage:

<link rel=”alternate” href=”https://www.coolblue.nl/” hreflang=”nl-NL”>
<link rel=”alternate” href=”https://www.coolblue.nl/en” hreflang=”en-NL”>
<link rel=”alternate” href=”https://www.coolblue.be/nl” hreflang=”nl-BE”>
<link rel=”alternate” href=”https://www.coolblue.be/fr” hreflang=”fr-BE”>
<link rel=”alternate” href=”https://www.coolblue.be/en” hreflang=”en-BE”>
<link rel=”alternate” href=”https://www.coolblue.de/” hreflang=”de-DE”>
<link rel=”alternate” href=”https://www.coolblue.de/en” hreflang=”en-DE”>

Op de productpagina van de Nintendo Switch gebruikt Coolblue de volgende hreflang-attributen:

<link rel=”alternate” href=”https://www.coolblue.nl/product/886498/nintendo-switch-oled-blauw-rood.html” hreflang=”nl-nl”>
<link rel=”alternate” href=”https://www.coolblue.nl/en/product/886498/nintendo-switch-oled-blue-red.html” hreflang=”en-nl”>
<link rel=”alternate” href=”https://www.coolblue.be/nl/product/886498/nintendo-switch-oled-blauw-rood.html” hreflang=”nl-be”>
<link rel=”alternate” href=”https://www.coolblue.be/fr/produit/886498/nintendo-switch-oled-bleu-rouge.html” hreflang=”fr-be”>
<link rel=”alternate” href=”https://www.coolblue.be/en/product/886498/nintendo-switch-oled-blue-red.html” hreflang=”en-be”>
<link rel=”alternate” href=”https://www.coolblue.de/produkt/886498/nintendo-switch-oled-blau-rot.html” hreflang=”de-de”>
<link rel=”alternate” href=”https://www.coolblue.de/en/product/886498/nintendo-switch-oled-blue-red.html” hreflang=”en-de”>

Heb je een website in één taal? Dan plaats je maar één hreflang-attribuut. Bied je jouw content in meerdere talen en/of landen aan? Dan plaats je meerdere hreflang-attributen op één pagina. Gebruik het hreflang-attribuut van de huidige pagina en van alle alternatieve pagina’s.

Waarom is het goed om HTML lang en hreflang-attributen te gebruiken?

Het heeft allerlei voordelen om HTML lang en hreflang-attributen in de broncode van je webpagina’s te plakken:

  • Het helpt zoekmachines de juiste taal van de webpagina te begrijpen. Dit verbetert de kwaliteit van de zoekresultaten, omdat zoekmachines resultaten kunnen tonen op basis van de taalvoorkeuren van de gebruiker. Toch zien we dat zoekmachines vaker kijken naar de hreflang-attributen dan naar de HTML lang-tags.
  • Browserextensies en andere software, zoals vertaalhulpmiddelen, kunnen de lang-attributen gebruiken om informatie in de juiste taal weer te geven.
  • Met lang-tags kun je de opmaak van de inhoud per taal variëren. Zo kun je bijvoorbeeld een specifiek lettertype instellen voor een bepaalde taal. Daarnaast kunnen gebruikersagents automatisch lettertypen selecteren op basis van de taal van het document.
  • Schermlezers, spraaksynthesizers en braillevertalers gebruiken het lang-attribuut om uitvoer te genereren op basis van de tekst. In landen zoals het Verenigd Koninkrijk wordt het gebruik van correcte lang-tags afgedwongen volgens de W3C-richtlijnen voor webtoegankelijkheid.

Wat zijn alle HTML lang en hreflang-taalcodes en regiocodes?

Hieronder een overzicht van alle taalcodes en regiocodes. Je begint de HTML lang of hreflang met een taalcode. Dan volgt een middenstreepje. De regiocode plaats je erachter.

Ik begin met twee voorbeelden van HTML lang en hreflang-attributen voor een Canadese website in twee talen. De site https://mijndomein.ca richt zich op Canadse bezoekers die Frans spreken. De site https://mijndomein.ca/en richt zich op Canadese bezoekers die Engels spreken.

De HTML lang en hreflang-attributen op https://mijndomein.ca zijn:

<html lang=”fr-CA”>
<head>
<link rel=”alternate” href=”https://mijndomein.ca” hreflang=”fr-CA”>
<link rel=”alternate” href=”https://mijndomein.ca/en” hreflang=”en-CA”>

</head>
<body>
</body>
</html>

De HTML lang en hreflang-attributen op https://mijndomein.ca/en zijn:

<html lang=”en-CA”>
<head>
<link rel=”alternate” href=”https://mijndomein.ca/en” hreflang=”en-CA”>
<link rel=”alternate” href=”https://mijndomein.ca” hreflang=”fr-CA”>

</head>
<body>
</body>
</html>

Volgens mij is het principe duidelijk, toch? Dan gaan we snel door naar alle taalcodes en regiocodes!

Alle hreflang-taalcodes

Taal
Taalcode
Abchazisch
ab
Afrikaans
af
Albanees
sq
Arabisch
ar
Aragonees
an
Armeens
hy
Assamees
as
Azerbeidzjaans
az
Baskisch
eu
Bengaals
bn
Birmees
my
Bosnisch
bs
Bretons
br
Bulgaars
bg
Catalaans / Valenciaans
ca
Chinees (vereenvoudigd)
zh-hans
Cornisch
kw
Corsicaans
co
Deens
da
Duits
de
Engels
en
Esperanto
eo
Estisch
et
Faeröers
fo
Fijisch
fj
Fins
fi
Frans
fr
Gaelisch / Schots-Gaelisch
gd
Galicisch
gl
Georgisch
ka
Grieks
el
Haïtiaans; Haïtiaans Creools
ht
Hebreeuws
he
Hindi
hi
Hongaars
hu
IJslands
is
Iers
ga
Indonesisch
id
Italiaans
it
Japans
ja
Javaans
jv
Jiddisch
yi
Kerkslavisch
cu
Kirgizisch
ky
Koerdisch
ku
Kongo
kg
Koreaans
ko
Kroatisch
hr
Latijn
la
Lets
lv
Limburgs
li
Lingala
ln
Litouws
lt
Luxemburgs; Letzeburgs
lb
Macedonisch
mk
Malagassisch
mg
Maleis
ms
Maltees
mt
Manx
gv
Moldavisch
mo
Mongools
mn
Nederlands
nl
Nepalees
ne
Noord-Samisch
se
Noors
no
Noors (Bokmål)
nb
Noors (Nynorsk)
nn
Occitaans (na 1500); Provençaals
oc
Oekraïens
uk
Oezbeeks
uz
Perzisch
fa
Pools
pl
Portugees
pt
Reto-Romaans
rm
Roemeens
ro
Russisch
ru
Sardinisch
sc
Servisch
sr
Sloveens
sl
Slowaaks
sk
Somalisch
so
Spaans / Castiliaans
es
Swahili
sw
Tahitiaans
ty
Thais
th
Tibetaans
bo
Tsjechisch
cs
Tsjetsjeens
ce
Turkmeens
tk
Turks
tr
Urdu
ur
Vietnamees
vi
Volapük
vo
Welsh
cy
West-Fries
fy
Wit-Russisch
be
Zweeds
sv

Alle hreflang-regiocodes

Land
Landcode
Afghanistan
AF
Åland
AX
Albanië
AL
Algerije
DZ
Amerikaans-Samoa
AS
Andorra
AD
Angola
AO
Anguilla
AI
Antarctica
AQ
Antigua en Barbuda
AG
Argentinië
AR
Armenië
AM
Aruba
AW
Australië
AU
Azerbeidzjan
AZ
Bahama’s
BS
Bahrein
BH
Bangladesh
BD
Barbados
BB
België
BE
Belize
BZ
Benin
BJ
Bermuda
BM
Bhutan
BT
Bolivië
BO
Bonaire, Sint Eustatius en Saba
BQ
Bosnië en Herzegovina
BA
Botswana
BW
Bouvet
BV
Brazilië
BR
Brits Territorium in de Indische Oceaan
IO
Brunei Darussalam
BN
Bulgarije
BG
Burkina Faso
BF
Burundi
BI
Cambodja
KH
Canada
CA
Centraal-Afrikaanse Republiek
CF
Chili
CL
China
CN
Christmaseiland
CX
Cocoseilanden
CC
Colombia
CO
Comoren
KM
Congo
CG
Congo
CD
Cookeilanden
CK
Costa Rica
CR
Cuba
CU
Curaçao
CW
Cyprus
CY
Denemarken
DK
Djibouti
DJ
Dominica
DM
Dominicaanse Republiek
DO
Duitsland
DE
Ecuador
EC
Egypte
EG
El Salvador
SV
Equatoriaal-Guinea
GQ
Eritrea
ER
Estland
EE
Eswatini
SZ
Ethiopië
ET
Faeröer
FO
Falklandeilanden (Malvinas)
FK
Fiji
FJ
Filipijnen
PH
Finland
FI
Frankrijk
FR
Frans-Guyana
GF
Frans-Polynesië
PF
Franse Zuidelijke Gebieden
TF
Gabon
GA
Gambia
GM
Georgië
GE
Ghana
GH
Gibraltar
GI
Grenada
GD
Griekenland
GR
Groenland
GL
Guadeloupe
GP
Guam
GU
Guatemala
GT
Guernsey
GG
Guinee
GN
Guinee-Bissau
GW
Guyana
GY
Haïti
HT
Heard en McDonaldeilanden
HM
Honduras
HN
Hongarije
HU
Hongkong
HK
Ierland
IE
IJsland
IS
India
IN
Indonesië
ID
Irak
IQ
Iran
IR
Isle of Man
IM
Israël
IL
Italië
IT
Ivoorkust
CI
Jamaica
JM
Japan
JP
Jemen
YE
Jersey
JE
Jordanië
JO
Kaaimaneilanden
KY
Kaapverdië
CV
Kameroen
CM
Kazachstan
KZ
Kenia
KE
Kirgizië
KG
Kiribati
KI
Kleine afgelegen eilanden van de Verenigde Staten
UM
Koeweit
KW
Kroatië
HR
Lao
LA
Lesotho
LS
Letland
LV
Libanon
LB
Liberia
LR
Libië
LY
Liechtenstein
LI
Litouwen
LT
Luxemburg
LU
Maagdeneilanden (Brits)
VG
Maagdeneilanden (VS)
VI
Macao
MO
Madagaskar
MG
Malawi
MW
Maldiven
MV
Maleisië
MY
Mali
ML
Malta
MT
Marokko
MA
Marshalleilanden
MH
Martinique
MQ
Mauritanië
MR
Mauritius
MU
Mayotte
YT
Mexico
MX
Micronesië
FM
Moldavië
MD
Monaco
MC
Mongolië
MN
Montenegro
ME
Montserrat
MS
Mozambique
MZ
Myanmar
MM
Namibië
NA
Nauru
NR
Nederland
NL
Nepal
NP
Nicaragua
NI
Nieuw-Caledonië
NC
Nieuw-Zeeland
NZ
Niger
NE
Nigeria
NG
Niue
NU
Noord-Korea
KP
Noord-Macedonië
MK
Noordelijke Marianen
MP
Noorwegen
NO
Norfolk
NF
Oeganda
UG
Oekraïne
UA
Oezbekistan
UZ
Oman
OM
Oost-Timor
TL
Oostenrijk
AT
Pakistan
PK
Palau
PW
Palestina
PS
Panama
PA
Papoea-Nieuw-Guinea
PG
Paraguay
PY
Peru
PE
Pitcairn
PN
Polen
PL
Portugal
PT
Puerto Rico
PR
Qatar
QA
Réunion
RE
Roemenië
RO
Rusland
RU
Rwanda
RW
Saint Kitts en Nevis
KN
Saint Lucia
LC
Saint Vincent en de Grenadines
VC
Saint-Barthélemy
BL
Saint-Martin (Frans deel)
MF
Saint-Pierre en Miquelon
PM
Salomonseilanden
SB
Samoa
WS
San Marino
SM
Sao Tomé en Principe
ST
Saoedi-Arabië
SA
Senegal
SN
Servië
RS
Seychellen
SC
Sierra Leone
SL
Singapore
SG
Sint Maarten (Nederlands deel)
SX
Sint-Helena, Ascension en Tristan da Cunha
SH
Slovenië
SI
Slowakije
SK
Soedan
SD
Somalië
SO
Spanje
ES
Spitsbergen en Jan Mayen
SJ
Sri Lanka
LK
Suriname
SR
Syrië
SY
Tadzjikistan
TJ
Taiwan
TW
Tanzania
TZ
Thailand
TH
Togo
TG
Tokelau
TK
Tonga
TO
Trinidad en Tobago
TT
Tsjaad
TD
Tsjechië
CZ
Tunesië
TN
Turkije
TR
Turkmenistan
TM
Turks- en Caicoseilanden
TC
Tuvalu
TV
Uruguay
UY
Vanuatu
VU
Vaticaanstad
VA
Venezuela
VE
Verenigd Koninkrijk
GB
Verenigde Arabische Emiraten
AE
Verenigde Staten
US
Vietnam
VN
Wallis en Futuna
WF
Westelijke Sahara
EH
Wit-Rusland
BY
Zambia
ZM
Zimbabwe
ZW
Zuid-Afrika
ZA
Zuid-Georgia en de Zuidelijke Sandwicheilanden
GS
Zuid-Korea
KR
Zuid-Soedan
SS
Zweden
SE
Zwitserland
CH

Dit artikel is geschreven door:

Tim Kraaijvanger
Tim Kraaijvanger
Tim is performance marketeer met een focus op AI. Hij is mede-eigenaar van Stormachtig en heeft meer dan 15 jaar ervaring in de online marketing. De afgelopen jaren hielp hij 500+ organisaties met online marketing. Hij schrijft regelmatig over SEO, SEA, website-optimalisatie, WordPress en AI.

Gratis SEO / GEO audit?

Ben je benieuwd welke kansen er zijn op het gebied van SEO en GEO (AI-tools)? We scannen graag jouw domein en komen met een kosteloze analyse.

Mag het bij jou stormen?

Online marketing voor een vast bedrag per maand. Flexibeler én goedkoper dan een eigen marketeer in dienst. Wist je dat Stormachtig tot de beste 3% online marketingbureaus van Nederland behoort (TrustPilot, 2026)?

De wind mee

We helpen je met één marketingkanaal, zoals adverteren via Google Ads, vindbaarheid verbeteren in zoekmachines en AI-tools, e-mailmarketing of social media. Je krijgt een eigen online marketeer als aanspreekpunt, die pro-actief voor jou aan de slag gaat.
€ 180 p/mnd
  • Focus op één marketingkanaal naar keuze
  • Altijd pro-actief advies (wij vertellen je eerlijk wat wel en niet werkt)
  • Een online marketeer als vast aanspreekpunt
  • Maandelijks opzegbaar (omdat we geloven in resultaat, niet in wurgcontracten)

Westenwind

We helpen je met twee marketingkanalen, zoals een combinatie van Google Ads en gratis beter zichtbaar worden in Google en AI-tools. Of een combinatie van social media en SEO. Jij bepaalt welke kanalen je graag inzet, maar we adviseren je graag. Je krijgt een vast aanspreekpunt.
€ 350 p/mnd
  • Verdubbel je bereik met twee marketingkanalen
  • Altijd pro-actief advies (wij vertellen je eerlijk wat wel en niet werkt)
  • Een online marketeer als vast aanspreekpunt
  • Maandelijks opzegbaar (omdat we geloven in resultaat, niet in wurgcontracten)

Orkaankracht

We worden jouw externe online marketing team en gaan aan de slag met drie marketingkanalen, bijvoorbeeld een combinatie van Google Ads, AI-vindbaarheid en sociale media. Deze spreiding levert de beste resultaten op. Je krijgt een senior online marketeer als aanspreekpunt en kiezen een ambitieuze doelstelling.
€ 495 p/mnd
  • Maximale impact met drie marketingkanalen
  • Altijd pro-actief advies (wij vertellen je eerlijk wat wel en niet werkt)
  • Een senior online marketeer als vast aanspreekpunt
  • Maandelijks opzegbaar (omdat we geloven in resultaat, niet in wurgcontracten)

Laat het stormen!

Vrijblijvend kennismaken? Laten we direct een datum en tijd prikken!