Czyszczenie URL
Usuwa utm_*, fbclid, gclid i resztę śmieci śledzących z dowolnego URL
URL
Wyczyszczony
Czym jest narzędzie do czyszczenia URL?
Wysłałeś znajomym link i na końcu wisiało ?utm_source=newsletter&utm_campaign=spring_sale_2026&fbclid=IwAR0.... Wklej go tutaj, a narzędzie zwróci czysty URL plus rozkład w JSON-ie z dokładną listą tego, co zostało wycięte. Wynik to JSON, więc możesz go wkleić wprost do linii loga, do test fixture albo wszędzie tam, gdzie chcesz mieć ślad tego, co usunięto.
Strona istnieje, bo Google Analytics, Facebook, HubSpot, Mailchimp i kilkanaście innych platform doczepiają do URL-i rzeczy, których nie chcesz udostępniać ani przechowywać. Parametry utm_* pochodzą z Urchin Tracking Module — Google dodał je w 2005 r., dziś są wszędzie. fbclid to identyfikator kliknięcia Facebooka, a gclid Google'a. Żaden z nich nie wpływa na to, jaka strona się załaduje — mówią tylko serwisowi docelowemu, jak tam trafiłeś.
Wszystko działa w Twojej przeglądarce na bazie standardowego API URLSearchParams — tego samego parsera, który definiuje WHATWG URL Standard. Bez wysyłania, bez serwera, bez logów. Czyszczenie jest deterministyczne — lista do wycięcia siedzi w kodzie źródłowym, możesz ją przeczytać, a to samo wejście zawsze daje to samo wyjście.
Jak używać narzędzia do czyszczenia URL
Trzy kroki. Każdy odpowiada jednemu przyciskowi na stronie.
Wklej URL lub załaduj przykład
Wrzuć URL do lewego panelu. Kliknij Przykład, żeby załadować realistyczny przypadek z utm_*, fbclid i gclid przemieszanymi z prawdziwymi parametrami query. Przykładowy 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=Cj0KCQjwxyzDziała wszystko, co przyjmuje new URL(...) — query stringi z +, kodowanie procentowe, powtórzone klucze i fragmenty hash. Path, hash i wszystkie nieśledzące parametry query są zachowane bez zmian.
Przeczytaj wyczyszczony URL i listę usuniętych
Prawy panel pokazuje JSON: cleaned to URL bez śledzenia, removed to obiekt z każdym wyciętym parametrem (klucz i wartość), a removedCount to suma. Jeśli URL nie miał nic do wyczyszczenia, removed jest pustym obiektem, a pole note to potwierdza. Aktualizuje się na bieżąco, gdy piszesz.
Skopiuj lub pobierz
Klikając Kopiuj wysyłasz JSON do schowka, a Pobierz zapisuje go jako plik .json. Minifikuj składa JSON w jedną linię. Użyj Wyczyść w panelu wejściowym, żeby zacząć od nowa. Jeśli potrzebujesz tylko samego stringa wyczyszczonego URL, skopiuj wartość pola cleaned.
Kiedy faktycznie tego użyjesz
Czyszczenie linków przed wysłaniem
Otworzyłeś zakładkę z maila marketingowego i chcesz wysłać link koledze na Slacku. URL ciągnie za sobą ?utm_source=newsletter&utm_campaign=spring_sale_2026 — kolega nie musi wiedzieć, jak tam trafiłeś, a link wygląda paskudnie. Wklej, skopiuj wartość cleaned, wyślij. Pasuje do naszego parsera URL, jeśli najpierw chcesz obejrzeć poszczególne części.
Zapisywanie kanonicznych URL-i w bazie
Indeksujesz strony pod usługę zakładek albo tracker cen. Dwa wejścia na ten sam produkt z różnymi utm_campaign to nie dwie strony — to ta sama strona. Wytnij trackery, zanim zapiszesz URL do bazy, inaczej skończysz z duplikatami. Spec RFC 3986 nazywa to normalizacją URL-i.
Prywatność — niewydawanie referera serwisowi docelowemu
Klikając link z fbclid, mówisz docelowemu serwisowi, że wysłał Cię Facebook, i podajesz mu identyfikator kliknięcia, który Facebook może powiązać z Twoim kontem. Dokumentacja Facebooka opisuje fbclid jako identyfikator kliknięcia do atrybucji reklam. Wycięcie go przed wejściem (albo przed zapisaniem linka) zrywa ten ślad.
Sprzątanie ticketów wsparcia
"Strona się popsuła, kiedy kliknąłem ten link" — i ten link ma 600 znaków, bo wlecze utm + gclid + każdy parametr śledzący, który HubSpot kiedykolwiek wypuścił (__hssc, __hstc, _hsenc, hsa_*). Wklej, skopiuj czysty URL i wklej GO do zgłoszenia bugu. Teraz da się przeczytać prawdziwy path.
Często zadawane pytania
Co dokładnie jest wycinane?
Wszystko, co zaczyna się od utm_ (czyli utm_source, utm_medium, utm_campaign, utm_term, utm_content, plus dowolny custom utm_* dorobiony przez marketing) — plus jawna lista około 50 znanych parametrów śledzących: fbclid (Facebook), gclid i dclid (Google Ads), mc_eid i mc_cid (Mailchimp), _ga i _gl (Google Analytics cross-domain), igshid (Instagram), yclid (Yandex), __hsfp/__hssc/__hstc/_hsenc i hsa_* (HubSpot), mtm_* i pk_*/piwik_* (Matomo), vero_id, wickedid, _branch_match_id, _openstat i jeszcze parę. Prawdziwe parametry query, które coś znaczą dla strony (jak customer=Ava+Chen), zostają nietknięte.
Czy zmienia path albo hash?
Nie. Tknięty jest tylko query string. Protokół, host, port, path i fragment hash przechodzą bez zmian. Czyli https://shop.example.com/orders/ORD-1001?utm_source=x#summary zamienia się na https://shop.example.com/orders/ORD-1001#summary — ten sam path, ten sam hash, tylko bez query.
A jeśli chcę zostawić utm_source dla własnej analityki?
Na razie lista do wycięcia jest stała i zaszyta w stronie. Jeśli potrzebujesz custom whitelisty albo blacklisty, sforkuj kod — Set parametrów i regex utm_* są na samej górze komponentu. Przyszła wersja może to wystawić jako opcję, ale większość ludzi, którzy tu trafiają, chce kompleksowego defaulta.
Dlaczego fbclid jest taki długi?
To nieprzejrzysty, podpisany identyfikator, którym Facebook wiąże kliknięcie z konkretną reklamą i (zwykle) konkretnym użytkownikiem. Dokładny format nie jest publiczny, ale szczegółowo opisano go w artykule fbclid w Wikipedii. gclid to odpowiednik dla Google Ads. Oba bezpiecznie usuniesz z URL-i, które udostępniasz lub zapisujesz — żaden nie jest potrzebny, by załadować właściwą stronę.
Czy działa z URL-ami bez parametrów śledzących?
Tak. JSON na wyjściu ma removedCount: 0, pusty obiekt removed i pole note, które mówi, że nic nie znaleziono. cleaned URL będzie identyczny bajt po bajcie z Twoim wejściem (z dokładnością do tego, co normalizuje new URL().toString() — np. dorzucenie slash-a na końcu origin, jeśli go brakowało).
A powtórzone klucze, np. ?utm_source=a&utm_source=b?
Oba lecą. URLSearchParams.delete(name) usuwa każdy wpis o tej nazwie, więc duplikaty nie są problemem. Obiekt removed pokaże tylko jedną wartość (ostatnio sparsowaną), ale w praktyce nikt nie wstawia podwójnego utm_source w prawdziwym URL-u.
Inne narzędzia URL
Czyszczenie to jedna operacja. Co naturalnie się z tym łączy: