Een XML-sitemap is een bestand, meestal op /sitemap.xml, met de URL's die je in zoekmachines wilt hebben, elk met de datum van de laatste echte wijziging. Je maakt hem niet met de hand: WordPress, Shopify en Next.js genereren hem zelf.
Zet er alleen indexeerbare, canonieke URL's met status 200 in, dien hem in bij Google via Search Console en bij Bing via Bing Webmaster Tools, en noem hem in robots.txt. Daarna is hij vooral je meetlat: hoeveel van je belangrijke pagina's staan echt in Google?
Wat is een sitemap?
Een sitemap is een overzicht van de pagina's van een website. Er zijn twee soorten: een XML-sitemap voor zoekmachines en een HTML-sitemap voor bezoekers.
Wat is een XML-sitemap dan precies? Een machineleesbaar bestand met per pagina het adres en de laatste wijzigingsdatum. Als SEO'ers het over 'de sitemap' hebben, bedoelen ze deze versie.
Wat een sitemap doet, en wat niet
- Hij helpt zoekmachines nieuwe en gewijzigde pagina's te ontdekken.
- Hij is een signaal voor welke URL jij als hoofdversie ziet. Je beïnvloedt daarmee de getoonde canonieke URL, maar het is een zwak signaal: een redirect of canonical tag weegt zwaarder.
- Hij garandeert geen crawl en geen indexering. Google beslist zelf welke pagina's in de index komen.
- Hij vervangt geen interne links. Een pagina waar niets naar linkt, mist de signalen die links meegeven; zie interne linkstructuur.
Wat er na het ontdekken gebeurt, lees je bij crawlen en Google indexeren.
Heb je een sitemap nodig?
Volgens Google heb je er misschien geen nodig als je site klein is (ongeveer 500 pagina's of minder), goed intern gelinkt is en geen belangrijke media- of nieuwspagina's heeft. In hetzelfde stuk staat dat de meeste sites wel baat hebben bij een sitemap.
Ons advies: maak er altijd een. Het kost bij elk modern platform niets, en zonder sitemap mis je de controle in Search Console die verderop in dit artikel staat.
Wat hoort in een XML-sitemap?
Eén regel: alleen URL's die je in de zoekresultaten wilt zien, precies zoals je ze daar wilt zien. Concreet betekent dat:
- Status 200. Geen redirect, geen 404 en geen 410.
- Indexeerbaar. Geen noindex en niet geblokkeerd in robots.txt.
- Canoniek. Dezelfde URL als in je canonical-tag: zelfde protocol, zelfde www-keuze, zelfde slash aan het eind.
- Absoluut. Volledige adressen met https en domein; Google vraagt om volledige, absolute URL's.
- Met een eigen antwoord. Zou je deze pagina als landingspagina uit Google willen krijgen? Nee, zoals bij een tagpagina die alleen titels herhaalt? Dan hoort hij er niet in.
Wat eruit moet
- Varianten met parameters, filters en sorteringen.
- Bedankpagina's, winkelmand, account- en interne zoekresultaatpagina's.
- Dunne archief-, tag- en categoriepagina's die je zelf niet in Google wilt.
- Verwijderde URL's en URL's die doorsturen (bijvoorbeeld na een 301-redirect).
Welke tags tellen: loc en lastmod
Een minimale, correcte sitemap ziet er zo uit:
<?xml version="1.0" encoding="UTF-8"?>
<urlset xmlns="http://www.sitemaps.org/schemas/sitemap/0.9">
<url>
<loc>https://www.jouwdomein.nl/diensten/voorbeeld</loc>
<lastmod>2026-10-05</lastmod>
</url>
<url>
<loc>https://www.jouwdomein.nl/blog/voorbeeld-artikel</loc>
<lastmod>2026-09-28</lastmod>
</url>
</urlset>- loc: het adres van de pagina. Verplicht.
- lastmod: de datum van de laatste inhoudelijke wijziging in W3C/ISO 8601-formaat, bijvoorbeeld 2026-10-05 of 2026-10-05T09:30:00+02:00. Google accepteert een datum; Bing raadt datum plus tijd aan.
- priority en changefreq: Google negeert ze, en Bing ook. Weglaten mag; laten staan kan geen kwaad, maar stuurt niets.
Lastmod: alleen als hij klopt
Google gebruikt lastmod alleen als de datums consequent en controleerbaar kloppen. Een wijziging telt als de hoofdinhoud, de structured data of de links op de pagina veranderen. Een nieuw copyrightjaar in de footer telt niet.
Bing noemt lastmod in zijn sitemap-advies van juli 2025 een belangrijk signaal om te bepalen welke URL's opnieuw gecrawld moeten worden.
Hoe maak je een sitemap?
Laat hem genereren door het systeem waarin je site draait. WordPress, Shopify en Next.js maken zelf een XML-sitemap die bijwerkt zodra je een pagina toevoegt, verplaatst of verwijdert. Een bestand dat je met de hand bijhoudt, loopt al snel achter.
Sitemap in WordPress
- Zonder plugin: sinds versie 5.5 maakt WordPress zelf een sitemap-index op /wp-sitemap.xml, met standaard maximaal 2.000 URL's per deelsitemap (aankondiging WordPress).
- Met Yoast SEO: /sitemap.xml stuurt dan door naar /sitemap_index.xml, de index van alle deelsitemaps (Yoast). Je zet hem aan of uit met de schakelaar XML-sitemaps in de instellingen van de plugin (Yoast-handleiding).
- Met Rank Math: ook /sitemap_index.xml, met standaard 200 links per deelsitemap (Rank Math-handleiding).
- Gebruik er één. Twee plugins die elk een sitemap maken, geven twee lijsten die uit elkaar lopen. Yoast vraagt zelf om andere sitemapplugins uit te zetten.
- Check Instellingen > Lezen. Staat 'Zoekmachines ontmoedigen deze site te indexeren' aan, dan schakelt WordPress de eigen sitemap uit (WordPress). Controleer dat vinkje na elke livegang.
In de plugin bepaal je ook welke berichttypen en archieven erin komen: zet tag-archieven en bijlagepagina's eruit als ze niets toevoegen. Hoe we dat bij een WordPress-site als geheel aanpakken, staat bij WordPress SEO.
Sitemap in Shopify
Shopify maakt automatisch /sitemap.xml met producten, collecties, pagina's en blogposts. Een winkel in privémodus (met wachtwoord) kan Google niet lezen. Gebruik je internationale domeinen, dan krijgt elk domein een eigen sitemap; andere extra domeinen stuur je door naar je hoofddomein (Shopify Help). Wat er bij een webshop verder speelt rond filters en productvarianten, lees je bij e-commerce SEO.
Sitemap in Next.js
Een sitemap.ts in de app-map genereert de sitemap uit dezelfde data als je pagina's. Voor grote sites splits je met generateSitemaps (Next.js-documentatie). Het basisvoorbeeld in die documentatie gebruikt lastModified: new Date(); vervang dat door de echte wijzigingsdatum uit je content, anders krijg je de fout uit het kader hierboven.
XML-sitemap maken met een generator
Heeft je site geen CMS, crawl hem dan met Screaming Frog SEO Spider (gratis tot 500 URL's) en kies in het menu Sitemaps > XML Sitemap. Pagina's zonder status 200, met noindex of met een canonical naar een andere URL laat de tool standaard al weg; URL's met parameters en bedankpagina's haal je er zelf uit.
Het bestand veroudert bij de eerstvolgende wijziging. Vervang het daarom door een sitemap die je site zelf maakt, zodra dat kan.
Limieten en opsplitsen
Eén sitemap mag maximaal 50.000 URL's bevatten of 50 MB ongecomprimeerd zijn. Kom je daarboven, dan maak je een sitemap-index: een bestand dat naar meerdere sitemaps verwijst. Die index kan tot 50.000 sitemaps bevatten, en je dient alleen de index in.
<?xml version="1.0" encoding="UTF-8"?>
<sitemapindex xmlns="http://www.sitemaps.org/schemas/sitemap/0.9">
<sitemap>
<loc>https://www.jouwdomein.nl/sitemap-diensten.xml</loc>
</sitemap>
<sitemap>
<loc>https://www.jouwdomein.nl/sitemap-blog.xml</loc>
</sitemap>
</sitemapindex>Bij een grotere site splits je per type: diensten, blog, producten. In Search Console filter je dan per sitemap, en zie je welk type pagina Google laat liggen.
Zet je sitemap in de root van je domein (jouwdomein.nl/sitemap.xml). Staat hij in een submap, dan geldt hij alleen voor die map en alles eronder, tenzij je hem in Search Console indient. Sitemaps in een index staan in dezelfde map als de index of dieper.
Meertalige sites: hreflang in de sitemap
Hreflang vertelt Google welke taalversies bij elkaar horen. Je kunt het in de HTML zetten, in HTTP-headers of in de sitemap. Alle drie tegelijk geeft geen voordeel en is vooral lastiger te beheren: kies er één.
Kies je de sitemap, dan gelden drie regels:
- Declareer de xhtml-namespace bovenaan.
- Elke URL noemt álle taalversies, ook zichzelf.
- Elke taalversie staat als eigen url-blok in de sitemap, met dezelfde set verwijzingen.
<urlset xmlns="http://www.sitemaps.org/schemas/sitemap/0.9"
xmlns:xhtml="http://www.w3.org/1999/xhtml">
<url>
<loc>https://www.jouwdomein.nl/producten</loc>
<xhtml:link rel="alternate" hreflang="nl" href="https://www.jouwdomein.nl/producten"/>
<xhtml:link rel="alternate" hreflang="en" href="https://www.jouwdomein.nl/en/products"/>
<xhtml:link rel="alternate" hreflang="x-default" href="https://www.jouwdomein.nl/en/products"/>
</url>
<!-- en hetzelfde blok voor /en/products, met dezelfde drie regels -->
</urlset>Let op bij Next.js: het voorbeeld in de documentatie noemt onder alternates alleen de andere talen. Zet de taal van de pagina zelf er ook in, anders mist de verwijzing naar zichzelf.
Hoe dien je een sitemap in bij Google?
Via Google Search Console: open het rapport Sitemaps, plak de volledige URL van je sitemap in het vak 'Een nieuwe sitemap toevoegen' en klik op Sturen. Je moet daarvoor eigenaar zijn van de website in Search Console (de property), en de sitemap moet voor Googlebot bereikbaar zijn (uitleg Google). In het rapport zie je daarna bij Laatst gelezen wanneer Google hem ophaalde, en of dat lukte.
- Open de sitemap eerst zelf. Laadt jouwdomein.nl/sitemap.xml als XML, en kloppen domein, https en www-keuze?
- Dien hem in bij Google. Bij een sitemap-index dien je alleen de index in, niet elke deelsitemap.
- Zet hem in robots.txt. Eén regel: Sitemap: https://www.jouwdomein.nl/sitemap.xml. Meerdere sitemapregels mogen, en de regel geldt voor alle crawlers (robots.txt-specificatie van Google).
- Dien hem in bij Bing. Via Bing Webmaster Tools. Bing probeert een ingediende sitemap direct op te halen en kijkt daarna doorgaans minstens één keer per dag opnieuw.
- Meld wijzigingen direct met IndexNow (optioneel). Met IndexNow meld je een nieuwe of gewijzigde URL meteen bij Bing en de andere deelnemers, zoals Yandex, Seznam en Naver (deelnemerslijst IndexNow). Google staat niet op die lijst.
Pingen werkt niet meer
De oude ping-URL waarmee je Google een seintje gaf, heeft Google in juni 2023 aangekondigd te schrappen en een half jaar later uitgezet. Bij onze test op 5 oktober 2026 gaf de ping van Google een 404 en die van Bing een 410. Een plugin die nog pingt, doet dus niets; indienen in Search Console en de regel in robots.txt doen het werk.
Sitemap controleren in Google Search Console
Of Google je sitemap kon lezen, zie je meteen na het ophalen. Hoeveel ingediende URL's in de index staan, zie je pas nadat Google ze heeft gecrawld, en dat kan enige tijd duren. Begin daarom met een zelfcheck die je direct kunt doen.
Eerst: een zelfcheck van tien minuten
- Pak vijf URL's uit de sitemap en check ze met URL-inspectie in Search Console: status 200, canonical naar zichzelf, indexeerbaar.
- Crawl je site, bijvoorbeeld met de gratis versie van Screaming Frog, en zet de URL-lijst naast je sitemap. Staat een URL alleen in de sitemap, dan linkt geen enkele pagina ernaar: een weespagina (zie interne linkstructuur).
- Staat een URL alleen in de crawl en hoort hij in Google, dan ontbreekt hij in je sitemap.
Het rapport Sitemaps
Daar staat per ingediende sitemap een status (uitleg Google):
- Geslaagd: Google kon hem lezen en verwerken.
- Bevat fouten: Google kon hem ophalen, maar iets klopt niet, zoals ongeldige XML of een te groot bestand. De leesbare URL's worden wel verwerkt.
- Kan niet ophalen: Google kon het bestand niet ophalen. Check het adres, de statuscode en of robots.txt de sitemap blokkeert. Google probeert het nog een paar dagen opnieuw en stopt dan.
Een sitemap verwijderen uit dit rapport betekent niet dat Google de URL's vergeet. Wil je pagina's echt uit Google, gebruik dan noindex of een 404/410.
Het rapport Pagina-indexering
Open Pagina-indexering en zet het filter bovenaan van 'Alle bekende pagina's' op 'Alle ingediende pagina's', of kies één sitemap (uitleg Google). Je ziet dan hoeveel van jouw belangrijke URL's echt geïndexeerd zijn, en per reden waarom de rest ontbreekt. Deze meldingen wijzen naar een fout in de sitemap zelf:
| Melding bij een ingediende URL | Wat het betekent | Wat je doet |
|---|---|---|
| Pagina met omleiding | Je sitemap noemt een URL die doorstuurt. | Zet het eindadres in de sitemap. |
| URL gemarkeerd als 'noindex' | Sitemap en pagina spreken elkaar tegen. | Hoort de pagina in Google? Haal de noindex weg. Zo niet: haal hem uit de sitemap. |
| Dubbele pagina zonder door de gebruiker geselecteerde canonieke versie | Google ziet de pagina als duplicaat en kiest zelf een hoofdversie. | Zet alleen de hoofdversie in de sitemap en zet op de kopie een canonical naar die hoofdversie. Is het geen kopie, maak de inhoud dan echt verschillend. |
| Niet gevonden (404) | Je sitemap noemt een pagina die niet bestaat. | Haal de URL uit de sitemap, of stuur hem door naar de juiste pagina. |
| URL geblokkeerd door robots.txt | Je vraagt om indexering, maar verbiedt het crawlen. | Open de URL in robots.txt, of haal hem uit de sitemap. |
Staan veel ingediende URL's op 'Gevonden - momenteel niet geïndexeerd' of 'Gecrawld - momenteel niet geïndexeerd', dan ligt het zelden aan de sitemap en meestal aan je server, je interne links of de pagina's zelf. Wat die twee meldingen betekenen en wat je eraan doet, staat bij Google indexeren; de bredere aanpak in wat is technische SEO.
De sitemap bij een domeinverhuizing
Je nieuwe sitemap bevat alleen URL's van het nieuwe domein die status 200 geven. Houd tijdens de verhuizing ook een sitemap met de oude URL's in Search Console. Dan zie je het aantal geïndexeerde oude URL's dalen en de nieuwe stijgen; is de verhuizing verwerkt, dan kan de oude sitemap weg.
Bij Dutch Fiber Trading uit Obdam gingen vier domeinen op in één, met 301-redirects vanaf de oude. De sitemap van het nieuwe domein noemt de 424 URL's van de viertalige site (NL, EN, DE, FR); wat de verhuizing in Google opleverde, staat in de case Dutch Fiber Trading.
Redirectkaart en controle na livegang horen bij technische SEO; hoe de redirects zelf werken, lees je bij 301-redirect.
Checklist en veelgemaakte fouten
- Alleen URL's met status 200, indexeerbaar en canoniek. Fout: http naast https, met en zonder www of slash, en redirects of noindex-pagina's in de sitemap.
- Lastmod alleen bij echte wijzigingen. Fout: lastmod op de builddatum, waardoor elke pagina vandaag gewijzigd lijkt. Priority en changefreq mogen weg.
- Automatisch gegenereerd, onder 50.000 URL's per bestand, bij een grote site per type opgesplitst. Fout: twee WordPress-plugins die elk een eigen sitemap maken.
- Vermeld in robots.txt, ingediend in Search Console en Bing Webmaster Tools. Fout: een Disallow op de sitemap zelf, of een site die na livegang nog op 'Zoekmachines ontmoedigen' staat.
- Hreflang met verwijzing naar zichzelf. Fout: een taalversie die alleen de andere talen noemt.
- Maandelijks 'Alle ingediende pagina's' in Pagina-indexering nalopen.
Veelgestelde vragen
Waar vind ik mijn sitemap?
Open eerst jouwdomein.nl/robots.txt: staat daar een regel die met Sitemap: begint, dan is dat het adres dat zoekmachines gebruiken. Staat er niets, probeer dan /sitemap.xml, /sitemap_index.xml (Yoast SEO, Rank Math) of /wp-sitemap.xml (WordPress zonder SEO-plugin). Heb je Search Console, dan staat een eerder ingediende sitemap in het rapport Sitemaps.
Hoe lang duurt het voordat Google mijn sitemap verwerkt?
Wanneer Google je sitemap ophaalde, zie je in de kolom 'Laatst gelezen' van het rapport Sitemaps. Het crawlen van de URL's erin kan enige tijd duren, en een vaste termijn noemt Google niet.
Moet ik mijn sitemap na elke nieuwe pagina opnieuw indienen?
Nee. Een sitemap die Google eenmaal kon lezen, haalt het zelf periodiek opnieuw op; alleen na grote wijzigingen kun je hem opnieuw indienen. Wil je één belangrijke pagina sneller laten bekijken, gebruik dan URL-inspectie in Search Console; voor Bing kun je IndexNow gebruiken.
Is sitemap.xml hetzelfde als een XML-sitemap?
Ja. sitemap.xml is de gebruikelijke bestandsnaam van een XML-sitemap, maar de naam is vrij: WordPress gebruikt wp-sitemap.xml, Yoast en Rank Math sitemap_index.xml. Wat telt, is dat het adres in robots.txt staat en in Search Console is ingediend.
Heb ik ook een afbeeldingen- of videositemap nodig?
Alleen als je verkeer uit Google Afbeeldingen of video-resultaten wilt en Google je beeld niet zelf vindt, bijvoorbeeld omdat foto's via JavaScript laden of video's in een eigen player staan. Voor een gewone dienstensite is de normale sitemap genoeg. Voor beeld en video bestaan eigen sitemap-uitbreidingen. Deze site heeft er een naast de gewone sitemap, voor de hoofdafbeeldingen van pagina's en artikelen; beide staan in onze robots.txt.
Is een HTML-sitemap nog nuttig?
Voor zoekmachines niet: de XML-sitemap en je menu doen dat werk. Voor bezoekers alleen op een grote site waar het menu niet alles kan tonen, zoals een webshop met honderden categorieën.
Helpt een sitemap om in ChatGPT of AI Overviews te komen?
Indirect. Voor AI Overviews en AI Mode gelden geen extra technische eisen: de pagina moet geïndexeerd zijn, en daar helpt een sitemap bij. Bing koppelt sitemaps en IndexNow in zijn advies uit 2025 expliciet aan vindbaarheid in Copilot. Voor ChatGPT search en Perplexity moeten hun zoekcrawlers (OAI-SearchBot, PerplexityBot) je site mogen bezoeken; meer in AI-zoekcrawlers toelaten in robots.txt. Of een AI-antwoord jou noemt, bepaalt de inhoud van je pagina, niet de sitemap.
Welke gratis tools controleren mijn sitemap?
Search Console en Bing Webmaster Tools zijn de belangrijkste, omdat ze laten zien wat de zoekmachine zelf ervan vindt. Meer gratis hulpmiddelen staan in gratis SEO-tools.
