Ga naar inhoud
28 september 2026

Hreflang in je XML-sitemap zetten in plaats van in de code van elke pagina

Hreflang kan ook in je XML-sitemap staan in plaats van in de head. Zo ziet de code eruit, wanneer dat handiger is en hoe je controleert of alles klopt.

Hreflang kun je op drie plekken zetten, in de head van elke pagina, in de HTTP-header of in je XML-sitemap. Voor Google zijn die drie gelijkwaardig, dus je kiest de plek die voor jouw website het handigst is. Weet je nog niet precies wat hreflang is, lees dan eerst het begrip in de kennisbank.

De sitemap is handig als je veel pagina’s hebt, of als je niet makkelijk bij de head van je pagina’s kunt. Voor bestanden zonder HTML, zoals pdf’s, noemt Google de HTTP-header als handige route.

Zo ziet hreflang in een sitemap eruit

In je XML-sitemap staat normaal per pagina een <url> met een <loc>. Voor hreflang voeg je daar per taalversie een xhtml:link-regel aan toe. Hier zie je een bakker met een Nederlandse en een Engelse taartenpagina.

<?xml version="1.0" encoding="UTF-8"?>
<urlset xmlns="http://www.sitemaps.org/schemas/sitemap/0.9"
        xmlns:xhtml="http://www.w3.org/1999/xhtml">
  <url>
    <loc>https://bakkerij-sk.nl/taarten/</loc>
    <xhtml:link rel="alternate" hreflang="nl" href="https://bakkerij-sk.nl/taarten/" />
    <xhtml:link rel="alternate" hreflang="en" href="https://bakkerij-sk.nl/en/cakes/" />
  </url>
  <url>
    <loc>https://bakkerij-sk.nl/en/cakes/</loc>
    <xhtml:link rel="alternate" hreflang="nl" href="https://bakkerij-sk.nl/taarten/" />
    <xhtml:link rel="alternate" hreflang="en" href="https://bakkerij-sk.nl/en/cakes/" />
  </url>
</urlset>

Bovenaan staat de extra namespace xmlns:xhtml. Daaronder krijgt elke taalversie een eigen <url>-blok, en elk blok noemt alle taalversies, inclusief zichzelf. Twee pagina’s geven dus twee blokken met elk twee regels. Bij drie talen worden het drie blokken met elk drie regels.

Aan deze regels houdt je sitemap zich

Google stelt een paar vaste eisen aan hreflang in de sitemap. Loop ze na voordat je de sitemap indient.

  • De namespace xmlns:xhtml="http://www.w3.org/1999/xhtml" staat in de urlset
  • Elke URL heeft een eigen <url> met een <loc>
  • Elke <url> noemt alle taalversies en zichzelf, in een willekeurige volgorde
  • Alle URL’s zijn volledig en beginnen met https://
  • Wil je een terugval, zet er dan net als in de head een x‑default bij

De xhtml:link-regels tellen niet mee voor het maximum van 50.000 URL’s per sitemap, daarvoor tellen alleen de <loc>-regels. Voor de andere grens, 50 MB ongecomprimeerd, tellen ze wel mee, want elke regel maakt het bestand groter.

Kies de sitemap of de head

Omdat de methodes voor Google gelijkwaardig zijn, levert allebei tegelijk niets extra op. Google zegt er zelfs bij dat drie methodes naast elkaar veel lastiger te beheren kunnen zijn.

In de headIn de sitemap
Waar het staatIn de broncode van elke paginaCentraal in één bestand
Wanneer handigWeinig pagina’s, of je plugin zet het er vanzelf inVeel pagina’s, of geen toegang tot de head
Waar je op letElke pagina moet het goed hebbenEen fout zie je niet op de pagina zelf

Er is één nuance. Schrijft je plugin hreflang in de head en in de sitemap vanuit dezelfde gegevens, dan is dat geen probleem. Bouw er alleen zelf geen tweede route naast, want dan kunnen de twee uit elkaar gaan lopen.

Zo werkt het met een eigen domein per taal

Een sitemap mag alleen URL’s bevatten uit de map waar hij staat, en de mappen daaronder. Kies je voor een eigen domein per taal, dan hoort de Engelse pagina dus niet zomaar in de sitemap van je Nederlandse domein.

Google laat wel een uitzondering toe. Ben je in Search Console eigenaar van alle domeinen, dan mag één sitemap URL’s van meerdere domeinen bevatten. Eenvoudiger is het om elk domein een eigen sitemap te geven, met zijn eigen pagina’s in de <loc>. De xhtml:link-regels wijzen dan naar het andere domein, en in Search Console zet je elk domein als eigen property.

De xhtml:link-regels mogen naar een ander domein wijzen. De loc blijft op je eigen domein.

In WordPress maakt je vertaalplugin de sitemap

In WordPress hoef je die XML niet zelf te schrijven. TranslatePress breidt met de add-on SEO Pack de sitemap van je SEO-plugin uit tot een meertalige sitemap met al je vertaalde content. Dat werkt met Yoast SEO, Rank Math, SEOPress, All in One SEO, Squirrly SEO en Slim SEO. SEO Pack zit in alle betaalde pakketten, vanaf € 99 per jaar voor één website. Ik gebruik zelf TranslatePress voor meertalige websites. Dit is een affiliatelink. Koop je via deze link, dan ontvang ik een vergoeding van TranslatePress.

WPML zet de xhtml:link-regels in de sitemap van Yoast SEO en Rank Math. Hoe je de rest van hreflang regelt, lees je in hreflang in WordPress instellen.

Zo staat het in de sitemap van Stof voor Design

Bij de webshop van Stof voor Design, die ik meertalig maakte met TranslatePress, staan de taalversies ook in de sitemap. De productsitemaps bevatten samen 2.136 URL’s, verdeeld over elf bestanden, en elke URL heeft dezelfde vier xhtml:link-regels, nl-NL en nl naar de Nederlandse webshop en en-GB en en naar het Engelse domein. Een x-default is nog niet ingesteld, in geen enkele sitemap. Dat heb ik op 28 september 2026 live nagekeken.

Uitsnede van product-sitemap1.xml op stoffen-sk.nl met één url-blok. De loc staat op stoffen-sk.nl, de xhtml:link-regels nl-NL en nl wijzen naar dezelfde URL en noemen de pagina dus zelf, en en-GB en en wijzen naar stoffen-sk.com, het andere domein. Een x-default-regel is niet ingesteld

Zo controleer je of je sitemap klopt

Open je sitemap in de browser en neem een steekproef op één pagina of product. Staan alle talen erbij, en noemt de URL ook zichzelf? Kijk daarna in Search Console of de sitemap is ingediend en zonder fouten wordt gelezen.

Een apart hreflang-rapport vind je in Search Console niet meer. Het rapport Internationale targeting is opgeheven, maar Google blijft hreflang gewoon gebruiken. Google noemt zelf een paar hreflang-tools van anderen, met de kanttekening dat Google die niet onderhoudt. Zie ze als hulp, en de sitemap zelf als de waarheid.

Ben je nog aan het uitzoeken hoe je je website in meer talen zet, dan is de sitemap een van de laatste stappen. Eerst komen de talen, de adressen en de vertaling zelf.

Veelgestelde vragen

Dat hoeft niet als je plugin beide uit dezelfde gegevens schrijft. Google noemt de methodes gelijkwaardig en zegt dat ze allemaal tegelijk gebruiken niets extra oplevert. Zet je hreflang zelf met de hand, kies dan één methode, dat houdt het beheer overzichtelijk.

Nee. Google zegt dat de xhtml:link-regels onder een URL niet meetellen voor het maximum van 50.000 URL's per sitemap, daarvoor tellen alleen de loc-regels. Voor de grens van 50 MB ongecomprimeerd tellen ze wel mee, want ze maken het bestand groter.

Was dit artikel behulpzaam?