Delete unnecessary params and add useful params on Google Search.
// ==UserScript== // @name Google Search Better Privacy // @description Delete unnecessary params and add useful params on Google Search. // @version 0.0.4 // @include http://*.google.*/search* // @include http://*.google.*/imgres* // @include https://*.google.*/search* // @include https://*.google.*/imgres* // @exclude http://play.google.com/* // @exclude http://mail.google.com/* // @exclude https://play.google.com/* // @exclude https://mail.google.com/* // @author nodaguti // @license MIT License // @run-at document-start // @namespace https://greasyfork.org/users/1453 // ==/UserScript== (function(){ //--- Config --- //For more information about parameters, please see //http://www.blueglass.com/blog/google-search-url-parameters-query-string-anatomy/ or //http://www.seomoz.org/ugc/the-ultimate-guide-to-the-google-search-parameters var addParams = [ 'safe=off', //Disable safe search 'newwindow=1', //Open links in new tab 'pws=0', //Disable personalized search 'complete=0', //Disable instant search // 'as_qdr=y15', //Display when sites released // 'adtest=on', //Turn off AdWords database connection //See https://developers.google.com/custom-search-ads/docs/reference#adtest for detail ]; var deleteParams = [ //--- Tracking Params --- //Thx: http://www.blueglass.com/blog/google-search-url-parameters-query-string-anatomy/ 'client', //Browser Name 'sclient', //Browser Name 'sourceid', //Source of the query 'source', //Source of the query 'oq', //What you typed before you made a selection //from the suggestions 'aq', //Google Suggest Tracking (Shows which suggestion you choose) 'pq', //Previous Query 'sa', //Google SERPs navigation behavior tracking 'swrnum', //The number of r###lts the initial query returned 'as_q', //When searching within r###lts, the query is added as_q 'oi', //Universal search: Group name 'resnum', //Universal search: Number of a r###lt within the group //--- Maybe Tracking Params, but details unknown --- 'gs_l', //Location? 'bav', 'bvm', 'bpcl', 'biw', //Client display width? 'bih', //Client display height? 'w', 'h', 'tbnh', 'tbnw', 'fp', 'ei', 'usg', 'sig2', 'tbs', 'ved', //--- Appearance Setting Params (default: Disabled) --- // If you want to delete these params, please reveal the comment out. // 'tbo', //tbo=1: Display search toolbar // 'prmdo', //prmdo=1: Expand 'services' in toolbar // 'sout', //sout=1: Change UI of Google Image Search to old version // 'esrch', //esrch=instantpreviews: Enable instant preview // 'filter', //filter=1: Filter similar pages // 'hl', //Interface language // 'lr', //Search target language // 'ie', //Query encoding // 'oe', //Search r###lt encoding // 'noj', //noj=1: No JavaScript //--- Unknown Params --- 'pdx', 'ech', 'psi', 'emsg', 'facrc', 'imgdii', 'iact', 'ndsp', 'tx', 'ty', ]; // --- /Config --- var delParamReg = new RegExp('&(?:' + deleteParams.join('=[^&#]*|') + '=[^&#]*)', 'g'); var overwriteParamReg = new RegExp('&(?:' + addParams.map(function(i){return i.split('=')[0];}).join('=[^&#]*|') + '=[^&#]*)', 'g'); //Delete and add params function urlFix(url){ var _url = url; //delete params _url = url.replace(delParamReg, ''); //overwrite and add params _url = _url.replace(overwriteParamReg, '').replace(/&$/, ''); _url += '&' + addParams.join('&') + '&urlfixed=1'; return _url; } //Reload page when hash is changed (when search from textbox on r###lt page) function hashChange(){ //Exclude Image Search if(location.search.indexOf('tbm=isch') !== -1) return; var newURL = ('https://' + location.host + '/search' + location.search + '&' + location.hash.substr(1)); newURL = urlFix(newURL); location.replace(newURL); } if(location.href.indexOf('urlfixed=1') === -1){ location.replace(urlFix(location.href)); } window.addEventListener('hashchange', hashChange, false); })();