Een te grote DOM maakt productfilters traag
7 november 2026 · 5 min leestijd · Marketing Scan
In dit artikel
Waarom een grote DOM een filter kan vertragen
De browser bouwt van je HTML een boomstructuur, de DOM. De uitleg over webperformance van MDN stelt dat er geen vaste regels zijn voor wat traag is, maar noemt wel richtlijnen, waaronder 50 tot 200 milliseconden voor reactie op invoer. Bekijk die als oriëntatie, niet als drempel. Bij een filter verandert vaak een groot deel van de lijst: elementen worden verwijderd, toegevoegd of herberekend.
Hoe zwaar dat is, hangt af van meer dan het aantal elementen. Ook de diepte van de structuur, de stijlregels, het script dat na een klik loopt en het toestel spelen mee. Een grote DOM is dus een verdachte, geen bewezen schuldige. Je zoekt een bewijs door één variabele te veranderen en dezelfde interactie opnieuw te meten.
Diagnose: tel en meet voor je iets aanpast
Begin met een meetbasis op een representatief toestel. Een snelle ontwikkelaarslaptop verbergt problemen die bezoekers met een middenklassetelefoon wel voelen.
- Open de categoriepagina met alle producten en tel de elementen in de pagina. In de console van de ontwikkelaarstools kan dat met een korte opdracht die alle elementen van het document telt.
- Noteer ook het aantal producten in beeld en het aantal elementen per productkaart.
- Voer één vaste interactie uit, bijvoorbeeld een filter aanzetten dat de lijst halveert.
- Neem de interactie op met het prestatiepaneel van je browser en noteer de duur tussen klik en volgende zichtbare update.
- Herhaal drie keer en bewaar de afzonderlijke waarden, niet alleen het gemiddelde.
Let op welk deel van de opname de tijd verbruikt: scriptuitvoering, stijlberekening of layout. Dat bepaalt of ingrijpen op de DOM-grootte zinvol is.
Stappenplan: de beperkte-lijstproef
Maak een testversie waarin dezelfde pagina slechts een deel van de producten toont. Dit kan met een testparameter, een stagingomgeving of een tijdelijke aanpassing in de ontwikkelaarstools. Pas geen live pagina aan zonder dat iemand de gevolgen kan terugdraaien.
- Bepaal een vaste beperkte lijst, bijvoorbeeld de eerste groep producten die zonder scrollen en een stuk daaronder zichtbaar is.
- Laat filterlogica, stijl en scripts ongewijzigd, zodat enkel het aantal gemonteerde elementen verschilt.
- Voer dezelfde interactie uit op hetzelfde toestel met dezelfde netwerkinstelling.
- Vergelijk de opnames uit de diagnose met die van de beperkte lijst.
- Test ook de gevoelsmatige ervaring: reageert de knop meteen, springt de lijst, verdwijnt de focus?
De cursus Performance van web.dev behandelt onder meer het kritieke pad, het laden van resources en het opsplitsen van JavaScript. Gebruik die als achtergrond wanneer de proef een ander knelpunt toont dan DOM-grootte.
Beslisregels: welke aanpak past bij je bevinding
| Bevinding | Mogelijke aanpak | Let op |
|---|---|---|
| Interactie merkbaar sneller met korte lijst | Minder producten tegelijk tonen, bijvoorbeeld via paginering of laden op verzoek | Controleer zoekbaarheid en toegankelijkheid van de nieuwe opbouw |
| Weinig verschil, veel scripttijd | Onderzoek het filterscript en derde partijen | DOM verkleinen helpt dan mogelijk weinig |
| Veel elementen per productkaart | Kaartopbouw vereenvoudigen | Behoud nuttige informatie voor bezoekers |
| Layoutwerk domineert de opname | Bekijk stijlregels en afmetingen van de kaarten | Meet opnieuw na elke wijziging |
| Resultaten wisselen sterk per meting | Meer herhalingen en een ander toestel | Trek nog geen conclusie |
Kies steeds één wijziging per ronde. Doe je drie dingen tegelijk, dan weet je achteraf niet wat gewerkt heeft.
Fictief scenario en controle na wijziging
Dit voorbeeld is verzonnen en bevat alleen invoer en verwachte controles. Een categoriepagina toont 48 productkaarten. Veronderstel dat elke kaart 40 elementen heeft, dan zijn dat 1920 elementen voor de lijst, plus de rest van de pagina. Een beperkte testversie toont 12 kaarten, goed voor 480 elementen in de lijst.
Verwachte controles: tel de elementen in beide versies, voer dezelfde filterklik uit en vergelijk de opnames. Is het verschil klein, dan zoek je verder bij scripts. Is het groot, dan kies je een aanpak met minder gemonteerde producten. Hoeveel winst dat in jouw winkel oplevert, weet je pas na meting.
Controleer na de wijziging drie dingen. Meet dezelfde interactie opnieuw op hetzelfde toestel. Test met toetsenbord en schermlezer of filters, paginering of een knop om meer te laden bruikbaar blijven. De toegankelijkheidstutorials van W3C geven praktijkrichtlijnen voor veelvoorkomende onderdelen. Bekijk tot slot of alle producten nog bereikbaar zijn via gewone links. Wil je weten welke signalen je site publiek toont? Bekijk ze via Marketing Scan. Een publieke scan meet zichtbare signalen en vervangt je eigen metingen niet.
Veelgestelde vragen.
Hoeveel elementen is te veel voor een productlijst?
De gebruikte bronnen geven hiervoor geen vaste drempel. Het hangt af van toestel, scripts en opbouw. Vergelijk daarom je eigen pagina met een beperktere versie en kijk of de interactie merkbaar verandert.
Waarom meet ik op een middenklassetelefoon?
Een trage DOM-update voel je vooral op toestellen met minder rekenkracht. Op een snelle laptop kan hetzelfde filter vlot lijken. Meet daarom op een toestel dat bij je bezoekers past.
Is paginering altijd beter dan laden op verzoek?
Niet altijd. Beide verkleinen het aantal gemonteerde producten, maar ze werken anders voor toetsenbordgebruikers, terugnavigatie en het delen van een pagina. Test je keuze op die punten voor je ze invoert.
Wat als de beperkte lijst niet sneller is?
Dan is DOM-grootte waarschijnlijk niet je hoofdprobleem. Kijk in de opname naar scripttijd, stijlberekening en derde partijen. Leg die bevinding vast, zodat niemand nodeloos de lijstopbouw herschrijft.
Bronnen bij dit artikel
Hoe werkt een marketing scan? Meetmethode en grenzen
Van advies naar actie voor jouw website
Maak een gratis account voor één website. Controleer zes kenmerken van je homepage en bekijk maximaal drie bevindingen.
Herhaal de check handmatig één keer per zeven dagen. Voor volledige audits en automatische opvolging is uitgebreide toegang nodig.
Maak je gratis account