Impersonal.me

Google UULE Generator & Decoder

Generate exact Base64 UULE location parameters and decode existing tokens to simulate localized Google search rankings, Local 3-Packs, and organic SERPs without a VPN.

URL: https://www.google.com/search?q=&pws=0...
tld
hl
gl / cr
Save Custom Settings & Cities
Save your search setup or add cities as quick buttons
Save Profile
Save City
Google Power Parameters Optional parameters for technical SERP research. Inactive by default.
lr
tbs=qdr
safe
Build with pain

Two-Way Google UULE Converter (Encode & Decode)

Live 2-Way Sync

Type a city or canonical location to generate its Google UULE parameter, or paste an existing UULE token / Google URL to decode its location in real time:

Quick Samples:
Encode →
← Decode
Length:
Length Key:
Protocol: Type 1 (w+CAIQICI Canonical)
Status: Ready
Søren Riisager
🇩🇰 Denmark • 20+ Years in Search

I am an SEO Geek from Denmark. I’ve worked with search for over 20 years, helping people understand how Google works and how to use that knowledge to grow. Along the way, I’ve built free tools for keyword research, technical SEO, and SERP analysis. My focus is always on clarity, usefulness, and real data.

Learn more about Google UULE Generator & Decoder & SEO Guide (FAQ)

Why SEOs & Engineers Use Impersonal UULE Generator

The most precise and lightweight Google location parameter generator for local rank tracking, audits, and automated scrapers.

Exact Base64 UULE Encoding

Generates Google's official length-keyed Base64 UULE parameter for over 50 million cities, municipalities, and postal codes worldwide.

Instant Reverse UULE Decoder

Paste any existing Google URL or UULE token to instantly decode and inspect its canonical location, region, and target country.

Google Sheets =UULE() Formula

Includes copy-and-paste Google Apps Script code to generate bulk UULE parameters directly in spreadsheets for automated reporting.

Python, Node.js & cURL Ready

Includes open-source Python, JavaScript, and shell algorithms ready to copy directly into your custom scrapers and rank trackers.

The Definitive Technical Guide to Google UULE

Everything you need to know about Google's Universal Unique Location Identifier, Base64 length-key hashing, protocol buffer structures, and automated developer integration.

1. What is a Google UULE Parameter? (Definition, Purpose & Architecture)

A UULE is an encoded URL query parameter (&uule=) utilized by Google's search infrastructure to determine the exact geographical location of a search request. Originally engineered for Google Ads testing and localized search quality validation, UULE overrides client-side IP geolocation, Wi-Fi triangulation, and device GPS sensors.

For search engine optimization (SEO) agencies, rank tracking software engineers, and digital advertisers, the UULE parameter allows deterministic simulation of hyper-local search engine results pages (SERPs), embedded Google Maps Local 3-Packs, and local organic rankings from any village, city, or postal centroid globally—without needing residential proxies or commercial VPNs.

2. The Mathematical Structure & Secret 64-Character Length Table

Standard canonical Google UULE tokens adhere to a strict structural blueprint consisting of three sequential parts:
  1. Protocol Prefix: The static 9-character string w+CAIQICI.
  2. Secret Length Key: A single character denoting the string length of the canonical location name, calculated via an undocumented 64-character lookup table.
  3. Base64 Payload: The standard RFC 4648 Base64 encoding of the canonical location string (UTF-8).

The UULE Hashing Formula

Given canonical string S of character length L = len(S):
LengthKey = TABLE[L % 64]
UULE = "w+CAIQICI" + LengthKey + base64_encode(S)

The secret 64-character lookup table maps character count (modulo 64) as follows:

Index RangeLength Key CharactersSample Length Mapping
0 – 25A, B, C, D, E, F, G, H, I, J, K, L, M, N, O, P, Q, R, S, T, U, V, W, X, Y, ZLength 10 = K, Length 24 = Y
26 – 51a, b, c, d, e, f, g, h, i, j, k, l, m, n, o, p, q, r, s, t, u, v, w, x, y, zLength 26 = a, Length 38 = m
52 – 610, 1, 2, 3, 4, 5, 6, 7, 8, 9Length 52 = 0, Length 60 = 8
62 – 63- , _Length 62 = -, Length 63 = _

Concrete Example: Consider the location Chicago,Illinois,United States. The string contains exactly 30 characters. In our lookup table, index 30 corresponds to lowercase e. The Base64 encoding of Chicago,Illinois,United States is Q2hpY2FnbyxJbGxpbm9pcyxVbml0ZWQgU3RhdGVz. The resulting token is w+CAIQICIeQ2hpY2FnbyxJbGxpbm9pcyxVbml0ZWQgU3RhdGVz.

3. The Two UULE Formats: Canonical Names (w+) vs. GPS Coordinates (a+)

Google supports two distinct UULE parameter variants:
  • Type 1: Canonical Geo Name (Prefix: w+CAIQICI): The standard format used throughout SEO and PPC. It maps directly to Google's official AdWords/Google Ads geographical criteria database (e.g. City,State,Country). This is 100% deterministic, human-readable upon decoding, and accepted across all Google search endpoints worldwide.
  • Type 2: Protocol Buffer GPS Coordinates (Prefix: a+): An encoded binary Protocol Buffer (Protobuf) containing hardware GPS attributes: timestamp (in microseconds), latitude (multiplied by 10^7 as a 32-bit integer), longitude (multiplied by 10^7), accuracy radius in meters, and location producer source code. Because Google frequently deprecates or alters internal Protobuf schemas, w+ canonical strings are universally preferred for automated rank tracking and audit reproducibility.

4. Google Sheets Formula: Generate UULE in Bulk with Apps Script

You can generate thousands of UULE parameters directly in Google Sheets without third-party add-ons. Follow this simple setup:
  1. In your Google Sheet, click Extensions > Apps Script.
  2. Delete any existing template code and paste the script below.
  3. Click Save (Ctrl+S) and return to your sheet.
  4. Use the formula =UULE(A2) where cell A2 contains the target city (e.g. Austin,Texas,United States).

Google Apps Script (paste into Extensions > Apps Script)
/**
 * Generates a Google UULE parameter from a canonical location string.
 * @param {string} location Target location (e.g. "Seattle,Washington,United States")
 * @return {string} Canonical Google UULE parameter string
 * @customfunction
 */
function UULE(location) {
  if (!location || typeof location !== 'string') return "";
  var table = "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789-_";
  var clean = location.trim();
  var key = table.charAt(clean.length % 64);
  var encoded = Utilities.base64Encode(clean, Utilities.Charset.UTF_8);
  return "w+CAIQICI" + key + encoded;
}

/**
 * Builds a complete depersonalized Google search URL with UULE and pws=0.
 * @param {string} keyword Search query (e.g. "personal injury lawyer")
 * @param {string} location Target city/region
 * @return {string} Clickable Google Search URL
 * @customfunction
 */
function GOOGLE_LOCAL_SEARCH(keyword, location) {
  if (!keyword) return "";
  var base = "https://www.google.com/search?q=" + encodeURIComponent(keyword) + "&pws=0";
  if (location) {
    base += "&uule=" + UULE(location);
  }
  return base;
}

5. Production Code Snippets: Python 3, Node.js & cURL

Integrate UULE generation directly into your automated rank checking scripts, Puppeteer/Playwright scrapers, and data pipelines.

Python 3 Implementation
import base64
import urllib.parse

def generate_uule(location: str) -> str:
    """Generate exact length-keyed Base64 Google UULE parameter."""
    lookup = "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789-_"
    clean_loc = location.strip()
    key = lookup[len(clean_loc) % 64]
    b64_payload = base64.b64encode(clean_loc.encode('utf-8')).decode('utf-8')
    return f"w+CAIQICI{key}{b64_payload}"

def build_google_url(query: str, location: str, gl: str = "us", hl: str = "en") -> str:
    """Builds a complete depersonalized localized Google URL."""
    uule = generate_uule(location)
    params = {
        "q": query,
        "uule": uule,
        "gl": gl,
        "hl": hl,
        "pws": "0",
        "nord": "1"
    }
    return f"https://www.google.com/search?{urllib.parse.urlencode(params)}"

# Example Usage:
target_city = "Munich,Bavaria,Germany"
search_url = build_google_url("steuerberater", target_city, gl="de", hl="de")
print("Target URL:", search_url)

Node.js / Modern JavaScript
function generateUule(location) {
  const chars = 'ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789-_';
  const target = location.trim();
  const key = chars[target.length % 64];
  const b64 = Buffer.from(target, 'utf-8').toString('base64');
  return 'w+CAIQICI' + key + b64;
}

function decodeUule(uuleToken) {
  if (!uuleToken || !uuleToken.startsWith('w+CAIQICI')) {
    throw new Error('Invalid UULE format: missing w+CAIQICI prefix');
  }
  const base64Payload = uuleToken.slice(10);
  return Buffer.from(base64Payload, 'base64').toString('utf-8');
}

// Example Verification:
const token = generateUule('Austin,Texas,United States');
console.log('Encoded:', token);
console.log('Decoded:', decodeUule(token));

6. UULE vs. VPNs & Datacenter Proxies for Local SEO

Digital marketing agencies frequently waste substantial budgets on commercial VPN subscriptions or expensive residential proxy networks. The table below details why UULE is mathematically superior for search audits:
Evaluation MetricGoogle UULE ParameterCommercial VPNResidential Proxy
Suburban Precision✅ Exact Neighborhood & Postal Code❌ Major Metros Only⚠️ Coarse ASN routing
CAPTCHA Resistance✅ Zero CAPTCHAs (Native Parameter)❌ Frequent Cloudflare/Google Blocks⚠️ Occasional Captchas
Execution Latency⚡ 0ms Overhead (Direct Request)⚠️ 200–800ms routing lag⚠️ 400–1200ms tunnel lag
Cost & Infrastructure🆓 100% Free Forever💳 $5–$15 / month per seat💳 $10–$25 per GB bandwidth
Audit Reproducibility✅ 100% Deterministic URL❌ Varies by assigned exit IP❌ Rotates IPs constantly

7. Google Ads Criteria Verification & Geotargets CSV

Google's search engine parses UULE canonical strings against its official Geographical Targeting Database. To ensure 100% compatibility:
  • Always format strings in hierarchical order: City,Region/State,Country (e.g. Aarhus,Central Denmark Region,Denmark).
  • For postal codes, append the metropolitan area: 90210,Los Angeles,California,United States.
  • Avoid colloquial abbreviations like NYC or SF; use official canonical names (New York,New York,United States). Impersonal.me's built-in autocomplete automatically normalizes your search into Google's official canonical nomenclature.

8. How to Reverse Decode Any Existing Google UULE Parameter

If you encounter a UULE token in a client report, scraping log, or competitor URL, you can reverse engineer it in two seconds:
  1. Identify and strip the static 9-character prefix: w+CAIQICI.
  2. Discard the 10th character (the secret length key).
  3. Pass the remaining substring through standard Base64 decoding (using atob() in browsers, Buffer.from(payload, 'base64') in Node.js, or base64.b64decode() in Python).

Alternatively, use our interactive Reverse Google UULE Decoder located directly above this guide to paste and inspect tokens instantly.

Frequently Asked Questions about UULE

What does UULE stand for in Google Search?

UULE stands for Universal Unique Location Identifier (or Universal URL-encoded Location Entity). It is an internal parameter utilized by Google to determine geographic search ranking relevance without relying on IP geolocation.

What is the purpose of a UULE generator?

A UULE generator creates an exact geographic location token that instructs Google to display search results, Local 3-Packs, and Map listings exactly as a user standing in that physical city or postal code would see them, without needing a VPN.

Why do standard UULE strings start with w+CAIQICI?

The prefix 'w+CAIQICI' is Google's internal protocol buffer identifier indicating that the parameter contains a canonical geographical string rather than raw GPS latitude/longitude coordinates (which use the 'a+' prefix).

Can I use UULE in Google Sheets for automated rank tracking?

Yes. By pasting our custom Google Apps Script into your spreadsheet, you can call =UULE(A2) to generate tokens in bulk and construct live audit links for hundreds of client locations simultaneously.

Can I generate UULE parameters for any city in the world?

Yes. As long as the city, town, or region follows Google's canonical geographic hierarchy (e.g. City, Region, Country), Google's search algorithms recognize and apply the location.

Does UULE work with Google Maps or only Web Search?

The UULE parameter is specifically built for Google Web Search (google.com/search) to trigger localized organic rankings and embedded Google Maps 3-Packs. For direct Google Maps navigation, Google uses coordinates and CID place IDs.

How do I decode a UULE parameter?

You can decode a standard UULE token by removing the 9-character 'w+CAIQICI' prefix and the 1-character length key, then decoding the remaining Base64 string back into plain UTF-8 text using our interactive decoder.

Is this UULE Generator 100% free?

Yes, Impersonal.me's UULE Generator is 100% free with no registration, no API keys, no query limits, and no subscription paywalls, created by veteran SEO specialist Søren Riisager.

Copied to clipboard

Remove saved shortcut?

Are you sure you want to remove from your saved shortcuts?