Cloudflare bloquea a las IAs por defecto (y casi nadie se da cuenta)

Browser Integrity Check y JS Detection vienen activados por defecto y bloquean a ChatGPT, Claude y Perplexity sin dejar rastro en tus logs. Cómo diagnosticarlo en 10 minutos y corregirlo.

CloudflareBots de IAGEODiagnóstico

Esta guía nace de un incidente real: encontramos este bloqueo activo en los tres sitios que operamos, sin que nadie lo hubiera activado a propósito. El incidente completo está documentado en el caso Servando.

El síntoma que nadie entiende

Tu página está en Google. Carga rápido. No hay errores en tus logs. Y sin embargo, cuando alguien le pide a ChatGPT o Claude que lea tu sitio, la IA responde que no puede acceder. O peor: nunca apareces citado y no sabes por qué.

La causa suele estar en un lugar que nadie revisa: dos ajustes de seguridad que Cloudflare activa por defecto en cada zona.

La causa: dos ajustes que vienen prendidos de fábrica

Browser Integrity Check (BIC) desafía a los visitantes cuyo navegador “no parece legítimo” según heurísticas de cabeceras y comportamiento. Un navegador humano responde el desafío sin que nadie lo note. Un bot de IA no ejecuta JavaScript ni guarda cookies: recibe una página de desafío y se va con las manos vacías.

JS Detection (parte de los modos anti-bot) agrega otra capa del mismo tipo: un desafío de JavaScript que los rastreadores de IA no resuelven.

Lo perverso es que esto no deja rastro visible para ti. En tus logs el request aparece atendido. El bot recibió una página de desafío en vez de tu contenido, pero tú ves tráfico normal y sigues tu vida. En nuestros tres sitios, Googlebot pasaba sin problema mientras GPTBot y ClaudeBot recibían el desafío: Google recibe trato especial como bot verificado esencial; los bots de IA no siempre corren la misma suerte.

El diagnóstico: una matriz de user-agents (10 minutos)

No necesitas herramientas especiales. Necesitas curl y mirar el contenido, no el código de estado. Este es el punto que casi todos se saltan: el desafío puede devolver 403, o incluso una página de “verificando navegador” que parece una respuesta válida. Lo único confiable es comparar qué contenido llegó.

Ejecuta esto por cada bot:

curl -s -A "Mozilla/5.0 (compatible; GPTBot/1.2; +https://openai.com/gptbot)" \
  https://tusitio.com/ | grep -o "<title>[^<]*</title>"
  • Si el <title> que vuelve es el de tu página real → ese bot pasa.
  • Si vuelve “Just a moment…”, “Verifying you are human”, un título vacío o un error → ese bot está bloqueado.

Bots mínimos a probar:

Bot Qué representa
ChatGPT-User Consultas en vivo de usuarios de ChatGPT
Claude-User Consultas en vivo de usuarios de Claude
Perplexity-User Consultas en vivo de usuarios de Perplexity
OAI-SearchBot El índice de búsqueda de ChatGPT
PerplexityBot El índice de Perplexity
Claude-SearchBot El índice de Claude
GPTBot / ClaudeBot Entrenamiento de modelos
Googlebot Control: debería pasar siempre

Y una decisión que conviene tomar a propósito: no todos los bots de IA son iguales. Los de entrenamiento leen tu sitio para entrenar modelos; puedes bloquearlos legítimamente si así lo decides. Los de búsqueda alimentan los índices desde los que las IAs citan. Y los de consulta en vivo son una persona preguntando en ese instante. Bloquear a estos últimos es cerrarle la puerta a alguien que ya estaba preguntando por ti. La respuesta correcta casi nunca es “bloquear todo” ni “permitir todo”: es elegir por nivel.

El fix: dos ajustes

Desde el dashboard de Cloudflare, por cada zona:

  1. Security → Settings → Browser Integrity Check: desactivar.
  2. Security → Bots: si tienes Bot Fight Mode o Super Bot Fight Mode, desactivar JS Detection (o configurarlo para no desafiar a los bots de IA que decidiste permitir).

Por API (la forma verificable y repetible):

# Browser Integrity Check → off
curl -X PATCH "https://api.cloudflare.com/client/v4/zones/ZONE_ID/settings/browser_check" \
  -H "Authorization: Bearer TU_TOKEN" -H "Content-Type: application/json" \
  --data '{"value":"off"}'

# JS Detection → off
curl -X PUT "https://api.cloudflare.com/client/v4/zones/ZONE_ID/bot_management" \
  -H "Authorization: Bearer TU_TOKEN" -H "Content-Type: application/json" \
  --data '{"enable_js": false}'

¿Pierdes protección? Marginal. BIC frena scrapers ingenuos; el tráfico de escaneo seguirá llegando y seguirá recibiendo 403/404 en lo que no existe. En nuestros sitios esa basura se mide y se reporta por separado, no se esconde.

Verificar que funcionó

Vuelve a correr la matriz de user-agents: todos los bots que decidiste permitir deberían recibir tu contenido real. Durante las semanas siguientes, revisa los logs: deberías empezar a ver requests de OAI-SearchBot, PerplexityBot y compañía.

Lo que nadie te dice: esto se puede volver a romper

El fix de hoy no garantiza el estado de mañana. Cloudflare cambia valores por defecto, aparecen bots nuevos, alguien entra al dashboard y mueve un toggle sin saber qué hacía. En nuestros sitios el bloqueo estaba activo sin que nadie lo hubiera pedido: venía de fábrica.

Por eso la verificación no es un evento, es un hábito. En nimboweb esto corre todos los meses dentro del reporte: qué IAs pueden leer tu página, cuántas consultas en vivo recibiste, y si algo volvió a cambiar. Si prefieres hacerlo tú mismo, esta guía es todo lo que necesitas. Si prefieres no volver a pensar en esto: el reporte mensual cuesta $24.990.

¿Tu sitio está listo para IA?

Pega tu URL y recibe en 24h un reporte con 5 hallazgos concretos: si los bots de IA pueden leerte, qué te falta para que te citen, y cómo se compara tu sitio con uno optimizado con el Protocolo nimboweb.

Solo usamos tu email para enviarte el reporte. No spam, no compartimos tus datos.

¿Quieres esto para tu sitio?

Toda web nimboweb nace con esta base técnica. Cotización de alcance fijo en 24-48 horas hábiles.

Cotizar mi proyecto