Skip to content

Instantly share code, notes, and snippets.

@cx-shay-shimonov
Created July 18, 2015 15:15
Show Gist options
  • Select an option

  • Save cx-shay-shimonov/4b1f6616a7afabc1ce2a to your computer and use it in GitHub Desktop.

Select an option

Save cx-shay-shimonov/4b1f6616a7afabc1ce2a to your computer and use it in GitHub Desktop.

Revisions

  1. cx-shay-shimonov created this gist Jul 18, 2015.
    143 changes: 143 additions & 0 deletions gistfile1.txt
    Original file line number Diff line number Diff line change
    @@ -0,0 +1,143 @@
    // ==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 results the initial query returned
    'as_q', //When searching within results, the query is added as_q
    'oi', //Universal search: Group name
    'resnum', //Universal search: Number of a result 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 result 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 result 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);

    })();