¿Por qué me salen CAPTCHAs en todas las webs? Causas y soluciones

Los CAPTCHAs constantes casi siempre se deben a tu ruta de red, a la configuración del navegador o a que ambas se contradicen. Las causas por orden de frecuencia, con una solución para cada una.
Los CAPTCHAs constantes suelen significar una sola cosa. Algo en la forma en que llegas a un sitio parece una máquina, o parece una multitud que comparte una misma puerta, y el sitio ha subido el listón de entrada hasta recibir una señal más clara. La verificación es el síntoma. La causa está en tu ruta de red, en la configuración del navegador o en que ambos cuentan historias distintas al sitio.
Repasa las causas siguientes en orden. Las tres primeras son, con diferencia, las más habituales, y todas se encuentran en el mismo lugar: la dirección desde la que llega tu tráfico.
Empieza por la dirección, porque casi siempre es ahí
La dirección es compartida o tiene historial
La mayoría de las conexiones no te dan una dirección propia. Los operadores móviles y muchos proveedores domésticos agrupan a un gran número de abonados detrás de un pequeño conjunto de direcciones públicas. Las oficinas, los campus y los espacios de coworking hacen lo mismo. Lo que haya hecho cualquier otra persona detrás de esa dirección esta mañana, lo heredas tú esta tarde.
Los pools de proxies baratos funcionan igual, pero con peores probabilidades. Un pool residencial compartido alquila la misma dirección a quien compre esa hora, y un sitio que vio antes una oleada de intentos de inicio de sesión desde ella será cauteloso con el siguiente.
La solución empieza por averiguar qué dirección estás presentando realmente y comprobarla, en lugar de fiarte de la descripción con la que te la vendieron. En PowerOps un proxy se añade a una biblioteca y se prueba antes de acercarlo a ninguna cuenta, y la prueba informa de la dirección observada. Si la ruta resulta ser compartida, pasa el perfil a otra que no lo sea.
Es una dirección de centro de datos
Los rangos de direcciones de los proveedores de hosting están publicados, catalogados y son triviales de consultar. Una dirección de centro de datos no tiene nada de malo en sí misma, y mucho tráfico corriente procede de ellas. Pero para una cuenta de consumidor con sesión iniciada es un lugar poco habitual, y los sitios lo valoran en consecuencia.
La solución es reservar las direcciones de centro de datos para tareas sin inicio de sesión personal y usar direcciones residenciales o móviles para las sesiones de cuentas. El coste sube. La fricción baja. Ese intercambio es toda la decisión.
Estás en una salida de VPN que usa todo el mundo
Una VPN de consumo concentra a una enorme cantidad de personas en un puñado de direcciones de salida. Es el producto funcionando como se diseñó. También es la razón de que una sesión detrás de una VPN acumule verificaciones que no acumula en ningún otro sitio. No hiciste nada para que esa dirección quedara bajo sospecha. Fue el simple volumen.
La solución es una ruta propia por perfil, de un proveedor que venda direcciones fijas (sticky). Si necesitas una VPN para algo ajeno, mantenla fuera del equipo o del perfil que hace el trabajo con cuentas, y nunca la apiles encima de un proxy.
La dirección cambia en mitad de una sesión
Los endpoints rotativos te dan una dirección nueva por petición o por intervalo. Para recopilar datos públicos es útil. Para una sesión con inicio de sesión es un problema que te creas tú mismo. Una sesión que empieza en una ciudad y continúa desde otra pocos minutos después describe algo que ninguna persona hace.
Esta causa tiene una forma muy reconocible. Los primeros minutos van limpios. Después aparecen verificaciones en cada navegación, a menudo con un cierre de sesión inesperado por el medio.
La solución es cambiar el endpoint a un modo fijo o de sesión persistente, con un tiempo de retención superior a tu sesión de trabajo. Asigna la ruta antes del primer inicio de sesión, porque la primera sesión es la que establece qué es lo normal para esa cuenta.
Después comprueba si el navegador cuenta una historia coherente
La zona horaria, el idioma y la dirección no coinciden
Un perfil enrutado por Fráncfort que informa de una zona horaria de Los Ángeles ha respondido a la misma pregunta de dos maneras distintas. Lo mismo ocurre con uno que presenta una dirección brasileña junto a una lista de idiomas del navegador que solo contiene vietnamita. Ninguno de los valores es llamativo por separado. Juntos son la contradicción más barata que un sitio puede buscar.
La solución es ajustar la zona horaria y la lista de idiomas del perfil al país donde aterriza su ruta, y revisarlas juntas después de cada cambio de ruta. Es la causa autoinfligida más común de la lista y se corrige en unos diez segundos.
El ritmo de las peticiones parece automatizado
Páginas que cargan a intervalos exactos de cuatro segundos. Formularios rellenados al instante, sin eventos de foco entre medias. Navegación sin un solo desplazamiento. Una docena de perfiles haciendo lo mismo en el mismo segundo desde la misma subred. Nada de eso está prohibido. Todo ello es inusual, y lo inusual es lo que sube el listón de entrada.
La solución es el ritmo. Escalona el arranque de los perfiles en lugar de lanzarlos todos a la vez. Da retardos variables al trabajo con scripts y deja que las páginas se asienten antes de la siguiente acción. Trabaja con lotes más pequeños. Si un script recorre un sitio más rápido de lo que podría hacerlo una persona, el sitio tiene derecho a preguntar quién está al otro lado.
Luego mira qué conserva y qué bloquea el navegador
El conjunto de cookies está caducado, ausente o se borra cada noche
La mayoría de las verificaciones registran su propio resultado. Si superas una, el sitio guarda algo que indica que este navegador ya respondió, y la verificación deja de aparecer durante un tiempo. Si borras las cookies al salir, navegas en una ventana privada o creas un perfil temporal nuevo cada vez, ese registro se va a la basura al final de cada sesión. La siguiente visita empieza en frío.
La solución es un perfil con un directorio persistente propio, cerrado correctamente para que su estado se escriba en disco. Un perfil terminado a la fuerza en mitad de una sesión puede perder justo el registro que acababa de ganar.
Algo bloquea los scripts que necesita la verificación
Una verificación se ejecuta como un script, normalmente cargado desde un dominio del proveedor de seguridad y no del sitio que visitas. Los bloqueadores de contenido agresivos, los bloqueadores de scripts, las extensiones de privacidad reforzadas y el almacenamiento de terceros desactivado pueden romper esa carga. La verificación nunca se completa, así que se reintenta. Desde tu lado parece un bucle infinito, o un cuadro de desafío que da vueltas y nunca se resuelve.
Revísalo en este orden:
- Abre la misma página en un perfil sin ninguna extensión. Si el bucle desaparece, la causa es una extensión.
- Vuelve a activar las extensiones de una en una hasta que reaparezca. Los bloqueadores de contenido y los reforzadores de privacidad son los culpables habituales.
- Permite el dominio del proveedor del desafío en lo que lo bloqueaba, en lugar de desactivar el bloqueador por completo.
- Confirma que JavaScript y el almacenamiento de terceros no están desactivados para ese sitio.
- Comprueba el reloj del sistema. Un reloj desfasado varios minutos romperá los tokens firmados de los que depende un desafío, y el fallo no se parece en nada a un problema de reloj.
Del síntoma a la causa
Compara lo que ves con la columna izquierda y empieza por la solución de la derecha.
| Lo que ves | Causa más probable | Lo primero que probar |
|---|---|---|
| Verificaciones en todos los sitios y en todos los perfiles desde la primera petición | La propia dirección: compartida, saturada o de centro de datos | Prueba la ruta y consulta a quién pertenece la dirección |
| Un perfil afectado y los demás bien | La ruta de ese perfil o su estado almacenado | Cambia a una ruta que sepas que es buena antes de tocar nada más |
| Limpio durante unos minutos y luego verificaciones en cada navegación | Un endpoint rotativo que cambia de dirección en mitad de la sesión | Cambia el endpoint a un modo fijo con una retención larga |
| Superas una verificación y la misma vuelve de inmediato | El resultado no se guarda, o un script necesario está bloqueado | Deja de borrar cookies al salir y reintenta con las extensiones desactivadas |
| El cuadro del desafío da vueltas y nunca se resuelve | Un bloqueador impide cargar el script del desafío | Permite el dominio del proveedor y luego revisa el reloj del sistema |
| El sitio carga en el idioma equivocado antes de iniciar sesión | La configuración regional y la ruta no coinciden | Ajusta el idioma y la zona horaria del perfil al país de la ruta |
| Empezó justo después de cambiar de proxy | El historial del nuevo endpoint | Prueba el endpoint y pide otro al proveedor |
| Empezó justo después de que se actualizara una extensión | La extensión | Desactívala para ese sitio y recarga |
Qué no hacer
Hay varios reflejos que empeoran las cosas de forma fiable.
- No aleatorices la identidad del perfil para quitarte una verificación de encima. Un dispositivo que cambia en cada visita es una señal más fuerte que aquello que te preocupaba, y descarta la prueba almacenada de todas las verificaciones que ya habías superado.
- No borres las cookies como primera reacción. Esas cookies son el registro de haber pasado. Borrarlas garantiza que la próxima visita empiece de cero.
- No apiles una VPN encima de un proxy. Obtienes dos rutas que discrepan sobre dónde estás, además de la latencia añadida suficiente para que unos tiempos normales parezcan raros.
- No pulses recargar sin parar. Los intentos fallidos repetidos desde una misma dirección son precisamente el comportamiento que mide una verificación.
- No muevas una cuenta a una ruta completamente nueva en mitad de una sesión. Termina la sesión, cambia la ruta y vuelve a iniciar sesión.
Y hay algo en lo que no vamos a ayudar. Resolver estas verificaciones de forma automática queda fuera de lo que hace PowerOps y fuera de lo que explicará este blog. Existen servicios que lo venden. Nosotros no nos integramos con ellos, no los documentamos y nada del producto está pensado para saltarse un control de seguridad. Todo lo anterior trata de eliminar los motivos que tiene un sitio para preguntar. Responder a la pregunta en tu nombre es otro negocio, y no es el nuestro.
Si nada de esto funciona
A veces la verificación no tiene nada que ver contigo. Un sitio bajo ataque sube su umbral para todo el mundo, y el tráfico de un país entero puede quedar sujeto a una regla más estricta durante un día o dos. Antes de dedicarle una tarde, carga la misma página desde una conexión normal, sin proxy y sin ningún perfil. Si la verificación también te espera allí, la respuesta es esperar.
El resto de las veces se reduce a una lista corta. Una ruta con historial. Una ruta que no se está quieta. Valores que se contradicen. Un navegador incapaz de conservar lo que se ha ganado. Corrige esas cuatro cosas y las verificaciones volverán a ser una molestia ocasional en lugar de la forma de tu jornada de trabajo.


