ScavioScavio
ProductoPreciosDocumentación
Iniciar sesionComenzar
  1. Inicio
  2. Tutoriales
  3. Cómo crear un rastreador de clasificación de palabras clave hecho por usted mismo
Tutorial

Cómo crear un rastreador de clasificación de palabras clave hecho por usted mismo

Cree un rastreador de clasificación de palabras clave a partir de datos SERP sin procesar. Realice un seguimiento diario de las posiciones en SQLite, detecte cambios y alerte sobre movimientos de rango. Python a $0,005/palabra clave.

Obtener clave API gratisDocumentacion API

Los rastreadores de clasificación comercial cobran entre 30 y 300 dólares al mes y comprueban las palabras clave una vez al día. Crear su propio rastreador con una API SERP le brinda control total sobre la frecuencia de verificación, los datos almacenados y la lógica de alertas. Cada verificación de palabras clave cuesta $0,005 a través de Scavio, por lo que el seguimiento diario de 100 palabras clave cuesta $0,50/día o $15/mes, menos que la mayoría de los planes iniciales.

Requisitos previos

  • Python 3.8+
  • solicita biblioteca
  • Una clave API de Scavio de scavio.dev
  • SQLite3 (incluido con Python)

Guia paso a paso

Paso 1: Configurar la base de datos de seguimiento de clasificación

Cree una base de datos SQLite para almacenar posiciones de clasificación diarias.

Python
import os, requests, json, sqlite3
from datetime import datetime

API_KEY = os.environ['SCAVIO_API_KEY']
SH = {'x-api-key': API_KEY, 'Content-Type': 'application/json'}

db = sqlite3.connect('rank_tracker.db')
db.execute('''CREATE TABLE IF NOT EXISTS ranks (
    keyword TEXT, domain TEXT, position INTEGER,
    title TEXT, checked_at TEXT
)''')
db.execute('CREATE INDEX IF NOT EXISTS idx_kw ON ranks(keyword, checked_at)')
db.commit()

MY_DOMAIN = 'scavio.dev'
KEYWORDS = ['serp api', 'search api python', 'google search api',
            'web scraping api', 'ai agent search tool']
print(f'Tracking {len(KEYWORDS)} keywords for {MY_DOMAIN}')

Paso 2: Verifique las clasificaciones de palabras clave

Obtenga resultados SERP y encuentre la posición de su dominio para cada palabra clave.

Python
def check_rank(keyword, domain):
    data = requests.post('https://api.scavio.dev/api/v1/search',
        headers=SH, json={'query': keyword, 'country_code': 'us'}).json()
    organic = data.get('organic_results', [])
    now = datetime.now().isoformat()
    for r in organic[:50]:
        link = r.get('link', '')
        if domain in link:
            pos = r.get('position', 0)
            title = r.get('title', '')[:100]
            db.execute('INSERT INTO ranks VALUES (?,?,?,?,?)',
                (keyword, domain, pos, title, now))
            db.commit()
            return pos
    db.execute('INSERT INTO ranks VALUES (?,?,?,?,?)',
        (keyword, domain, 0, 'Not found', now))
    db.commit()
    return 0

for kw in KEYWORDS:
    pos = check_rank(kw, MY_DOMAIN)
    status = f'#{pos}' if pos else 'Not in top 50'
    print(f'  {kw:30} | {status}')
print(f'Cost: ${len(KEYWORDS) * 0.005:.3f}')

Paso 3: Detectar cambios de rango entre controles

Compare las posiciones actuales con comprobaciones anteriores para encontrar movimientos.

Python
def detect_changes(keyword, domain):
    rows = db.execute(
        'SELECT position, checked_at FROM ranks WHERE keyword=? AND domain=? ORDER BY checked_at DESC LIMIT 2',
        (keyword, domain)).fetchall()
    if len(rows) < 2:
        return None
    current, prev = rows[0][0], rows[1][0]
    if current == prev:
        return None
    change = prev - current  # positive = improved
    return {'keyword': keyword, 'prev': prev, 'current': current, 'change': change}

def report_changes():
    changes = []
    for kw in KEYWORDS:
        c = detect_changes(kw, MY_DOMAIN)
        if c:
            changes.append(c)
    if changes:
        print(f'\n{len(changes)} rank changes:')
        for c in changes:
            arrow = 'UP' if c['change'] > 0 else 'DOWN'
            print(f'  {c["keyword"]:30} | #{c["prev"]} -> #{c["current"]} ({arrow} {abs(c["change"])})')
    else:
        print('No rank changes detected.')
    return changes

report_changes()

Paso 4: Programe comprobaciones diarias mediante cron

Automatice el rastreador para que se ejecute diariamente y acumule historial.

Python
def daily_check():
    print(f'Daily rank check: {datetime.now().isoformat()}')
    results = []
    for kw in KEYWORDS:
        pos = check_rank(kw, MY_DOMAIN)
        results.append({'keyword': kw, 'position': pos})
    cost = len(KEYWORDS) * 0.005
    print(f'Checked {len(KEYWORDS)} keywords. Cost: ${cost:.3f}')
    changes = report_changes()
    # Summary
    ranked = [r for r in results if r['position'] > 0]
    avg = sum(r['position'] for r in ranked) / len(ranked) if ranked else 0
    print(f'\nSummary: {len(ranked)}/{len(results)} keywords ranking, avg position: {avg:.1f}')
    print(f'Monthly cost estimate: ${cost * 30:.2f}')

# Cron: 0 6 * * * cd /path/to/project && python rank_tracker.py
daily_check()

Ejemplo en Python

Python
import os, requests
SH = {'x-api-key': os.environ['SCAVIO_API_KEY'], 'Content-Type': 'application/json'}

def track(keyword, domain):
    data = requests.post('https://api.scavio.dev/api/v1/search',
        headers=SH, json={'query': keyword, 'country_code': 'us'}).json()
    for r in data.get('organic_results', [])[:50]:
        if domain in r.get('link', ''):
            print(f'{keyword}: {domain} at #{r["position"]}. Cost: $0.005')
            return r['position']
    print(f'{keyword}: {domain} not in top 50')
    return 0

track('serp api', 'scavio.dev')

Ejemplo en JavaScript

JavaScript
const SH = { 'x-api-key': process.env.SCAVIO_API_KEY, 'Content-Type': 'application/json' };
async function track(keyword, domain) {
  const data = await fetch('https://api.scavio.dev/api/v1/search', {
    method: 'POST', headers: SH,
    body: JSON.stringify({ query: keyword, country_code: 'us' })
  }).then(r => r.json());
  const match = (data.organic_results || []).find(r => (r.link || '').includes(domain));
  console.log(match ? `${keyword}: ${domain} at #${match.position}` : `${keyword}: not found`);
}
track('serp api', 'scavio.dev').catch(console.error);

Salida esperada

JSON
Tracking 5 keywords for scavio.dev
  serp api                       | #4
  search api python              | #7
  google search api              | #11
  web scraping api               | #6
  ai agent search tool           | #3
Cost: $0.025

Summary: 5/5 keywords ranking, avg position: 6.2
Monthly cost estimate: $0.75

Tutoriales relacionados

  • Cómo construir un archivo SERP histórico
  • Cómo construir un monitor SERP competitivo
  • Cómo crear un panel de SEO personalizado con una API de búsqueda

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+. solicita biblioteca. Una clave API de Scavio de scavio.dev. SQLite3 (incluido con Python). 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 rastreador de clasificación de palabras clave a partir de datos SERP sin procesar. Realice un seguimiento diario de las posiciones en SQLite, detecte cambios y alerte sobre movimientos de rango. Python a $0,005/palabra clave.

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