sitescanner.nl

02 — Werkwijze

Werkwijze: hoe we meten

Vierentwintig controles, elk met een vaste drempel en een bron. Kunnen we iets niet meten, dan zeggen we dat, en dan telt het niet mee.

  • tabellen gelezen op 17 oktober 2026
  • volgende herziening uiterlijk 30 november 2026

Wat we wel en niet opvragen

Bij een scan doet de scanner wat een browser bij een eerste bezoek ook doet, en een paar DNS-opvragingen. Hij vraagt https:// en http:// van je domein op en volgt hooguit vijf doorverwijzingen. Bij elke doorverwijzing controleert hij opnieuw dat het adres een openbare website is. Hij leest van elke pagina ten hoogste de eerste twee megabyte, en stopt na vijfentwintig seconden. Daarnaast vraagt hij de TXT-records op van je domein en van _dmarc. voor je domein. Begint je adres met www., dan controleren we SPF en DMARC op het domein zonder www..

We scannen geen IP-adressen, geen interne of gereserveerde namen (zoals .local of localhost) en geen andere poorten dan de gewone webpoorten. Ook een naam die naar een intern netwerkadres wijst, weigeren we. Zo kan niemand de scanner gebruiken om in een netwerk te kijken waar hij niet hoort.

Waarom drempels en geen score

Een score van 73 uit 100 zegt niets over wat je moet doen. Een drempel wel: HSTS korter dan een jaar is een advies, een certificaat dat verlopen is is afkeur. Elke drempel hierboven komt uit een bron die je zelf kunt nalezen. Waar een drempel onze eigen keuze is, zoals de 14 dagen voor een certificaat of de 90 dagen voor PHP, staat dat bij de controle zelf in de uitslag.

Hoe de tabellen actueel blijven

Twee dingen veranderen in de loop van de tijd. De nieuwste WordPress-versie halen we bij elke scan op bij api.wordpress.org en onthouden we hooguit zes uur. De PHP-tabel lezen we met de hand van php.net, en hij heeft een herzieningsdatum. Is die datum voorbij zonder dat de tabel is bijgewerkt, dan geeft de scanner bij PHP niet gemeten. Een verouderde tabel levert dus geen verkeerd oordeel op.

Deze pagina is opgesteld met hulp van een AI-model. De drempels staan zo in de code van de scanner, en de voorbeeldentabel test ze.

Het oordeel

Eén woord, en elk punt los

Het oordeel bovenaan de uitslag volgt uit de punten eronder, zonder weging en zonder score. Afgekeurd betekent dat minstens één punt afkeur kreeg. Goedgekeurd met advies betekent: geen afkeur, wel adviezen. Goedgekeurd betekent dat alles wat we konden meten in orde is.

Punten die we niet konden meten, of die niet bij je site horen, tellen niet mee. Hoeveel dat er zijn, staat direct onder het oordeel. Een site waarvan we de homepage niet konden lezen, krijgt helemaal geen oordeel. Dan zie je geen uitslag, met de reden erbij.

Alle controles en hun drempels

Wat we per punt bekijken, wanneer het in orde is, wanneer het een advies of afkeur wordt, en waar de drempel vandaan komt.

Niet gemeten en niet van toepassing gelden voor elke controle waarvan de waarneming ontbreekt of die niet bij de site hoort.
ControleIn ordeAdviesAfkeurBron
Cookies vóór toestemmingGeen cookies, of alleen cookies die niet van een bekend trackingproduct zijn—Een tracking-cookie (zoals _ga, _fbp, _hj…) bij het eerste bezoekTelecommunicatiewet art. 11.7a
Trackers die direct ladenGeen trackerscript dat direct laadt; een script met type="text/plain" telt nietEen script of pixel van een bekende analyse- of advertentiedienst laadt direct—Telecommunicatiewet art. 11.7a
Externe bronnenAlles van je eigen domein of subdomeinenLettertypes, scripts, stylesheets, iframes of plaatjes van een ander domein—AVG
PrivacyverklaringEen link met 'privacy' in adres of tekst op de homepageGeen zo'n link gevonden—AVG art. 13
HTTPSAntwoordt over https met een geldig certificaat—Geen https, of een ongeldig certificaatinternet.nl
Doorsturen naar HTTPShttp:// stuurt direct door naar https://, of poort 80 is dichtEerst naar een andere http-pagina, pas daarna naar httpshttp:// antwoordt zelf, of komt nooit op https uitinternet.nl
Geldigheid certificaat14 dagen of meer te gaanMinder dan 14 dagenVerlopeninternet.nl
HSTSmax-age van minstens 31.536.000 seconden (een jaar)Korter dan een jaarOntbreekt, of max-age=0RFC 6797, hstspreload.org
Gemengde inhoudNiets via http:// op een https-paginaEen plaatje via http://Een script, stylesheet of iframe via http://MDN
X-Content-Type-OptionsnosniffOntbreekt of andere waarde—MDN, internet.nl
X-Frame-OptionsDENY of SAMEORIGIN, of CSP frame-ancestorsOntbreekt—MDN, internet.nl
Content-Security-PolicyAanwezigOntbreekt—MDN, internet.nl
Referrer-Policyno-referrer, same-origin, strict-origin(-when-cross-origin), origin(-when-cross-origin)Ontbreekt, of unsafe-url / no-referrer-when-downgrade—MDN, internet.nl
Softwareversies zichtbaarServer en X-Powered-By noemen geen versienummerEr staat een versienummer in—OWASP Secure Headers
WordPress-versieDe nieuwste versie volgens api.wordpress.orgNieuwer dan de laatste uitgave (test- of ontwikkelversie)Ouder dan de nieuwsteapi.wordpress.org, bij elke scan
PHP-versieReeks met nog 90 dagen of meer beveiligingsupdatesMinder dan 90 dagen te gaanReeks zonder beveiligingsupdatesphp.net
SPFEén record dat eindigt op -all of ~allEindigt op ?all, of zonder allGeen record, meer dan één, of +allRFC 7208, internet.nl
DMARCp=quarantine of p=rejectp=noneGeen record, meer dan één, of geen geldig beleidRFC 7489, internet.nl
Taal van de paginalang op <html>—OntbreektWCAG 2.2 sc. 3.1.1
PaginatitelEen niet-lege <title>—Ontbreekt of leegWCAG 2.2 sc. 2.4.2
Alt-tekstenElke <img> heeft een alt-attribuut (alt="" mag)—Eén of meer zonderWCAG 2.2 sc. 1.1.1
InzoomenNiet beperkt—user-scalable=no, of maximum-scale onder 2WCAG 2.2 sc. 1.4.4
HoofdkopMinstens één <h1>Geen <h1>—WCAG 2.2 sc. 1.3.1
Labels bij invulveldenElk veld heeft een label, aria-label of titleEen of meer velden zonder—WCAG 2.2 sc. 3.3.2

Bron: php.net/supported-versions.php (gelezen 17 oktober 2026); api.wordpress.org/core/version-check (bij elke scan); RFC 6797, 7208 en 7489 (rfc-editor.org); WCAG 2.2 (w3.org); internet.nl; MDN Web Docs; Telecommunicatiewet (wetten.overheid.nl).

De PHP-tabel

Tot wanneer krijgt elke PHP-reeks beveiligingsupdates? Elke reeks ouder dan 8.2 krijgt ze niet meer.

Gelezen op 17 oktober 2026. Herziening uiterlijk 30 november 2026, omdat er rond die tijd een nieuwe PHP-versie verschijnt. Na die datum geeft de scanner bij PHP geen oordeel meer tot de tabel is bijgewerkt.
PHP-reeksBeveiligingsupdates tot
8.231 december 2026
8.331 december 2027
8.431 december 2028
8.531 december 2029

Bron: php.net — Supported Versions, https://www.php.net/supported-versions.php

Vragen over de werkwijze

Waarom kijken jullie alleen naar de homepage?

Omdat de scan snel en voorspelbaar moet zijn en de site die je scant niet mag belasten. De homepage laat het meeste zien: de headers van de server, de cookies bij een eerste bezoek, de trackers en het thema. Een volledige crawl is iets anders, en dat zou ook een andere belofte zijn.

Waarom voeren jullie geen JavaScript uit?

Een browser in de scanner zou hem trager, duurder en minder voorspelbaar maken. Daarom zeggen we er eerlijk bij wat we daardoor missen: cookies die pas door JavaScript worden gezet. De trackercontrole vangt het grootste deel daarvan op, omdat het script van die trackers in de HTML staat.

Waarom geen DKIM?

Voor DKIM heb je de selector nodig, en die staat alleen in de header van een echt verstuurde mail. Die hebben we niet, dus controleren we DKIM niet. Je ziet hem daarom ook niet als 'niet gemeten' in de uitslag, want het is geen punt dat we soms wel kunnen meten.

Bewaren jullie wat ik invul?

Nee. Het adres bestaat alleen zolang de scan duurt. We bewaren alleen tijdstippen, zonder adres, om te voorkomen dat iemand de scanner gebruikt om andermans server te overbelasten. Daarnaast onthouden we de nieuwste WordPress-versie zes uur lang, zodat we api.wordpress.org niet bij elke scan hoeven te vragen.

Probeer het op je eigen site

Of bekijk eerst hoe de scanner zich gedraagt in de lastige gevallen.

Scan je websiteVoorbeeldentabel