Por qué los SERP locales son diferentes
Google ofrece diferentes resultados de búsqueda basados en donde se encuentra el buscador. Una consulta para "mejor cafetería" devuelve resultados completamente diferentes en Nueva York, Londres y Tokio. Esta localización se aplica no sólo a las consultas comerciales locales, sino también a muchas palabras clave comerciales e informativas.
Para las empresas que sirven a mercados geográficos específicos, el seguimiento de las clasificaciones a nivel nacional es engañoso. Un sitio web podría clasificar #1 en Chicago pero #15 en Houston por la misma palabra clave. Sin seguimiento de SERP específico de ubicación, usted está tomando decisiones SEO basadas en datos incompletos.
Este artículo explica cómo implementar un seguimiento local de SERP preciso usando proxies residenciales geo-targetados. Para una visión general más amplia del monitoreo de SERP, vea nuestra completo SERP raspado con guía proxies.
Cómo Google localiza resultados de búsqueda
Google utiliza múltiples señales para determinar qué resultados locales mostrar:
| Signal | Cómo funciona | Impacto en los resultados |
|---|---|---|
| Geolocalización IP | Google mapea la IP del buscador a una ubicación geográfica | Factor primario para paquetes locales y resultados orgánicos |
| Ubicación GPS/dispositivo | Los dispositivos móviles comparten coordenadas precisas | Resultados locales muy precisos en móvil |
| Localización de la cuenta de Google | Historial de ubicación de usuarios registrados | Personaliza resultados basados en ubicaciones pasadas |
| Parámetros de búsqueda | gl (país) y uule (ubicación exacta) parámetros URL | Anular la detección basada en IP |
| Ajustes del idioma | hl parameter and Accept-Language header | Influencias que aparecen versiones de idiomas |
El paquete local
Para consultas con intención local, Google muestra un "paquete local" — un mapa con tres anuncios de negocios por encima de los resultados orgánicos. Este paquete captura una parte significativa de los clics y es totalmente dependiente de la ubicación. Un negocio a 2 millas de distancia del buscador puede aparecer en el paquete, mientras que a 20 millas de distancia no.
Variación de resultados orgánicos
Incluso los resultados orgánicos estándar cambian por ubicación. Google promueve contenido localmente relevante, ajusta rankings basados en el comportamiento de búsqueda regional, y puede mostrar diferentes fragmentos destacados dependiendo de la ciudad del buscador.
Por qué Geo Proxies son esenciales
Para ver los resultados de búsqueda a medida que aparecen a los usuarios en una ciudad específica, necesita una dirección IP de esa ciudad. Aquí es donde geo-targeted proxies residenciales ser indispensable.
- Señal de ubicación auténtica: Un IP residencial de Denver dice a Google que el buscador está en Denver
- Precisión del paquete local: Sólo se puede ver el paquete local correcto consultando desde la ubicación correcta
- Diferencias de contenido regional: Contenido que las filas en una región pueden no clasificarse en otra
- Análisis competitivo: Vea exactamente lo que sus competidores locales ven en su mercado
ProxyHat proxies residenciales apoyo geoestacionamiento a nivel de ciudad 190+ ubicaciones en todo el mundo, haciéndolos ideales para el monitoreo local de SERP.
Aplicación de seguimiento local de SERP
Aquí está una implementación completa de Python que rastrea el ranking de palabras clave en varias ciudades:
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)Comprender el parámetro UULE
El uule El parámetro es la forma más precisa de especificar la ubicación en las URLs de búsqueda de Google. codifica una ubicación geográfica que Google utiliza en lugar de geolocalización basada en IP.
Cómo generar valores UULE
Los valores UULE son cadenas codificadas Base64 con un formato específico. Aquí está una función de utilidad para generar:
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 LondonCombinando UULE con Geo Proxies
Para la máxima precisión, utilice tanto los parámetros UULE como los proxies geo-targeted desde la misma ubicación. El UULE dice a Google dónde localizar los resultados, mientras que el IP proxy confirma la señal geográfica. Este doble enfoque produce los datos de SERP locales más fiables.
Casos de uso para rastreo local del SERP
Empresas de localización múltiple
Las franquicias, las cadenas minoristas y los negocios de área de servicio necesitan rastrear los rankings en cada ciudad que sirven. Una cadena de pizza con 50 ubicaciones necesita saber su clasificación en cada mercado, no sólo a nivel nacional. El seguimiento local del SERP revela qué lugares tienen un SEO fuerte y que necesitan atención.
Local SEO Agencies
Las agencias de SEO que gestionan clientes en diferentes ciudades deben informar con precisión sobre la clasificación local. Mostrando a un cliente su clasificación nacional cuando sirven a un mercado local erosiona la confianza. El seguimiento basado en geo-proxy proporciona los datos precisos que necesitan los clientes.
Competitor Monitoring
Los competidores locales pueden clasificarse de forma diferente en diferentes barrios. Al rastrear a los competidores en varias ubicaciones dentro de una zona de metro, puede identificar brechas geográficas en su cobertura y apuntar a esas áreas con contenido optimizado.
International SEO
Los sitios web dirigidos a varios países necesitan verificar su clasificación en cada mercado. Las diferencias lingüísticas, monetarias y culturales afectan el contenido que Google promueve en cada localidad. Use proxies geo-targeted de cada país objetivo para obtener datos internacionales de SERP precisos.
Node.js Implementation
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');Mejores prácticas para el seguimiento local del SERP
Elija la ubicación correcta Granularidad
- Nivel de país: Uso para amplias campañas internacionales. Set
glparámetro only - Nivel de ciudad: Necesario para empresas locales. Usa ambos
glyuulecon proxy de nivel urbano - Nivel del vecindario: Para empresas hiperlocales (restaurantes, tiendas). Utilice coordenadas UULE muy precisas
Track Móvil y Escritorio por separado
Los resultados locales difieren significativamente entre móvil y escritorio. Los SERPs móviles muestran paquetes locales más prominentes y diferentes rankings orgánicos. Rastrea ambas mediante la conmutación de cadenas User-Agent entre configuraciones móviles y de escritorio.
Monitor Local Pack
El paquete local es un ranking distinto de los resultados orgánicos. Siga si su negocio aparece en el 3-pack local para cada ubicación independientemente de la posición orgánica. Muchas empresas están bien orgánicamente pero están ausentes del paquete local, o viceversa.
Cuadro Consistentes
Ejecute el rastreo local al mismo tiempo cada día. Los resultados de búsqueda fluctúan durante todo el día, y la programación incoherente introduce el ruido en sus datos. Seguimiento de la mañana (6-8 AM en cada zona horaria objetivo) tiende a producir la base de referencia más estable.
El rastreo local de SERP sin proxies geotrigados es inherentemente inexacto. Invertir en proxies residenciales con el objetivo de nivel urbano para obtener datos que reflejen lo que sus clientes reales ven.
Para obtener más información sobre el monitoreo de SERP basado en dispositivos proxy, lea nuestros artículos sobre mejores proxies para raspado web y cómo raspar sin ser bloqueado. Visitar Documentación de ProxyHat para la configuración geo-targeting.






