# Cómo funciona > Qué pasa desde que un bot pide una página hasta que recibe el HTML completo. Página original: https://docs.jazui.com/how-it-works/es ## 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`: ```http 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 dados de alta. 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 ``. - 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](https://docs.jazui.com/llms/es/plans.txt)). - **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 | Cabecera | Significado | |---|---| | `X-Jazui: true` | La respuesta viene de Jazui. Las integraciones solo la entregan al bot si la lleva. | | `X-Jazui-Cache` | `HIT`: servida desde la caché. `MISS`: renderizada en esta petición. | | `ETag` y `Last-Modified` | Versión de la página guardada, para las peticiones condicionales. | | `X-Jazui-Blocked` | En un `403`: `ai-bot` si bloqueaste a ese bot de IA, `rule` si lo bloquea una regla. | | `X-Jazui-Limit` | En 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.