Perché i SERP locali sono diversi
Google offre diversi risultati di ricerca in base a dove si trova il ricercatore. Una domanda per "miglior coffee shop" restituisce risultati completamente diversi a New York, Londra e Tokyo. Questa localizzazione si applica non solo alle query aziendali locali, ma anche a molte parole chiave commerciali e informatiche.
Per le aziende che servono specifici mercati geografici, il monitoraggio delle classifiche a livello nazionale è ingannevole. Un sito web potrebbe classificare #1 a Chicago ma #15 a Houston per la stessa parola chiave. Senza tracciamento SERP specifico per la posizione, stai prendendo decisioni SEO basate su dati incompleti.
Questo articolo spiega come implementare un monitoraggio SERP locale accurato utilizzando proxy residenziali geo-targeted. Per una visione più ampia del monitoraggio SERP, vedere il nostro raschiatura completa SERP con guida proxy.
Come Google Localizza i risultati della ricerca
Google utilizza più segnali per determinare quali risultati locali mostrare:
| Segnale | Come funziona | Impatto sui risultati |
|---|---|---|
| Geolocalizzazione IP | Google mappa l'IP del ricercatore in una posizione geografica | Fattore primario per i pacchetti locali e i risultati organici |
| Posizione GPS/dispositivo | I dispositivi mobili condividono coordinate precise | Risultati locali molto precisi sul mobile |
| Luogo dell'account Google | Storia della posizione dagli utenti firmati | Personalizza i risultati in base alle posizioni passate |
| Parametri di ricerca | gl (paese) e uule (ubicazione esatta) parametri URL | Override rilevamento basato su IP |
| Impostazioni linguistiche | hl parametro e intestazione Accept-Language | Influenza sulle versioni linguistiche |
Il pacchetto locale
Per domande con intenti locali, Google visualizza un "pacchetto locale" — una mappa con tre elenchi di business sopra i risultati organici. Questo pacchetto cattura una parte significativa di clic ed è interamente indipendente dalla posizione. Un business a 2 miglia di distanza dal ricercatore può apparire nel pacchetto, mentre uno a 20 miglia di distanza non.
Variazione di Risultato Organico
Anche i risultati organici standard si spostano per posizione. Google promuove contenuti localmente rilevanti, regola le classifiche in base al comportamento di ricerca regionale, e può mostrare diversi frammenti presenti a seconda della città del ricercatore.
Perché i proxy Geo sono essenziali
Per vedere i risultati di ricerca che appaiono agli utenti in una specifica città, è necessario un indirizzo IP da quella città. Qui è dove geo-targeted Prossi residenziali diventare indispensabile.
- Segnale di posizione autentico: Un IP residenziale da Denver dice a Google che il ricercatore è in realtà a Denver
- Precisione del pacchetto locale: È possibile vedere solo il pacchetto locale corretto querying dalla posizione giusta
- Differenze regionali di contenuto: Contenuto che si colloca in una regione non può rango in un'altra
- Analisi competitiva: Vedi esattamente cosa vedono i tuoi concorrenti locali nel loro mercato
Prossi residenziali ProxyHat supporto geo-targeting di livello città attraverso 190+ sedi in tutto il mondo, rendendoli ideali per il monitoraggio locale SERP.
Attuazione del monitoraggio locale SERP
Ecco una completa implementazione Python che traccia le classifiche delle parole chiave in più città:
import requests
from bs4 import BeautifulSoup
import json
import time
import random
from datetime import date
# ProxyHat proxy with geo-targeting
# Append city/country to your session for geo-targeted requests
# See docs.proxyhat.com for geo-targeting syntax
PROXY_BASE = "http://USERNAME:PASSWORD@gate.proxyhat.com:8080"
LOCATIONS = [
{"city": "New York", "gl": "us", "hl": "en", "uule": "w+CAIQICIITmV3IFlvcms"},
{"city": "Los Angeles", "gl": "us", "hl": "en", "uule": "w+CAIQICILTG9zIEFuZ2VsZXM"},
{"city": "Chicago", "gl": "us", "hl": "en", "uule": "w+CAIQICIHQ2hpY2Fnbw"},
{"city": "London", "gl": "uk", "hl": "en", "uule": "w+CAIQICIGTG9uZG9u"},
{"city": "Berlin", "gl": "de", "hl": "de", "uule": "w+CAIQICIGQmVybGlu"},
]
def track_local_ranking(keyword, domain, location):
"""Track keyword ranking from a specific location."""
proxies = {"http": PROXY_BASE, "https": PROXY_BASE}
headers = {
"User-Agent": "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/124.0.0.0 Safari/537.36",
"Accept-Language": f"{location['hl']};q=0.9,en;q=0.8",
}
params = {
"q": keyword,
"num": 20,
"hl": location["hl"],
"gl": location["gl"],
"pws": 0,
}
# Add UULE parameter for precise city targeting
if "uule" in location:
params["uule"] = location["uule"]
response = requests.get(
"https://www.google.com/search",
params=params,
headers=headers,
proxies=proxies,
timeout=15,
)
response.raise_for_status()
soup = BeautifulSoup(response.text, "html.parser")
# Find organic position
position = None
for i, g in enumerate(soup.select("div#search .g"), 1):
link = g.select_one("a")
if link and domain in link.get("href", ""):
position = i
break
# Check local pack presence
in_local_pack = False
local_pack = soup.select("div.VkpGBb")
for item in local_pack:
if domain in item.get_text().lower():
in_local_pack = True
break
return {
"keyword": keyword,
"city": location["city"],
"position": position,
"in_local_pack": in_local_pack,
"date": str(date.today()),
}
# Track across all locations
keywords = ["best proxy service", "web scraping tools", "seo software"]
all_results = []
for kw in keywords:
for loc in LOCATIONS:
result = track_local_ranking(kw, "proxyhat.com", loc)
all_results.append(result)
city = result["city"]
pos = result["position"] or "Not ranked"
local = " (in local pack)" if result["in_local_pack"] else ""
print(f" {city}: #{pos}{local}")
time.sleep(random.uniform(3, 6))
# Save results
with open(f"local_rankings_{date.today()}.json", "w") as f:
json.dump(all_results, f, indent=2)Capire il parametro UULE
The uule parametro è il modo più preciso per specificare la posizione negli URL di ricerca di Google. Incoraggia una posizione geografica che Google utilizza invece della geolocalizzazione basata su IP.
Come generare valori UULE
I valori UULE sono stringhe codificate Base64 con un formato specifico. Ecco una funzione di utilità per generarli:
import base64
def generate_uule(location_name):
"""Generate a UULE parameter for Google geo-targeting."""
# UULE format: w+CAIQICI{length_char}{base64_location}
encoded = base64.b64encode(location_name.encode()).decode()
# Length character mapping (A=1, B=2, ... Z=26, a=27, etc.)
length = len(location_name)
if length <= 26:
length_char = chr(64 + length) # A=1, B=2, ...
else:
length_char = chr(70 + length) # Adjusted for longer names
return f"w+CAIQICI{length_char}{encoded}"
# Examples
print(generate_uule("New York")) # For New York City
print(generate_uule("Los Angeles")) # For Los Angeles
print(generate_uule("London")) # For LondonCombinare UULE con Geo Proxies
Per la massima precisione, utilizzare sia i parametri UULE che i proxy geo-targeted dalla stessa posizione. UULE dice a Google dove localizzare i risultati, mentre il proxy IP conferma il segnale geografico. Questo doppio approccio produce i dati SERP locali più affidabili.
Utilizzare i casi per locali SERP
Aziende multilocali
Franchises, catene di vendita al dettaglio, e le imprese di area di servizio hanno bisogno di tracciare le classifiche in ogni città che servono. Una catena di pizza con 50 posti ha bisogno di conoscere la loro classifica in ogni mercato, non solo a livello nazionale. Il tracciamento SERP locale rivela quali posizioni hanno forte SEO e che hanno bisogno di attenzione.
Agenzie locali di SEO
Le agenzie SEO che gestiscono i clienti in diverse città devono segnalare con precisione le classifiche locali. Mostrare a un cliente la loro classifica nazionale quando servono un mercato locale erode fiducia. Il tracciamento basato su geoproxy fornisce i dati precisi necessari ai clienti.
Monitoraggio dei concorrenti
I concorrenti locali possono classificarsi in modo diverso in diversi quartieri. Seguendo i concorrenti in più posizioni all'interno di una zona della metropolitana, è possibile identificare le lacune geografiche nella loro copertura e indirizzare quelle aree con contenuti ottimizzati.
SEO internazionale
I siti web che mirano a più paesi devono verificare la loro classifica in ogni mercato. La lingua, la valuta e le differenze culturali influenzano tutti i contenuti che Google promuove in ogni locale. Utilizzare i proxy geo-targeted da ogni paese di destinazione per ottenere dati SERP internazionali accurati.
Node.js Attuazione
const axios = require('axios');
const cheerio = require('cheerio');
const { HttpsProxyAgent } = require('https-proxy-agent');
const agent = new HttpsProxyAgent('http://USERNAME:PASSWORD@gate.proxyhat.com:8080');
const LOCATIONS = [
{ city: 'New York', gl: 'us', hl: 'en', uule: 'w+CAIQICIITmV3IFlvcms' },
{ city: 'London', gl: 'uk', hl: 'en', uule: 'w+CAIQICIGTG9uZG9u' },
{ city: 'Berlin', gl: 'de', hl: 'de', uule: 'w+CAIQICIGQmVybGlu' },
];
async function trackLocal(keyword, domain, location) {
const params = {
q: keyword,
num: 20,
hl: location.hl,
gl: location.gl,
pws: 0,
};
if (location.uule) params.uule = location.uule;
const { data } = await axios.get('https://www.google.com/search', {
params,
headers: {
'User-Agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36',
'Accept-Language': `${location.hl};q=0.9,en;q=0.8`,
},
httpsAgent: agent,
timeout: 15000,
});
const $ = cheerio.load(data);
let position = null;
$('div#search .g').each((i, el) => {
const href = $(el).find('a').attr('href') || '';
if (href.includes(domain) && !position) {
position = i + 1;
}
});
return { keyword, city: location.city, position };
}
// Track keyword across all locations
async function trackAcrossLocations(keyword, domain) {
const results = [];
for (const loc of LOCATIONS) {
const result = await trackLocal(keyword, domain, loc);
results.push(result);
console.log(`${loc.city}: #${result.position || 'not found'}`);
await new Promise(r => setTimeout(r, 3000 + Math.random() * 3000));
}
return results;
}
trackAcrossLocations('best residential proxies', 'proxyhat.com');Migliori pratiche per locali SERP Tracking
Scegli la posizione giusta Granularity
- Livello di paese: Utilizzare per campagne internazionali. Set
glparametro solo - Livello della città: Richiesto per le imprese locali. Utilizzare entrambi
gleuulecon proxy di livello città - Livello di vicinanza: Per le imprese iper-locali (ristoranti, negozi). Utilizzare coordinate UULE molto precise
Traccia mobile e desktop separatamente
I risultati locali differiscono significativamente tra mobile e desktop. I SERP mobili mostrano pacchetti locali più prominenti e diverse classifiche organiche. Tracciare entrambe le stringhe User-Agent tra configurazioni mobili e desktop.
Monitorare il pacchetto locale separatamente
Il pacchetto locale è una classifica distinta dai risultati organici. Traccia se il tuo business appare nel locale 3-pack per ogni posizione indipendentemente dalla posizione organica. Molte aziende si classificano bene organicamente ma sono assenti dal pacchetto locale, o viceversa.
Pianificare costantemente
Eseguire tracciamento locale contemporaneamente ogni giorno. Risultati di ricerca fluttuano durante tutta la giornata, e la programmazione inconsistente introduce il rumore nei vostri dati. Il monitoraggio del mattino (6-8 AM in ogni fuso orario di destinazione) tende a produrre la linea di base più stabile.
Il tracciamento locale SERP senza proxy geo-targeted è intrinsecamente impreciso. Investire in proxy residenziali con targeting di livello urbano per ottenere dati che riflettono ciò che i vostri clienti reali vedono.
Per maggiori dettagli sul monitoraggio SERP basato su proxy, leggi i nostri articoli su migliori proxy per la raschiatura web e come raschiare senza bloccarsi. Visitare la Documentazione ProxyHat per la configurazione geo-targeting.





