Greasy Fork is available in English.
removes annoying url trackers parameters like utm_*, ref, etc
// ==UserScript== // @name Remove URL trackers // @namespace https://github.com/insign/remove-url-trackers // @version 202409181423 // @description removes annoying url trackers parameters like utm_*, ref, etc // @match *://*/* // @author Hélio <[email protected]> // @license WTFPL // ==/UserScript== (function() { 'use strict' // Parameters (that start with these prefixes) to strip from the URL. const paramsToStrip = ['utm_', 'ref', 'gclid', 'gclsrc', 'gs_', 'ga_', '_ga', '_gaq', '__utm', 'fbclid', 'mc_', '_cid', 'epik', 'context'] /** * Checks if a parameter should be removed from the URL. * @param {string} param - The parameter name (key=value format). * @returns {boolean} - True if the parameter should be preserved, false otherwise. */ function shouldPreserveParam(param) { return !paramsToStrip.some(prefix => param.startsWith(prefix)) } /** * Cleans the URL by removing the specified parameters. * @param {string} url - The original URL. * @returns {string} - The cleaned-up URL with unwanted parameters removed. */ function cleanUrl(url) { return url.replace(/\?([^#]*)/, (match, searchParams) => { const updatedParams = searchParams .split('&') .filter(shouldPreserveParam) // Retain only non-matching params. .join('&') return updatedParams ? '?' + updatedParams : '' }) } /** * Updates the browser's URL by replacing history state if needed. */ function updateUrl() { const currentUrl = location.href const cleanedUrl = cleanUrl(currentUrl) if (currentUrl !== cleanedUrl && window.history.replaceState) { window.history.replaceState({}, '', cleanedUrl) } } // Only run if the URL contains parameters. if (/[\?&]/.test(location.search)) { updateUrl() } })()