Resumen
Obtiene your marketing paginas con y sin JavaScript renderizado, compara word counts, measures que share of your contenido survives to LLM crawlers, y prueba si answer engines reference your marca for your objetivo prompts. Built for teams on Framer, Lovable, Webflow, o cualquier JS-heavy marketing stack.
Desencadenador
Cron programar (semanal on Mondays)
Programación
Ejecuta semanal on Mondays
Pasos del flujo de trabajo
List objetivo URLs
Leer marketing pagina URLs de your sitemap o un archivo de configuracion.
Obtener raw HTML
Call Scavio extraer con render_js=false to obtener initial carga util.
Obtener rendered HTML
Call Scavio extraer con render_js=true to obtener el client-rendered version.
Comparar word counts
Measure que fraction of rendered contenido es visible to non-JS crawlers.
Ask el engines
Ejecutar categoria prompts a traves de ChatGPT, Perplexity, Claude y verificar si el pagina ranks.
Implementacion en Python
import requests, os
from bs4 import BeautifulSoup
API_KEY = os.environ["SCAVIO_API_KEY"]
def word_count(url, render):
r = requests.post("https://api.scavio.dev/api/v1/extract",
headers={"x-api-key": API_KEY},
json={"url": url, "render_js": render})
return len(BeautifulSoup(r.json().get("html", ""), "html.parser").get_text().split())
for url in ["https://example.com", "https://example.com/pricing"]:
raw = word_count(url, False)
rendered = word_count(url, True)
print(url, f"{raw/rendered:.0%} visible to LLMs" if rendered else "no content")Implementacion en JavaScript
const API_KEY = process.env.SCAVIO_API_KEY;
async function extract(url, renderJs) {
const r = await fetch("https://api.scavio.dev/api/v1/extract", {
method: "POST",
headers: { "x-api-key": API_KEY, "content-type": "application/json" },
body: JSON.stringify({ url, render_js: renderJs }),
});
return (await r.json()).html ?? "";
}
console.log((await extract("https://example.com", true)).length);Plataformas utilizadas
Búsqueda web con grafo de conocimiento, PAA y resúmenes de IA