Op een gemiddelde bedrijfswebsite staan al snel zes tot twaalf stukjes code van andere partijen: een chatwidget, een advertentiepixel, een statistiekenpakket, een reviewwidget, een lettertype, een kaartje en een videospeler. Elk daarvan is een extern script op uw website, en dat betekent dat er bij elke bezoeker code meedraait die u niet heeft geschreven en niet kunt inzien.
Meestal gaat dat goed. Maar het risico is anders dan bij een plugin, en het wordt zelden bekeken omdat het buiten uw beheerscherm valt. In dit artikel leest u wat er precies gebeurt, hoe u in kaart brengt wat er op uw site staat en welke afweging per soort script redelijk is.
Wat een extern script anders maakt
Een plugin installeert u één keer en die versie blijft staan tot u hem bijwerkt. Een extern script wordt bij elk bezoek opnieuw opgehaald bij de leverancier. Verandert die leverancier de inhoud, dan draait die nieuwe inhoud direct op uw site, zonder dat u iets doet en zonder dat u het merkt.
Dat is precies waarom deze categorie apart aandacht verdient. U beheert niet de code, u beheert alleen de beslissing om die partij te vertrouwen. Wordt de leverancier overgenomen, gehackt of gaat hij failliet en verkoopt hij zijn domein, dan verandert er iets aan uw site zonder uw toedoen.
Dit is geen theorie. Er zijn de afgelopen jaren meerdere gevallen geweest waarbij een populaire widget of een browseruitbreiding van eigenaar wisselde en daarna advertenties of meetcode ging injecteren op alle sites die hem gebruikten. Dat wordt vaak pas na weken opgemerkt.
Drie soorten risico
Snelheid. Het meest zichtbare probleem. Externe scripts blokkeren vaak het opbouwen van de pagina, en u bent afhankelijk van de reactietijd van een server die u niet beheert. Een trage chatwidget maakt uw hele site traag, en dat telt mee in uw scores. Wat daar precies aan meet staat bij de uitleg over wat een PageSpeed-score zegt.
Privacy. Een extern script ziet standaard het IP-adres van uw bezoeker, welke pagina hij bekijkt en vaak ook zijn browsergegevens. Voor een advertentiepixel is dat de bedoeling; voor een lettertype dat u van een externe server haalt, is het een bijeffect dat u waarschijnlijk niet wilt. Dit valt onder uw verantwoordelijkheid, niet die van de leverancier.
Veiligheid. Een script kan in principe alles op de pagina lezen en wijzigen, inclusief wat iemand in een formulier typt. Bij een webshop is dat de reden dat er strengere eisen gelden voor de betaalpagina: daar hoort geen enkel extern script te staan dat er niet strikt noodzakelijk is.
In kaart brengen wat er op uw site staat
- Open uw site in een privévenster en start de ontwikkelaarshulpmiddelen van uw browser met de toets F12.
- Ga naar het netwerkoverzicht en herlaad de pagina. U ziet nu elk verzoek dat wordt gedaan.
- Sorteer op domeinnaam. Alles wat niet naar uw eigen domein gaat, komt van buiten.
- Noteer per domein wat het is en of u weet waarom het er staat. Bij een derde van de sites staat er minstens één ding waar niemand meer van weet wie het heeft toegevoegd.
- Herhaal het op drie paginatypen: de homepage, een contactpagina en, bij een webshop, de afrekenpagina. Daar verschillen ze vaak.
- Kijk ook naar uw tagmanager, als u die gebruikt. Daar zitten scripts in die in de broncode van de pagina niet te zien zijn.
Het resultaat is meestal een lijstje van acht tot vijftien domeinen. Zet er drie kolommen bij: wat het doet, wie het gebruikt, en of het weg kan.
Opruimen en beperken
Vier maatregelen, op volgorde van hoe vaak ze iets opleveren.
- Verwijder wat niemand gebruikt. Een chatwidget waar per maand twee gesprekken uit komen, een pixel van een campagne uit 2022, een reviewwidget die niemand aanklikt. Dit is de grootste winst en kost niets.
- Haal lettertypen naar uw eigen server. Dat scheelt een externe verbinding, is meestal sneller en haalt een privacyvraag weg.
- Laad zware widgets pas na interactie. Een chatvenster hoeft niet te laden voordat iemand op de knop klikt; een kaart hoeft pas te laden als de bezoeker naar beneden scrolt.
- Laat niet-noodzakelijke scripts pas laden na toestemming. Dat is voor meetcode en advertentiepixels sowieso vereist, en het scheelt bij bezoekers die weigeren ook laadtijd.
Bij een webshop is er nog een vijfde: houd de afrekenpagina zo leeg mogelijk. Geen chat, geen advertentiepixels waar het niet hoeft, geen widgets. Elke regel code die daar meedraait, kan meelezen met wat iemand invult; wat daar verder bij komt kijken staat in het beschermen van klantgegevens in een webshop.
Wat u bij nieuwe scripts vraagt
Krijgt u van een marketingbureau of een leverancier het verzoek om een stukje code toe te voegen, stel dan drie vragen voordat u het plaatst. Wat meet of doet het precies, welke gegevens verlaten daarmee mijn site, en wie kan die code wijzigen na plaatsing.
Vraag daarnaast waar het geplaatst wordt. Een script dat alleen op landingspagina’s van een campagne nodig is, hoort niet op uw hele site te staan. In de praktijk gebeurt dat toch, omdat het via de tagmanager het snelst is.
En zet er een einddatum bij. Campagnes eindigen; de pixels blijven jarenlang staan. Een halfjaarlijkse opschoning van uw tagmanager duurt tien minuten en houdt uw site meetbaar sneller.
De redelijke middenweg
Niemand gaat een website bouwen zonder externe diensten, en dat hoeft ook niet. Een reviewwidget die daadwerkelijk conversie oplevert, verdient zijn laadtijd terug. Het punt is dat de afweging bewust wordt gemaakt in plaats van dat er in vijf jaar tijd twaalf dingen zijn bijgekomen die niemand meer overziet.
Een praktische stelregel: elk extern script moet een eigenaar hebben binnen uw bedrijf die kan uitleggen waarom het er staat. Kan niemand dat, dan gaat het eruit. Blijkt achteraf dat het toch nodig was, dan zet u het terug; dat kost vijf minuten.
Bij het beheer dat wij voeren, hoort dit lijstje bij de halfjaarlijkse ronde rond het afschermen en opschonen van een WordPress-site, samen met de plugins. Het is hetzelfde principe: alles wat meedraait zonder dat iemand het gebruikt, is alleen maar risico en laadtijd.
Concrete volgende stap: druk op uw eigen site op F12, ga naar het netwerkoverzicht en herlaad de pagina. Telt u meer dan tien externe domeinen, dan heeft u vanmiddag een opruimklus die uw site meetbaar sneller maakt.



