Strip trackingparameters met Cloudflare Workers en Transform Rules
Trackingparameters zoals fbclid en gclid creëren unieke URL's die je CDN-cache omzeilen. Drie manieren om dit op te lossen.

Waarom trackingparameters je cache hit rate vernietigen
Trackingparameters zoals utm_source, gclid en fbclid helpen marketeers de prestaties van campagnes te meten. Voor Core Web Vitals zijn ze een nachtmerrie omdat ze caching doorbreken. Elke unieke URL creëert een aparte cache entry. Een enkele pagina die op Facebook wordt gedeeld, krijgt een unieke fbclid voor elke klik, wat betekent dat elke bezoeker van Facebook een cache miss krijgt en een trage Time to First Byte.
Cloudflare geeft je drie manieren om deze parameters aan de edge te strippen voordat ze je cache vervuilen: Transform Rules (geen code), Workers (volledige controle) en Cache Key-aanpassing (Enterprise). Ik zal ze alle drie behandelen.
Laatst beoordeeld door Arjen Karel in maart 2026
Het caching-probleem met trackingparameters
Cachingsystemen gebruiken de volledige URL als de cache key. Als een URL ?utm_source=google of ?fbclid=abc123 bevat, behandelt de cache dit als een andere pagina, ook al is de inhoud identiek. Dat is een cache miss. De server bouwt een pagina opnieuw op die hij al in de cache heeft, simpelweg omdat de URL een andere query string-waarde heeft.
De schaal van dit probleem is groter dan de meeste mensen zich realiseren. Er zijn 129 bekende trackingparameters in het marketingecosysteem. De fbclid-parameter is het meest destructief omdat Facebook deze toevoegt aan elke uitgaande linkklik, niet alleen aan betaalde advertenties. Elke organische share, elke link in een reactie en elke post die naar jouw site linkt, krijgt een unieke fbclid-waarde.
Volgens de 2025 Web Almanac heeft slechts 44% van de mobiele origins een goede TTFB. Cloudflare meldde dat het oplossen van caching-gedrag voor query strings de cache hit rates gemiddeld met 3% verbeterde en origin bytes met 5% verminderde. Dat vertaalt zich direct naar een snellere Largest Contentful Paint voor je bezoekers.
Niet alle queryparameters zijn tracking-rommel. Parameters zoals ?q=laptops of ?color=blauw veranderen de pagina-inhoud. Het doel is om de parameters te strippen die de inhoud niet beïnvloeden, terwijl je de parameters behoudt die dat wel doen.
Welke trackingparameters moet je strippen?
Hier zijn de meest voorkomende trackingparameters gegroepeerd per platform. Deze creëren unieke, oncachebare URL's zonder de pagina-inhoud te wijzigen:
| Platform | Parameters |
|---|---|
| Google Ads | gclid, gclsrc, wbraid, gbraid, dclid, gad_source |
| Google Analytics | utm_source, utm_medium, utm_campaign, utm_term, utm_content, utm_id, _ga, _gl |
| Facebook / Meta | fbclid, fb_action_ids, fb_action_types |
| Microsoft Ads | msclkid |
| TikTok | ttclid |
| Twitter / X | twclid |
li_fat_id | |
epik | |
| E-mail / Marketing | mc_cid, mc_eid, _hsenc, _hsmi, mkt_tok, ck_subscriber_id |
Dit is niet de volledige lijst. De tracking query params registry documenteert alle 129 bekende parameters. Voor de meeste sites lost het afdekken van de Google-, Meta- en Microsoft-parameters 95% van het probleem op.
Optie 1: Transform Rules (geen code vereist)
Cloudflare heeft een ingebouwde functie genaamd remove_query_args() die specifieke queryparameters uit de URL stript voordat deze de cache bereikt. Dit draait als een Transform Rule, vereist geen code en is beschikbaar op alle abonnementen inclusief de gratis tier.
Om dit in te stellen:
- Ga in je Cloudflare-dashboard naar Rules, vervolgens naar Transform Rules en daarna naar URL Rewrite
- Maak een nieuwe regel aan
- Stel de filter in zodat deze overeenkomt met je domein, bijvoorbeeld
(http.host eq "example.com") - Selecteer voor Query de optie Rewrite to en daarna Dynamic
- Voer de volgende expressie in:
remove_query_args(http.request.uri.query, "utm_source", "utm_medium", "utm_campaign", "utm_term", "utm_content", "utm_id", "gclid", "gclsrc", "wbraid", "gbraid", "dclid", "gad_source", "fbclid", "msclkid", "ttclid", "twclid", "li_fat_id", "epik", "srsltid", "_ga", "_gl") - Selecteer voor Path de optie Preserve
Dat is alles. Geen Worker, geen code-implementatie. Het gratis abonnement staat 10 Transform Rules toe, Pro staat er 25 toe. Voor de meeste sites is dit de beste optie.
Optie 2: Cloudflare Workers
Cloudflare heeft out-of-the-box opties om query strings te negeren, maar hun conservatieve instellingen zijn niet voldoende om het maximale uit je Cloudflare-abonnement te halen. Als je meer controle nodig hebt dan Transform Rules bieden (bijvoorbeeld regex-matching, conditionele logica of logging), geeft een Cloudflare Worker je volledige flexibiliteit.
Workers onderscheppen verzoeken aan de edge en voeren je code uit voordat het verzoek de cache of origin raakt. Cloudflare laadt Workers tijdens de TLS-handshake, dus de effectieve overhead is minder dan 1 milliseconde.
De code
Hieronder staat het volledige Worker-script met de huidige ES modules-syntaxis:
export default {
async fetch(request) {
const url = new URL(request.url)
const trackingParams = /^(utm_|gad_|gclid|gclsrc|wbraid|gbraid|dclid|fbclid|fb_action_|srsltid|msclkid|ttclid|twclid|li_fat_id|epik|igshid|_ga$|_gl$|mc_[ce]id|_hs[em])/
// Collect matching keys first (do not delete during iteration)
const keysToDelete = [...url.searchParams.keys()].filter(
key => trackingParams.test(key)
)
keysToDelete.forEach(key => url.searchParams.delete(key))
return fetch(url.toString(), request)
}
} De Worker parset de URL, test elke queryparameter tegen een regex en verwijdert overeenkomsten. De schone URL gaat vervolgens naar de cache en origin. Twee details zijn hier van belang: de code verzamelt keys in een array voordat ze verwijderd worden, omdat verwijderen tijdens URLSearchParams-iteratie invoeren kan overslaan (dit is een bekend spec-probleem met live iterators). En het script gebruikt het ES modules-formaat (export default) omdat Cloudflare de oudere addEventListener-syntaxis heeft afgeschaft.
Implementatie
- Log in bij Cloudflare. Log in op je Cloudflare-dashboard.
- Maak een Worker aan. Navigeer nog niet naar je site. Navigeer naar de sectie Workers en maak een nieuwe Worker aan.

- Geef de Worker een naam en implementeer. Deze stap kan een beetje contra-intuïtief lijken, maar maak je geen zorgen. Geef je lege 'hello world'-Worker gewoon een naam en klik op deploy.

- Bewerk je Worker. Klik op de volgende pagina op Edit Code.

- Plak het script. Kopieer en plak het bovenstaande script in de editor. Klik vervolgens op deploy.

- Koppel de Worker aan een route. Ga nu terug en navigeer naar je site in Cloudflare. Klik op Worker routes en vervolgens op 'Add Route'. Selecteer de zojuist aangemaakte Worker en pas deze toe op je site.

Aanpassing
Je kunt de regex aanpassen om specifieke parameters op te nemen of uit te sluiten. Als je bepaalde utm_-parameters wilt behouden voor server-side verwerking, verwijder ze dan uit de regex. Als je een marketingplatform gebruikt dat niet door de standaard regex wordt gedekt, voeg dan de bijbehorende parameters toe.
Optie 3: Cache Key-aanpassing (Enterprise)
Als je een Cloudflare Enterprise-abonnement hebt, kun je aangepaste cache keys configureren om specifieke queryparameters uit te sluiten zonder ze überhaupt uit de URL te strippen. De cache negeert ze simpelweg bij het berekenen van de key. Dit is de schoonste aanpak omdat de URL ongewijzigd blijft, maar het vereist Enterprise.
Voor niet-Enterprise abonnementen bereikt de Transform Rule- of Worker-aanpak hetzelfde cache-voordeel.
Welke aanpak moet je gebruiken?
| Aanpak | Abonnementen | Code vereist | Beste voor |
|---|---|---|---|
| Transform Rules | Alle (Free, Pro, Business, Enterprise) | Nee | De meeste sites. Simpel, betrouwbaar, geen onderhoud. |
| Cloudflare Workers | Alle (Free tier: 100K verzoeken/dag) | Ja | Sites die regex-matching, conditionele logica of logging nodig hebben. |
| Cache Key Rules | Alleen Enterprise | Nee | Enterprise-sites die willen dat parameters in de URL behouden blijven, maar genegeerd worden door de cache. |
Voor de meeste sites is het aan te raden te beginnen met Transform Rules. Als je de limiet voor regels bereikt of meer flexibiliteit nodig hebt, stap dan over op Workers.
Als je WordPress met Cloudflare APO gebruikt, heb je dit mogelijk allemaal niet nodig. APO onderhoudt een allowlist van meer dan 25 marketingparameters die het negeert bij het berekenen van cache keys. Controleer of jouw specifieke parameters hieronder vallen voordat je een Worker of Transform Rule toevoegt.
Verbreekt het strippen van parameters analytics?
Nee. Het strippen gebeurt aan de edge, tussen het CDN en je origin-server. De browser-URL bevat nog steeds de originele trackingparameters. Google Analytics, Google Ads-conversietracking en de Facebook-pixel lezen allemaal de document.location aan de client-side uit, die nog steeds de volledige URL met alle parameters intact bevat.
Het enige scenario waarin dit problemen zou kunnen veroorzaken, is als je server-side code trackingparameters uit de URL leest (bijvoorbeeld een server-side analytics-implementatie). Sluit in dat geval die parameters uit van het strippen of leg ze vast in een request header voordat de Worker ze verwijdert.
Voor een bredere kijk op hoe tracking- en analytics-scripts de prestaties beïnvloeden buiten caching om, zie De argumenten voor het beperken van analytics- en tracking-scripts.
Hoe vind je welke URL-parameters je moet strippen
Uitzoeken welke URL-parameters je moet strippen is eenvoudig als je de juiste tool gebruikt. Real User Monitoring tools zoals CoreDash monitoren je site 24/7 en loggen alle query strings samen met hun impact op de prestaties. Navigeer in CoreDash naar Largest Contentful Paint en bekijk de resultaten per query string.

Op sites die worden gemonitord door CoreDash laten pagina's met gestripte trackingparameters grofweg 8 tot 15% betere cache hit rates zien. Voor bezoekers die anders een cache miss zouden krijgen, vertaalt dat zich in een 200 tot 500ms snellere TTFB.
Als je Cloudflare gebruikt en je cache duration TTFB-subonderdeel is hoog, dan is vervuiling door trackingparameters een van de eerste dingen om te controleren. Combineer het strippen van parameters met de juiste Cloudflare-configuratie en je zult een meetbare verbetering zien in je field data.
The RUM tool I built for my own clients.
CoreDash is what I use to audit enterprise platforms. Under 1KB tracking script, EU hosted, no consent banner. AI with MCP support built in. The same tool, available to everyone.
Create Free Account
