Skip to content

Instantly share code, notes, and snippets.

@paulirish
Last active April 11, 2024 07:53
Show Gist options
  • Star 83 You must be signed in to star a gist
  • Fork 26 You must be signed in to fork a gist
  • Save paulirish/626834 to your computer and use it in GitHub Desktop.
Save paulirish/626834 to your computer and use it in GitHub Desktop.
userscript: Drop the UTM params from a URL when the page loads
// ==UserScript==
// @name UTM param stripper
// @author Paul Irish
// @namespace http://github.com/paulirish
// @version 1.2
// @description Drop the UTM params from a URL when the page loads.
// @extra Cuz you know they're all ugly n shit.
// @include http*://*
// ==/UserScript==
// Update:
// In chrome, it's better to just install the UTM stripper chrome extension:
// https://chrome.google.com/webstore/detail/google-analytics-paramete/jbgedkkfkohoehhkknnmlodlobbhafge
// It is great and open source: github.com/mihaip/utm-stripper
// You can also install this greasemonkey script if you really want.
// download this script. go to about:extensions. Turn on developer mode and drag and drop
// this file onto the window. it'll install it. hopefully.
// lastly, if your site / marketing funnel uses these tracking tokens. you can clean up your users URLs
// look at the comments below on correct installation to integrate with __gaq.push
if (/utm_/.test(location.search) && window.history.replaceState){
// thx @cowboy for the revised hash param magic.
var oldUrl = location.href;
var newUrl = oldUrl.replace(/\?([^#]*)/, function(_, search) {
search = search.split('&').map(function(v) {
return !/^utm_/.test(v) && v;
}).filter(Boolean).join('&'); // omg filter(Boolean) so dope.
return search ? '?' + search : '';
});
if ( newUrl != oldUrl ) {
window.history.replaceState({},'', newUrl);
}
}
@timelf123
Copy link

ga('send', 'pageview', { 'hitCallback': removeUtms });

@vilav
Copy link

vilav commented Dec 12, 2017

@paulirish is this codeblock still valid with the new ga.js

@timelf123: is that line of code a replacement for the script or a add-on to the GA code to better work with this script?

Thanks!

@grand-lotus-iroh
Copy link

If you load example website https://mashable.com/ you will still see /article/bla-bla-bla/?utm_campaign=hp-r-2&utm_source=internal&utm_medium=onsite being loaded after each link when you hover article.

Perhaps we can strip / rewrite source code on page load? Any idears?

@pyxelr
Copy link

pyxelr commented May 10, 2020

If we have a userscript manager installed (such as Tampermonkey), it's quicker to add your script by clicking the Raw button.

@vivek1986
Copy link

vivek1986 commented Mar 2, 2022

As we all know how Google abuses privacy by Search url tracking, let's put an end to that once n for all:

// ==UserScript==
// @name         Cleanup Google Search URLs
// @namespace    http://tampermonkey.net/
// @version      0.1
// @description Put an end to Google Search Tracking
// @author       VS
// @match        http*://*.google.com/search*
// @include      /^https?\:\/\/.*.google\..*\/.*$/
// @icon         https://www.google.com/s2/favicons?sz=64&domain=google.com
// @grant        none
// ==/UserScript==
(function(){
    'use strict';
    let url = window.location.origin;
    let currUrl = window.location.href;
    let cleanUrl = currUrl.split('&')[0].split('#')[0];
    // let cleanUrl = currUrl.replace(/\(pp_w\d+_h\d+\)/gi, '');
    window.history.replaceState({},'', cleanUrl);
    // window.history.pushState({page:cleanUrl}, cleanUrl, cleanUrl);
})();

@Korb
Copy link

Korb commented Feb 24, 2023

The script does not work with links pasted by the Augmented Steam browser extension. Links like https://steamdb.info/app/.../?utm_source=Steam&utm_medium=Steam&utm_campaign=SteamDB%20Extension and https://pcgamingwiki.com/api/appid.php?appid=...&utm_source=Steam&utm_medium=Steam&utm_campaign=SteamDB%20Extension remain unchanged. Mozilla Firefox 111.0b5 (64-bit), Tampermonkey 4.18.1 (January 17, 2023).

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment