Google Search URL Generator
Pick a query, country, language, location and filters to build a Google search URL, or paste one to see what each parameter does.
Search settings
The domain has not chosen the results country since 2017, and Google began redirecting country domains to google.com in 2025. Set the country with gl.
Google's own list uses uk for the United Kingdom.
Language of Google's menus and labels.
Only pages written in this language.
Copy the Canonical Name column of the Google Ads geo targets list exactly: place, region and country separated by commas, with no spaces after them. Set gl to the same country.
0 is page 1, 10 is page 2, 20 is page 3.
Account, school or network locks can still force filtering.
Search URL
Parameters in this URL
| Parameter | Value | What it does |
|---|
Google stopped honouring num (results per page) in September 2025, so the builder leaves it out. Use start to page through results.
Decode a Google URL
Decodes as you paste. A bare query string or uule value works too. Ctrl + Enter decodes.
Parameters
Paste a URL above to see each parameter and what it does.
| Parameter | Value | Meaning | Type |
|---|
Clean URL (tracking and session parameters removed)
How to use the Google Search URL Generator
Type a query and pick the settings you want. The URL rebuilds as you type, with a table below it listing each parameter and what it does. Use Copy URL or open it in a new tab. To go the other way, switch to Decode a URL and paste any Google search link: every parameter is labelled as a search setting, tracking, session state or no longer working, and you get a clean copy with the clutter removed. Edit in builder loads the decoded settings into the form so you can change one thing and rebuild. Everything runs in your browser. Nothing you type is sent anywhere.
Need a query with operators like site: or intitle: first? Write it in the
Search Query Generator and use its Localize link to bring it here.
The Google search parameters this tool sets
Google has never published a reference for the parameters on google.com/search. The closest official
source is the Programmable Search Engine JSON API, which documents gl, hl,
lr, cr, safe, filter and start with the same
values. The rest are long-standing conventions that SEO tools and SERP APIs depend on.
| Parameter | What it controls | Example |
|---|---|---|
| q | The query, with spaces sent as + | q=best+coffee |
| gl | The country the search runs from, as a two-letter code | gl=de |
| hl | The language of Google's interface | hl=fr |
| lr | Only pages written in these languages, joined with | | lr=lang_es |
| uule | A precise location such as a city, encoded | uule=w+CAIQICI… |
| tbm | Result type: isch images, nws news, vid videos, shop shopping, bks books | tbm=nws |
| tbs | Search tools, joined with commas: time range, custom dates, verbatim | tbs=qdr:w,li:1 |
| start | How many results to skip, so 10 is page 2 | start=10 |
| safe | SafeSearch: active filters explicit results, off does not | safe=active |
| filter | 0 shows the similar results Google normally omits | filter=0 |
| pws | 0 asks for results without personalization from your activity | pws=0 |
For tbs, qdr:h, d, w, m and y mean the
past hour, day, week, month and year. A custom range is cdr:1,cd_min:1/1/2024,cd_max:12/31/2024, with
dates written month first. li:1 is Verbatim: exact words, with no synonyms or spelling fixes.
Two parameters are deliberately left out. num, which set the number of results per page, stopped
working in September 2025, so paging with start is now the only way through the results. The Google
domain is not a country setting either. Since October 2017 Google has picked the country from the searcher's
location, not the domain, and in 2025 it started redirecting country domains to google.com. Use
gl to choose the country. The domain picker is there for testing and for matching old URLs.
How the uule location parameter works
gl sets the country. uule gets you down to a city, region or postal code. A uule
generator turns a location name into this value: w+, then a base64-encoded protocol buffer holding a
role, a producer and the location's canonical name. For New York,New York,United States it is:
w+CAIQICIfTmV3IFlvcmssTmV3IFlvcmssVW5pdGVkIFN0YXRlcw
The first bytes are the same for every location, so the value always starts w+CAIQICI. The next
character encodes the name's length in bytes: 31 here, which is f in the base64 alphabet. The rest is
the name in base64. Many guides print a lookup table for that length character. The table only works for names up
to 63 bytes and breaks on longer ones, and it goes wrong if you count characters instead of UTF-8 bytes, as
accented names like Zürich show. This generator encodes the full protobuf, so any length works. The
value is percent-encoded (+ becomes %2B) so every URL parser reads it the same way.
To encode or decode a uule on its own, or start from a preset city, use the
UULE generator.
The name must match the Canonical Name column of Google's
geo targets
list exactly, like Austin,Texas,United States, with commas and no spaces after them. Google
ignores names it does not recognise, and you get no error. Set gl to the same country too, which is
what SERP API providers recommend.
The decoder also reads the older a+ form, which carries latitude and longitude as plain text inside
base64 instead of a place name.
Why localized Google search results still differ
A localized Google search URL controls the parameters, not everything else. Google also estimates location from
your IP address and device, and if you are signed in, from your activity and saved places. Results vary between
data centers and ongoing experiments, and they change over time. For the most comparable checks, open URLs in a
private window, sign out, and treat pws=0 as a request, not a guarantee. When you compare rankings,
compare URLs with the same settings, taken close together in time.
How SERP APIs expose the same options
SERP APIs accept these settings as request fields instead of URL parameters, and the names mostly match. SerpApi
takes gl, hl, lr, tbs, start and
google_domain, plus a location field holding a canonical name. It builds the uule for you
and does not accept location and uule in the same request. DataForSEO uses
location_code, which is the Google Ads criteria ID from the same geo targets list (2840 for the
United States), together with a language_code. Build and check the parameters here, then use the
Search API Tester to send the equivalent request to a provider and see
what comes back.
Limits
Every parameter here is undocumented on google.com and can change without notice, as num did.
Google may ignore a uule it does not recognise, override settings from your account, or show a consent or
verification page instead of results. The builder handles one location per URL and a single result type. The
decoder explains the parameters it knows. Anything else is marked unknown and kept in the clean URL, so nothing is
lost. It decodes a URL you paste but never fetches it, so it can't tell you what the page returned.
Frequently asked questions
What is the difference between gl and hl in Google search?
gl sets the country the search runs from, so it changes which results rank. hl only sets the language of Google's buttons and labels. To limit results to pages written in a language, use lr, for example lr=lang_de.
How do I see Google results as if I were in another country or city?
Add gl with the country code, such as gl=us, and for a city add a uule built from its canonical name, such as Austin,Texas,United States. Open the URL in a private window while signed out, because your IP address and account can still influence the results.
Why is my uule parameter not changing the results?
The location name has to match Google's canonical name exactly, including commas with no spaces after them, and Google silently ignores names it does not know. Also set gl to the same country, and check you are not signed in with a saved location that takes precedence.
Does num=100 still work in Google search?
No. Google stopped honouring num in September 2025, so every page returns the default number of results. Use start=10, start=20 and so on to reach later pages.
What are ved, ei and sxsrf in a Google URL?
They are tracking and session values: ved records which link was clicked, ei identifies the search event, and sxsrf is a security token for your session. None of them change the results, so you can remove them before sharing a link.