The three parameters that decide which Google you see
Type google.com/search?q=plumber&gl=ca&hl=en&uule=... and you're not looking at "Google" anymore. You're looking at Google for one specific place, in one specific language, as decided by three fields in the URL. Change any one of them and the ten blue links reorder, the local pack swaps out, and the ads change advertiser.
gl is the country. Two-letter code: ca for Canada, us for the States, gb for the UK. It tells Google which country's version of Search to serve. Set gl=ca and you get what Google thinks a searcher in Canada should see, which is not the set a searcher in the US gets for the same query. The gl parameter shifts the country context, and for anything with commercial intent that shift shows up in the first screen.
hl is the interface language, not the content language. hl=en gives you English labels and English-tuned results. hl=fr gives you the French interface. In a bilingual country this matters more than most rank trackers admit. A Montréal café owner checking hl=fr sees a different framing than the same business checked under hl=en. The full list of hl values runs to dozens of language codes, and Google treats each as a real signal about who's asking.
Then there's uule, which does the heavy lifting.
What uule actually encodes
gl gets you to the right country. It does not get you to Burnaby. For "coffee near me" or "emergency dentist," the country is almost irrelevant. What reorders the results is the precise place Google thinks you're standing, and that place travels in the uule parameter.
uule carries an encoded canonical location string. Not "Burnaby" as free text, but the exact canonical name Google recognizes, something like Burnaby,British Columbia,Canada, wrapped in an encoding Google's front end will accept. Feed it a location the way Google's UULE parameter expects and Search behaves as though the query started there. Get the canonical string wrong and Google ignores it, falling back to your real IP.
This is the difference between guessing and checking. You can check Google results for different locations by building the uule value instead of physically travelling or spinning up a proxy in each city. Someone in Vancouver can see the Calgary local pack, the Toronto ads, the Seattle organic results, all from one browser.
Where do the canonical names come from? Not from guessing at "City, Province, Country" and hoping. Google publishes a geotargets dataset, the same criteria IDs and canonical location names the Google Ads system uses for targeting. Each entry has a stable ID and an exact canonical name. That dataset is the dictionary. A uule built from an official canonical name resolves cleanly. A hand-typed approximation is a coin flip.
anywhereserp builds its geo-targeted URLs from exactly this: gl for country, hl for language, and a uule encoded from Google's official Geotargets canonical names. That's the whole reason a preview from it lines up with what a real user in that city loads, instead of what your desk in Burnaby happens to load.
Why your rank tracker and your browser disagree
Open Chrome in Vancouver, search "personal injury lawyer," note the top three. Now ask a colleague in Toronto to run the identical query. The lists won't match. Neither of you is wrong. Google served each of you a locally-weighted result set based on where the request came from, and neither is the "national" ranking your reporting dashboard claims to show.
Two searchers, two cities, one query, different SERPs. That's the normal state of Google, not a bug. For a plumber whose service area is three suburbs wide, the ranking that matters is the ranking inside those three suburbs, and the only way to see it is to ask Google as if you were there. Which means setting uule to those places one at a time.
The trap for Canadian businesses: a lot of tooling defaults to gl=us. Run your audit that way from a BC office and you're grading yourself against the wrong country's Google. The organic set can look fine while the version your customers in Surrey or Kelowna see puts you below three competitors and a map pack you never appeared in.
Language compounds it. A business in a bilingual market checked only under hl=en is auditing half its exposure. Flip hl and the advertisers bidding on the French query may be different companies entirely, which changes both your SEO read and your PPC read of the same auction.
Comparing two markets side by side
Here's the practical shape of it. Pick your query. Fix hl to the language your customer uses. Build two URLs that differ only in the uule value, market A and market B, and load them next to each other. Everything held constant except location means every difference you see is a location difference. That's a clean experiment, not an impression.
For an agency onboarding a client with offices in Vancouver, Calgary, and Winnipeg, this is the difference between one national screenshot and three honest local reads. The local pack composition, the "near me" behavior, the ad load, all of it moves per city, and all of it is invisible if you only ever check the Google your own connection resolves to.
The parameters aren't obscure. gl, hl, and uule are documented fields in the Google search URL, and any reference of Google search parameters lists them. What's easy to forget is that leaving them at their defaults is itself a choice. The choice to see one location's Google and call it the truth for everywhere your traffic comes from.
