Saltar al contenido
Visibilidad IAGEO
ES

Antes de preguntar por qué Perplexity no te cita nunca, comprueba si puede leerte

Bot Fight Mode de Cloudflare reta a los rastreadores que no verifica. PerplexityBot no lo está, y la prueba habitual con curl no puede detectarlo.

· Actualizado · 10 min de lectura

Si una zona de Cloudflare tiene Bot Fight Mode encendido, PerplexityBot está siendo retado y la mayoría de sus peticiones no llegan a ninguna página. Googlebot, bingbot, GPTBot, ClaudeBot y Applebot no se ven afectados, porque están en la lista de bots verificados de Cloudflare y PerplexityBot no. La prueba que casi todo el mundo hace para comprobarlo no puede detectarlo.

Esa última frase es la que vale tu tiempo. Mandar el user-agent de un rastreador con curl y recibir un 200 no demuestra absolutamente nada, y es la comprobación que se hace.

Aviso: EchoWi vende medición de visibilidad en IA, así que una página que defiende comprobar el acceso de los rastreadores antes de contratar un informe de visibilidad es una página con interés. Todo lo de aquí se comprueba sin nosotros: la documentación de Cloudflare va enlazada en cada afirmación, y abajo está la consulta que lo responde para tu propio dominio.


La versión corta

  1. Bot Fight Mode reta a cualquier bot que Cloudflare no haya verificado. Es el control de bots del plan gratuito, es un interruptor de encendido y apagado, y está activo en muchas zonas.
  2. PerplexityBot no está en la lista de bots verificados de Cloudflare. Googlebot, bingbot, GPTBot, ClaudeBot, Amazonbot y Applebot sí, y por eso el problema aparece como un único motor fallando mientras todo lo demás parece sano.
  3. Una regla WAF no lo arregla. Cloudflare documenta que Bot Fight Mode «no se puede saltar con acciones Skip de reglas personalizadas», porque no corre en el Ruleset Engine.
  4. Una regla de acceso por IP sí. Esa misma documentación señala que «no se disparará si una IP Access Rule casa primero con la petición», y Perplexity publica las direcciones que usa su rastreador.
  5. Probar con un user-agent falsificado no demuestra nada. La decisión se toma por IP de origen y firma de bot verificado, así que tu propia máquina mandando PerplexityBot como user-agent siempre pasará.

Por qué la prueba habitual no puede verlo

Esta es la comprobación que se hace, de una forma u otra, en toda auditoría técnica:

curl -A "PerplexityBot/1.0" https://ejemplo.com/un-articulo/

Vuelve un 200, el auditor escribe «los rastreadores de IA pueden acceder al sitio», y la fila se pone verde.

El 200 es real y no significa nada, porque tú no eres PerplexityBot. Cloudflare decide si reta una petición usando la IP de origen y si esa IP pertenece a un rastreador verificado, no la cadena de la cabecera User-Agent. Una petición desde tu portátil llevando el nombre de un rastreador es una petición corriente desde tu portátil, y se trata como tal.

Así que la prueba responde a una pregunta que nadie hizo: si esta URL devuelve HTML a un cliente normal. La que importa, si la infraestructura del motor recibe ese HTML, es invisible desde fuera.

El mismo razonamiento vale para cualquier comprobación de rastreadores que corra desde tu máquina, incluidas las de la mayoría de herramientas SEO, porque también hacen la petición ellas. Un robots.txt que permite a todos los rastreadores de IA es necesario y no es suficiente, y corrida esa comprobación sobre los 66 proveedores que el catálogo tenía entonces la pasan los 66, lo que dice más de la comprobación que de ellos: robots.txt es una petición a un rastreador que se porta bien, y un reto de la CDN ocurre antes de que nadie lo lea.


Qué está pasando en realidad

Cloudflare clasifica el tráfico de bots según si el bot está en su lista de bots verificados, una lista con requisitos publicados y una política para retirar a los que los incumplen. Bot Fight Mode, el control de bots del plan gratuito, lanza un reto computacionalmente caro al tráfico que encaja con patrones de bot conocidos, y los verificados son a los que deja en paz.

PerplexityBot no aparece entre los rastreadores verificados actuales. Perplexity-User, el agente que trae una página porque una persona la pidió, solo aparece en una categoría heredada. La página de política de Cloudflare dice explícitamente que los bots que incumplen sus requisitos «serán retirados de la lista global de permitidos».

El resultado tiene una forma muy concreta, y por eso sobrevive a las auditorías: falla un motor y todos los demás parecen perfectos. Un panel que enseña a Googlebot, GPTBot y ClaudeBot rastreando con normalidad se lee como un sitio sano, y la ausencia de un rastreador en una lista de doce no la nota nadie.


Por qué no se arregla con una regla

El instinto es escribir una regla WAF que salte la protección de bots para ese rastreador. La documentación de Cloudflare cierra esa puerta con todas las letras:

No puedes evitar ni saltar Bot Fight Mode usando reglas personalizadas de WAF o Page Rules. Esto es porque Bot Fight Mode no corre en el Ruleset Engine, donde las acciones Skip, Bypass y Allow no tienen efecto.

Así que en un plan gratuito hay tres opciones reales, y solo una es gratis y estrecha:

OpciónQué cuesta
Apagar Bot Fight ModePasa cualquier bot no verificado, scrapers incluidos
Subir a Super Bot Fight ModeUn plan de pago, y ahí sí admite reglas de salto
Permitir las IP publicadas del rastreadorNada, y solo abre lo que nombras

La tercera funciona por una frase de esa misma documentación: Bot Fight Mode «no se disparará si una IP Access Rule casa primero con la petición». Una regla de acceso en modo permitir se evalúa antes, así que una petición desde una dirección listada no llega a ser retada.

Un detalle te va a hacer tropezar. Perplexity publica sus rangos como bloques CIDR, y las reglas de acceso por IP de Cloudflare solo aceptan /16, /24 y direcciones sueltas para IPv4. Un /29 o un /30 se rechazan con un error de validación, así que hay que expandir los bloques a direcciones individuales antes de poder meterlos.


Cómo comprobar tu dominio en una consulta

No lo pruebes desde tu máquina. Lee lo que tu CDN hizo de verdad, que es el único sitio donde queda registrada la decisión.

Si estás en Cloudflare, la API de analítica lo responde directamente. Agrupa el último día de peticiones por user-agent y estado de respuesta, y mira la proporción de 403 por rastreador:

httpRequestsAdaptiveGroups(
  limit: 500,
  filter: { datetime_geq: $since, datetime_lt: $until },
  orderBy: [count_DESC]
) { count dimensions { userAgent edgeResponseStatus } }

Dos cosas al leer el resultado.

No filtres por una lista de nombres de rastreador que hayas escrito tú. Agrega todos los user-agent y luego mira qué tiene una tasa de bloqueo alta. Una lista escrita de antemano solo encuentra los rastreadores en los que ya habías pensado, y el que importa es el que se te olvidó.

No leas un agregado que cruce un cambio. Si arreglas algo y después mides una ventana que abarca los dos lados del arreglo, obtienes la media de dos regímenes distintos y una cifra que no describe ninguno. Parte la ventana por el momento del cambio y léela por horas.

Sin Cloudflare, la misma respuesta está en los logs de acceso de tu origen: agrupa por user-agent, cuenta respuestas distintas de 200, y compara rastreadores entre sí en vez de contra un absoluto.


Qué significa esto y qué no para tu visibilidad

Ser legible es una condición previa, no una estrategia. Un rastreador que puede alcanzar tus páginas no las va a citar necesariamente, y casi todo lo que medimos va de qué se cita cuando ya todo es alcanzable: cuatro redacciones de una pregunta pueden no compartir ni una sola fuente citada de forma fiable, y las plazas de citación duraderas de una categoría suelen ser de intermediarios y no de las organizaciones por las que se pregunta.

Pero un rastreador bloqueado vuelve todo eso inmedible en una dirección. Si una herramienta te dice que un motor no te cita nunca, hay dos explicaciones y desde fuera son idénticas: el motor te leyó y eligió otra cosa, o el motor no te leyó nunca. Solo tus propios logs las separan, y solo una de las dos merece que escribas contenido para arreglarla.

Ese es el orden práctico. Comprueba que cada motor que te importa recibe tu HTML. Después mide qué citan. Al revés es pagar por un informe sobre una pregunta que se decidió en la CDN.


Preguntas frecuentes sobre el acceso de rastreadores

¿Cloudflare bloquea a PerplexityBot por defecto?

No en el sentido de una regla deliberada contra él, pero Bot Fight Mode reta a los bots que no están en la lista de verificados de Cloudflare, y PerplexityBot no está. Cualquier zona con Bot Fight Mode activo lo está retando, mientras Googlebot, bingbot, GPTBot, ClaudeBot, Amazonbot y Applebot pasan porque están verificados.

¿Por qué probar con curl y el user-agent del rastreador sale bien?

Porque el user-agent no es lo que decide. Cloudflare evalúa la IP de origen y si pertenece a un rastreador verificado, así que una petición desde tu propia máquina llevando el nombre de un rastreador se trata como una petición desde tu máquina. Pasará, y no te dice nada de lo que recibe el rastreador real.

¿Puedo añadir una regla WAF para dejar pasar a un rastreador concreto?

No. Cloudflare documenta que Bot Fight Mode no se puede evitar ni saltar con reglas personalizadas ni page rules, porque no corre en el Ruleset Engine donde se aplican las acciones de salto. Super Bot Fight Mode, en planes de pago, sí admite reglas de salto.

¿Cuál es la forma gratuita de permitir un rastreador sin apagar la protección?

Una regla de acceso por IP en modo permitir con las direcciones publicadas del rastreador. La documentación de Cloudflare dice que Bot Fight Mode no se disparará si una regla de acceso casa antes. Ojo: las reglas de IPv4 solo aceptan /16, /24 y direcciones sueltas, así que los bloques CIDR menores que un /24 hay que expandirlos a IP individuales.

¿Cómo sé si me está pasando ahora mismo?

Lee los logs de tu CDN o de tu origen, no una petición sintética. Agrupa el último día por user-agent y estado, y compara la tasa de bloqueo entre rastreadores. La firma es inconfundible: un rastreador con una proporción alta de 403 mientras todos los demás están cerca de cero.

¿Permitir las IP de un rastreador debilita mi seguridad?

Abre exactamente las direcciones que nombras y nada más. La alternativa en un plan gratuito es apagar la protección de bots para todo, que es un cambio mucho mayor. Lo que no debes hacer es permitir cualquier IP que diga ser un rastreador en su user-agent, porque esa cadena la puede mandar cualquiera y permitir con ese criterio no tiene ningún valor de seguridad.


Dónde te deja esto

La razón de que este defecto sobreviva es que falla en silencio y falla en un solo sitio. Nada da error, ninguna página se rompe, el sitio va rápido, robots.txt es permisivo y once rastreadores de doce están encantados. El duodécimo simplemente no está, y la ausencia se parece a la indiferencia.

Así que haz la comprobación en tus logs antes de encargar cualquier informe sobre quién te cita. Es una consulta, no cuesta nada, y es la única versión de esta pregunta que tiene una respuesta de verdad.

Pregúntale a la IA sobre este artículo

Abre tu asistente con esta página ya cargada, para comprobar las cifras, discutir el método o preguntar qué significa en tu caso.

Perplexity y Google responden directamente. ChatGPT y Claude dejan la pregunta escrita y esperan a que pulses intro, que es su comportamiento y no algo que podamos cambiar.

Escrito por

Maher El Ouahabi

CTO y cofundador de EchoWi

Construye el software que enseña a las marcas lo que la IA dice de ellas, y qué cambiar para que la siguiente respuesta sea mejor. Doce motores, medidos antes y después.

LinkedIn Maher El Ouahabi (se abre en una nueva pestaña)