ScavioScavio
ProductoPreciosDocumentación
Iniciar sesionComenzar
  1. Inicio
  2. Tutoriales
  3. Cómo crear un canal de alertas de clasificación SEO
Tutorial

Cómo crear un canal de alertas de clasificación SEO

Cree un canal que verifique diariamente la clasificación de las palabras clave y envíe alertas cuando las posiciones caigan por debajo de un umbral. Script Python con historial CSV y alertas por correo electrónico.

Obtener clave API gratisDocumentacion API

Las caídas en la clasificación pueden pasar desapercibidas durante días si solo verificas manualmente. Para cuando detecte una caída de la posición 3 a la posición 15, ya habrá perdido una cantidad significativa de tráfico. Este tutorial crea un canal de alerta de SEO automatizado que verifica la clasificación de sus palabras clave diariamente a través de la API de Scavio, compara las posiciones actuales con líneas de base anteriores almacenadas en CSV y activa una alerta cuando cualquier palabra clave cae por debajo de un umbral configurado o cae más de un número determinado de posiciones. El proceso cuesta alrededor de $0,005 por palabra clave por día, por lo que monitorear 100 palabras clave cuesta menos de $0,50 por día.

Requisitos previos

  • Python 3.8+ instalado
  • solicita biblioteca instalada
  • Una clave API de Scavio de scavio.dev
  • Su dominio y una lista de palabras clave objetivo

Guia paso a paso

Paso 1: Configurar palabras clave y umbrales de alerta

Defina palabras clave para realizar un seguimiento, su dominio objetivo, un umbral de posición sobre el que alertar y un umbral de caída para detectar caídas repentinas.

Python
import os, csv, requests
from datetime import date

API_KEY = os.environ['SCAVIO_API_KEY']
ENDPOINT = 'https://api.scavio.dev/api/v1/search'
HEADERS = {'x-api-key': API_KEY, 'Content-Type': 'application/json'}

TARGET_DOMAIN = 'mysite.com'
POSITION_THRESHOLD = 10
DROP_THRESHOLD = 5
KEYWORDS = [
    'web scraping api',
    'serp api python',
    'amazon price api',
    'tiktok data api',
]

Paso 2: Obtener el rango actual y cargar la línea de base anterior

Consulta el punto final de Scavio Google para cada palabra clave y encuentra la posición de tu dominio. Cargue la última posición registrada desde un archivo histórico CSV para comparar.

Python
def get_rank(keyword):
    resp = requests.post(ENDPOINT, headers=HEADERS,
        json={'query': keyword, 'country_code': 'us'})
    for r in resp.json().get('organic_results', []):
        if TARGET_DOMAIN in r.get('link', ''):
            return r['position']
    return None

def load_baselines(csv_path='rankings_history.csv'):
    baselines = {}
    try:
        with open(csv_path) as f:
            rows = list(csv.reader(f))
            for row in reversed(rows):
                if len(row) >= 3 and row[1] not in baselines and row[2]:
                    baselines[row[1]] = int(row[2])
    except FileNotFoundError:
        pass
    return baselines

Paso 3: Verificar caídas y generar alertas

Compare las posiciones actuales con las líneas de base. Alerta si la posición excede el umbral o si la caída desde la última verificación excede el umbral de caída.

Python
def run_alert_pipeline():
    baselines = load_baselines()
    alerts = []
    today = date.today().isoformat()
    with open('rankings_history.csv', 'a', newline='') as f:
        writer = csv.writer(f)
        for kw in KEYWORDS:
            rank = get_rank(kw)
            writer.writerow([today, kw, rank or ''])
            prev = baselines.get(kw)
            if rank is None:
                alerts.append(f'[GONE] {kw}: not found in top results')
            elif rank > POSITION_THRESHOLD:
                alerts.append(f'[LOW] {kw}: position {rank} (threshold {POSITION_THRESHOLD})')
            elif prev and rank - prev >= DROP_THRESHOLD:
                alerts.append(f'[DROP] {kw}: {prev} -> {rank} (dropped {rank - prev} positions)')
            else:
                print(f'[OK] {kw}: position {rank}')
    if alerts:
        print('\n--- ALERTS ---')
        for a in alerts:
            print(a)
    return alerts

run_alert_pipeline()

Ejemplo en Python

Python
import os, csv, requests
from datetime import date

API_KEY = os.environ['SCAVIO_API_KEY']
ENDPOINT = 'https://api.scavio.dev/api/v1/search'
HEADERS = {'x-api-key': API_KEY, 'Content-Type': 'application/json'}
DOMAIN = 'mysite.com'
KEYWORDS = ['web scraping api', 'serp api python', 'amazon price api']

def get_rank(kw):
    resp = requests.post(ENDPOINT, headers=HEADERS,
        json={'query': kw, 'country_code': 'us'}).json()
    for r in resp.get('organic_results', []):
        if DOMAIN in r.get('link', ''): return r['position']
    return None

def load_prev():
    prev = {}
    try:
        with open('rankings.csv') as f:
            for row in reversed(list(csv.reader(f))):
                if row[1] not in prev and row[2]: prev[row[1]] = int(row[2])
    except FileNotFoundError: pass
    return prev

def run():
    prev = load_prev()
    today = date.today().isoformat()
    with open('rankings.csv', 'a', newline='') as f:
        w = csv.writer(f)
        for kw in KEYWORDS:
            rank = get_rank(kw)
            w.writerow([today, kw, rank or ''])
            p = prev.get(kw)
            if rank and p and rank - p >= 5:
                print(f'[DROP] {kw}: {p} -> {rank}')
            elif rank and rank > 10:
                print(f'[LOW] {kw}: position {rank}')
            elif rank:
                print(f'[OK] {kw}: #{rank}')
            else:
                print(f'[GONE] {kw}')

if __name__ == '__main__': run()

Ejemplo en JavaScript

JavaScript
const fs = require('fs');
const API_KEY = process.env.SCAVIO_API_KEY;
const H = { 'x-api-key': API_KEY, 'Content-Type': 'application/json' };
const DOMAIN = 'mysite.com';
const KEYWORDS = ['web scraping api', 'serp api python'];

async function getRank(kw) {
  const data = await fetch('https://api.scavio.dev/api/v1/search', {
    method: 'POST', headers: H, body: JSON.stringify({ query: kw, country_code: 'us' })
  }).then(r => r.json());
  const match = (data.organic_results || []).find(r => r.link.includes(DOMAIN));
  return match ? match.position : null;
}

async function run() {
  const today = new Date().toISOString().slice(0, 10);
  for (const kw of KEYWORDS) {
    const rank = await getRank(kw);
    fs.appendFileSync('rankings.csv', `${today},${kw},${rank || ''}\n`);
    if (!rank) console.log(`[GONE] ${kw}`);
    else if (rank > 10) console.log(`[LOW] ${kw}: position ${rank}`);
    else console.log(`[OK] ${kw}: #${rank}`);
  }
}

run().catch(console.error);

Salida esperada

JSON
[OK] web scraping api: #3
[OK] serp api python: #5
[DROP] amazon price api: 4 -> 11

--- ALERTS ---
[DROP] amazon price api: 4 -> 11 (dropped 7 positions)

Tutoriales relacionados

  • Cómo realizar un seguimiento diario de las clasificaciones SEO con la API Scavio
  • Cómo obtener resultados de búsqueda de Google en Python
  • Cómo crear una herramienta de auditoría SEO con SERP y análisis de la competencia

Preguntas frecuentes

La mayoria de los desarrolladores completan este tutorial en 15 a 30 minutos. Necesitaras una clave API de Scavio (el plan gratuito funciona) y un entorno de Python o JavaScript.

Python 3.8+ instalado. solicita biblioteca instalada. Una clave API de Scavio de scavio.dev. Su dominio y una lista de palabras clave objetivo. Una clave API de Scavio te da 50 creditos gratuitos al registrarte.

Si. El plan gratuito incluye 50 creditos al registrarte, mas que suficiente para completar este tutorial y crear un prototipo funcional.

Scavio tiene un paquete nativo de LangChain (langchain-scavio), un servidor MCP y una API REST simple que funciona con cualquier cliente HTTP. Este tutorial usa the raw REST API, pero puedes adaptarlo al framework que prefieras.

Recursos relacionados

Best Of

La mejor API para informes SEO de agencias en 2026

Read more
Best Of

La mejor API SERP basada en colas en 2026

Read more
Comparison

Semrush API vs Raw SERP API

Read more
Solution

Cree una capa API de SEO de costo predecible

Read more
Use Case

API sin formato del panel de SEO

Read more
Glossary

API de SERP

Read more

Empieza a construir

Cree un canal que verifique diariamente la clasificación de las palabras clave y envíe alertas cuando las posiciones caigan por debajo de un umbral. Script Python con historial CSV y alertas por correo electrónico.

Obtener clave API gratuitaLeer la documentacion
ScavioScavio

API de busqueda en tiempo real para agentes de IA. Busca en todas las plataformas, no solo en Google.

Producto

  • Funciones
  • Precios
  • Panel
  • Afiliados

Desarrolladores

  • Documentacion
  • Referencia de API
  • Inicio rapido
  • Integracion MCP
  • Python SDK

Alternativas

  • Alternativa a Tavily
  • Alternativa a SerpAPI
  • Alternativa a Firecrawl
  • Alternativa a Exa

Herramientas

  • Formateador JSON
  • cURL a codigo
  • Contador de tokens
  • Todas las herramientas

© 2026 Scavio. Todos los derechos reservados.

Featured on TAAFT
Terminos de servicioPolitica de privacidad