Why do I say “in 2012″? Well, the Google URL changed over time and more parameters were added to keep pace with the increasing complexity of the search product, the Google interface and the integration of verticals. Before looking at the parameter table below, though, I encourage you to quickly perform the following 2 things:

  1. Go directly to Google and search for your name. Look at the URL.
  2. Go directly to DuckDuckGo and perform the same search. Look at the URL.

This little exercise serves well to demonstrate just how simple and how complicated URLs used by search engines can look like. These two cases are at the opposing ends: While DuckDuckGo has only one search parameter, your query, and is therefore quite readable, Google uses a cryptic construct that only IT professionals can try to decipher. What I find interesting is that on my Smartphone, though, the Google search URL is much simpler than on the desktop.

This blog post is primarily aimed at Google’s web search. I will not look at their other verticals such as scholar or images. But because image search is so useful, I encourage you to look at the image section of the Unofficial Google Advanced Search guide. Google also shares some of their well-known parameters in their search protocol reference, so you might want to refer to it for languages, countries and other standard things.

Now, without any more interruptions look at the search parameters Google reveals to us.

Normal Search – all you really need

DuckDuckGo shows us all we really need when searching, a “search?” initializer followed by the query. Not more and not less. When sharing Google searches online you might want to limit the URL to only this single one parameter.

Parameter (with example) Description
q=your+query Primary Google search parameter containing your query. Usually appears directly after the search? initiator. When you search directly via the Google website you don’t see the search? initiator anymore. But searches from e.g. Browser toolbars still have it.

Advanced search operators

Google is quite versatile. It offers many ways to filter results. Therefore, knowing the advanced search operators can significantly enhance your productivity when working with Google. You will find some parameters more interesting than others. Try combining the different values to get the results you are really looking for.

Parameter (with example) Description
as_q=should+contain The results should contain all of the words entered, same as normal search
as_epq=must+include It’s the exact phrase that you’re looking for. It can also be entered in brackets like “must include”
as_oq=any+of+these The results should contain any of these words, the search operator is OR
as_eq=none+of+these The results should contain none of these words, the search operator is -
as_dt=e What as_eq is for queries as_dt is for operators, as_dt=e excludes the following operator, as_dt=i includes it, e.g. as_dt=e&as_filetype=pdf returns results excluding pdfs, can also be entered using the - in front of the operator
as_filetype=pdf Returns results of a certain filetype, e.g. pdf, can be entered into query filetype:
as_lq Returns a sample of links to any site, also usable via the link: command
as_sitesearch Search a specified site, you can also use the operator site:
as_rq Shows a sample of related websites, also addressable using related:
as_occt=any Specify where keywords shall occur on the page 
  • any
  • title
  • body
  • url
  • links
as_nlo=1 Numbers range starts with 1
as_nhi=44 Numbers range ends with 44 a range. It can be typed into the search bar using 2 full stops .. between the first and last number
as_rights=cc_attribute This attribute limits the search results to pages that have certain rights. It is quite useful for things like image or graphics search. The possible attributes are: 
  • cc_publicdomain
  • cc_attribute
  • cc_sharealike
  • cc_noncommercial
  • cc_nonderived

You can combine all of these attributes in one query putting them in brackets and combining them via the | character.

num=100 Sets the number of results per page. It can only be used if Google Instant results are turned off (see below complete=0). Instant limits results to 10 per page.

Country and language

Google uses certain country codes and language names in its search. For more localized results you can even enter certain cities or provinces.

Parameter (with example) Description
hl=en Language settings passed down by your browser, here English
lr=lang_cs The language the results should be in, here in Czech
cr=countryZA The region the results should come from, here South Africa
gl=ca Can be used to find results as if the search was conducted in a specified location, here Canada. However, given the fact that Google uses many cues for determining your actual location the results can be unreliable. Try turning off localization as much as possible to increase accuracy. The following article shows a way to remove localization from the Google results and this blog post offers a concise guide.
gr=US-NY Just as gl shows you how results look in a specified country, gr limits the results to a certain region, here New York
gcs=Pittsburg Limits results to a certain city, you can also use latitude and longitude
gpc=1020547 Limits results to a certain zip code, here agin Pittsburg
gm=619 Limits results to a certain metropolitan region, here Springfield MO
ie=utf-8 input encoding
oe=utf-8 output encoding

Google’s advanced search tools

Parameter (with example) Description
tbs=rl%3A1%2Crls%3A0 Reading level: only basic results
tbs=rl%3A1%2Crls%3A1 Reading level: only intermediate results
tbs=rl%3A1%2Crls%3A2 Reading level: only advanced results
tbs=rl%3A1 Reading level: annotate reading level
tbs=dfn:1 Dictionary: definition of a word
tbs=img:1 Sites with images
tbs=sts:1 More text
tbs=clir:1 Translated foreign pages
tbs=li:1 Verbatim results
tbs=vid:1 Video results
tbs=nws:1 Google news results
tbs=rltm:1 Google realtime results
tbs=qdr You can specify different time periods 
  • tbs=qdr:s – previous second
  • tbs=qdr:n – previous minute
  • tbs=qdr:h – previous hour
  • tbs=qdr:d – previous day
  • tbs=qdr:w – previous week
  • tbs=qdr:m – previous month
  • tbs=qdr:y – previous year
  • specify filter results by time frame, by appending it with ,sbd:1, such as tbs=qdr:m,sbd:1 you get search results sorted by date
oi=video_result The “oi” parameter is used for universal search results. You can use it in Google analytics filter to understand when people come to your site via the universal search results. Different universal search categories have their own parameters, here video results. Other notable categories are: 
  • Revisions_inline – related searches
  • image_result – image results
  • spell – spelling suggestion
  • Blogsearch_group – blog search results

Other factors

This section contains some of the most important Google parameters. You will learn how to turn off personalization and about the diverse filters that are applied by default.

Parameter (with example) Description
pws=0 Parameter that allows you to turn-off personalization
cd=2 Passes down the keyword rank clicked. In analytics suites this can come in handy if you’d like to track the keyword rank. A guide how this can be applied can be found here
pq=previous+query Shows the previous query. This parameter appears when switching queries during one Google session. It might be quite valuable to extract this parameter for analytics purposes to detect search chains. (thanks for the suggestion Reinier)
oq=original+query Shows the original query. Try searching for one thing, say sunflowers and then searching on for sunflower seeds. You’ll notice in the URL that a parameter oq=sunflower+X appears. X might be “seeds” or just nil depending on whether or not you have clicked on the Google suggest query. The query parameter will show the full query “&q=sunflower+seeds”, though. (thanks for the suggestion Reinier)
filter=0 Include omitted results
complete=0 Turn auto-suggest and Google Instant on (=1) or off (=0)
nfpr=1 Turn off auto-correction of spelling
ncr=1 No country redirect: Allows you to set the Google country engine you would like to use despite your current geographic location. Though it works best if no Google cookie has been set yet.
safe=on Turns the adult content filter on or off
biw=1920 Browser inner width, here 1920px
bih=832 Browser inner height, here 832px
start=30 Show results rankings from this number, so 30 is page four for 10 results per page
sa= User search behavior parameter 
  • sa=N – User searched
  • sa=X – User clicked on related searches in the SERP
ei= Passes on an alphanumeric parameter that decodes the originating SERP where user clicked on a related search. For instance when looking for coconut water and clicking on “Whole Foods” you will notice the ei=… parameter. This parameter will be equal for all related search links. However, if you click on “Amazon” and then on “Whole Foods” (all through the related results links) you will notice a different “ei” parameter value for the same SERP, because the originating SERP “Amazon coconut water” was different from just “coconut water”.
btnG=”Search” Text that appears on the search button (customization option for including search on one’s own site), here “Search”
newwindow=1 Open the results in a new window
navclient/client/sourceid=ie7 Where the search originated from, e.g.: 
  • navclient – Google toolbar
  • navclient-ff – Google search toolbar for Firefox
  • firefox-a – Firefox search box
  • chrome
rls=org.mozilla:en-US:official Source of query with version of the client and language set, other examples are can be found here
source=univ Google navigational parameter specifying where you came from, here universal search
tbo=1 Always show search tools in the left sidebar
prmd= Parameter that determines which of Google’s vertical search engines are suggested in the left sidebar besides web, they can be combined, the most important ones are: 
  • prmd=a – only applications
  • prmd=b – only books
  • prmd=c – only places
  • prmd=d – only discussions
  • prmd=i – only images
  • prmd=n – only news
  • prmd=s – only shopping
  • prmd=p – only patents
  • prmd=u – none (only web)
  • prmd=v – only video
stick= The stick parameter is one of the newest additions that we will likely see more and more. It encodes the knowledge graph box that is shown on the right next to many different queries. Try playing around with it. Have a look at this post that goes into more detail. (Thanks a lot for the suggestion Lev)

Unclear Parameters

Google keeps adding new parameters to its URL. While most parameters are known, some aren’t. During my research I could not come up with the function of the following parameters. If you’re aware of what they do please post it into the comments section.

Parameter Description
ved= Passes on an alphanumeric parameter. Not clear what it is used for.
fp= Passes on an alphanumeric parameter. Not clear what it is used for. However, results change when parameter is removed.
usd= Passes on an alphanumeric parameter. Not clear what it is used for. Often contains part of the query string.
channel=fflb ?
qscrl=1 ?
hs=jXu ?

Deconstructing Google url search parameters