URL-cleaner
Verwijder utm_*, fbclid, gclid en andere tracking-rommel uit elke URL
URL
Schoongemaakt
Wat is de URL-cleaner?
Je deelde een link met vrienden en aan het einde hing ?utm_source=newsletter&utm_campaign=spring_sale_2026&fbclid=IwAR0.... Plak hem hier en de tool geeft je de kale URL terug, plus een JSON-uitsplitsing van wat er precies is weggehaald. De output is JSON, dus je kunt hem direct in een logregel, een test-fixture of waar dan ook plakken waar je een spoor wilt achterlaten van wat is opgeruimd.
De pagina bestaat omdat Google Analytics, Facebook, HubSpot, Mailchimp en een dozijn andere platformen dingen aan URLs plakken die je niet wilt delen of opslaan. utm_*-parameters komen uit de Urchin Tracking Module — Google voegde ze in 2005 toe en ze zijn nu overal. fbclid is Facebooks click-ID en gclid is Googles. Geen van beide heeft invloed op welke pagina laadt — ze vertellen de bestemming alleen hoe je daar terechtkwam.
Alles draait in je browser via de standaard URLSearchParams-API, dezelfde parser die de WHATWG URL Standard definieert. Geen upload, geen server, geen logs. URL opschonen is deterministisch — de strip-lijst staat in de broncode, je kunt hem lezen, en dezelfde input levert altijd dezelfde output op.
Zo gebruik je de URL-cleaner
Drie stappen. Elk komt overeen met een knop op deze pagina.
Plak een URL of laad het voorbeeld
Zet een URL in het linkerpaneel. Klik op Voorbeeld om een realistisch geval te laden met utm_*, fbclid en gclid door echte query-parameters heen. Voorbeeld-URL:
https://shop.example.com/orders/ORD-1001?customer=Ava+Chen&status=active&utm_source=newsletter&utm_medium=email&utm_campaign=spring_sale_2026&fbclid=IwAR0abc123def456&gclid=Cj0KCQjwxyzAlles wat new URL(...) accepteert werkt — query-strings met +, percent-encoding, herhaalde keys en hash-fragmenten worden allemaal afgehandeld. Het pad, de hash en alle niet-tracking query-parameters blijven precies behouden.
Lees de schone URL en wat eruit is gehaald
Het rechterpaneel toont JSON: cleaned is de URL zonder tracking, removed is een object met elke verwijderde parameter (key en value), en removedCount is het totaal. Was er niks op te ruimen, dan is removed een leeg object en zegt een veld note dat. Past zich aan terwijl je typt.
Kopiëren of downloaden
Klik Kopiëren om de JSON naar je klembord te sturen, of Downloaden om hem als .json-bestand op te slaan. Minifyen drukt de JSON op één regel. Gebruik Wissen in het invoerpaneel om opnieuw te beginnen. Als je alleen de string van de schone URL wilt, kopieer dan de waarde van het cleaned-veld.
Wanneer je dit echt zou gebruiken
Links opschonen voor je ze deelt
Je hebt een tabblad geopend vanuit een marketingmail en wilt de link via Slack naar een collega sturen. De URL sleept ?utm_source=newsletter&utm_campaign=spring_sale_2026 achter zich aan — je collega hoeft niet te weten waar je vandaan komt, en de link ziet er niet uit. Plakken, cleaned-waarde kopiëren, versturen. Combineert lekker met onze URL-parser als je eerst de onderdelen wilt bekijken.
Canonieke URLs in een database opslaan
Je indexeert pagina's voor een bookmark-dienst of prijstracker. Twee bezoeken aan hetzelfde product met verschillende utm_campaign-waarden zijn niet twee pagina's — het is dezelfde pagina. Strip de trackers voor je de URL in je database schrijft, anders krijg je dubbele rijen. De RFC 3986-spec noemt dit URL-normalisatie.
Privacy — je referer niet aan de bestemming geven
Als je op een link met fbclid klikt, vertel je de bestemmingssite dat Facebook je heeft gestuurd én geef je een click-ID die Facebook met jouw account kan koppelen. Facebooks documentatie beschrijft fbclid als click-identifier voor advertentie-attributie. Hem eraf halen voor je gaat (of voor je de link opslaat) breekt dat spoor.
Support-tickets opruimen
"De pagina ging stuk toen ik op deze link klikte" — en de link is 600 tekens lang omdat hij utm + gclid + iedere HubSpot-trackingparameter meeneemt die HubSpot ooit heeft uitgebracht (__hssc, __hstc, _hsenc, hsa_*). Plakken, schone URL kopiëren, en DIE in je bugrapport zetten. Nu kun je het echte pad lezen.
Veelgestelde vragen
Wat verwijdert hij precies?
Alles dat begint met utm_ (dus utm_source, utm_medium, utm_campaign, utm_term, utm_content, plus elke custom utm_* die een marketeer toevoegt) — plus een expliciete lijst van zo'n 50 bekende tracking-parameters: fbclid (Facebook), gclid en dclid (Google Ads), mc_eid en mc_cid (Mailchimp), _ga en _gl (Google Analytics cross-domain), igshid (Instagram), yclid (Yandex), __hsfp/__hssc/__hstc/_hsenc en hsa_* (HubSpot), mtm_* en pk_*/piwik_* (Matomo), vero_id, wickedid, _branch_match_id, _openstat en nog wat. Echte query-parameters die voor de pagina iets betekenen (zoals customer=Ava+Chen) blijven onaangeroerd.
Wijzigt hij het pad of de hash?
Nee. Alleen de query-string wordt aangepakt. Protocol, host, poort, pad en hash-fragment gaan ongewijzigd door. Dus https://shop.example.com/orders/ORD-1001?utm_source=x#summary wordt https://shop.example.com/orders/ORD-1001#summary — zelfde pad, zelfde hash, geen query.
En als ik utm_source wil houden voor mijn eigen analytics?
Op dit moment is de strip-lijst vast en zit hij in de pagina ingebouwd. Heb je een aangepaste whitelist of blacklist nodig, fork dan de broncode — de Set met parameters en de utm_*-regex staan bovenaan in de component. Een toekomstige versie zou dit als optie kunnen aanbieden, maar de meeste mensen die hier landen willen de uitgebreide default.
Waarom is fbclid zo lang?
Het is een ondoorzichtige, ondertekende identifier die Facebook gebruikt om de klik aan een specifieke advertentie en (meestal) een specifieke gebruiker toe te schrijven. Het exacte formaat is niet openbaar, maar het is uitvoerig beschreven op het Wikipedia-artikel over fbclid. gclid is het equivalent voor Google Ads. Beide zijn veilig om te verwijderen uit URLs die je deelt of opslaat — geen van beide is nodig om de pagina te laden.
Werkt het ook met URLs zonder tracking-parameters?
Ja. De JSON-output heeft removedCount: 0, een leeg removed-object en een note-veld dat zegt dat er niks gevonden is. De cleaned-URL is byte-identiek aan je input (met uitzondering van wat new URL().toString() normaliseert — bijvoorbeeld een trailing slash aan de origin toevoegen als die ontbrak).
En herhaalde keys, zoals ?utm_source=a&utm_source=b?
Beide worden verwijderd. URLSearchParams.delete(name) verwijdert iedere entry met die naam, dus duplicaten zijn geen probleem. Het removed-object toont maar één waarde (de laatst geparste), maar in de praktijk zet niemand dubbele utm_source in een echte URL.
Andere URL-tools
Opschonen is één bewerking. Wat hier natuurlijk bij past: