This is just a very primitive remover of some tracking elements. Currently it recognizes and removes URL variables starting with
utm_ (so-called Urchin Tracking Module parameters),
WT. (Webtrends), several Amazon, Google and Faceboot trackers, some from Humblebundle and
referrer. If you wish, you can extend that in the declaration of the
badp variable (an array). If you encounter problems on some sites (which e.g. rely on a
referrer parameter), either remove it from the array – or deactivate the script for that site (with Greasemonkey, you can configure "user exceptions").
Also part of this script now: an approach to clean up the Google Redirect tracking by extracting the target URL from it and rewriting the entire link to that. And finally, the same for MetaGer.DE (partially working at least: use the URL below the result title if we can tell it's an URL – which currently means it starts with 'http' or 'www.').
URLSearchParams() expects parameters to be separated by ampersands ("&"). Some sites use semi-colons (";") instead, in which case
URLSearchParams() messes up the query-string (replacing several characters by their URL-encoded variant) so it no longer works. To avoid that, this scripts beforehand replaces all semi-colons by ampersands, which works in most cases I've encountered – but might rise issues if a parameter is supposed to contain an semi-colon (thought that should be URL-encoded then, it's sometimes forgotten), or some site uses "&" to separate parameters. In those cases, it's best to put that site into your "user excludes". Alternatively, you can also turn off the ";" › "&" conversion inside the script by setting
var replace_semicolon = false;