Prerender para bots
Envíe una página construida con JavaScript en el navegador y reciba el HTML final que vería un visitante, con etiquetas meta, datos estructurados y contenido de carga tardía en su sitio, listo para servirlo a buscadores y generadores de vistas previas. Paga por página, sin suscripción.
Ejecútela online
Ejecute esto en nuestros servidores con su cuenta. Las herramientas gratuitas corren en su navegador; esta cobra de su saldo del KIT según el precio de arriba.
Los bots de búsqueda, los scrapers de vistas previas en redes sociales y muchos rastreadores antiguos siguen sin ejecutar JavaScript, y un div vacío es peor que no tener página. Actívela cuando detecte un user-agent de bot y deje de adivinar si Googlebot realmente vio su contenido.
La distancia entre lo que construyó y lo que se indexa
Las aplicaciones de página única hechas con frameworks modernos se ven perfectas en un navegador, pero muchas veces llegan a los motores de búsqueda y rastreadores como una cáscara vacía, porque el HTML que reciben nunca ejecuta el JavaScript que llena el contenido. Esto afecta a las SPA, a catálogos de comercio electrónico muy hidratados y a cualquier sitio donde el contenido depende de peticiones de datos en el cliente.
Qué ocurre exactamente en cada llamada
Ese HTML es lo que se devuelve, completo con etiquetas meta, datos estructurados inyectados y cualquier contenido que solo apareció después de que terminó una llamada del lado del cliente. Se comporta igual que una pestaña de navegador que se dejó abierta hasta que todo cargó.
Una historia breve de un problema persistente
Los motores de búsqueda han mejorado su ejecución de JavaScript con los años, pero los presupuestos de renderizado siguen siendo limitados y desiguales entre rastreadores. Mientras tanto, los bots de vista previa social y muchas herramientas de auditoría SEO nunca evolucionaron más allá de leer el HTML crudo. El prerenderizado como técnica es anterior a la mayoría de los frameworks modernos, precisamente porque esa asimetría nunca se cerró del todo.
Dónde deja de ser su problema
Una vez que tiene el HTML renderizado, lo que haga con él es enteramente suyo: guardarlo en el borde de su red, almacenarlo como respaldo estático o pasarlo directo a otro paso automatizado como una revisión de meta tags o una auditoría SEO. No conservamos el contenido de la página más allá de la ventana de retención, y nada de lo renderizado aquí se usa para entrenar nada.
Qué puede hacer con ella
Corregir vistas previas rotas en redes sociales
Los bots que expanden enlaces en apps de mensajería suelen ignorar el JavaScript por completo; el prerenderizado garantiza que sus etiquetas Open Graph y la imagen de vista previa realmente estén en el HTML que ellos leen.
Alimentar con HTML correcto a otras herramientas de SEO
Pase una página primero por prerenderizado y luego envíe el resultado a una auditoría de encabezados o de meta tags, para que el análisis refleje lo que realmente contiene la página renderizada.
Precalentar una caché estática durante la noche
Recorra su sitemap por lotes de forma programada, guarde el HTML renderizado de cada URL y sirva a los bots desde esa caché sin ninguna latencia de renderizado durante el día.
Preguntas frecuentes
¿Hay un plan gratuito para probar?
No hay capa gratuita: las capas gratis se abusan y ralentizan a todos. Sin suscripción, sin tokens ni créditos inventados, y una tarea fallida no se cobra.
¿Qué pasa si falla el renderizado?
La tarea se reintenta automáticamente hasta tres veces; si sigue fallando recibe un error claro y nunca se le cobra por una tarea fallida.
¿El prerenderizado también ayuda con la velocidad de la página?
De forma indirecta sí: servir HTML ya renderizado a bots y visitantes en caché elimina por completo el tiempo de renderizado en el cliente.
¿Se guarda mi contenido a largo plazo?
No. Los resultados se eliminan al terminar la ventana de retención y jamás se usan para entrenar ningún modelo.
¿El prerenderizado arregla las vistas previas que salen en blanco en las apps de chat?
A menudo, sí. Los bots que despliegan enlaces en las apps de mensajería suelen saltarse los scripts por completo, así que servirles la página ya renderizada garantiza que sus etiquetas Open Graph y su imagen de vista previa estén realmente en lo que leen.
Herramientas relacionadas
Para desarrolladores — acceso por API
Todo lo de esta página está disponible por programación. Esta sección es para equipos que quieren integrarlo en sus sistemas; el resto puede usar la herramienta de arriba sin más.
Endpoint de API
¿Prefiere automatizarlo? Un POST autenticado crea la tarea; el resultado llega por webhook o enlace firmado. La misma capacidad también se ejecuta aquí en la web, por email y desde Telegram — y pronto también desde nuestra app.
Llámela desde su stack
curl -X POST https://api.kit.forhosting.com/web/prerender \
-H "Authorization: Bearer $KIT_KEY" \
-H "Content-Type: application/json" \
-d '{"url":"https://example.com"}'const res = await fetch("https://api.kit.forhosting.com/web/prerender", {
method: "POST",
headers: {
"Authorization": `Bearer ${process.env.KIT_KEY}`,
"Content-Type": "application/json"
},
body: JSON.stringify({
"url": "https://example.com"
})
});
const { task_id } = await res.json();import os, requests
res = requests.post(
"https://api.kit.forhosting.com/web/prerender",
headers={"Authorization": f"Bearer {os.environ['KIT_KEY']}"},
json={
"url": "https://example.com"
},
)
task_id = res.json()["task_id"]<?php
$res = file_get_contents("https://api.kit.forhosting.com/web/prerender", false, stream_context_create([
"http" => [
"method" => "POST",
"header" => "Authorization: Bearer " . getenv("KIT_KEY") . "\r\nContent-Type: application/json",
"content" => '{"url":"https://example.com"}',
],
]));
$task = json_decode($res, true);body := bytes.NewBufferString(`{"url":"https://example.com"}`)
req, _ := http.NewRequest("POST", "https://api.kit.forhosting.com/web/prerender", body)
req.Header.Set("Authorization", "Bearer "+os.Getenv("KIT_KEY"))
req.Header.Set("Content-Type", "application/json")
res, _ := http.DefaultClient.Do(req)Ejemplo de solicitud
{
"url": "https://example.com"
}Ejemplo de respuesta
{
"task_id": "tsk_a1b2c3d4e5f6a1b2c3d4e5f6",
"type": "web.prerender",
"status": "queued",
"_links": {
"result": "/tasks/tsk_…/result"
}
}La API es asíncrona: la llamada devuelve un task_id al instante y el resultado llega por webhook. El polling está limitado a 1 req/s por tarea.
Precio
Precio publicado — sin tokens ni créditos inventados. Una tarea fallida no se cobra.
Límites
timeout_sec | 30 |
max_crawl_pages | 25 |
Errores
| HTTP | Código | Significado |
|---|---|---|
401 | unauthorized | API key ausente o inválida. |
402 | insufficient_balance | El saldo no cubre el precio de la tarea. |
404 | unknown_type | El tipo de tarea no existe. |
429 | rate_limited | Demasiadas peticiones. Use el webhook en vez de sondear. |
422 | task_failed | La tarea falló tras 3 reintentos. No se cobra. |
Notas técnicas
La API Prerender carga su URL en un motor de renderizado real, espera a que la aplicación termine de pintar el contenido y devuelve el HTML final tal como lo vería una persona.
La distancia entre lo que construyó y lo que se indexa
La API Prerender existe justamente para equipos que no pueden reescribir todo su front end a renderizado en servidor solo para satisfacer a un puñado de bots.
Qué ocurre exactamente en cada llamada
Envía una URL a POST /web/prerender, nuestra infraestructura la abre en un motor de renderizado real, espera a que la actividad de red y la ejecución clave de JavaScript se estabilicen, y captura el DOM resultante como HTML estático.
Cómo encaja en un flujo automatizado, no en una pestaña abierta
Como el endpoint es asíncrono, encola una petición, recibe un task_id de inmediato y obtiene el HTML terminado por webhook firmado o por un enlace válido por 24 horas, sin conexiones abiertas dentro de su ruta crítica. Un middleware que detecte user-agents de bots puede llamar a este endpoint bajo demanda, o puede precalentar una caché de sus URL importantes de forma programada.
Casos de integración
Servirle a Googlebot una página completa
Detecte el user-agent del rastreador en su borde de red, llame a la API Prerender para esa URL y sirva el HTML renderizado en lugar de la cáscara vacía de su aplicación.
Preguntas técnicas
Qué devuelve exactamente la API Prerender?
El HTML final ya renderizado de la URL que envía, capturado después de que la ejecución de JavaScript se estabiliza: el mismo marcado que mostraría un navegador, no el código fuente original.
Cómo recibo el resultado?
La llamada a POST /web/prerender es asíncrona y devuelve un task_id de inmediato; el HTML terminado llega por webhook firmado o por un enlace firmado válido durante 24 horas.
Cuánto cuesta este servicio?
Cuesta 0.040 dólares por petición más 0.001 dólares por URL, un precio publicado y predecible para que calcule el costo de un lote antes de encolarlo.
Puedo usarla en páginas protegidas por autenticación?
El endpoint renderiza la URL que envíe, así que cualquier autenticación debe manejarse mediante parámetros de URL, cookies o encabezados que su propia configuración ya soporte.