# Cuando la protección contra bots bloquea a tu propio chatbot con IA

> La protección contra bots de Cloudflare impedía a nuestro chatbot leer nuestra web y permitir su IP no bastó. Qué funcionó y el ajuste que creamos.

Published: 2026-09-29


Asktopus no es lo único que hacemos. Otra de nuestras webs es companydata.dk, un servicio danés de datos de empresas, y usa Asktopus para responder a las preguntas de sus visitantes. Este verano, companydata.dk activó el Super Bot Fight Mode de Cloudflare para mantener alejados a los scrapers. Funcionó. Y también mantuvo alejado a nuestro propio asistente de IA.

Nos dimos cuenta cuando el asistente no sabía nada de un plan nuevo que acabábamos de lanzar. A primera vista, la base de conocimiento parecía estar bien: el último rastreo se había ejecutado y había recogido 72 páginas. Pero las 72 páginas eran lo mismo: la página de verificación “Just a moment...” de Cloudflare. No había ni una sola frase de contenido real de la que aprender.

Si usas protección contra bots en tu web, a cualquier chatbot con IA que aprenda de tus páginas le puede pasar lo mismo. Te contamos lo que aprendimos al arreglarlo y lo que cambiamos en Asktopus para que no tengas que dar el mismo rodeo.

## Por qué la protección contra bots bloquea a los chatbots con IA

La protección contra bots examina cada petición y somete a una verificación todo lo que no se comporte como una persona en un navegador normal. Para eso está. Pero un chatbot con IA que aprende de tu web tiene que leer tus páginas de forma automática, así que recibe la página de verificación en lugar de tu contenido.

Lo frustrante es que nada parece roto. El rastreo “sale bien”, las páginas se cuentan y el asistente responde tan tranquilo con un conocimiento desfasado o vacío.

## Por qué permitir nuestra dirección IP no sirvió de nada

Nuestro primer arreglo fue el evidente: añadir una regla que dejara al servidor en el que funciona Asktopus saltarse la comprobación de bots. No cambió nada.

El motivo está en cómo se leen las páginas. Asktopus descarga tu sitemap y tu robots.txt desde su propio servidor, pero las páginas en sí las lee con un navegador en la nube, en la red de Cloudflare. Eso es lo que le permite leer correctamente las webs hechas con JavaScript. Esas peticiones de páginas no salen en absoluto de la dirección IP de nuestro servidor. Salen de la red de Cloudflare, desde direcciones que cambian y que se comparten con todos los demás que usan el mismo servicio.

Así que una lista de IP permitidas o bien no cubre el tráfico que importa o bien, si permites toda la red, deja pasar a mucho más que a tu asistente de IA.

## El apaño que funcionó, y por qué no nos quedamos ahí

Lo que por fin hizo que companydata.dk se pudiera rastrear de nuevo fue una regla de Cloudflare que comprobaba dos cosas: que las peticiones vinieran de la propia red de Cloudflare y una cabecera que el navegador en la nube de Cloudflare añade a cada petición. El siguiente rastreo leyó bien las 72 páginas y el asistente ya conocía el plan nuevo.

Funcionó, pero tiene dos problemas. Solo funciona porque tanto la web como el navegador en la nube están, casualmente, en Cloudflare. Y deja pasar a cualquiera que use el mismo servicio de navegador en la nube, no solo a Asktopus.

Más tarde, por otros motivos, companydata.dk añadió otra condición a la misma regla: saltarse la comprobación de bots en las peticiones que llevan una cabecera secreta que solo conocemos nosotros. Resultó ser la solución general. Una cabecera secreta funciona en cualquier firewall que pueda leer las cabeceras de las peticiones, no depende de direcciones IP y solo pasan las peticiones con tu valor exacto.

## La solución: una cabecera secreta que controlas tú

Así que lo incorporamos a Asktopus. Cada sitio web tiene ahora un ajuste de **Protección contra bots** en el que añades el nombre de una cabecera y un valor secreto. Asktopus envía esa cabecera con cada petición que hace a tu web cuando la escanea y la lee, y tú añades a tu firewall una regla que deja pasar las peticiones que la llevan.

Tuvimos cuidado con adónde va el secreto:

- **Solo a tu dominio.** La cabecera se envía al dominio de tu web y a sus subdominios, nunca a otros dominios, y tampoco se reenvía cuando una página redirige a otro sitio.
- **Nada de otros dominios.** Mientras haya una cabecera configurada, el navegador en la nube no carga nada de otros dominios al leer tus páginas. Se bloquean las analíticas, los scripts de publicidad y los widgets de terceros, así que el secreto no puede filtrarse hacia ellos. La contrapartida: si tu web carga su contenido real desde otro dominio, esas páginas pueden quedar incompletas.
- **No se vuelve a mostrar.** Cuando guardas un valor, el panel solo muestra sus cuatro últimos caracteres.

## Cómo configurarlo

1. En Asktopus, abre tu sitio web y ve a **Ajustes › Protección contra bots**.
2. Escribe un nombre de cabecera como `X-Asktopus-Verify`, pulsa **Generar** para obtener un secreto aleatorio, cópialo y pulsa **Añadir cabecera**.
3. Añade a tu firewall una regla que deje saltarse la comprobación de bots a las peticiones con esa cabecera y ese valor.
4. En la pestaña **Conocimiento**, pulsa **Buscar páginas nuevas** y después **Actualizar conocimiento**.

Cómo es la regla del firewall depende de tu plataforma:

- **Cloudflare con Super Bot Fight Mode (plan Pro o superior):** una regla personalizada (custom rule) con la acción Skip y la opción **All Super Bot Fight Mode rules** marcada, con una expresión como `any(http.request.headers["x-asktopus-verify"][*] == "your-secret")`.
- **Cloudflare con Bot Fight Mode (plan Free):** este modo no se puede saltar con ninguna regla, así que una cabecera no sirve. El propio consejo de Cloudflare es desactivar Bot Fight Mode o pasar a Super Bot Fight Mode.
- **Vercel Firewall:** una regla personalizada (custom rule) con una condición sobre tu cabecera y la acción Bypass, colocada en primer lugar. Las reglas personalizadas se ejecutan antes que el conjunto de reglas Bot Protection de Vercel.
- **Cualquier otro:** cualquier firewall o proxy que pueda comprobar una cabecera de la petición, desde AWS WAF hasta tu propia configuración de nginx, puede hacer lo mismo.

La [guía de protección contra bots](/es/docs/bot-protection) tiene los pasos exactos para cada plataforma.

## Ahora Asktopus te avisa cuando lo bloquean

Lo peor de nuestra experiencia fue que nada nos avisó. El rastreo decía que todo había ido bien mientras la base de conocimiento se llenaba de páginas de verificación.

Eso también está resuelto. Cuando Asktopus lee tus páginas y solo recibe páginas de verificación de bots, como el “Just a moment...” de Cloudflare o el Vercel Security Checkpoint, ya no las añade a la base de conocimiento. La pestaña **Conocimiento** te indica que la protección contra bots de tu web ha bloqueado a Asktopus y enlaza directamente al ajuste.

## Preguntas frecuentes

### ¿Esto debilita mi protección contra bots?

Solo las peticiones que llevan tu secreto exacto se saltan la comprobación de bots, y solo esa comprobación. Mantén el valor en privado, que sea largo y aleatorio, y conserva tus demás reglas, como los límites de peticiones (rate limiting).

### ¿Pueden ver el secreto otros servicios?

La cabecera solo se envía a tu propio dominio y a sus subdominios y, mientras esté configurada, Asktopus no carga nada de otros dominios al leer tus páginas.

### ¿Qué planes tienen este ajuste?

Todos. Los propietarios y los editores de un espacio de trabajo pueden añadir y quitar cabeceras.

### ¿Tengo que usar Cloudflare o Vercel?

No. Cualquier firewall o proxy que pueda comprobar una cabecera de la petición funciona igual. La [guía](/es/docs/bot-protection) cubre Cloudflare, Vercel y AWS WAF, y el enfoque general para todo lo demás.
