Technische nulmeting · twentynice.com · 17 september 2026
Een meting van wat er nu op twentynice.com draait: beveiliging, privacy, snelheid, vindbaarheid en toegankelijkheid voor AI. Geen oordeel over het ontwerp, geen voorstel. Alleen wat er gemeten is, en wat het betekent. Alles van buitenaf, met openbaar gereedschap; er is niets aangepast en er is geen toegang gebruikt.
01 / Beveiliging en privacy
Dit hoofdstuk staat vooraan omdat het de enige bevinding is die niet over techniek gaat maar over aansprakelijkheid. Je eigen cookiebeleid beschrijft hoe bezoekers toestemming geven. Wij hebben gemeten wat er gebeurt als iemand de site opent, en dat is iets anders.
Vondst 01
Wij openden de homepage in een verse browser en keken elke seconde wat er werd weggeschreven. Na één seconde: niets. Na twee seconden: vijf waarden. Na vier: zes. Het gaat niet om cookies, want die worden er niet gezet. Het gaat om localStorage, en dat telt onder de AVG net zo goed mee: het is opslag op het apparaat van de bezoeker. In een van die waarden staat een uniek nummer dat de bezoeker herkenbaar maakt bij een volgend bezoek.
Vondst 02
Op twentynice.com/cookie-beleid/ staat: “Bij je eerste bezoek aan onze website krijg je een cookiebanner te zien” en “Je kunt je voorkeuren op elk moment aanpassen via de knop links onderaan op onze website.” Het beleid noemt daarbij Usercentrics als de dienst die je toestemming bewaart, en Google Fonts als functionele dienst.
Gemeten: er is geen banner, er is geen knop linksonder, en het woord Usercentrics komt op de hele site precies één keer voor, namelijk in de tekst van het cookiebeleid zelf. Google Fonts wordt nergens geladen. Wistia, dat je beleid zelf onder Marketing schaart, draait wel en schrijft meteen weg.
Dit is de bevinding die het minst over techniek gaat en het meest over papier: je document beschrijft een situatie die niet bestaat. Voor een toezichthouder is dat een ongunstiger vertrekpunt dan helemaal geen beleid hebben.
Vondst 03
Beveiligingsheaders zijn regels die je server meestuurt en die de browser vertellen wat er wel en niet mag. Ze kosten niets en breken zelden iets. Op twentynice.com staan ze geen van alle aan. De belangrijkste is de Content-Security-Policy: die bepaalt welke andere partijen code mogen draaien op jouw pagina. Zonder die regel mag iedereen die ergens binnenkomt alles.
Cijfer F. Alle zes ontbreken: HSTS, Content-Security-Policy, X-Frame-Options, X-Content-Type-Options, Referrer-Policy en Permissions-Policy.
Schermafdruk van securityheaders.com, 17 september 2026 om 08:31 UTC. Zelf overdoen kost tien seconden.
Vondst 04
WordPress heeft een adres dat de gebruikers van de site teruggeeft. Dat staat open en geeft de accountnaam van beheerder nummer 1. Dat is de helft van een inlogpoging; de andere helft is het wachtwoord, en het inlogscherm is gewoon bereikbaar. Daar komt bij dat je WordPress-versie op drie plekken leesbaar is, en dat je aan een versienummer kunt aflezen welke bekende zwakke plekken erbij horen.
De accountnaam staat hierboven half afgeplakt, want dit document gaat rond. Op je eigen site staat hij voluit.
Vondst 05
Een script van een andere partij kan met een handtekening worden meegestuurd: de browser rekent dan na of het bestand nog precies hetzelfde is en weigert het als er iets aan veranderd is. Tien scripts van Wistia en één van Cloudflare draaien zonder die controle. De vijf van Sentry hébben hem wel, dus het kan op deze site.
| Scripts van buiten op de homepage | Aantal | Met handtekening |
|---|---|---|
| fast.wistia.com | 10 | nee |
| challenges.cloudflare.com | 1 | nee |
| browser.sentry-cdn.com | 5 | ja |
/.git/config en /.env, de twee adressen waar automatische scanners als eerste op afgaan, geven allebei een nette foutmelding. /wp-content/ en /wp-content/plugins/ geven wel een 200 maar een leeg antwoord, dus er is geen mappenoverzicht; dat is precies zoals het hoort. Het opvragen van gebruikers via /?author=1 wordt geweigerd met een 403. Het contactformulier heeft botbescherming van Cloudflare en een token tegen misbruik van buitenaf. En er staat geen enkele onbeveiligde verwijzing op de pagina.
02 / Certificaat, domein en e-mail
Dit gaat over de laag onder de website: het slot in de adresbalk, wie er namens je domein certificaten mag aanvragen, en wie er namens jouw naam mag mailen. Die laatste is de laag waar phishing op drijft.
| Gemeten van buitenaf | Stand | |
|---|---|---|
| Certificaat | Let’s Encrypt, geldig tot 5 november 2026 | 50 dagen te gaan, wordt normaal vanzelf vernieuwd |
| TLS 1.0 en 1.1 | geweigerd | de verouderde versies staan uit |
| DNSSEC | aan | je domeinnaam is ondertekend |
| SPF | streng, eindigt op -all | 3 van de 10 toegestane opzoekingen gebruikt |
| DMARC | quarantine, met rapportadres | rapporten gaan naar security@twentynice.com |
| CAA-records | geen | elke certificaatuitgever mag er een uitgeven |
| MTA-STS | geen | geen afdwingbare versleuteling bij inkomende post |
/.well-known/security.txt | 404 | geen meldadres voor wie iets vindt |
| HSTS | geen header | de browser onthoudt niet dat je site alleen via https werkt |
Gemeten op 17 september 2026 met openssl, dig en curl. Over TLS 1.3 doen we geen uitspraak: de curl op onze meetmachine gebruikt LibreSSL en geeft dan hetzelfde antwoord bij “werkt niet” en “kan niet testen”. Een ontbrekende regel is beter dan een onbewezen regel.
Vondst 06
SPF bepaalt welke servers namens jouw domein mogen mailen. De jouwe eindigt op -all: alles wat er niet in staat, wordt hard geweigerd. Er is een limiet van tien opzoekingen en daar zit je op drie, dus er is ruimte om er iets bij te zetten zonder dat de hele regel stilletjes ophoudt te werken. DMARC staat op quarantine met twee rapportadressen, dus er kijkt ook echt iemand naar wat er misgaat. Dat is de goede volgorde.
Vondst 07
Een CAA-record is één regel in je DNS die zegt: alleen deze uitgever mag certificaten voor dit domein maken. Zonder die regel mag iedereen het proberen. Je kunt er ook een meldadres in zetten, zodat je bericht krijgt als iemand het toch doet.
Vondst 08
/.well-known/security.txt is een tekstbestandje met een e-mailadres erin, beschreven in RFC 9116. Onderzoekers en geautomatiseerde scanners kijken daar als eerste. Zonder dat bestand komt een melding bij je algemene info-adres terecht, of nergens. Bij jullie geeft het adres een 404. Het is vijf regels tekst.
03 / Snelheid
De maat die Google gebruikt heet LCP: hoe lang een bezoeker wacht tot het grootste element op het scherm staat. Alles boven vier seconden noemt Google slecht, en het telt sinds 2021 mee in de rangschikking. Wij maten vijf keer, en de uitkomst schommelt hard: van zesentwintig tot ruim vierenveertig seconden. Dat komt door de video op de homepage, die uit zichzelf begint te spelen en ondertussen stukjes blijft ophalen.
| Homepage, mobiel, vijf metingen | Gemeten | Wat Google goed noemt |
|---|---|---|
| Prestatiescore | 54 – 55 | 90 of hoger |
| Wachttijd tot de eerste tekst (FCP) | 7,1 – 7,5 s | onder 1,8 s |
| Wachttijd tot het grootste element (LCP) | 26,2 – 44,2 s | onder 2,5 s |
| Tijd dat de pagina niet reageert (TBT) | 68 – 113 ms | onder 200 ms |
| Verspringen tijdens laden (CLS) | 0 – 0,003 | onder 0,1 |
| Gewicht van de pagina | 16.343 – 16.378 KB | geen norm, wel zwaar |
| Toegankelijkheid | 85 | 90 of hoger |
| Vindbaarheid (SEO) | 85 | 100 haalbaar |
Gemeten met Google Lighthouse 12.8.2 op 17 september 2026, in de mobiele test die Google zelf gebruikt om sites te beoordelen: een geremde processor en een traag mobiel netwerk. Vijf metingen, want deze cijfers schommelen; de bandbreedte in de tabel is die vijf metingen. Google PageSpeed Insights, dat dezelfde meetmotor gebruikt, liep op 17 september twee keer vast op zijn eigen tijdslimiet van drie minuten op deze site; daarom staan hier onze eigen metingen en geen schermafdruk van Google.
Vondst 09
In een gewone browser gemeten, negen seconden na het openen: de homepage doet 71 verzoeken voor de pagina zelf, samen 13.443 KB, en daar komen er nog eens 55 bij voor video, samen ongeveer 3 MB. Opgeteld is dat dezelfde orde als de 16,3 MB die Lighthouse in de tabel hierboven telt. Die video’s starten uit zichzelf zodra ze in beeld komen, dus een bezoeker die alleen even je telefoonnummer zoekt, haalt ze toch binnen. Het getal voor video is een momentopname: een speler blijft stukjes ophalen zolang de pagina open staat, dus het hangt af van hoe lang je wacht. Daarom staat het hier apart en niet opgeteld.
Eerlijk erbij: de pagina is niet zesentwintig seconden leeg. De eerste tekst staat er na ruim zeven seconden. Wat zo lang duurt is het beeld waar de pagina om draait.
04 / Vindbaarheid
Wij hebben geen steekproef gedaan maar alle 22 pagina’s opgehaald en per pagina gekeken naar kop, titel, beschrijving, taal, structuurdata en afbeeldingen. De lijst met pagina’s komt niet uit je sitemap, want die werkt niet; daarover hieronder meer.
| Over alle 22 pagina’s | Aantal |
|---|---|
Pagina’s zonder h1, de kop waar Google op afgaat | 12 |
| Pagina’s zonder beschrijving in de zoekresultaten | 22 |
Pagina’s met en-US als taal, op een Nederlandse site | 22 |
| Pagina’s zonder structuurdata | 22 |
| Pagina’s zonder deelkaart voor LinkedIn en WhatsApp | 22 |
| Pagina’s waar de kopvolgorde een niveau overslaat | 16 |
| Afbeeldingen zonder omschrijving | 5 van de 186 |
| Pagina’s met een canonical, zodat dubbele adressen geen kwaad kunnen | 22 |
| Pagina’s met een dubbele titel | 0, alle 22 titels zijn uniek |
Elke pagina afzonderlijk opgehaald en nagekeken op 17 september 2026.
Vondst 10
Een h1 is de titel van de pagina in de code. Dat er iets in grote letters op het scherm staat maakt niet uit; het gaat om wat er in de code staat. Het ontbreekt op diensten, producten, partners, video’s, contact, consultancy, implementatie, beheer, support, training, de algemene voorwaarden en het cookiebeleid.
Vondst 11
De beschrijving is de twee regels onder je link in de zoekresultaten. Staat er geen, dan pakt Google zelf een stuk van de pagina, en dat is vaak de eerste zin die hij tegenkomt. De titel van je homepage is trouwens precies één woord: TwentyNice. Dat is wat er vetgedrukt in Google staat en in het tabblad van de browser.
Vondst 12
Bovenaan elke pagina staat welke taal het is. Op alle 22 staat daar en-US, terwijl alles in het Nederlands is. Een zoekmachine gebruikt dat om te bepalen aan wie hij je site laat zien, en een schermlezer om te bepalen hoe hij de tekst uitspreekt.
Vondst 13
Een sitemap is de lijst met pagina’s die je aan Google geeft. In je robots.txt staat er een genoemd, maar dat adres geeft een foutmelding. Google krijgt die lijst dus niet en moet alles zelf zien te vinden via links.
05 / AI-toegankelijkheid
Steeds meer mensen zoeken niet meer op Google maar vragen het ChatGPT, Claude of Perplexity. Die programma’s halen hun antwoord van websites. Kunnen ze er niet bij, of kunnen ze niet goed lezen wat er staat, dan kom je in dat antwoord niet voor. Wij hebben vijftien van die programma’s langs de site gestuurd.
| Wat een AI tegenkomt | Antwoord |
|---|---|
| ClaudeBot, de crawler van Claude | 403 geweigerd |
| GPTBot, PerplexityBot, CCBot, Google-Extended en tien andere | 200 |
llms.txt, de samenvatting die een AI als eerste leest | 404 |
| robots.txt noemt de AI-crawlers met naam | nee |
| Structuurdata op de homepage | 0 blokken |
Vondst 14
403 betekent verboden toegang. Niet dat de pagina niet bestaat, maar dat de server hem er niet in laat. Je robots.txt zegt daar niets over, dus het is geen keuze die iemand bij jullie gemaakt heeft; het komt uit een laag daaronder, meestal de beveiliging van de hosting. Dat is een gesprek met je hostingpartij, niet met je websitebouwer.
Vondst 15
Structuurdata is een blokje in de code dat in vaste termen zegt: dit is een bedrijf, dit is de naam, dit is het adres, dit is het KVK-nummer, dit zijn de diensten. Zoekmachines en AI’s lezen dat als eerste, want het is het enige stuk van een pagina waarover geen twijfel bestaat. Op de homepage staan nul van die blokken.
Datzelfde geldt voor je zeventig video’s. Die zijn je grootste bezit op deze site en ze zitten in een speler die een AI niet kan lezen: titel, onderwerp en duur staan nergens als tekst op de pagina.
06 / Alle bevindingen op een rij
Gesorteerd op hoe zwaar ze wegen, niet op hoe makkelijk ze zijn. De eerste zes raken beveiliging en privacy, de rest raakt snelheid en vindbaarheid.
| Bevinding | Gebied | Waarom het weegt |
|---|---|---|
| 1 · Opslag in de browser zonder toestemming | privacy | zes waarden binnen twee seconden, waaronder een uniek nummer, en nergens een vraag |
| 2 · Cookiebeleid beschrijft een banner die er niet is | privacy | je eigen document noemt Usercentrics, een banner en een knop die geen van drie bestaan |
| 3 · Geen enkele beveiligingsheader | security | geen Content-Security-Policy, dus niets begrenst wat externe partijen mogen |
| 4 · Beheerdersnaam openbaar en inlogscherm open | security | de helft van een inlogpoging ligt op straat |
| 5 · Versies staan in de pagina | security | WordPress 7.1, Elementor 4.2.4 en Redux 4.4.12.2 zijn af te lezen |
| 6 · Elf externe scripts zonder handtekening | security | verandert er iets aan zo’n bestand, dan merkt de browser dat niet |
| 7 · Geen CAA-records | domein | elke certificaatuitgever mag een certificaat voor je domein maken |
| 8 · Geen security.txt | security | een onderzoeker weet niet waar hij een melding kwijt kan |
| 9 · Geen HSTS | security | de browser onthoudt niet dat deze site alleen via https hoort te werken |
| 10 · Geen MTA-STS | inkomende post kan in theorie onversleuteld worden afgeleverd | |
| 11 · LCP 26 tot 44 seconden mobiel | snelheid | tien keer of meer boven de grens die Google slecht noemt |
| 12 · Geen van de 22 pagina’s heeft een beschrijving | vindbaarheid | Google verzint dan zelf wat er in de zoekresultaten staat |
| 13 · Twaalf pagina’s zonder h1, taal op en-US | vindbaarheid | de twee signalen waar een zoekmachine als eerste op afgaat |
| 14 · Sitemap in robots.txt geeft 404 | vindbaarheid | Google krijgt je pagina-lijst niet en moet alles zelf vinden |
| 15 · ClaudeBot geweigerd, geen structuurdata | AI | de weigering is niet zelf ingesteld, het gevolg wel |
/.git/config en /.env, geven allebei netjes niets terug, en de mappen onder wp-content laten geen bestandsoverzicht zien. Het opvragen van gebruikers via /?author=1 wordt geweigerd. Alle 22 pagina’s hebben een canonical en een eigen titel. Er staat geen onbeveiligde inhoud op de pagina. Best practices scoort 96 bij Google.
07 / Zelf nameten
Geen van deze proeven verandert iets aan de site. Het zijn dezelfde handelingen die wij hebben gedaan.
<h1. Je vindt er geen. Zoek daarna op lang= bovenaan: en-US.Gemeten adres: twentynice.com