Tutorial
Aadithyan
AadithyanJun 26, 2026

Learn the essential Google Search URL parameters for 2026, including q, gl, hl, udm, start, tbs, and deprecated values like num=100.

Google Search URL Parameters: Complete 2026 Reference

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=100 is dead; you must paginate 10 results at a time.
  • Domain shift: Country-specific domains (like google.co.uk) redirect to google.com.
  • AI control: udm is 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:

ParameterPurposeStatusBest used for
qHolds the queryDocumentedBase searches
glSets country contextDocumentedRegional SEO
hlSets interface languageDocumentedData consistency
lrRestricts content languageDocumentedCross-border research
uuleOverrides exact city/coordsObserved/StableLocal SEO
startControls pagination offsetDocumentedBulk extraction
udmToggles AI vs Web viewsObserved/StableBypassing AI
tbsFilters dates and verbatimObserved/StableNews & fresh audits
filterToggles duplicate clusteringObserved/StableDeep-link discovery
safeToggles SafeSearchDocumentedSafe 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:

  1. Spaces in queries become + or %20.
  2. Exact-match quotes must be URL-encoded as %22.
  3. Search operators stay inside the q string 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=0 is page 1, start=10 is 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 udm parameters generally supersede tbm behavior.
  • 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:1 for verbatim.
  • Status: Observed / Stable.

filter (De-duplication)

  • What it does: Toggles omitted results. Setting filter=0 forces Google to show duplicates and highly similar syndicated content.
  • Status: Observed / Stable.

pws (Personalization)

  • What it does: Setting pws=0 strips user-history personalization. In December 2024, Google legitimized this by adding a Try without personalization SERP button that explicitly appends pws=0. It does not, however, strip IP or gl localization.
  • 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: gl assigns the legal/regional index; hl only translates the interface.
  • Coordinates > Country: uule overrides gl precision.
  • Display > Verticals: udm dominates legacy tbm modes.

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 %s where the query goes. Typing your shortcut automatically routes the keyword into the %s variable.

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=100 is dead. Implement start pagination.

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=100 is deprecated.
  • Fix: Iterate requests using start pagination (start=0, 10, 20).

The interface language breaks my HTML parser

  • Root cause: hl is unset, letting Google infer language via IP.
  • Fix: Append &hl=en to 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=14 to 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:

  1. Discovery: Use a managed Search endpoint to return deduplicated candidate links. This abstracts away the need to hand-manage udm, gl, and hl strings.
  2. 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).
  3. 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 to google.com as of April 2025. Use gl instead.
  • 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.

About the Author

Aadithyan Nair

Founding Engineer, Olostep · Dubai, AE

Aadithyan is a Founding Engineer at Olostep, focusing on infrastructure and GTM. He's been hacking on computers since he was 10 and loves building things from scratch (including custom programming languages and servers for fun). Before Olostep, he co-founded an ed-tech startup, did some first-author ML research at NYU Abu Dhabi, and shipped AI tools at Zecento, RAEN AI.

On this page

Read more