Skip to content

Instantly share code, notes, and snippets.

@sshay77
Created July 18, 2015 15:15
Show Gist options
  • Star 38 You must be signed in to star a gist
  • Fork 15 You must be signed in to fork a gist
  • Save sshay77/4b1f6616a7afabc1ce2a to your computer and use it in GitHub Desktop.
Save sshay77/4b1f6616a7afabc1ce2a to your computer and use it in GitHub Desktop.
google-search-url-parameters-query-string-
// ==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);
})();
@Leonidius20
Copy link

Do you know the params for the autocomplete URL (google.com/complete)? especially regarding the language of the suggestions. thank you

@ilyazub
Copy link

ilyazub commented Oct 13, 2021

Do you know the params for the autocomplete URL (google.com/complete)? especially regarding the language of the suggestions. thank you

@Leonidius20

q — the search query.
gl — the two-letter country code. List of supported countries.
hl — the two-letter language code. List of supported languages.
cp — the position of cursor for the query provided, position starts from 0 which is a case where the cursor is placed before the query |query. If not provided acts as the cursor is placed at the end of query query|.
client — the client for an autocomplete. List of supported clients.

Source: Google Autocomplete API from SerpApi.

Disclaimer: I work at SerpApi.

@Leonidius20
Copy link

@ilyazub thank you! :)

@LeninZapata
Copy link

Hello, does anyone know how to obtain the USG parameter?
Here I have an example, the parameter:

I get the "ved" parameter from a google search, it can be seen from the inspector, but I don't know how to get the "UGS" parameter.

I tried to send me an email to with my url from gmail, there you also get the parameter, I got the USG but it doesn't work because it's hand coded from another url variable and it didn't work. So I don't know how that person was able to get that link with the USG variable (hash) of the page.

Does anybody have an idea?

@LeninZapata
Copy link

@hochun836 How did you get the usg so I can go to the page without redirection?

@hochun836
Copy link

(1) url from
image


(2) url from
image


@LeninZapata
Copy link

Hello, I can't get your result :( could you make a short explanatory video?
▶️ https://recordit.co/JGHFdnjzoq

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