Cómo funciona

Qué pasa desde que un bot pide una página hasta que recibe el HTML completo.

Markdown

El problema que resuelve

Las webs hechas con Angular, React, Vue, Blazor u otros frameworks de JavaScript (SPA) se montan en el navegador: el servidor devuelve un HTML casi vacío y es el JavaScript el que pinta el contenido. A las personas no les afecta, pero a muchos bots sí:

  • Los bots de IA (GPTBot, ClaudeBot, PerplexityBot…) no ejecutan JavaScript. Ven una página vacía y no pueden citarte ni recomendarte.
  • Las redes sociales (WhatsApp, LinkedIn, X, Facebook, Telegram…) sacan la vista previa de un enlace del HTML. Sin título, descripción ni imagen, el enlace se comparte sin tarjeta.
  • Google sí ejecuta JavaScript, pero en una segunda pasada que puede tardar días, gasta más recursos en cada página y depende de que tu JavaScript cargue bien.

Jazui hace que todos reciban la misma página que ve una persona, ya renderizada, sin que tengas que cambiar tu aplicación.

El recorrido de una petición

  1. Un bot pide una página a tu web, por ejemplo GPTBot pide https://misitio.com/precios.
  2. Tu integración la reconoce (en tu CDN o tu servidor) por su agente de usuario y, en lugar de servir tu SPA, se la pide a la API de Jazui con tu token.
  3. Jazui comprueba el token, el plan, tus reglas y si el sitio está verificado.
  4. Si la página está en caché, la devuelve al instante. Si no, la abre con Chrome, espera a que tu JavaScript termine, la guarda y la devuelve.
  5. Tu integración entrega al bot el HTML completo, con el código de estado real (200, 404, redirección…).

Las personas no pasan por Jazui: tu integración solo desvía las peticiones de bots. Si Jazui tarda o falla, tu integración sirve tu web normal.

Cómo reconoce la integración a los bots

Una petición pasa por Jazui solo si se cumplen todas estas condiciones:

  • Es un GET o un HEAD.
  • Su agente de usuario contiene uno de los nombres de la lista de bots de Jazui (sin distinguir mayúsculas), o la dirección lleva _escaped_fragment_.
  • La ruta no termina en una extensión de archivo: .js, .css, imágenes, fuentes, vídeos, documentos, comprimidos, .json, .xml, .txt… Esos archivos siempre los sirve tu web.
  • La petición no trae la cabecera X-Jazui. Así se evitan bucles: cuando Jazui abre tu página con Chrome, lo hace como un navegador normal y tu web se la sirve directamente.

La lista de bots

Incluye más de 230 nombres: buscadores (Googlebot, Bingbot, Yandex, Baidu, DuckDuckBot, Applebot…), bots de IA (GPTBot, ChatGPT-User, OAI-SearchBot, ClaudeBot, PerplexityBot, CCBot y unos 150 más), redes sociales y vistas previas (facebookexternalhit, Twitterbot, LinkedInBot, WhatsApp, TelegramBot, Discordbot, Slackbot…), herramientas SEO y de monitorización (AhrefsBot, SemrushBot, Lighthouse, GTmetrix…) y otros como archive.org.

La lista se mantiene en Jazui y las integraciones de JavaScript y ASP.NET Core la descargan solas cada día (GET /v2/bots); si no pueden, siguen con la que tienen incluida. En nginx, IIS y Apache la lista va en la configuración: el panel te muestra el bloque actualizado para copiarlo cuando cambie.

Bots que todavía no conocemos

Si una petición tiene pinta de bot (su agente de usuario contiene bot, crawl, spider, fetch, preview…) pero no está en la lista, las integraciones de JavaScript y ASP.NET Core la sirven con normalidad y avisan a Jazui en segundo plano, como mucho una vez al día por agente. Así se descubren bots nuevos y se añaden a la lista.

Qué le pide la integración a Jazui

La integración llama a GET https://api.jazui.com/Render con:

  • url: la dirección completa que pidió el bot. nginx, IIS y Apache, que no pueden codificarla en la query, la envían en la cabecera X-Jazui-Url.
  • botAgent: el agente de usuario del bot (si falta, se usa el User-Agent de la petición).
  • Authorization: Bearer con tu token.
  • X-Jazui-Client-IP: la IP del bot, para las métricas y para comprobar que es quien dice ser.
  • If-None-Match, si el bot lo envió, para responder 304 cuando la página no ha cambiado.
Petición de la integración
GET https://api.jazui.com/Render?url=https%3A%2F%2Fmisitio.com%2Fprecios&botAgent=Mozilla%2F5.0%20(compatible%3B%20GPTBot%2F1.2)
Authorization: Bearer JAZUI_TOKEN
X-Jazui-Client-IP: 20.171.207.12
If-None-Match: "4812-638976215370000000"

Qué comprueba Jazui antes de servir

En este orden:

  1. El token: tiene que ser el vigente de tu cuenta o de un sitio. Un token de sitio solo sirve para su dominio y sus subdominios.
  2. Los bots de IA: si en los ajustes del sitio has bloqueado a ese bot de IA, recibe un 403.
  3. El plan gratuito: si ya ha gastado los renders o las peticiones del mes, deja de recibir servicio hasta el mes siguiente y tu web se sirve normal.
  4. El sitio verificado: si el dominio no está verificado, Jazui no lo renderiza.
  5. Tus reglas: pueden bloquear al bot, excluir la URL del render o cambiar cómo se renderiza.
  6. Los límites del plan: renders del mes y páginas en caché, y en los planes que la piden, la insignia.

El render

Cuando una página no está en caché, Jazui la abre con Chrome, ejecuta tu JavaScript y espera a que termine de cargar, como mucho el tiempo de espera que configures en el sitio (hasta 5 segundos en el plan gratuito y 10 en los de pago). Después:

  • Quita lo que solo sirve en el navegador y deja el HTML final: título, metadatos, datos estructurados, texto y enlaces.
  • Guarda el código de estado real: si tu página dice que es un 404 o redirige, el bot recibe ese 404 o esa redirección, no un 200 falso.
  • Aplica lo que digan tus reglas, por ejemplo añadir un título, una descripción o datos estructurados al <head>.
  • Revisa la página y calcula su nota SEO.

La caché

Cada página renderizada se guarda. Las siguientes peticiones de cualquier bot se sirven desde la caché al instante (X-Jazui-Cache: HIT), sin volver a abrir Chrome ni gastar renders.

Para que la caché no se quede vieja:

  • Recaché automático cada cierto número de días, por sitio o por regla (nunca por debajo del recaché mínimo de tu plan: Planes y límites).
  • Recaché al momento desde el panel, o por la API de caché al publicar cambios.
  • Aviso si la versión guardada ya no coincide con tu web en vivo.

Cada página tiene un ETag: si el bot pregunta si ha cambiado (If-None-Match) y no ha cambiado, recibe un 304 sin cuerpo.

Cabeceras de la respuesta

CabeceraSignificado
X-Jazui: trueLa respuesta viene de Jazui. Las integraciones solo la entregan al bot si la lleva.
X-Jazui-CacheHIT: servida desde la caché. MISS: renderizada en esta petición.
ETag y Last-ModifiedVersión de la página guardada, para las peticiones condicionales.
X-Jazui-BlockedEn un 403: ai-bot si bloqueaste a ese bot de IA, rule si lo bloquea una regla.
X-Jazui-LimitEn un 429: plan (plan gratuito agotado), renders (sin renders este mes) o pages (máximo de páginas en caché).

Si Jazui no responde

Las integraciones están hechas para que tu web nunca se caiga por Jazui. Si Jazui tarda más de 20 segundos, responde con un error, el token no vale o se ha agotado el plan, la petición sigue su camino y el bot recibe tu web normal, como si Jazui no existiera. Solo se entregan al bot las respuestas de Jazui (las que llevan X-Jazui) y los bloqueos que tú decidiste (403 con X-Jazui-Blocked).

Hay dos excepciones, por cómo funcionan esos servidores: con IIS y Apache el proxy no puede volver a tu web si Jazui falla, y el bot recibe el error. Con nginx, un 403 de un sitio sin verificar llega al bot. Por eso conviene verificar el sitio antes de activar la configuración.

Bots de verdad y bots que se hacen pasar por otros

Cualquiera puede poner «Googlebot» en su agente de usuario. Con la IP que envía tu integración, Jazui comprueba por DNS inverso si los grandes buscadores son quienes dicen ser: Googlebot y sus variantes, Bingbot, Applebot, Yandex, Baidu, Seznam, Petal y Naver. En el tráfico de bots verás cuáles son verificados y cuáles se hacen pasar por otros.

Privacidad

  • Las personas que visitan tu web nunca pasan por Jazui: la integración solo desvía las peticiones de bots.
  • Jazui solo renderiza dominios verificados, siempre con el token de tu cuenta.
  • Las integraciones de JavaScript y ASP.NET Core envían a Jazui solo lo necesario (dirección, agente de usuario, IP del bot y la cabecera de caché), sin cookies.
  • Puedes borrar la caché y tu cuenta cuando quieras.