Your cart is currently empty!
Google Search URL Parameters: Complete 2026 Reference
Google’s search URL accepts dozens of undocumented parameters that control results, date filters, language, location, and output format. this is the working reference for 2026, sourced from reverse-engineering and official documentation.
the base url structure
every Google search starts at https://www.google.com/search. the query string carries all the search configuration. the minimum required parameter is q (the query). everything else is optional but powerful.
for scraping purposes, always target google.com with explicit gl and hl parameters rather than country-specific domains. the gl parameter gives you cleaner, more predictable results and avoids regional redirect chains.
core parameters
q: query
the search query. URL-encode it. spaces become + or %20. use urllib.parse.quote_plus() in Python. advanced operators (site:, intitle:, filetype:) go inside q.
num: results per page
valid values: 10 (default), 20, 30, 50, 100. setting num=100 gives you the full first page in one request, which is essential for efficient scraping. SERP quality degrades beyond position 30; positions 31-100 are often thin or duplicate content.
start: pagination offset
zero-indexed. start=0 is page 1, start=10 is page 2 (with default num=10). combine with num: num=100&start=0 fetches 100 results in one shot.
gl: geolocation country
two-letter country code. gl=us, gl=gb, gl=sg. for rank tracking, always fix gl so results are consistent across requests.
hl: interface language
hl=en forces English interface. if you omit this, Google infers language from IP location, which breaks scraping consistency when you rotate proxies across regions.
lr: language restrict
restricts results to pages in a specific language. format: lr=lang_en, lr=lang_zh-TW. different from hl: hl controls the UI language, lr controls the language of pages returned.
date and freshness parameters
tbs: time-based search
values: tbs=qdr:h (past hour), tbs=qdr:d (past 24 hours), tbs=qdr:w (past week), tbs=qdr:m (past month), tbs=qdr:y (past year), tbs=cdr:1,cd_min:1/1/2025,cd_max:12/31/2025 (custom date range). for news monitoring pipelines, tbs=qdr:h pairs with tbm=nws for news-specific results.
result type parameters
tbm: type of search
tbm=nws– Google Newstbm=isch– Google Imagestbm=vid– Google Videostbm=shop– Google Shoppingtbm=bks– Google Books
output and format parameters
filter
filter=0 disables duplicate filtering and the omitted similar results cluster. always set this when scraping for comprehensive results. filter=1 (default) silently drops results Google considers duplicates.
nfpr
nfpr=1 disables automatic query corrections, which is critical for rank tracking exact queries.
a working python scraping example
import urllib.parse
from curl_cffi import requests as cffi_requests
def google_serp(query, num=10, gl="us", tbs=None):
params = {"q": query, "num": str(num), "gl": gl, "hl": "en", "filter": "0", "nfpr": "1"}
if tbs:
params["tbs"] = tbs
url = "https://www.google.com/search?" + urllib.parse.urlencode(params)
s = cffi_requests.Session(impersonate="chrome120")
return s.get(url, headers={"User-Agent": "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 Chrome/120.0.0.0 Safari/537.36", "Accept-Language": "en-US,en;q=0.9"}).text
html = google_serp("web scraping python", num=100, gl="us", tbs="qdr:m")
parameters to avoid
some parameters seen in older guides no longer work or actively trigger bot detection. pws=0 (disable personalization) was removed in 2021. as_sitesearch works but is slower than using site: inside q. complete=0 has no effect on server-side responses.
sources and further reading
- Google Custom Search API reference
- SerpApi Google Search parameters reference
- Moz: Google search parameters guide
Leave a Reply