ScavioScavio
ProductoPreciosDocumentación
Iniciar sesionComenzar
  1. Inicio
  2. Tutoriales
  3. Construye un agente de blog SEO automatizado anclado en datos de SERP en vivo
Tutorial

Construye un agente de blog SEO automatizado anclado en datos de SERP en vivo

Deja de dejar que tu redactor IA adivine. Ancla un agente de blog en datos de SERP de Google en vivo (People Also Ask, búsquedas relacionadas).

Obtener clave API gratisDocumentacion API

Un redactor IA que escribe solo a partir de los datos de entrenamiento produce posts genéricos que los AI Overviews ya responden, así que nunca reciben clics ni citas. La solución es el anclaje: antes de que el modelo escriba, extrae la SERP de Google en vivo para el tema y aliméntale las preguntas de People Also Ask, las búsquedas relacionadas y las páginas que ahora mismo posicionan. El borrador responde entonces a las subpreguntas exactas que Google está mostrando hoy, estructurado como están las páginas que se citan. Este tutorial construye ese bucle con el endpoint de Google de Scavio en unas 30 líneas. Es el mismo patrón que los marketers de Reddit describen ejecutar a diario a través de MCP para autopublicar posts con voz de marca.

Requisitos previos

  • Python 3.9+ y la librería requests
  • Una clave de API de Scavio (50 créditos gratis al registrarte)
  • Cualquier LLM al que puedas llamar para el paso de redacción (Claude, GPT, un modelo local)

Guia paso a paso

Paso 1: Configura tu clave de API

Guarda la clave en una variable de entorno, no en el código fuente. Scavio usa autenticación Bearer en todos los endpoints REST.

Bash
export SCAVIO_API_KEY=sk_your_key_here

Paso 2: Extrae la SERP completa de tu tema

Pon light_request en false (2 créditos) para que la respuesta incluya los bloques de questions (People Also Ask) y related_searches junto a las páginas que posicionan. Esas son las subpreguntas que tu borrador debe responder para ser citado.

Python
import os, requests
H = {"Authorization": f"Bearer {os.environ['SCAVIO_API_KEY']}",
     "Content-Type": "application/json"}

def serp_brief(topic):
    # full SERP (2 credits) gives related_searches + People Also Ask to mine subtopics
    r = requests.post("https://api.scavio.dev/api/v1/google",
        headers=H, json={"query": topic, "light_request": False}).json()
    paa = [q["question"] for q in r.get("questions", [])]
    related = r.get("related_searches", [])
    top = [{"title": x["title"], "link": x["link"], "snippet": x.get("snippet","")}
           for x in r.get("results", [])[:8]]
    return {"people_also_ask": paa, "related": related, "ranking_pages": top}

brief = serp_brief("how to clean a cast iron skillet")
# Feed brief into your writer prompt so the draft answers the questions
# Google is actually surfacing and cites the pages currently ranking.

Paso 3: Construye el prompt del redactor a partir del brief

Le estás entregando al modelo la curva de demanda real del tema, no pidiéndole que se la imagine. La lista de PAA se convierte en tu estructura de H2, que es también como los motores de respuesta trocean una página.

Python
brief = serp_brief("how to clean a cast iron skillet")

h2s = "\n".join("- " + q for q in brief["people_also_ask"])
prompt = f"""Write a 900-word guide on: how to clean a cast iron skillet.
Answer the title question in the first sentence (no intro).
Then answer each of these real questions, each as its own H2:
{h2s}
Cover these related angles where relevant: {', '.join(brief['related'])}
Match the depth of the pages currently ranking; do not pad."""

Paso 4: Genera y vuelve a comprobar antes de publicar

El anclaje no es de una sola vez. Volver a extraer la SERP de forma programada te dice cuándo un post se ha desviado de lo que la gente pregunta ahora, que es tu disparador de actualización.

Python
draft = your_llm(prompt)            # call whatever model you use

# Re-pull the SERP weekly and diff the PAA list.
# New questions appearing = a content-refresh signal for that post.
fresh = serp_brief("how to clean a cast iron skillet")
new_qs = set(fresh["people_also_ask"]) - set(brief["people_also_ask"])
if new_qs:
    print("Refresh with:", new_qs)

Ejemplo en Python

Python
import os, requests
H = {"Authorization": f"Bearer {os.environ['SCAVIO_API_KEY']}",
     "Content-Type": "application/json"}

def serp_brief(topic):
    # full SERP (2 credits) gives related_searches + People Also Ask to mine subtopics
    r = requests.post("https://api.scavio.dev/api/v1/google",
        headers=H, json={"query": topic, "light_request": False}).json()
    paa = [q["question"] for q in r.get("questions", [])]
    related = r.get("related_searches", [])
    top = [{"title": x["title"], "link": x["link"], "snippet": x.get("snippet","")}
           for x in r.get("results", [])[:8]]
    return {"people_also_ask": paa, "related": related, "ranking_pages": top}

brief = serp_brief("how to clean a cast iron skillet")
# Feed brief into your writer prompt so the draft answers the questions
# Google is actually surfacing and cites the pages currently ranking.

Ejemplo en JavaScript

JavaScript
const H = { Authorization: `Bearer ${process.env.SCAVIO_API_KEY}`, "Content-Type": "application/json" };
async function serpBrief(topic) {
  const r = await fetch("https://api.scavio.dev/api/v1/google", {
    method: "POST", headers: H,
    body: JSON.stringify({ query: topic, light_request: false })
  }).then(r => r.json());
  return {
    peopleAlsoAsk: (r.questions || []).map(q => q.question),
    related: r.related_searches || [],
    ranking: (r.results || []).slice(0, 8).map(x => ({ title: x.title, link: x.link }))
  };
}

Salida esperada

JSON
{
  "people_also_ask": [
    "Can you use soap on a cast iron skillet?",
    "How do you clean cast iron after cooking?",
    "Why is my cast iron sticky after seasoning?"
  ],
  "related": ["cast iron cleaning rust", "cast iron seasoning oil"],
  "ranking_pages": [ { "title": "How to Clean Cast Iron...", "link": "https://..." } ]
}

Tutoriales relacionados

  • Cómo obtener resultados de búsqueda de Google en Python

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.9+ y la librería requests. Una clave de API de Scavio (50 créditos gratis al registrarte). Cualquier LLM al que puedas llamar para el paso de redacción (Claude, GPT, un modelo local). 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 de búsqueda para flujos de trabajo de SEO en 2026

Read more
Best Of

La mejor API para informes SEO de agencias en 2026

Read more
Glossary

La gente también pregunta (PAA)

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

Datos SERP complementarios de Surfer SEO

Read more

Empieza a construir

Deja de dejar que tu redactor IA adivine. Ancla un agente de blog en datos de SERP de Google en vivo (People Also Ask, búsquedas relacionadas).

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