URL-Cleaner
Entfernt utm_*, fbclid, gclid und sonstigen Tracking-Müll aus jeder URL
URL
Bereinigt
Was ist der URL-Cleaner?
Du hast Freunden einen Link geschickt und am Ende hing ?utm_source=newsletter&utm_campaign=spring_sale_2026&fbclid=IwAR0... dran. Hier einfügen — und das Tool gibt dir die nackte URL zurück, plus eine JSON-Aufschlüsselung dessen, was genau abgeschnitten wurde. Die Ausgabe ist JSON, also kannst du sie direkt in eine Logzeile, ein Test-Fixture oder irgendwo dahin kopieren, wo du eine Spur des Bereinigten hinterlassen willst.
Die Seite gibt es, weil Google Analytics, Facebook, HubSpot, Mailchimp und ein Dutzend andere Plattformen Zeug an URLs hängen, das du weder teilen noch speichern willst. utm_*-Parameter stammen aus dem Urchin Tracking Module — Google führte sie 2005 ein, mittlerweile sind sie überall. fbclid ist Facebooks Click-ID, gclid ist Googles. Beide haben keinen Einfluss darauf, welche Seite geladen wird — sie verraten der Zielseite nur, woher du kommst.
Alles läuft im Browser über die Standard-API URLSearchParams — den gleichen Parser, den der WHATWG URL Standard definiert. Kein Upload, kein Server, keine Logs. Das Bereinigen ist deterministisch — die Strip-Liste steht im Quelltext, du kannst sie lesen, und gleicher Input liefert immer den gleichen Output.
So benutzt du den URL-Cleaner
Drei Schritte. Jeder entspricht einem Button auf dieser Seite.
URL einfügen oder Beispiel laden
URL ins linke Panel werfen. Beispiel klicken, um einen realistischen Fall mit utm_*, fbclid und gclid neben echten Query-Parametern zu laden. Beispiel-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, was new URL(...) akzeptiert, funktioniert — Query-Strings mit +, Prozent-Encoding, doppelte Keys und Hash-Fragmente werden alle behandelt. Pfad, Hash und alle Nicht-Tracking-Query-Parameter bleiben unverändert erhalten.
Bereinigte URL und Entferntes lesen
Das rechte Panel zeigt JSON: cleaned ist die URL ohne Tracking, removed ist ein Objekt mit jedem entfernten Parameter (Key und Value), und removedCount ist die Gesamtzahl. Wenn nichts zu bereinigen war, ist removed leer und ein Feld note sagt das. Aktualisiert sich beim Tippen.
Kopieren oder herunterladen
Kopieren schickt das JSON in die Zwischenablage, Herunterladen speichert es als .json-Datei. Komprimieren packt das JSON in eine Zeile. Leeren im Eingabe-Panel setzt zurück. Wenn du nur die bereinigte URL als String brauchst, kopier den Wert von cleaned.
Wann du das tatsächlich nutzt
Links vor dem Teilen säubern
Du hast einen Tab aus einer Marketing-Mail offen und willst den Link einem Kollegen in Slack schicken. Die URL hat ?utm_source=newsletter&utm_campaign=spring_sale_2026 hinten dran — dein Kollege muss nicht wissen, woher du kommst, und der Link sieht hässlich aus. Einfügen, cleaned-Wert kopieren, abschicken. Passt gut zu unserem URL-Parser, falls du vorher die Komponenten anschauen willst.
Kanonische URLs in der Datenbank speichern
Du indizierst Seiten für einen Bookmark-Dienst oder Preistracker. Zwei Aufrufe desselben Produkts mit unterschiedlichen utm_campaign-Werten sind nicht zwei Seiten — es ist dieselbe Seite. Tracker entfernen, bevor du die URL in die DB schreibst, sonst hast du Duplikate. Die RFC 3986-Spezifikation nennt das URL-Normalisierung.
Privatsphäre — keinen Referrer ans Ziel weitergeben
Wenn du auf einen Link mit fbclid klickst, sagst du der Zielseite, dass Facebook dich geschickt hat, und gibst ihr eine Click-ID, die Facebook mit deinem Account verknüpfen kann. Facebooks Doku beschreibt fbclid als Click-Identifier für Anzeigen-Attribution. Vor dem Besuch (oder vor dem Speichern des Links) entfernen — die Spur ist gekappt.
Support-Tickets aufräumen
"Die Seite ist abgestürzt, als ich auf diesen Link geklickt habe" — und der Link hat 600 Zeichen, weil er utm + gclid + jeden HubSpot-Tracking-Parameter mitschleppt, den HubSpot je veröffentlicht hat (__hssc, __hstc, _hsenc, hsa_*). Einfügen, bereinigte URL kopieren, DIE in den Bug-Report packen. Jetzt ist der echte Pfad lesbar.
Häufige Fragen
Was wird genau entfernt?
Alles, was mit utm_ beginnt (also utm_source, utm_medium, utm_campaign, utm_term, utm_content plus jedes custom utm_*, das ein Marketer hinzufügt) — plus eine explizite Liste von rund 50 bekannten Tracking-Parametern: fbclid (Facebook), gclid und dclid (Google Ads), mc_eid und mc_cid (Mailchimp), _ga und _gl (Google Analytics Cross-Domain), igshid (Instagram), yclid (Yandex), __hsfp/__hssc/__hstc/_hsenc und hsa_* (HubSpot), mtm_* und pk_*/piwik_* (Matomo), vero_id, wickedid, _branch_match_id, _openstat und ein paar mehr. Echte Query-Parameter, die für die Seite eine Bedeutung haben (wie customer=Ava+Chen), bleiben unangetastet.
Werden Pfad oder Hash verändert?
Nein. Nur die Query-String wird angefasst. Protokoll, Host, Port, Pfad und Hash-Fragment gehen unverändert durch. Aus https://shop.example.com/orders/ORD-1001?utm_source=x#summary wird https://shop.example.com/orders/ORD-1001#summary — gleicher Pfad, gleicher Hash, nur ohne Query.
Was, wenn ich utm_source für mein eigenes Analytics behalten will?
Aktuell ist die Strip-Liste fix und in der Seite verdrahtet. Wenn du eine eigene Whitelist oder Blacklist brauchst, fork den Quelltext — das Strip-Set und die utm_*-Regex stehen oben in der Komponente. Eine künftige Version wird das vielleicht als Option exponieren, aber die meisten Leute, die hier landen, wollen den umfassenden Default.
Warum ist fbclid so lang?
Es ist ein opaker, signierter Identifier, mit dem Facebook den Klick einer bestimmten Anzeige und (meistens) einem bestimmten Nutzer zuordnet. Das exakte Format ist nicht öffentlich, aber im Wikipedia-Artikel zu fbclid ausführlich beschrieben. gclid ist das Pendant für Google Ads. Beide kannst du ohne Bedenken aus URLs entfernen, die du teilst oder speicherst — keiner ist zum Laden der Seite nötig.
Funktioniert es auch mit URLs ohne Tracking-Parameter?
Ja. Die JSON-Ausgabe hat removedCount: 0, ein leeres removed-Objekt und ein Feld note, das sagt, dass nichts gefunden wurde. Die cleaned-URL ist Byte-identisch mit deinem Input (modulo dem, was new URL().toString() normalisiert — etwa ein angehängter Slash am Origin, falls einer fehlte).
Was ist mit doppelten Keys, etwa ?utm_source=a&utm_source=b?
Beide werden entfernt. URLSearchParams.delete(name) löscht jeden Eintrag mit diesem Namen, Duplikate sind also kein Problem. Das removed-Objekt zeigt nur einen Wert (den zuletzt geparsten), aber in der Praxis schreibt niemand utm_source doppelt in eine echte URL.
Weitere URL-Tools
Bereinigen ist nur eine Operation. Was sich natürlich damit kombinieren lässt: