Mejores User Agents para Web Scraping en 2026: Por qué la Coherencia Gana

No hay una cadena mágica de user-agent. En 2026, la detección valida toda tu identidad: UA, Client Hints, TLS e IP juntos. Un Chrome coherente supera una lista de mil UAs aleatorios.

Busca "mejor user agent para web scraping" y encontrarás listas de mil cadenas para rotar. Ese consejo está desactualizado por una década. En 2026, el hecho más importante sobre los user agents es que ya no se evalúan solos: los sistemas de detección cruzan tu User-Agent con tus Client Hints, tu saludo TLS y tu IP, y cualquier desajuste te marca más rápido que un encabezado sencillo y honesto. El mejor user agent no es una cadena ingeniosa; es una identidad de navegador real y actual donde cada capa coincide. Aquí te mostramos cómo construir eso, además de las cadenas a usar y las que te bloquean al instante.

Lo que un user agent está (y no está) haciendo

El encabezado User-Agent es una línea de texto en cada solicitud HTTP que nombra el navegador, su versión y el sistema operativo. Una cadena típica de Chrome se ve como Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, como Gecko) Chrome/144.0.0.0 Safari/537.36. Los sitios lo leen para servir el diseño correcto y para detectar bots. Una solicitud que anuncia python-requests/2.28.1 o curl/7.68.0 es un bot con una etiqueta de nombre; gana bloqueos instantáneos, respuestas vacías o redirecciones CAPTCHA. Pero cambiar a una cadena de navegador real es solo el primer paso, porque el UA es ahora la señal menos confiable de varias.

Client Hints lo cambió todo

El Chrome moderno ha estado reduciendo lo que pone en el User-Agent (reducción de UA) y moviendo el detalle a un conjunto de encabezados llamados Client Hints: Sec-CH-UA, Sec-CH-UA-Mobile y Sec-CH-UA-Platform. Este es el punto crucial para los scrapers. La detección ahora verifica si tu UA y tus Client Hints cuentan la misma historia. Afirmar ser Chrome 144 en Windows en el UA mientras tus hints dicen Safari móvil, y serás bloqueado instantáneamente: una discrepancia es una señal más fuerte que un encabezado faltante. Así que el trabajo no es rotar UAs; es enviar un conjunto de encabezados completo e internamente consistente:

import requests

# One current Chrome identity - UA, Client Hints and Accept all agree
headers = {
    "User-Agent": "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 "
                  "(KHTML, like Gecko) Chrome/144.0.0.0 Safari/537.36",
    "Sec-CH-UA": '"Chromium";v="144", "Google Chrome";v="144", "Not?A_Brand";v="24"',
    "Sec-CH-UA-Mobile": "?0",
    "Sec-CH-UA-Platform": '"Windows"',
    "Accept": "text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8",
    "Accept-Language": "en-US,en;q=0.9",
}
r = requests.get("https://httpbin.org/headers", headers=headers, timeout=15)
print(r.json()["headers"]["User-Agent"])  # confirm the server saw what you sent
Lista de dos columnas de user agents a usar, como cadenas actuales de Chrome y Firefox reales con Client Hints coincidentes, versus user agents a evitar como python-requests, HeadlessChrome y listas de rotación enormes e incoherentes
Una cadena de navegador real y actual con Client Hints coincidentes supera una lista de mil UAs aleatorios cada vez.

Los user agents que vale la pena usar en 2026

Debido a que Chrome tiene aproximadamente el 65% del mercado de navegadores, las cadenas actuales de Chrome se mezclan mejor: son la opción predeterminada más segura. Mantén un conjunto pequeño y fresco en lugar de uno gigante y obsoleto:

Y las cadenas que te marcan inmediatamente: agentes de biblioteca predeterminados (python-requests, curl, Scrapy, urllib), identificadores sin cabeza (HeadlessChrome, PhantomJS), y cadenas malformadas o antiguas (un UA vacío, un Mozilla/5.0 desnudo, o MSIE 6.0). Siempre mantén las versiones actuales: una cadena de Chrome de hace tres años es casi tan sospechosa como ninguna cadena en absoluto.

Por qué rotar mil UAs fracasa

El consejo clásico: recolecta mil user agents y rota uno por solicitud, ahora te perjudica activamente, por dos razones. Primero, la mayoría de las listas grandes están obsoletas, por lo que estás rotando a través de cadenas que individualmente parecen desactualizadas. Segundo, y más importante, rotar solo el UA deja todas las demás capas constantes: tu huella digital TLS, tus Client Hints, tu IP y tu cadencia de solicitudes no cambian con la cadena. La detección ve el saludo TLS de una sola máquina usando cuarenta nombres de navegador diferentes, lo cual es mucho más anómalo que una identidad honesta. Si debes rotar, rota la identidad completa junta, y mantén el conjunto pequeño y actual:

import random

# A SMALL curated pool - each identity ships matching Client Hints
IDENTITIES = [
    {"ua": "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/144.0.0.0 Safari/537.36",
     "platform": '"Windows"', "mobile": "?0"},
    {"ua": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/144.0.0.0 Safari/537.36",
     "platform": '"macOS"', "mobile": "?0"},
]

def headers_for(i):
    return {
        "User-Agent": i["ua"],
        "Sec-CH-UA-Platform": i["platform"],
        "Sec-CH-UA-Mobile": i["mobile"],
        "Accept-Language": "en-US,en;q=0.9",
    }

h = headers_for(random.choice(IDENTITIES))  # rotate identities, never UA alone
Pila de coherencia de huellas digitales que muestra que el User-Agent, Client Hints, huella digital TLS JA3/JA4 e IP deben describir el mismo navegador o la solicitud es marcada
La detección valida toda la identidad. Rotar solo el UA deja las capas debajo constantes: una señal más fuerte, no más débil.

La capa debajo del encabezado: TLS e IP

Incluso un conjunto de encabezados perfecto puede perder ante el saludo debajo de él. Python y Go negocian TLS de una manera que no coincide con Chrome, produciendo una huella digital JA3/JA4 que delata la solicitud sin importar lo que afirme el UA: nuestra guía sobre huellas digitales JA3/JA4 TLS explica la discrepancia. Esto también es por qué la misma URL puede devolver 200 en un navegador y 403 desde curl, cubierto en por qué curl obtiene 403 cuando el navegador funciona. La última capa es la IP: una huella digital de Chrome coherente desde una IP de centro de datos marcada aún falla. Empareja tus encabezados con una salida residencial confiable y un ritmo humano: la pila completa está en nuestra lista de verificación anti-baneo, y las señales de detección en cómo los sitios web detectan proxies.

La conclusión práctica: dedica tu esfuerzo a la frescura y la coherencia, no al tamaño de la lista. Una docena de identidades actuales, cada una enviando Client Hints coincidentes y emparejada con un perfil TLS de navegador real, superará a una lista raspada de diez mil cadenas. La gran lista te da variedad en el único campo en el que la detección ahora confía menos; la coherencia te da credibilidad en todos ellos a la vez.

Cuándo dejar de gestionar encabezados manualmente

Mantener las cadenas de UA actuales, coincidir los Client Hints, alinear la huella digital TLS y rotar IPs confiables es una cinta de mantenimiento. En objetivos difíciles, es más barato entregar todo el problema de la huella digital a una Scraper API que lleva una identidad de navegador real y coherente: encabezados, Client Hints, TLS e IP juntos, y lo actualiza a medida que los navegadores lanzan nuevas versiones. Envías una URL; maneja el disfraz.

Deja que la Scraper API maneje la huella digital completa

Preguntas frecuentes

¿Cuál es el mejor user agent para web scraping?

Una cadena de Chrome real y actual en una plataforma común - Windows o macOS - mantenida actualizada, porque la cuota de mercado de ~65% de Chrome significa que se mezcla mejor. Pero la cadena solo funciona cuando tus Client Hints, huella digital TLS e IP describen el mismo navegador. No hay una cadena mágica única; la coherencia es lo que importa.

¿Rotar user agents previene bloqueos?

No por sí solo. Rotar el UA mientras tu huella digital TLS, Client Hints e IP permanecen constantes es más sospechoso, no menos: la detección ve una máquina usando muchos nombres de navegador. Rota la identidad completa junta, mantén el conjunto pequeño y actual, y empareja con IPs confiables y un ritmo humano.

¿Qué user agents debo evitar?

Cadenas de biblioteca predeterminadas (python-requests, curl, Scrapy, urllib), identificadores sin cabeza (HeadlessChrome, PhantomJS), y cualquier cosa malformada o antigua: un UA vacío, un Mozilla/5.0 desnudo, o cadenas antiguas de MSIE. Cada uno te marca como automatizado antes de que se verifique cualquier otra señal.

¿Necesito enviar Client Hints?

Para sitios modernos, sí. Chrome movió el detalle del navegador a Sec-CH-UA, Sec-CH-UA-Mobile y Sec-CH-UA-Platform, y la detección verifica estos contra tu User-Agent. Un UA sin Client Hints o, peor, contradictorios es un desencadenante común de bloqueo: envíalos y mantenlos consistentes con tu UA.

El mejor user agent para web scraping en 2026 no es una cadena que copias de una lista de mil: es una sola identidad de navegador actual donde el UA, Client Hints, huella digital TLS e IP coinciden. Haz la coherencia correcta, rota identidades completas en lugar de cadenas, y respáldalo con una salida confiable.

Raspa con una identidad de navegador coherente, gestionada