¿Qué es el user agent (agente de usuario)?
El user agent es la cadena de texto con la que un navegador, un rastreador o cualquier otro programa se identifica ante un servidor web en cada petición, dentro de la cabecera HTTP User-Agent. Dice qué software hace la petición y en qué versión, y los servidores lo usan para adaptar la respuesta o registrar las visitas. Como lo escribe quien pide, el user agent no demuestra identidad.
Lo esencial
- El user agent es la etiqueta que acompaña a cada petición: el navegador de un cliente, Googlebot y GPTBot mandan cada uno la suya.
- Casi todos los navegadores empiezan por «Mozilla/5.0» por razones históricas, y Chrome ya no envía el modelo del móvil ni la versión exacta.
- En robots.txt se usa un nombre corto, como Googlebot u OAI-SearchBot; en la petición llega la cadena completa.
- Cualquiera puede escribir el user agent de Googlebot: la identidad de un bot se comprueba con su IP o su DNS, no con el nombre.
- Servir a un buscador un contenido distinto según el user agent, para manipular los resultados, es cloaking y va contra las políticas de Google.
El user agent no es un agente de IA ni un programa que tengas que instalar: es la línea de texto con la que se presenta quien pide una página a tu servidor. La manda el navegador de un cliente, la manda Googlebot y la manda cada bot de una empresa de IA. A una tienda le importa por dos motivos. Es lo primero que miras para saber quién ha visitado una ficha, en los registros del servidor o en las estadísticas de tu CDN. Y es el nombre al que se dirigen las reglas de robots.txt. Lo que no hace es demostrar nada, porque lo escribe el que pide.
Cómo funciona
El estándar de HTTP, el RFC 9110, define la cabecera User-Agent como la información sobre el programa que origina la petición. Dice que un cliente debería enviarla en cada petición y explica para qué la usan los servidores: para acotar problemas de compatibilidad, para esquivar o adaptar respuestas a las limitaciones de un programa concreto y para las estadísticas de navegadores y sistemas.[1]IETF (Fielding, Nottingham y Reschke). RFC 9110: HTTP Semantics, sección 10.1.5 (User-Agent) El formato es una lista de productos, cada uno con su nombre y, si quiere, su versión separada por una barra, seguidos de comentarios entre paréntesis, ordenados de más a menos importante. El ejemplo del estándar es CERN-LineMode/2.15 libwww/2.17b3.[1]IETF (Fielding, Nottingham y Reschke). RFC 9110: HTTP Semantics, sección 10.1.5 (User-Agent)
En la práctica, las cadenas de los navegadores son más largas y más raras. Casi todos los navegadores empiezan por Mozilla/5.0, una marca que hoy solo dice que el navegador es compatible con Mozilla y que se envía por razones históricas.[2]MDN Web Docs (Mozilla). User-Agent header El propio estándar desaconseja usar los nombres de otros programas para declararse compatible con ellos, porque eso anula el sentido de la cabecera.[1]IETF (Fielding, Nottingham y Reschke). RFC 9110: HTTP Semantics, sección 10.1.5 (User-Agent) Lo hacen igual: por eso un bot como OAI-SearchBot manda una cadena que empieza como la de Chrome en un Mac.[3]OpenAI. Overview of OpenAI Crawlers
Cada vez dice menos sobre el visitante. El RFC avisa de que una cadena demasiado detallada ayuda a identificar a una persona sin que lo quiera, lo que se conoce como huella digital (fingerprinting).[1]IETF (Fielding, Nottingham y Reschke). RFC 9110: HTTP Semantics, sección 10.1.5 (User-Agent) Chrome respondió reduciendo la suya: desde Chrome 101 la versión llega como 0.0.0 después del número principal, desde Chrome 107 empezó a recortarse la cadena de escritorio y desde Chrome 110 la de Android, que ya no incluye el modelo del móvil sino una K fija. La reducción quedó completa en Chrome 113.[4]The Chromium Projects. User-Agent Reduction Si un servidor necesita más detalle, puede pedirlo con las client hints, unas cabeceras Sec-CH-UA que el navegador envía solo cuando se le piden.[2]MDN Web Docs (Mozilla). User-Agent header
Los bots tienen dos nombres. Google distingue entre la cadena que aparece en la petición HTTP y el nombre corto que se escribe en la línea User-agent: de robots.txt. Para Googlebot Smartphone, la cadena es larga y cambia con cada versión de Chrome; en robots.txt basta con Googlebot.[5]Google Crawling Infrastructure. Google's common crawlers OpenAI añade un detalle útil: cuando OAI-SearchBot o GPTBot piden el propio robots.txt, pueden incluir la marca robots.txt en la cadena para que esas peticiones se distingan en los registros.[3]OpenAI. Overview of OpenAI Crawlers
Y el nombre se puede falsificar. Google lo dice en su lista de rastreadores: la cadena de user agent se puede suplantar.[5]Google Crawling Infrastructure. Google's common crawlers Por eso sus rastreadores se identifican de tres maneras a la vez: la cabecera User-Agent, la IP de origen y el nombre que devuelve la consulta de DNS inverso de esa IP.[6]Google Crawling Infrastructure. Google crawler (user agent) overview
En una tienda
Cuatro peticiones a la misma ficha de producto, con las cadenas que documentan Chromium, Google y OpenAI. La tienda y el orden son un ejemplo ficticio; W.X.Y.Z es la versión de Chrome, que cambia:
| Quién dice ser | Cadena de user agent | Cómo se comprueba |
|---|---|---|
| Un cliente con Chrome en Android | Mozilla/5.0 (Linux; Android 10; K) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/W.0.0.0 Mobile Safari/537.36[4]The Chromium Projects. User-Agent Reduction |
No se comprueba: es una persona, y el modelo del móvil ya no viaja |
| Googlebot Smartphone | Mozilla/5.0 (Linux; Android 6.0.1; Nexus 5X Build/MMB29P) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/W.X.Y.Z Mobile Safari/537.36 (compatible; Googlebot/2.1; +http://www.google.com/bot.html)[5]Google Crawling Infrastructure. Google's common crawlers |
DNS inverso y directo de la IP, o los rangos que publica Google[6]Google Crawling Infrastructure. Google crawler (user agent) overview |
| OAI-SearchBot | Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/131.0.0.0 Safari/537.36; compatible; OAI-SearchBot/1.4; +https://openai.com/searchbot[3]OpenAI. Overview of OpenAI Crawlers |
La IP, contra openai.com/searchbot.json[3]OpenAI. Overview of OpenAI Crawlers |
| ChatGPT-User | Mozilla/5.0 AppleWebKit/537.36 (KHTML, like Gecko); compatible; ChatGPT-User/1.0; +https://openai.com/bot[3]OpenAI. Overview of OpenAI Crawlers |
La IP, contra openai.com/chatgpt-user.json[3]OpenAI. Overview of OpenAI Crawlers |
Fíjate en la segunda fila: la cadena de Googlebot incluye «Android» y «Chrome». Un filtro que busque «Chrome» o «Android» la cuenta como un cliente. Lo que identifica al bot es su nombre propio dentro de la cadena, y lo que demuestra que es él es la comprobación de la última columna.
Lo que se suele confundir
Que adaptar la página según el user agent es una forma legítima de «ayudar» a los bots. Google llama cloaking a presentar contenido distinto a los usuarios y a los buscadores con la intención de manipular la clasificación, y pone como ejemplo insertar texto o palabras clave solo cuando el user agent que pide la página es el de un buscador. Para el contenido que a un buscador le cuesta leer, como el que depende de JavaScript, remite a sus recomendaciones para hacerlo accesible sin cloaking.[7]Google Search Central. Spam policies for Google web search
Cómo comprobarlo
- Mira el campo de user agent en tus registros. En el servidor o en la CDN, cada línea de acceso lo trae al final. Separa las peticiones de los bots que te importan por su nombre propio, no por «Chrome» o «Mozilla».
- Verifica los bots por la IP. Para Google, haz la consulta de DNS inverso y la directa, o compara la IP con sus rangos publicados;[6]Google Crawling Infrastructure. Google crawler (user agent) overview OpenAI publica un archivo JSON de IP por cada agente.[3]OpenAI. Overview of OpenAI Crawlers
- Pide tu ficha como si fueras otro. En Chrome, el panel Network conditions de las herramientas para desarrolladores deja sustituir la cadena: no cambia cómo funciona el navegador, cambia lo que el servidor le entrega.[8]Chrome for Developers. Network conditions: Override the user agent string Desde la terminal,
curl -A "cadena" https://tudominio.com/products/...hace lo mismo. - Compara lo que recibe cada uno. Si el título, el precio o los datos estructurados cambian según la cadena, averigua qué lo provoca antes de que afecte a la indexación de la ficha.
- Lee con cuidado los paneles de bots. En el plan gratuito, AI Crawl Control de Cloudflare identifica a los rastreadores de IA por su cadena de user agent, así que solo detecta a los que se identifican a sí mismos.[9]Cloudflare Docs, AI Crawl Control. Manage AI crawlers
Concepto cercano: rastreador
Un rastreador es un programa que recorre la web; el user agent es la etiqueta con la que se presenta en cada petición. Todo rastreador tiene uno, pero también lo tiene tu navegador, el de tu cliente y cualquier script que pida una URL. Leer el user agent te dice quién dice ser el visitante; verificar su IP te dice si lo es. Para ir un paso más allá del nombre, algunos agentes firman sus peticiones con Web Bot Auth, y esa firma es lo que exige, por ejemplo, el pago por rastreo de Cloudflare.
Para seguir, la ruta de lectura de rastreo e indexación ordena el resto de términos, y el término de Googlebot detalla cómo verificar al rastreador de Google paso a paso.
Sinónimos
- English
- user agent, user-agent string
- Español
- agente de usuario, cadena de agente de usuario
Fuentes
- [1] IETF (Fielding, Nottingham y Reschke). RFC 9110: HTTP Semantics, sección 10.1.5 (User-Agent). Consultado el . ↑ ↑ ↑ ↑
- [2] MDN Web Docs (Mozilla). User-Agent header. Consultado el . ↑ ↑
- [3] OpenAI. Overview of OpenAI Crawlers. Consultado el . ↑ ↑ ↑ ↑ ↑ ↑ ↑
- [4] The Chromium Projects. User-Agent Reduction. Consultado el . ↑ ↑
- [5] Google Crawling Infrastructure. Google's common crawlers. Consultado el . ↑ ↑ ↑
- [6] Google Crawling Infrastructure. Google crawler (user agent) overview. Consultado el . ↑ ↑ ↑
- [7] Google Search Central. Spam policies for Google web search. Consultado el . ↑
- [8] Chrome for Developers. Network conditions: Override the user agent string. Consultado el . ↑
- [9] Cloudflare Docs, AI Crawl Control. Manage AI crawlers. Consultado el . ↑
Historial de cambios
- Primera versión.
Esta definición se publica bajo licencia CC BY 4.0. Puedes reutilizar esta definición citando a Clione con un enlace a esta página.
Términos relacionados
Rastreador
Qué es un rastreador web o crawler, cómo descubre las fichas de tu tienda, qué respeta del robots.txt y cómo comprobar en tus registros quién te visita.
Googlebot
Qué es Googlebot, el rastreador de la Búsqueda de Google, qué lee de tus fichas, qué pasa si lo bloqueas y cómo verificar que una visita es de Google.
robots.txt
Qué es el archivo robots.txt, cómo lo leen Googlebot, GPTBot y OAI-SearchBot, por qué no sirve para desindexar y cómo revisar el de tu tienda.
Web Bot Auth
Qué es Web Bot Auth, el borrador del IETF para que bots y agentes de IA firmen sus peticiones HTTP, quién lo usa ya y cómo se verifica una firma.
OAI-SearchBot
Qué es OAI-SearchBot, el rastreador que usa OpenAI para mostrar webs en la búsqueda de ChatGPT, qué pasa si lo bloqueas y cómo verificar sus visitas.
Pay per crawl
Qué es pay per crawl de Cloudflare: cómo cobra a los rastreadores de IA con el error 402, quién paga, qué sigue en beta y qué supone en una tienda.
Haz que los bots entiendan tu catálogo
Clione completa cada ficha de producto con lo que los bots leen mejor: el grafo JSON-LD con sus datos estructurados, la meta description y las preguntas frecuentes. Tú revisas y pulsas Push; después comprobamos tu tienda en vivo para que todo siga publicado.