Analyse URL's in sitemaps van overheidswebsites

In een eerdere analyse is gekeken naar het gebruik van robots.txt voor het blokkeren van de toegang tot overheidsinformatie. Later kwam een vraag welke URL’s via zogenaamde “sitemaps” beschikbaar zijn per website.

Een grove analyse is gemaakt met behulp van Invantive UniversalSQL.

Belangrijkste bevindingen

Onnodig slakkentempo qua vindbaarheid: PDF-documenten

Uit deze grove analyse van 10.128 sitemaps op 3.238 overheidswebsites blijkt dat veel openbare documenten niet via sitemaps vindbaar zijn.

Beleidsdocumenten zoals PDF-documenten worden vrijwel nooit via een sitemap bekendgemaakt waardoor het gemakkelijk een factor 50 langer kan duren vooraleer deze gevonden kunnen worden, als ze al gevonden worden door zoekengines of AI-crawlers.

De blinde vlek van de Woo: verplicht openbaar, maar slecht vindbaar

Onderdeel van de Woo is actieve openbaarmaking, net zoals andere wetten hierin voorzien, bijvoorbeeld door de Wep. De openbaarmaking en machinale leesbaarheid zal wel geschieden, maar de (vlotte) vindbaarheid door zoekengines lijkt niet gerealiseerd te worden (hetgeen wettelijk ook niet voorgeschreven is). open-overheid.nl is wel in voorzien, maar de sitemap bevat geen enkele URL. Via de Woo-geopenbaarde documenten moeten wel vindbaar en doorzoekbaar zijn via de digitale infrastructuur van BZK, maar dat geldt blijkbaar alleen binnen dat platform.

Groter niet per definitie beter

Grote verschillen tussen gemeenten tonen aan dat kleine gemeenten soms beter presteren dan grote steden zoals Amsterdam; schaalvergroting hoeft dus niet per definitie te leiden tot betere informatievoorziening. Verbetering van vindbaarheid via volledige sitemaps helpt bij een toegankelijke digitale overheid.

Aanbevelingen

Het algemene beeld is dat veel informatie niet eenvoudig en automatisch gevonden kan worden door burgers, en dat daardoor de actualiteit - indien al gevonden - onder druk staat.

Voor een goede vindbaarheid - los van de kwaliteit - zou het verstandig zijn om publieke informatie ook via sitemaps bekend te maken, inclusief PDF-documenten en bekendmakingen. Een toezichthouder kan op basis van de volledigheid van sitemaps bestuursorganen adviseren qua verbetermogelijkheden.

Wat is een sitemap?

Een sitemap is een gestructureerde vastlegging van (in principe) alle URL’s op een website, inclusief laatste wijzigingsmoment. Via een sitemap kunnen zogenaamde “crawlers” van searchengines zoals Google Search en BING snel achterhalen welke pagina’s er zijn en die toevoegen aan hun “zoekindex” (het zogenaamde “indexeren”).

Ook worden wijzigingen vele malen sneller opgepikt omdat enkel de recent gewijzigde pagina’s bekeken hoeven te worden. Het is niet ongebruikelijk dat het toevoegen van gewijzigde en/of nieuwe pagina’s een factor 50 sneller is indien een sitemap gebruikt wordt.

Hoe wordt een sitemap opgegeven?

Op deze forums kan eenvoudig de sitemap opgevraagd worden door de volgende URL te bezoeken:

https://forums.invantive.com/sitemap_recent.xml

die een URL opmerkt die op 20 juni voor het laatst gewijzigd is:

<urlset xmlns="http://www.sitemaps.org/schemas/sitemap/0.9" xmlns:image="http://www.google.com/schemas/sitemap-image/1.1" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://www.sitemaps.org/schemas/sitemap/0.9 http://www.sitemaps.org/schemas/sitemap/0.9/sitemap.xsd http://www.google.com/schemas/sitemap-image/1.1 http://www.google.com/schemas/sitemap-image/1.1/sitemap-image.xsd">
  <url>
    <loc>https://forums.invantive.com/t/analyse-urls-in-sitemaps-van-overheidswebsites/5653</loc>
    <lastmod>2025-06-20T13:10:33Z</lastmod>
  </url>
  ...
</urlset>

Een website (zoals deze forums) kan meerdere sitemaps hebben. Die kunnen gezamenlijk worden in een hoofdsitemap zoals:

https://forums.invantive.com/sitemap.xml

De structuur hiervan is anders:

<sitemapindex xmlns="http://www.sitemaps.org/schemas/sitemap/0.9">
  <sitemap>
    <loc>https://forums.invantive.com/sitemap_recent.xml</loc>
    <lastmod>2025-06-20T11:40:31Z</lastmod>
  </sitemap>
  <sitemap>
    <loc>https://forums.invantive.com/sitemap_1.xml</loc>
    <lastmod>2025-06-20T11:40:31Z</lastmod>
  </sitemap>
  ...
</sitemapindex>

Alle URL’s in elk van de sitemaps vormen samen de volledige lijst.

Een sitemap kan verschillende namen hebben, alhoewel die vaak sitemap.xml is. De naam kan doorgegeven worden via de vaste locatie robots.txt op een website zoals:

Sitemap: https://forums.invantive.com/sitemap.xml

Daarnaast is het bij de searchengines vaak mogelijk om met de hand eigen URL’s voor de sitemap(s) op te geven.

Als voorbeeld: deze forums-website biedt in totaal circa 6.000 URL’s aan. Andere websites zoals documentation.invantive.com bieden er honderdduizenden voor de desbetreffende website aan.

Recente publicatie: vindbaar en betrouwbare gemeentewebsites

iBestuur publiceerde op 12 juni de uitkomsten van een recent (2025) onderzoek naar gemeentelijke chatbots. Een van de conclusies was:

Het lijkt er dus op dat chatbots zaken moeten repareren die beter – en goedkoper – op een andere manier kunnen worden opgelost. Het gaat om zaken die een overheidswebsite sowieso op orde moet hebben: toegankelijke, betrouwbare, vindbare, bruikbare, relevante content over onderwerpen die horen bij gemeentelijk beleid, ‘producten en diensten’ en alle andere onderwerpen die de leefwereld van het publiek raken. Chatbots zijn op deze manier pleister op ontbrekende basisfuncties rond vindbaarheid van informatie.

De volledige details zijn gepubliceerd op Digimonitor:

Blijkbaar is het vaak niet altijd mogelijk om (a) informatie te vinden over beleid, die (b) correct is.

Deze analyse concentreert zich op het bepalen van de vindbaarheid door gebruikmaking van sitemaps omdat de searchengines hier primair van afhankelijk zijn voor een vlotte en correcte werking.

Verwachtingen

Op basis van 3,8 miljoen gescande URL (waarvan 2 miljoen met een document) op OpenArchivaris en bijna 6 miljoen officiele bekendmakingen is de verwachting dat het aantal documenten gemakkelijk boven de 10 miljoen moet liggen.

De 2 miljoen documenten op OpenArchivaris zijn afkomstig van de internettable crawler van Invantive UniversalSQL die echt alle links naloopt. De bijna 6 miljoen officiele bekendmakingen komen uit de API van KOOP Officiele Bekendmakingen, bestaande uit bekendmaking en deels aanvullende documenten (zie ook Beheers gratis gegevens op Officiële Publicaties (KOOP, NL) en bijvoorbeeld Externe documenten opzoeken bij Officele Bekendmakingen).

Onderzoeksbasis

Een lijst is samengesteld van 4.084 mogelijke sitemaps na ontdubbeling afkomstig van:

  • 781 sitemaps uit robots.txt bestanden uit eerder onderzoek
  • 3.387 websites waar mogelijk op de veelvoorkomende locatie sitemap.xml een sitemap te vinden is.

De 781 sitemaps uit robots.txt bestanden waren allen gedefinieerd. Van de 3.387 mogelijke sitemaps is bekend dat ze deels verwijzen naar niet-meer bestaande websites en/of websites zonder sitemap.

De lijst van websites is gelijk aan degene gebruikt voor OpenArchivaris. Mogelijk zijn er nog meer overheidswebsites zoals nieuw gevormde (fusie)gemeentes, maar toevoeging hiervan zou het referentie-aantal van OpenArchivaris ook verhogen. Nieuw gevormde bestuursorganen zullen wel publicaties openbaar gemaakt hebben op https://officielebekendmakingen.nl, maar gezien het karakter van officiele bekendmaking op deze site en de daartoe vereiste besluitvormingsstructuur is de verwachting dat dit een marginaal verschil zal opleveren.

Sitemaps Verzamelen

De lijst van sitemaps uit robots.txt is samengesteld via Invantive UniversalSQL met de volgende query:

--
-- Sitemaps from former analysis on robots.txt
--
-- See https://forums.invantive.com/t/5389
--
create or replace view RobotSitemaps
as
select regexp_replace(contents_char, '.*(Sitemap: ([a-z0-9/.:-]*)).*', '$2', 1, 1, 'in') sitemap_url
from   t5389_websiterobotstxt
where  contents_char like '%Sitemap:%'

waarna de lijst van 4.081 verschillende sitemaps gemaakt is met:

create or replace view BaseSitemaps
as
select sitemap_url url
from   RobotSitemaps@datadictionary
where  sitemap_url is not null
and    is_uri(sitemap_url)
union
select url || '/sitemap.xml' url
from   oa_sites@oa

Uitpakken Sitemaps

De inhoud van BaseSitemaps bevat zowel sitemaps met een lijst van URL’s, als sitemaps met een lijst van nog meer sitemaps.

De sitemaps die weer in een andere sitemap staan worden verzameld met de volgende query:

create or replace table ContainedSitemaps@InMemoryStorage
as
select smp.url sitemap_base
,      xte.loc url
from   BaseSitemaps@DataDictionary smp
join   HTTPDOWNLOAD@DataDictionary
       ( url => smp.url
       , diskCache => true
       , diskCacheMaxAgeSec => 30 * 86400
       , ignoreWebError => true
       , ignoreInvalidCertificate => true
       ) htp
--
-- Select only sitemaps that contain other sitemaps.
--
on     htp.CONTENTS_CHAR like '%<sitemap%'
and    htp.RETRIEVAL_SUCCESSFUL
--
-- Parse sitemaps with other sitemaps.
--
join   xmltable 
       ( '/*["sitemapindex"=local-name()]/*["sitemap"=local-name()]'
         passing trim(htp.contents_char) /* Onderzoeksraad.nl has tab at start. */
         columns loc varchar2 path './*["loc"=local-name()]'
       ) xte

Het eindresultaat waren 6.561 extra unieke sitemaps afkomstig van 516 websites.

URL’s rechtstreeks in sitemaps

Vervolgens worden alle 10.128 (ontdubbelde) sitemaps doorzocht op URL’s van 3.238 verschillende websites met:

create or replace table Urls@InMemoryStorage
as
select xte.loc
from   ( select smp.Url
         from   BaseSitemaps@DataDictionary smp 
         where  smp.Url 
                not in 
                ( select distinct sitemap_base 
                  from   ContainedSitemaps@InMemoryStorage csp
                )
         union
         select csp.Url
         from   ContainedSitemaps@InMemoryStorage csp
       ) smp
join   HttpDownload@DataDictionary
       ( url => smp.url
       , diskCache => true
       , diskCacheMaxAgeSec => 30 * 86400
       , ignoreWebError => true
       , ignoreInvalidCertificate => true
       ) htp
--
-- Ignore HTML pages and other non-standard sitemaps.
--
on     htp.contents_char like '%<urlset%'
and    htp.retrieval_successful
--
-- Ignore sitemaps with other sitemaps.
--
join   xmltable 
       ( '/*["urlset"=local-name()]/*["url"=local-name()]'
         passing htp.contents_char
         columns loc varchar2 path './*["loc"=local-name()]'
       ) xte

De verwerkingsduur was circa 2 uur. Het eindresultaat waren 5.244.820 URL’s. Echter, 3.745.512 kwamen van arcgis.com. Deze site is geen overheidssite, maar is terechtgekomen op de lijst omdat er (ooit) bestanden op stonden. Na verwijdering van deze onterecht opgenomen site resteren 1.499.308 URL’s op 1356 websites.

Export als JSON

Voor verdere verwerking door de oorspronkelijke vraagsteller is een JSON-bestand gemaakt met:

select *
from   URLS@InMemoryStorage
for json auto

local export results as "c:\temp\urls.json" format txt exclude headers

De omvang van dit JSON-bestand was 553 MB.

Analyse

Het aantal gevonden URL’s is aanmerkelijk lager dan het verwachte aantal. De resterende grofweg 1,5 miljoen pagina kunnen door searchengine crawlers goed gevonden worden. Andere pagina’s, zoals veel PDF-documenten, kunnen minder eenvoudig achterhaald worden.

Tijdens een eerder onderzoek is gebleken dat sommige websites documenten niet onderling linken op een gestandaardiseerde wijze, waardoor searchengines deze documenten niet of niet volledig zullen vinden ondanks grote moeite. Websites met applicatielogica en documenten zoals raadsinformatiesystemen en bijvoorbeeld openbare bekendmakingen bevatten veelal geen sitemap en zijn slecht gekoppeld.

Het valt niet uit te sluiten dat sommige van deze websites searchengines op andere manieren informeren, maar mocht dat zo zijn dan is deze wijze van bekendmaking beperkt tot een kleine commerciele groep van searchengines. Het handmatig linken van bijvoorbeeld bekendmakingen vanaf andere sites leidt wel tot opname in bijvoorbeeld de Google zoekindex.

Grootste Websites

De volgende websites hebben via de sitemap(s) het grootste aantal URL’s bekendgemaakt:

Website Aantal
monumenten.nl 146.598
tresoar.nl 118.591
puc.overheid.nl 59.910
mycoa.nl 57.839
klimaatmonitor.databank.nl 48.244
aanmelder.nl 47.160
cbs.nl 45.418
wetten.overheid.nl 45.395
verdragenbank.overheid.nl 34.690
higherlevel.nl 32.879
bhic.nl 27.729
ontwerpnovi.nl 23.572
rivm.nl 20.928

Grootste Gemeentes

De gemeentes met de grootste volumes via sitemap zijn onderstaand opgenomen samen met de aantallen van de laatste crawl van OpenArchivaris qua aantal PDF-documenten gevonden:

Website Aantal URL’s Sitemap Aantal Documenten OpenArchivaris
olst-wijhe.nl 9.408 1.502
archief.olst-wijhe.nl 8.214 -
amsterdam.nl 4.464 52.864
meerssen.nl 4.110 1.818
rotterdam.nl 3.962 8.604
boekel.nl 2.838 2.490
gorinchem.nl 2.481 2.023
aaenmaas.nl 2.294 -
hoorn.nl 2.274 5.883
gemeentemaastricht.nl 2.256 1.502

In de ideale wereld zouden alle PDF-documenten ook in de sitemaps staan, plus reguliere webpagina’s. Het valt op dat bijvoorbeeld in Amsterdam er een veelvoud aan documenten is, die niet vindbaar zijn via de sitemap, terwijl bijvoorbeeld Olst-Wijhe relatief veel meer URL’s aanbiedt. De oorzaak hiervan is niet verder diepgaand onderzocht.

Het beeld is dat relatief kleine gemeentes zijn met veel webpagina’s ten opzichte van het aantal documenten in OpenArchivaris, en gemeentes met een relatief beperkt kennis van de kennis vindbaar.

Het lijkt er op dat er grote verschillen zijn in kennis, inrichting en/of prioriteit.

Meestgebruikte Extensies

Extensies geven een indruk van het soort bestand. De sitemaps bevatten de volgende extensies:

Extensie Aantal
aspx 7.731
html 2.851
pdf 696
htm 665
docx 13
xml 9
xlsx 6

Aspx, html en htm zijn normaliter extensies voor reguliere webpagina’s. In totaal zijn maar circa 700 documenten te vinden via sitemaps. Dit is een extreem laag percentage, waardoor documenten zoals PDF, of niet vindbaar zijn of pas vindbaar worden na lange tijd als searchengines een website volledig doorzocht hebben. Dit kan gemakkelijk 50x zo lang duren ten opzichte van het juist gebruik van een sitemap.

De overheid zet in op meer en beter delen van informatie, bijvoorbeeld via de Woo en de Wep. Er zijn geen eisen gesteld aan de wijze waarop. De huidige werkwijze maakt het voor burgers noodzakelijk om voor zijn onderzoek daartoe aangewezen paden te volgen die vaak niet goed werken en geen integraal beeld geven. Een extreem voorbeeld was dat de Woo-index site een enkele en bovendien lege sitemap heeft.

Waarom doet Invantive dit?

Invantive helpt tienduizenden bedrijven met technologie en kennis om betere resultaten te behalen. Maar deze bedrijven opereren binnen de kaders van de staat. Een goed functionerende overheid betekent meer welzijn, ook economisch. Daarom zet Invantive haar expertise in om bij te dragen aan een transparante en digitaal toegankelijke overheid. Met grootschalige data-analyses van miljoenen documenten brengen we structurele knelpunten in de informatiehuishouding in beeld – niet als doel op zich, maar als bijdrage aan een sterker democratisch systeem.

Als ontwikkelaar van UniversalSQL ondersteunt Invantive ook maatschappelijke initiatieven, journalisten en burgers die publieke informatie willen gebruiken of moeilijk kunnen vinden. Voorbeelden zijn Open Archivaris van de bij Invantive horende Stichting Common Sense in Actie en de jaarlijkse Nationale Politieke Index.