Una integración es el trozo de código o de configuración que se pone delante de tu web, en tu CDN o en tu servidor, y decide qué peticiones son de bots. Esas se las pide a Jazui; el resto sigue a tu web sin cambios. No tienes que tocar tu aplicación.
Cuál elegir
Si tienes varias opciones, la mejor suele ser la que está más cerca del usuario: Cloudflare, Vercel o Netlify, y si no, la de tu framework (Express o ASP.NET Core) antes que la del servidor web. Las de código vuelven siempre a tu web si Jazui falla y se actualizan solas.
Diferencias entre ellas
| Cloudflare, Vercel, Netlify, Express | ASP.NET Core | nginx | IIS y Apache | |
|---|---|---|---|---|
| Lista de bots | Se descarga sola cada día | Se descarga sola cada día | En la configuración | En la configuración |
| Avisa de bots desconocidos | Sí | Sí | No | No |
| Si Jazui falla | Sirve tu web | Sirve tu web | Sirve tu web (salvo un 403) | El bot recibe el error |
| Tiempo máximo de espera | 20 s | 20 s (configurable) | 20 s | El del proxy del servidor |
| Envía a Jazui | Solo lo necesario | Solo lo necesario | Las cabeceras del bot, sin cookies | Las cabeceras del bot, sin cookies |
Lo que hacen todas
- Deciden si la petición es de un bot:
GEToHEAD, agente de usuario en la lista de bots (o_escaped_fragment_en la dirección), ruta que no es un archivo y sin la cabeceraX-Jazui. - Se la piden a Jazui:
GET https://api.jazui.com/Rendercon la dirección completa, el agente de usuario, tu token enAuthorization: Bearer, la IP del bot enX-Jazui-Client-IPy elIf-None-Matchdel bot. - Entregan al bot la respuesta de Jazui si lleva
X-Jazui: true(200, 404, redirecciones, 304…), con suContent-Type,ETag,Last-ModifiedyX-Jazui-Cache; o el403conX-Jazui-Blockedsi bloqueaste al bot. - En cualquier otro caso sirven tu web: Jazui tarda, falla, el token no vale o el plan está agotado.
El detalle está en Cómo funciona.
La lista de bots
Jazui mantiene una lista de más de 230 bots (buscadores, IA, redes sociales y herramientas SEO) y la publica sin necesidad de token:
curl https://api.jazui.com/v2/bots
curl https://api.jazui.com/v2/bots.txt/v2/bots devuelve un JSON con la versión, la fecha y los fragmentos; /v2/bots.txt, un fragmento por línea. Las integraciones de código la descargan al arrancar y cada 24 horas; si no pueden, siguen con la lista que llevan dentro. Para nginx, IIS y Apache hay que copiarla a mano cuando cambia: se explica en la página de cada uno.
Lo que nunca pasa por Jazui
Las rutas que terminan en estas extensiones las sirve siempre tu web, venga quien venga:
js mjs css less map json xml rss txt webmanifest ico png jpg jpeg gif webp avif svg bmp tif tiff psd ai woff woff2 ttf otf eot mp3 m4a wav ogg mp4 m4v webm avi mov mpg mpeg wmv flv swf pdf doc docx xls xlsx ppt pptx csv zip gz rar 7z iso torrent exe dmg apk wasm dll dat blat
Tampoco pasan las peticiones POST, PUT… ni las que traen la cabecera X-Jazui (las del propio Jazui al renderizar).
Qué token usar
Cualquier integración funciona con el token de la cuenta (Inicio › Integración y ajustes) o con el token del sitio (Sitios web › Token del sitio). Si tienes varios sitios, usa el del sitio en cada uno: si uno se filtra, lo cambias sin tocar los demás. Nunca uses el PUBLIC Token en una integración.
Comprobar cualquier integración
Con curl y el agente de usuario de pruebas integration-test, que todas las integraciones tratan como bot:
# Como un bot: debe llevar x-jazui: true
curl -I -A "integration-test" https://misitio.com/
# Como una persona: tu web de siempre, sin x-jazui
curl -I https://misitio.com/
# Un archivo estático nunca pasa por Jazui
curl -I -A "integration-test" https://misitio.com/favicon.icoTambién puedes usar la herramienta Inspección de URLs de Google Search Console o el depurador de vistas previas de Facebook o LinkedIn para ver la página como la reciben ellos.