Sitemap uitleg en gratis PHP script
Een sitemap is eigenlijk een plattegrond van je website in één bestand. Net zoals een stadsplattegrond helpt bij het vinden van straten en bezienswaardigheden, helpt een sitemap zoekmachines bij het ontdekken en begrijpen van alle pagina’s op jouw site. Zonder sitemap kan een crawler sommige pagina’s missen, vooral als de interne links niet perfect zijn. Met een duidelijke sitemap zorg je ervoor dat elke belangrijke pagina wordt gevonden en geïndexeerd.
Wat is een sitemap precies?
Er bestaan twee hoofdsoorten sitemaps. De eerste is de XML-sitemap, bedoeld voor zoekmachines. Deze bevat een lijst van alle URL’s, elk met extra informatie zoals de laatste wijzigingsdatum en de prioriteit. De tweede is de HTML-sitemap, die bezoekers helpt navigeren. Beide zijn waardevol, maar voor SEO draait het vooral om de XML-versie.
Waarom zijn sitemaps belangrijk voor SEO?
Zoekmachines zoals Google gebruiken crawlers om je website te indexeren. Ze volgen links op pagina’s om nieuwe URL’s te ontdekken. Als links verborgen zijn, diep genest in mappen of dynamisch gegenereerd, kan een crawler ze missen. Een XML-sitemap geeft een crawler een compleet overzicht, zodat ook diepgelinkte of nieuwe pagina’s snel worden geïndexeerd.
Bovendien kun je in de sitemap aangeven hoe vaak een pagina verandert. Als je regelmatig blogposts publiceert, kun je zoekmachines adviseren om die pagina’s vaker te controleren. Voor statische pagina’s is een lagere frequentie prima. Zo worden je serverresources efficiënt gebruikt en blijft je site up-to-date in de zoekresultaten.
De voordelen op een rij
Eerst en vooral versnel je het ontdekking- en indexatieproces. Ontbreekt een pagina in de sitemap, dan is de kans groter dat hij niet opduikt in Google. Daarnaast kun je prioriteiten instellen, zodat je hoofdonderdelen, zoals categoriepagina’s of belangrijke landingspagina’s, voorrang krijgen. Ook internationaal georiënteerde sites profiteren: met een sitemap kun je taal- en regio-varianten koppelen, zodat zoekmachines de juiste versie tonen aan gebruikers in Nederland, België of elders.
Hoe maak je een XML-sitemap?
In de eenvoudigste vorm maak je een bestand sitemap.xml in je root-directory. Het bestand begint met een XML-declaratie, gevolgd door een lijst van <url>-blokken. Hieronder een basisvoorbeeld:
<?xml version="1.0" encoding="UTF-8"?>
<urlset xmlns="https://www.sitemaps.org/schemas/sitemap/0.9">
<url>
<loc>https://www.example.com/ </loc>
<lastmod>2025-05-12</lastmod>
<changefreq>daily</changefreq>
<priority>1.0</priority>
</url>
<url>
<loc>https://www.example.com/blog/seo-tips</loc>
<lastmod>2025-05-10</lastmod>
<changefreq>weekly</changefreq>
<priority>0.8</priority>
</url>
</urlset>
Zorg dat elke URL exact klopt en dat het bestand valideert tegen de sitemaps-schema. Je kunt online tools gebruiken om dit te controleren of een plugin in je CMS installeren die automatisch de sitemap bijwerkt.
De HTML-sitemap voor bezoekers
Naast de XML-sitemap kun je een eenvoudige HTML-pagina maken met links naar alle belangrijke secties. Plaats deze bijvoorbeeld onder /sitemap.html. Bezoekers zien zo een overzichtelijke navigatie, terwijl zoekmachines de XML-versie gebruiken om de site te indexeren.
Sitemap indienen bij zoekmachines
Heb je je sitemap.xml geüpload? Meld het dan in Google Search Console onder “Sitemaps” door de URL in te voeren. Google zal de sitemap lezen en je rapport laten zien welke pagina’s zijn gecrawld, welke fouten optreden en of er URL’s ontbreken. Voor Bing gebruik je Bing Webmaster Tools.
Bijhouden en onderhouden
Een sitemap is geen statisch bestand voor altijd. Elke keer dat je nieuwe pagina’s toevoegt of inhoud grondig wijzigt, moet de sitemap worden bijgewerkt. Bij grote sites kan dit geautomatiseerd met een script of een CMS-plugin. Zo blijft de sitemap altijd actueel en blijft de indexatie vlot verlopen.
Veelgemaakte fouten
Sommige sites vermelden in de sitemap URL’s die niet toegankelijk zijn, zoals verwijderde of verplaatste pagina’s. Dit leidt tot crawlerfouten en verwarring. Controleer daarom regelmatig Search Console op foutmeldingen en verwijder of actualiseer URL’s in de sitemap. Ook is het belangrijk dat de sitemap niet te groot wordt; houd hem onder 50.000 URL’s of splits hem op in meerdere sitemaps met een indexbestand.
Gratis PHP Sitemap Script
Hieronder hebben we een eenvoudig PHP Sitemap Script voor je geplaatst. Kopieer de code, plaats in een leeg PHP bestand (bijvoorbeeld: sitemap-generator.php) en upload deze in de root van je domein (bijvoorbeeld: https://www.jouwdomein.nl/sitemap-generator.php). Vergeet niet om onze URL in de eerste zin van het script te vervangen door jouw eigen URL. Roep het script aan via de webbrowser en deze zal een sitemap maken van jouw website. Het bestand sitemap.xml zal vervolgens ook in de root van je domein worden geplaatst.
Let op: Dit script doorzoekt automatisch je hele website. Het kan dus even duren voordat hij klaar is, afhankelijk van hoe groot je website is.
$baseUrl = 'https://www.zichtbareurl.nl'; // <-- Vervang door jouw domein
$startUrl = $baseUrl;
$sitemapPath = __DIR__ . '/sitemap.xml';
$visited = [];
$toVisit = [[$startUrl, 0]]; // Elke URL met diepte
$depthMap = []; // Houdt bij op welke diepte we een URL vinden
function crawl($url, $depth) {
global $baseUrl, $visited, $toVisit, $depthMap;
if (isset($visited[$url])) return;
$visited[$url] = true;
$depthMap[$url] = $depth;
echo "Bezoek (diepte $depth): $url\n";
$context = stream_context_create(['http' => ['timeout' => 5]]);
$html = @file_get_contents($url, false, $context);
if ($html === false) return;
preg_match_all('/]*href=["\']([^"\']+)["\']/i', $html, $matches);
foreach ($matches[1] as $link) {
$link = html_entity_decode($link);
// Absoluut maken
if (strpos($link, 'http') !== 0) {
$link = rtrim($baseUrl, '/') . '/' . ltrim($link, '/');
}
// Alleen intern
if (strpos($link, $baseUrl) === 0 && !isset($visited[$link])) {
// Skip ongewenste links
if (preg_match('/^(mailto:|javascript:|#)/', $link)) continue;
if (preg_match('/\.(pdf|zip|jpg|png|css|js)$/i', $link)) continue;
$toVisit[] = [$link, $depth + 1];
}
}
}
// Crawl alle URLs
while (!empty($toVisit)) {
list($url, $depth) = array_shift($toVisit);
crawl($url, $depth);
}
// Priority-functie o.b.v. diepte
function calculatePriority($depth) {
if ($depth == 0) return 1.0;
if ($depth == 1) return 0.8;
if ($depth == 2) return 0.6;
return 0.4;
}
// Sitemap genereren
$xml = new SimpleXMLElement(' ');
$xml->addAttribute('xmlns', 'http://www.sitemaps.org/schemas/sitemap/0.9');
foreach ($visited as $url => $_) {
$depth = $depthMap[$url] ?? 3;
$priority = calculatePriority($depth);
$urlTag = $xml->addChild('url');
$urlTag->addChild('loc', htmlspecialchars($url));
$urlTag->addChild('lastmod', date('Y-m-d'));
$urlTag->addChild('changefreq', 'weekly');
$urlTag->addChild('priority', number_format($priority, 1));
}
$xml->asXML($sitemapPath);
echo "Sitemap gegenereerd: $sitemapPath\n";
// Ping Google
$pingUrl = 'https://www.google.com/ping?sitemap=' . urlencode($baseUrl . '/sitemap.xml');
$ch = curl_init($pingUrl);
curl_setopt_array($ch, [
CURLOPT_RETURNTRANSFER => true,
CURLOPT_TIMEOUT => 5,
]);
$response = curl_exec($ch);
curl_close($ch);
echo $response !== false ? "Google gepingd\n" : "Fout bij Google ping\n";
Conclusie
Sitemaps vormen de backbone van een goede SEO-strategie. Ze zorgen ervoor dat zoekmachines elke belangrijke pagina vinden, begrijpen wanneer en hoe vaak deze moet worden bijgewerkt, en welke prioriteit hij heeft. Door een correcte XML-sitemap te maken, een HTML-versie voor je bezoekers te bieden en regelmatig je sitemap in Search Console te controleren, leg je een solide basis voor optimale indexatie en betere posities in de zoekresultaten. Begin vandaag nog met het opzetten of verbeteren van je sitemap en zie hoe je website daadwerkelijk sneller en vollediger wordt opgepikt door zoekmachines.
Facebook | Twitter | LinkedIn | WhatsApp
Heb ik je goed geholpen?
Jouw bijdrage stelt mij in staat om meer artikelen te schrijven.
Ik doneer nu € 1,-Wil je jouw website sneller maken én hoger in Google komen? Dan is een CDN een slimme keuze. In dit artikel leggen we stap voor stap uit wat een CDN is, waarom het belangrijk is voor SEO, en hoe je een CDN kunt gebruiken – zowel met een externe partner als via je eigen subdomein...
Beter scoren in Google met asynchroon laden van scripts
Elke seconde telt op het internet. Als een website traag laadt, klikken mensen weg...
Wat zijn Core Web Vitals en waarom zijn ze belangrijk voor jouw SEO
Als je een website hebt, wil je natuurlijk dat mensen deze snel kunnen vinden via Google. Daar komt SEO (zoekmachineoptimalisatie) bij kijken...
Boost je SEO met de juiste serverkeuze en kies voor de perfecte hosting
De hosting die je kiest, beïnvloedt direct de snelheid, uptime en veiligheid van je website. Deze technische factoren zijn belangrijke ranking-signalen voor zoekmachines zoals Google...
Waarom geoptimaliseerde HTML je website laat vliegen
Een snelle, duidelijke en goed werkende website begint bij de basis: HTML. Het is de ruggengraat van je website...
De 10 grootste fouten die je website traag maken
In de wereld van websites draait het om snelheid. Een trage website jaagt bezoekers weg, verlaagt conversies en wordt afgestraft door zoekmachines zoals Google...
De beste tools om je websitesnelheid te meten
In de snelle online wereld van vandaag telt elke milliseconde. Bezoekers haken af als een website traag laadt en zoekmachines belonen snellere sites met betere posities...
De meeste websites zijn eenvoudig naar een hoger level te brengen door eerst de meest basale SEO op orde te krijgen. Mijn gratis SEO Checker controleert voor je of jouw website aan deze basis voldoet, of dat er nog verbetering te behalen valt.
Gebruik nu mijn gratis SEO Checker
Vul de URL van je website in en zie waar je jouw website mee kunt verbeteren. Let op: Een 100% score wil alleen zeggen dat je de basale SEO voor de betreffende pagina op orde hebt. Voor meer tips nodig ik je graag uit om al mijn artikelen te lezen.

