Crea tu propio rastreador de posiciones SEO con una SERP API
Los rastreadores de posiciones comerciales son una caja negra que alquilas por palabra clave. Conecta una SERP API a una base de datos tú mismo y tendrás el control de la profundidad geográfica, la captura de la visión general de IA y las alertas, por una fracción del precio.
Los rastreadores de posiciones comerciales cobran por palabra clave y te entregan un panel que no puedes consultar. Construye el tuyo propio sobre una SERP API y cambia eso: posees las instantáneas SERP en bruto, eliges exactamente qué geografías y dispositivos rastrear, capturas las partes de la página de resultados que ahora deciden la visibilidad — visiones generales de IA, People Also Ask, el paquete local — y conectas alertas a lo que ya usas. Este es un tutorial completo: el esquema, la ejecución diaria, la captura de la visión general de IA y PAA, la comparación y las alertas, y las trampas de 2026 que rompen rastreadores ingenuos. Funciona en la QuantumProxies SERP API, así que no hay un grupo de proxies que gestionar.
La trampa que transformó el seguimiento de posiciones
Dos cambios hacen que un rastreador moderno se vea diferente a uno de 2020. Primero, Google eliminó el parámetro &num=100, por lo que ya no puedes obtener 100 resultados en una sola solicitud — debes paginar aproximadamente diez a la vez, lo que cambia la profundidad que puedes permitirte rastrear y hace que una API eficiente sea obligatoria en lugar de opcional. Segundo, la página de resultados ya no es una lista limpia de diez enlaces azules: una visión general de IA puede estar por encima de todo y responder la consulta directamente, los cuadros de People Also Ask y los fragmentos destacados absorben clics, y el paquete local posee la intención comercial. Rastrear un número de posición simple mientras se ignoran esos elementos es rastrear lo incorrecto. Nuestro explicador sobre cómo funciona el scraping SERP en 2026 cubre en profundidad las consecuencias del num=100.
Paso 1: un esquema construido para comparar
Todo el sistema es una instantánea diaria que comparas con la de ayer, por lo que el esquema es primero la instantánea: una fila por palabra clave, geo, dispositivo y día, con los datos de clasificación y las características SERP almacenadas junto a ellos. Mantén la visión general de IA y PAA como columnas estructuradas para que puedas consultarlas directamente.
CREATE TABLE serp_snapshot (
id bigserial PRIMARY KEY,
keyword text NOT NULL,
country text NOT NULL, -- gl: us, gb, de...
city text, -- optional city-level
device text NOT NULL, -- desktop | mobile
position int, -- your domain's best rank, null = not found
landing_url text,
aio_present boolean NOT NULL, -- AI Overview shown?
aio_cited boolean NOT NULL, -- did it cite your domain?
paa jsonb, -- People Also Ask questions
top3 jsonb, -- who owns positions 1-3
captured_at date NOT NULL,
UNIQUE (keyword, country, city, device, captured_at)
);
Paso 2: la ejecución geográfica diaria
El bucle central itera tus palabras clave en cada geo y dispositivo objetivo, llama a la SERP API una vez por combinación y encuentra la mejor posición de tu dominio. Debido a que la API devuelve JSON analizado y maneja la rotación, geo y bloqueo internamente, esto se mantiene como un bucle simple — sin navegador sin cabeza, sin código de rotación de proxies, sin manejo de CAPTCHA. Establece gl para el país y una ubicación para el nivel de ciudad, y los resultados regresan ya localizados.
import requests, datetime
QP = "https://api.quantumproxies.io/serp"
HEAD = {"Authorization": f"Bearer {QP_KEY}"}
def run_keyword(keyword, country, device="desktop", city=None):
params = {"engine": "google", "q": keyword,
"gl": country, "device": device, "num": 20}
if city:
params["location"] = city
data = requests.get(QP, headers=HEAD, params=params, timeout=45).json()
pos, url = None, None
for r in data.get("organic", []):
if "yourdomain.com" in r["link"]:
pos, url = r["position"], r["link"]
break
return data, pos, url
Obtén una clave de SERP API para potenciar tu rastreador

Paso 3: captura visiones generales de IA y PAA
Aquí es donde un rastreador casero supera a los comerciales baratos, la mayoría de los cuales todavía informan solo los diez enlaces. Una visión general de IA puede empujar tu resultado orgánico por debajo del pliegue incluso cuando "clasificas" tercero, y ser citado dentro de la visión general de IA ahora es su propio métrico de visibilidad que vale la pena rastrear por separado. Extrae tanto la presencia del AIO como si hace referencia a tu dominio, y almacena las preguntas de PAA — también sirven como ideas frescas de palabras clave y contenido.
def extract_features(data, domain="yourdomain.com"):
aio = data.get("ai_overview") or {}
aio_present = bool(aio)
aio_cited = any(domain in s.get("link", "")
for s in aio.get("sources", []))
paa = [q["question"] for q in data.get("people_also_ask", [])]
top3 = [r["link"] for r in data.get("organic", [])[:3]]
return aio_present, aio_cited, paa, top3
Rastrear la citación de AIO a lo largo del tiempo se está convirtiendo rápidamente en el métrico principal de SEO — nuestra guía sobre capturar la presencia de la visión general de IA programáticamente profundiza en las señales que vale la pena registrar. Ejecuta la misma palabra clave desde varios países y verás que las clasificaciones y las citaciones de AIO divergen por geo, que es exactamente por qué las ejecuciones a nivel de ciudad son importantes para cualquiera con una presencia local o internacional, como se cubre en monitorear cambios SERP globalmente.

Paso 4: comparar y alertar
Un rastreador que nadie lee es un archivo de registro. El valor está en la alerta — un mensaje en el momento en que algo se mueve. Después de cada ejecución, compara la nueva instantánea con el día anterior y actúa sobre los cambios que importan: una caída de tres o más posiciones, ganar o perder una citación de la visión general de IA, un competidor entrando en los tres primeros, o una URL cayendo de la primera página. Envía esos a Slack, correo electrónico o un webhook para que el equipo de SEO se entere de una caída antes de que lo haga el informe de tráfico.
def diff_and_alert(kw, geo, today, yesterday):
alerts = []
if yesterday.position and today.position:
if today.position - yesterday.position >= 3:
alerts.append(f"{kw} [{geo}] dropped "
f"{yesterday.position} -> {today.position}")
if yesterday.aio_cited and not today.aio_cited:
alerts.append(f"{kw} [{geo}] lost its AI Overview citation")
if today.position and today.position > 10 and \
(yesterday.position or 0) <= 10:
alerts.append(f"{kw} [{geo}] fell off page one")
for a in alerts:
notify(a) # -> Slack / email / webhook
Programación y ser honesto sobre el volumen
Ejecuta todo en un cron diario, idealmente a una hora consistente para que las comparaciones día a día sean comparables. Sé realista sobre la escala: palabras clave multiplicadas por países multiplicadas por ciudades multiplicadas por dispositivos es tu verdadero conteo de consultas, y crece rápidamente — cien palabras clave en cinco países en dos dispositivos son mil llamadas SERP al día. La SERP API cobra por consulta, así que rastrea las combinaciones sobre las que realmente actuarás en lugar de todo lo imaginable. Si estás construyendo esto en un producto en lugar de una herramienta interna, nuestro post sobre elegir una SERP API para herramientas de IA y SEO cubre la economía por consulta. Los mismos endpoints están disponibles a través de nuestro servidor MCP si prefieres ejecutar las ejecuciones desde un agente.
Preguntas frecuentes
¿Cómo construyo un rastreador de posiciones con una SERP API?
Almacena una instantánea por palabra clave, geo, dispositivo y día; llama a la SERP API una vez por combinación para obtener resultados analizados; extrae la posición de tu dominio más los datos de la visión general de IA y PAA; luego compara cada día con el anterior y alerta sobre movimientos significativos. La API maneja proxies, geo y bloqueo, por lo que tu código se mantiene como un bucle programado sobre una base de datos.
¿Todavía puedo obtener 100 resultados por consulta?
No en una sola solicitud — Google eliminó el parámetro num=100, por lo que los resultados vienen aproximadamente diez por página y el rastreo más profundo significa paginación. Para la mayoría del rastreo solo necesitas los 20 primeros, lo que mantiene bajo el volumen de consultas y el costo. Una SERP API que pagina por ti oculta este detalle detrás de una sola llamada.
¿Cómo rastreo la presencia de la visión general de IA?
Captura dos cosas por ejecución: si apareció una visión general de IA para la consulta, y si citó tu dominio entre sus fuentes. Almacena ambos como campos separados para que puedas seguir la tendencia de citación a lo largo del tiempo — ser referenciado dentro de la visión general de IA ahora es su propio métrico de visibilidad, distinto de tu posición orgánica.
¿Con qué frecuencia debería ejecutarse un rastreador de posiciones?
Diariamente es el estándar para SEO, a una hora consistente para que las comparaciones sean comparables. Términos volátiles o de alto valor pueden justificar ejecuciones dos veces al día; términos estables y de baja prioridad están bien semanalmente. Ajusta la frecuencia a la rapidez con la que realmente se mueve la palabra clave y a tu presupuesto de consultas de SERP-API, ya que palabras clave por geos por dispositivos es tu verdadero impulsor de costos.
Un rastreador de posiciones es un esquema, una llamada diaria a SERP y una comparación — la ventaja es poseer los tres. Captura posición, visiones generales de IA y PAA en los geos que te importan, alerta sobre movimientos reales, y tendrás un rastreador que cuesta una fracción de los comerciales y responde preguntas que nunca te dejan hacer.
Construye tu rastreador de posiciones en la QuantumProxies SERP API