Tree shaking is een optimalisatietechniek die tijdens het buildproces van je website automatisch ongebruikte JavaScript-code detecteert en verwijdert. De naam verwijst naar het schudden aan een boom waarbij dode takken afvallen. In de praktijk analyseert een bundler zoals Webpack, Rollup of Vite welke functies, variabelen en modules je daadwerkelijk gebruikt en laat alles wat je niet aanroept achterwege in het uiteindelijke bestand. Voor een gemiddelde MKB-website betekent dit dat je JavaScript-bestanden 30 tot 60 procent kleiner kunnen worden, wat directe invloed heeft op de laadsnelheid en Core Web Vitals-score.
Hoe tree shaking werkt in moderne bundlers
Tree shaking vertrouwt op ES6-module-syntax (import en export) omdat die statisch te analyseren is. Tijdens het bouwen van je site scant de bundler alle import-statements en markeert welke exports daadwerkelijk worden aangeroepen. Code die nergens wordt geïmporteerd of aangeroepen krijgt het label 'dead code' en wordt niet meegenomen in het productiebestand. Dit proces werkt alleen betrouwbaar als je libraries gebruikt die ES-modules aanbieden en als je geen dynamische imports of eval-constructies toepast die de statische analyse verstoren. Moderne frameworks zoals React, Vue en Svelte ondersteunen tree shaking van nature, maar oudere CommonJS-modules blijven vaak volledig in je bundle zitten.
Waarom tree shaking nu standaard is in webontwikkeling
Rond 2015 introduceerde Rollup tree shaking als kernfunctie, gevolgd door Webpack 2 in 2017. Het antwoord op een groeiend probleem: JavaScript-bundles werden steeds groter door het gebruik van uitgebreide libraries zoals Lodash of Moment.js, terwijl websites vaak maar een handvol functies nodig hadden. Google maakte in 2018 duidelijk dat laadsnelheid een rankingfactor is en introduceerde Core Web Vitals in 2020. Sindsdien is tree shaking geen nice-to-have meer maar een basisvereiste voor elke professionele website. Een ongeoptimaliseerde bundle van 800 kB kan door tree shaking krimpen naar 250 kB, wat het verschil maakt tussen een acceptabele en een trage mobiele ervaring.
Wat tree shaking oplevert voor Nederlandse MKB-websites
In de praktijk zien we bij Monkey Vision dat tree shaking vooral impact heeft op websites met veel interactieve componenten of uitgebreide dashboards. Een webshop die een datepicker, validatie-library en analytics-script laadt, stuurt zonder tree shaking gemakkelijk 600 kB JavaScript naar de bezoeker, terwijl slechts 40 procent daarvan echt wordt uitgevoerd. Door tree shaking in te schakelen in combinatie met code splitting bereik je een First Contentful Paint die 1 tot 2 seconden sneller is, wat meetbaar effect heeft op bouncerates en conversie. Voor wie serieus wil investeren in snelheid en gebruikservaring is professionele front-end development met geoptimaliseerde buildprocessen de logische vervolgstap. Ook een link naar API-integraties is relevant, omdat tree shaking helpt om alleen de benodigde SDK-onderdelen te laden. Meer achtergrond over optimalisatie vind je in de JavaScript-optimalisatiegids van Google Developers.