You do not need the 200+ undocumented tracking tokens floating inside Google's backend. You need the handful of load-bearing controls that reliably dictate how search results render, paginate, and localize today. The landscape fractured between 2025 and 2026: JavaScript rendering became mandatory, num=100 died, and AI Overviews forced SEOs to adopt new display modifiers like udm.
What are Google Search URL parameters?
Google Search URL parameters are key=value controls appended to a results URL to modify query syntax, geographic location, interface language, display mode, and pagination. The most essential parameters for 2026 include q (core query), gl (country context), hl (UI language), udm (display mode), start (pagination), and tbs (time filters). Legacy parameters like num are deprecated.
This verified reference shows exactly which Google Search URL parameters still work, what changed recently, and what is risky to depend on in production environments.
What changed in Google Search URLs in 2025–2026
- The JS Wall: Automated retrieval now requires JavaScript rendering.
- Pagination limit:
num=100is dead; you must paginate 10 results at a time. - Domain shift: Country-specific domains (like
google.co.uk) redirect togoogle.com. - AI control:
udmis now the critical parameter for filtering out or triggering AI Overviews.
Legacy documentation fails because Google altered its underlying retrieval architecture. Relying on outdated parameter lists leads to incomplete data, high infrastructure costs, and incorrect localization.
JavaScript rendering became mandatory
Parameters fail if the transport layer fails. On January 15, 2025, Google implemented a strict JavaScript execution requirement for search queries. Unrendered HTTP requests frequently return empty or degraded HTML. Parameter manipulation for automated retrieval now requires a headless browser or a managed rendering API.
num=100 stopped working
Treat num as a dead parameter. In mid-September 2025, Google stopped honoring num=100. Appending it now simply returns a standard 10-result page. This disrupted the SEO industry overnight, with analysis showing 87.7% of monitored properties losing impressions because trackers could no longer scrape 100 results per request. start remains the only dependable pagination control.
AI Overviews made udm strategically important
The udm parameter transitioned from an optional trick to a mandatory display control. As Google expanded AI Overviews globally, SERP layouts became highly volatile. Power users adopted udm=14 to force the stripped-down, classic web view, while udm=50 explicitly triggers AI Mode. Controlling this parameter is required for clean rank tracking.
Country-specific domains redirect to google.com
Country targeting relies entirely on parameters, not domains. On April 15, 2025, Google began redirecting country code top-level domains (like google.co.uk or google.de) to google.com. You can no longer use domain selection as the primary localization method. The gl parameter now handles geographic routing.
How to use this reference
- Documented: Official parameters you can rely on (
q,gl,hl,start). - Observed / Stable: Undocumented but reliable (
udm,uule,tbs). - Internal: Tracking metadata to avoid setting manually (
ved,ei).
Trust parameters in tiers, not as a flat list. Hundreds of variables appear in Google URLs, but only a fraction govern ranking or display logic.
The Core 10 Parameters
If you only learn 10 parameters, memorize these:
| Parameter | Purpose | Status | Best used for |
|---|---|---|---|
q | Holds the query | Documented | Base searches |
gl | Sets country context | Documented | Regional SEO |
hl | Sets interface language | Documented | Data consistency |
lr | Restricts content language | Documented | Cross-border research |
uule | Overrides exact city/coords | Observed/Stable | Local SEO |
start | Controls pagination offset | Documented | Bulk extraction |
udm | Toggles AI vs Web views | Observed/Stable | Bypassing AI |
tbs | Filters dates and verbatim | Observed/Stable | News & fresh audits |
filter | Toggles duplicate clustering | Observed/Stable | Deep-link discovery |
safe | Toggles SafeSearch | Documented | Safe mode research |
Google Search URL format and anatomy
- Format: Base URL +
?+q=keyword+&+ modifiers. - Encoding: Spaces become
+or%20. Quotes become%22.
The standard pattern combines a base results URL with a parameter query string.
Search parameters example:
https://www.google.com/search?q=python+web+scraping&gl=us&hl=en&udm=14
Browsers and code libraries encode special characters differently. Keep these formatting rules strict in production:
- Spaces in queries become
+or%20. - Exact-match quotes must be URL-encoded as
%22. - Search operators stay inside the
qstring and encode naturally (q=site%3Aexample.com).
URL parameters vs search operators vs Custom Search JSON API
- Parameters (
&gl=us) live outside the query to control the engine. - Operators (
site:) live inside the query to filter the index. - Custom Search API uses a separate endpoint and incompatible syntax.
Do not conflate these three distinct systems.
Web search URL parameters sit outside the query block. They dictate how the engine processes the request and returns the UI (gl, hl, udm).
Google search operators modify the query string itself. Directives like site:, filetype:, and intitle: must live inside the q variable. (Read our dedicated Google Search Operators guide for syntax depth).
Custom Search JSON API is a separate endpoint (customsearch/v1) provided by Google Developers. Browser URL parameters do not map cleanly to API requests. For example, the web parameter for country is gl=us, but the API parameter requires cr=countryUS.
Complete reference by category
Core query parameters
q (Primary Query)
- What it does: Submits the main search phrase and acts as the container for in-line operators.
- Valid values: Text strings, operators.
- Status: Documented / Stable.
- Common mistake: Placing search operators directly into the URL string outside of
q.
Localization parameters
gl (Country Context)
- What it does: Sets the host country context, determining which geographic index Google queries.
- Valid values: ISO country codes (
us,uk,de). - Status: Documented.
hl (Interface Language)
- What it does: Sets the Google UI language (buttons, navigation). It does not strictly filter out foreign-language web pages.
- Valid values: ISO language codes (
en,es,fr). - Status: Documented.
uule (Exact Location Override)
- What it does: Bypasses IP geography to simulate searches from a specific city or coordinate. Crucial for Local SEO map pack testing.
- Valid values: Base64 encoded named places (
w+CAIQICI...) or coordinate strings. - Status: Observed / Stable.
Pagination parameters
start (Offset)
- What it does: Dictates the starting result offset. Since it is zero-indexed,
start=0is page 1,start=10is page 2. - Valid values: Numeric multiples of 10.
- Status: Documented.
num (Deprecated)
- What it does: Previously dictated the number of results per page (up to 100). Google fully disabled this in September 2025.
- Status: Deprecated. Remove it from your pipelines to avoid unexpected pagination behavior.
Display mode parameters
udm (Display Mode Layer)
- What it does: Forces specific UI display frameworks, making it the most strategic display parameter in 2026.
- Valid values:
14(Web only, no AI),2(Images),12(Shopping),50(Explicit AI Mode). - Status: Observed / Stable.
tbm (Legacy Verticals)
- What it does: Selects classic search verticals. Newer
udmparameters generally supersedetbmbehavior. - Valid values:
isch(Images),vid(Videos),nws(News). - Status: Documented / Stable.
Time, clustering, and personalization parameters
tbs (Date and Sort Controls)
- What it does: A multiplexed parameter controlling date ranges, sorting, and exact text matching.
- Valid values:
qdr:[h,d,w,m,y]for rolling windows,cdr:1,cd_min:...,cd_max:...for exact dates,li:1for verbatim. - Status: Observed / Stable.
filter (De-duplication)
- What it does: Toggles omitted results. Setting
filter=0forces Google to show duplicates and highly similar syndicated content. - Status: Observed / Stable.
pws (Personalization)
- What it does: Setting
pws=0strips user-history personalization. In December 2024, Google legitimized this by adding a Try without personalization SERP button that explicitly appendspws=0. It does not, however, strip IP orgllocalization. - Status: Documented.
Internal tracking parameters (Do not set)
Avoid manually setting ved, ei, or sxsrf. These are Protocol Buffer/Base64 strings Google uses to store session state, click-paths, and server routing metrics. They offer valuable decoding opportunities for analytics but break URLs if hardcoded into automated scrapers.
Parameter interactions and precedence
- Country > Language:
glassigns the legal/regional index;hlonly translates the interface. - Coordinates > Country:
uuleoverridesglprecision. - Display > Verticals:
udmdominates legacytbmmodes.
Google parameters stack by function, which creates hierarchy conflicts if mismatched.
gl + hl (Cross-border QA):
Setting gl=de and hl=en returns German-optimized localized results, but keeps the "News", "Images", and "Settings" UI buttons in English. This is ideal for parsing DOM elements predictably.
gl + uule (Local Pack QA):
The gl context cascades first to assign the national index, but uule forces the city-level coordinate precision. uule is strictly required for accurate local map pack tracking.
tbs + filter=0 (Deep Discovery):
Applying strict date ranges naturally limits the document pool. Appending filter=0 expands this narrow pool by preventing Google from burying identical news syndications.
Practical URL recipes
Copy these base patterns, then modify one parameter at a time. Avoid stacking unnecessary variables.
Country-level rank check
https://www.google.com/search?q=keyword&gl=uk&hl=en&udm=14
- Purpose: Extracts clean UK rankings without AI Overview layout shifts.
City-level local SEO check
https://www.google.com/search?q=plumber&gl=us&hl=en&uule=[Base64_String]
- Purpose: Tests map pack visibility from exact geographic coordinates.
News monitoring by exact date range
https://www.google.com/search?q=merger&tbs=cdr:1,cd_min:01/01/2026,cd_max:06/25/2026
- Purpose: Bounds search to precise historic timeframes.
Google Search URL for Chrome (Custom Search Engine)
https://www.google.com/search?q=%s&udm=14
- Purpose: Binds a custom browser shortcut to a precise set of parameters.
- How-to: Open Chrome Settings > Search Engines. Add a new site search. Use
%swhere the query goes. Typing your shortcut automatically routes the keyword into the%svariable.
Troubleshooting common failures
- Empty HTML: You hit the 2025 JS wall. Use a headless browser.
- Wrong labels: You forgot
hl=en, causing Google to localize the UI text. - 10 results only:
num=100is dead. Implementstartpagination.
I get empty or degraded HTML
- Root cause: No JavaScript rendering context.
- Fix: Since the January 2025 update, you must use browser automation (Playwright/Puppeteer) or a managed web data API layer.
I only get 10 results
- Root cause:
num=100is deprecated. - Fix: Iterate requests using
startpagination (start=0,10,20).
The interface language breaks my HTML parser
- Root cause:
hlis unset, letting Google infer language via IP. - Fix: Append
&hl=ento guarantee DOM text stability.
AI Overviews break my rank tracking
- Root cause: The default SERP dynamically injected an AI Overview container.
- Fix: Compare the default view against
udm=14to normalize the organic results format.
When hand-built Google URLs stop scaling
Manual URLs work for debugging. Switch to a managed Search API when you require scale, webhook delivery, or structured JSON parsing that bypasses the JavaScript rendering overhead.
Building manual parameters works for localized testing but becomes an operational bottleneck at scale. The 2025 JS rendering requirement, the 10x request volume increase caused by the num deprecation, and ongoing UI volatility make manual HTTP scraping brittle.
The automated call path:
- Discovery: Use a managed Search endpoint to return deduplicated candidate links. This abstracts away the need to hand-manage
udm,gl, andhlstrings. - Extraction: Pair robust HTML scrapes with pre-built parsers (like
@olostep/google-search) to automatically convert the unstructured DOM into structured JSON fields (organic links, Knowledge Graph, PAA). - Scale: Pass query lists to batch processing endpoints to handle thousands of URLs asynchronously, eliminating rendering bottlenecks and pagination friction.
Parameter graveyard
Remove these legacy assumptions from your workflow:
num=100: Disabled in late 2025. It no longer expands result pages.- Country domains (
google.de): Redirect togoogle.comas of April 2025. Useglinstead. - GSC URL Parameters Tool: Removed in March 2022. It handled website crawling rules, not SERP UI parameters.
- Raw HTTP requests: The 2025 JS wall breaks unrendered scrapers entirely.
FAQ
What parameter removes AI Overviews?
Appending udm=14 forces Google into a classic web-results view, which temporarily strips AI Overviews and rich knowledge panels from the page. Conversely, udm=50 activates AI Mode.
Does num=100 still work?
No. Google disabled num=100 in September 2025. You must use start=0,10,20 to paginate through roughly 10 results at a time.
What's the difference between gl and hl?
The gl parameter sets the geographic country context (triggering local laws and regional indices), while hl sets the interface language (translating UI buttons). They operate independently.
Are search operators URL parameters?
No. Search operators in web search (like site:) live strictly inside the q parameter string. URL parameters (like &gl=us) live outside the query and instruct the server on how to deliver the page.
Can I use these parameters with the Custom Search JSON API?
No. The Custom Search JSON API requires a separate endpoint and uses a different parameter schema (searchType, dateRestrict) rather than standard web URL parameters.
Do I need JavaScript rendering to scrape Google?
Yes. Since January 15, 2025, Google Search requires JS rendering to reliably deliver complete HTML payloads.
Final takeaway
The best complete list of Google Search URL parameters is the one that tells you what not to trust. While hundreds of internal tokens exist, the load-bearing parameters in 2026 are narrow. Recognizing the distinction between stable inputs (gl, hl, q, start), critical display controls (udm), and dead rules (num) prevents broken workflows. Keep your parameters focused, troubleshoot location data locally, and migrate to headless rendering APIs when manual upkeep fails to scale.
