🏠 Home 

Google Search Better Privacy

Delete unnecessary params and add useful params on Google Search.


Install this script?
// ==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);
})();