User Agent y SEO

Qué es un user agent: el encabezado HTTP que los rastreadores y navegadores usan para identificarse, el token de robots.txt frente a la cadena completa, y cómo verificar que un bot es real.

Publicado por primera vez: 24 jun 2026 · Última actualización: 22 ago 2026 · Avanzado
Idiomas
2 señales de evidencia en esta página

Un user agent es el encabezado HTTP que cada cliente (navegador, rastreador o bot) envía para identificarse. Se confunden dos cosas: la *cadena* completa del user-agent en el encabezado de la solicitud y el *token* corto del user-agent (Googlebot, bingbot, Google-Extended) al que te diriges en robots.txt. El token es una subcadena de la cadena (RFC 9309); algunos tokens, como Google-Extended, no tienen ninguna cadena de solicitud. La cadena se puede falsificar trivialmente: Google dice que la suya 'a menudo se falsifica', así que nunca confíes en ella para el control de acceso. Verifica Googlebot/Bingbot mediante DNS inverso más una búsqueda directa, o contra los rangos de IP publicados. Y ten en cuenta las trampas: AdsBot y Google-Safety ignoran `User-agent: *`, los números de versión y los comodines en la línea del token se ignoran, la coincidencia no distingue entre mayúsculas y minúsculas, y servir contenido diferente a un UA de bot que a los usuarios es cloaking.

TL;DR — Un agente de usuario es el encabezado de solicitud HTTP que cualquier cliente envía para identificarse; es opcional, metadatos proporcionados por el cliente, no una identidad autenticada. Su valor es la cadena de agente de usuario. Aparte de eso está el token de agente de usuario (token de producto) utilizado en robots.txt — RFC 9309 dice que DEBERÍA ser una subcadena de la cadena, una convención sólida con excepciones documentadas (Google-Extended no tiene ninguna cadena de solicitud en absoluto). La coincidencia no distingue entre mayúsculas y minúsculas, los números de versión/comodines en la línea del token se ignoran, el grupo más específico gana, y los grupos con el mismo token se fusionan pero nunca se fusionan con *. La cadena se falsifica trivialmente — Google llama a la suya propia “a menudo falsificada” — así que verifica mediante DNS inverso + directo (detrás de cualquier proxy/CDN, usa la IP real del cliente) contra googlebot.com/google.com/googleusercontent.com para Google o search.msn.com para Bing, o compara rangos de IP publicados — e incluso una solicitud verificada solo demuestra que llegó una solicitud, no que la página fue indexada, recuperada o utilizada para el entrenamiento de IA. AdsBot y Google-Safety ignoran User-agent: *. Chrome también está congelando detalles de las cadenas de UA del navegador (reducción de User-Agent); Client Hints son el reemplazo estructurado pero opcional, y ninguno sustituye la verificación del rastreador. La adaptación del agente de usuario puede ser legítima, pero mostrar de manera engañosa a los rastreadores contenido materialmente diferente puede ser cloaking.

Evidence for this claim HTTP User-Agent is a request field containing product information supplied by the client; it is descriptive text and not proof of identity. Scope: HTTP semantics for User-Agent. Confidence: high · Verified: IETF RFC 9110: User-Agent Evidence for this claim robots.txt User-agent matching is defined by the Robots Exclusion Protocol and controls crawler access, not authentication or general HTTP content negotiation. Scope: RFC 9309 robots matching behavior. Confidence: high · Verified: IETF RFC 9309: Robots Exclusion Protocol

El encabezado, la cadena y el token

Tres cosas, y mantenerlas claras es la mayor parte de este tema.

  • El encabezado. User-Agent es un encabezado de solicitud HTTP. Cada cliente lo envía: tu navegador, curl, un rastreador, un bot. Según RFC 9110 (el estándar central de semántica HTTP), es un campo opcional que el cliente completa — metadatos descriptivos proporcionados por el cliente, no una identidad autenticada que el servidor haya verificado.
  • La cadena. El valor del encabezado — una línea de formato libre que describe el software, la versión, el motor de renderizado y, a veces, el sistema operativo.
  • El token. El identificador corto utilizado en robots.txt, en líneas User-agent:, para dirigirse a un rastreador — Googlebot, bingbot, Google-Extended.

La relación es la parte que confunde a la gente. RFC 9309 (el estándar formal del Protocolo de Exclusión de Robots) dice que el token “SHOULD be a substring of the identification string that the crawler sends… in the case of HTTP, the product token SHOULD be a substring in the User-Agent header.” (traducción) «DEBERÍA ser una subcadena de la cadena de identificación que envía el rastreador… en el caso de HTTP, el token de producto DEBERÍA ser una subcadena en el encabezado User-Agent.» Eso es un SHOULD («DEBERÍA»), no un MUST («DEBE»): una convención sólida que el estándar recomienda, no un requisito estricto al que cada rastreador esté mecánicamente obligado. Google-Extended (abajo) es el ejemplo más claro de una excepción documentada. No leas la regla de subcadena como universal solo porque Google la sigue para la mayoría de sus propios tokens. El token es parte de la cadena cuando un proveedor sí proporciona uno; te diriges al token en robots.txt y lees la cadena en tus registros.

Evidence for this claim A robots.txt user-agent line selects a crawler product token, not an arbitrary full HTTP User-Agent string; RFC 9309 says the token should be a substring of the identification string, but this SHOULD-level convention has documented product-specific exceptions and is not authentication. Scope: robots.txt parsing and matching Confidence: high · Verified: Robots Exclusion Protocol

El propio marco de Google sobre cómo sus bots se identifican es útil aquí: “Google’s crawlers identify themselves through three things: the HTTP user-agent request header, the source IP address of the request, and the reverse DNS hostname of the source IP.” (traducción) «Los rastreadores de Google se identifican mediante tres cosas: el encabezado de solicitud HTTP user-agent, la dirección IP de origen de la solicitud y el nombre de host DNS inverso de la IP de origen.» Ten en cuenta que el agente de usuario es solo una de las tres — las otras dos son cómo lo verificas realmente.

Google-Extended: un token sin cadena

La ilustración más clara de token ≠ cadena es Google-Extended. Controla si Google puede usar tu contenido para el entrenamiento y la fundamentación de Gemini — y no tiene ninguna cadena de agente de usuario de solicitud HTTP dedicada en absoluto. El rastreo en sí se realiza con cadenas existentes de Googlebot; Google-Extended existe solo como un token de control de robots.txt. Nunca verás “Google-Extended” en un encabezado de solicitud en tus registros.

La consecuencia práctica: bloquear Google-Extended afecta solo al uso de tu contenido para el entrenamiento de IA — no impide que Googlebot rastree e indexe tu sitio para la Búsqueda. Son decisiones separadas controladas por tokens separados. (Para una visión más amplia de los bots que leen tu sitio, consulta rastreadores de IA y rastreador.)

Cadenas de user-agent de Googlebot

Googlebot es “evergreen” — se ejecuta en una versión reciente de Chrome, y la versión de Chrome en su cadena se actualiza periódicamente (lo hace desde diciembre de 2019). Por eso la versión aparece como un marcador de posición W.X.Y.Z:

Googlebot Smartphone (móvil):

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)

Googlebot Desktop:

Mozilla/5.0 AppleWebKit/537.36 (KHTML, like Gecko; compatible; Googlebot/2.1; +http://www.google.com/bot.html) Chrome/W.X.Y.Z Safari/537.36

Dos cosas que debes internalizar. Primero, no codifiques la versiónW.X.Y.Z cambia, y coincidir con ella se romperá. Coincide con el token estable Googlebot en su lugar. Segundo, no puedes separar móvil de escritorio en robots.txt. Ambas variantes comparten el único token Googlebot, por lo que una regla de robots.txt se aplica a ambas.

Tokens de rastreadores de Google

Google ejecuta toda una familia de rastreadores y buscadores, cada uno con su propio token. Los que encontrarás con más frecuencia:

RastreadorToken de robots.txtNotas
GooglebotGooglebotBúsqueda, Imágenes, Video, Noticias, Discover — móvil + escritorio comparten este token
Googlebot ImageGooglebot-ImageGoogle Imágenes
Googlebot VideoGooglebot-VideoBúsqueda de video
Googlebot NewsGooglebot-NewsUsa varias cadenas de Googlebot
Google StoreBotStorebot-GoogleShopping
Google-InspectionToolGoogle-InspectionToolAlimenta las herramientas de prueba de búsqueda
GoogleOtherGoogleOtherInvestigación/búsqueda interna
Google-ExtendedGoogle-ExtendedSolo robots.txt — entrenamiento de Gemini, sin cadena de solicitud

Y los que rompen las reglas habituales — los rastreadores de casos especiales que ignoran User-agent: *:

  • AdsBot (AdsBot-Google) y AdsBot Mobile (AdsBot-Google-Mobile) — no obedecen el comodín. Para bloquearlos debes nombrarlos explícitamente.
  • AdSense (Mediapartners-Google) — igual; ignora el * global.
  • Google-Safety — se usa para la detección de malware/abuso; ignora robots.txt por completo.

La implicación es la que la gente pasa por alto: User-agent: * no bloquea AdsBot ni Google-Safety. Si “bloqueas todos los bots” con un comodín y asumes que AdsBot ya no está, no es así. (Este es exactamente el tipo de sorpresa que lleva a una página al territorio de indexada aunque bloqueada por robots.txt — consulta robots.txt para la historia completa del control.)

Cadenas de user-agent de Bingbot

Bing reconstruyó la cadena de Bingbot en 2022 para reflejar que se renderiza con Microsoft Edge. Las cadenas actuales:

Bingbot Desktop:

Mozilla/5.0 AppleWebKit/537.36 (KHTML, like Gecko; compatible; bingbot/2.0; +http://www.bing.com/bingbot.htm) Chrome/W.X.Y.Z Safari/537.36

Bingbot Mobile:

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; bingbot/2.0; +http://www.bing.com/bingbot.htm)

El token de robots.txt es solo bingbot. Lo que debes vigilar: después de 2022, la cadena de Bingbot se ve casi exactamente como un navegador Chrome/Edge real — la única pista es el fragmento bingbot/2.0 dentro de ella. Si tienes alguna lógica que filtra o detecta bots por UA, ese cambio importa.

Cómo robots.txt realmente coincide con un token

Algunas reglas gobiernan qué grupo de reglas obedece un rastreador (según la especificación de robots.txt de Google y RFC 9309):

  • La coincidencia más específica gana. Google “determina el grupo correcto de reglas al encontrar… el grupo con el user agent más específico que coincida con el user agent del rastreador.” Un grupo Googlebot supera a un grupo * para Googlebot.
  • Los grupos con el mismo token se fusionan — pero nunca con *. Múltiples grupos que nombran al mismo agente se combinan en uno. Un grupo de agente específico y el grupo * no se fusionan; * es solo el respaldo cuando nada específico coincide.
  • No distingue entre mayúsculas y minúsculas. Tanto el nombre del campo como el valor — Googlebot, googlebot, GOOGLEBOT son equivalentes.
  • Los números de versión y los comodines en la línea del token se ignoran. Según Google, “tanto googlebot/1.2 como googlebot* son equivalentes a googlebot.” No puedes escribir User-agent: Googlebot* para coincidir con una familia — el * allí no hace nada.

Por lo tanto, una línea User-agent: toma un token y lo compara como una subcadena simple (sin distinción de mayúsculas y minúsculas) de la identidad del rastreador: sin fijación de versión, sin comodines dentro de ella.

Por qué no puedes confiar en la cadena — y cómo verificar

La cadena de user-agent es texto de formato libre. Cualquier cosa puede configurarla. Una línea de curl afirmará ser Googlebot, y muchas herramientas y bots maliciosos hacen exactamente eso para pasar desapercibidos ante los bloqueos. Google lo dice en su propia documentación de Googlebot: “the HTTP user-agent request header used by Googlebot is often spoofed by other crawlers.” (traducción) «el encabezado de solicitud HTTP de user-agent utilizado por Googlebot a menudo es suplantado por otros rastreadores». Como lo he expresado en mi guía de Googlebot, “Many SEO tools and some malicious bots will pretend to be Googlebot. This may allow them to access websites that try to block them.” (traducción) «Muchas herramientas de SEO y algunos bots maliciosos pretenderán ser Googlebot. Esto puede permitirles acceder a sitios web que intentan bloquearlos».

Por lo tanto, nunca tomes una decisión de acceso o contenido basándote solo en la cadena. Verifica en su lugar.

Un requisito previo antes de cualquiera de los dos métodos: obtén la real IP de origen. Si tu sitio está detrás de un proxy inverso, balanceador de carga o CDN, la dirección en tu registro de acceso predeterminado puede ser la IP del proxy, no la del rastreador — necesitas la IP original del cliente (generalmente reenviada en un encabezado como X-Forwarded-For, configurado correctamente en tu proxy) o ninguno de los métodos de verificación a continuación tiene sentido.

Método 1 — DNS inverso + directo (mejor para comprobaciones puntuales). Los dos pasos de Google:

  1. “Run a reverse DNS lookup on the accessing IP address from your logs, using the host command. Verify that the domain name is either googlebot.com, google.com, or googleusercontent.com.” (traducción) «Realiza una búsqueda DNS inversa en la dirección IP de acceso desde tus registros, usando el comando host. Verifica que el nombre de dominio sea googlebot.com, google.com o googleusercontent.com».
  2. “Run a forward DNS lookup on the domain name retrieved in step 1… Verify that it’s the same as the original accessing IP address from your logs.” (traducción) «Realiza una búsqueda DNS directa en el nombre de dominio obtenido en el paso 1… Verifica que sea el mismo que la dirección IP de acceso original de tus registros».

Para Bingbot, el mismo baile de dos pasos, pero el nombre de host debe terminar en search.msn.com (no un dominio con la marca Bing — una sorpresa común). Los comandos están en la pestaña Scripts.

Método 2 — rangos de IP publicados (mejor a escala). Google no publica una lista blanca estática para codificar (“these IP address ranges can change” (traducción) «estos rangos de direcciones IP pueden cambiar»), pero sí publica archivos JSON de CIDR legibles por máquina que puedes comparar (common-crawlers.json y los archivos de rastreadores más amplios). Bing ahora también publica sus rangos. Construí una herramienta de verificación de IP de Googlebot exactamente para esto — pega IPs y las clasifica. Bing Webmaster Tools también tiene una herramienta integrada “Verify Bingbot”.

El DNS es mejor para una verificación puntual de registros; la coincidencia de rangos de IP es mejor para verificar a gran volumen. Usa el que se ajuste — pero usa uno de ellos. Y trata tanto los nombres de host esperados como los archivos de rangos como actuales a día de hoy, no permanentes — Google y Bing han cambiado estas rutas antes (los archivos JSON de rangos de IP se movieron y renombraron desde que se escribió este artículo por primera vez), así que vuelve a consultar el documento de verificación en vivo si una búsqueda que solía funcionar deja de coincidir.

Una coincidencia de UA no es prueba de resultados posteriores

Incluso una solicitud completamente verificada — IP real de Googlebot, DNS inverso confirmado hacia adelante, todo cuadra — solo prueba una cosa: esa solicitud llegó a tu servidor. Es tentador redondear eso en una afirmación mucho más grande, pero cada una de estas es un hecho separado que requiere evidencia separada:

  • Solicitud recibida — una solicitud con ese agente de usuario llegó a tu servidor. (Lo que la verificación de registros demuestra realmente).
  • Identidad confirmada — la solicitud realmente provino del rastreador que dice ser. (Lo que añade la verificación inversa de DNS / coincidencia de rangos de IP).
  • Contenido obtenido y renderizado — el rastreador renderizó la página con éxito (sin errores, sin recursos bloqueados). No está garantizado solo porque llegó una solicitud.
  • Indexado — la URL llegó al índice de búsqueda. Una obtención exitosa no garantiza la indexación.
  • Usado para recuperación, citación o entrenamiento — especialmente para rastreadores de IA (Google-Extended, GPTBot y demás), un rastreo no es prueba de que tu contenido se haya recuperado para una respuesta específica, se haya citado o se haya usado en el entrenamiento de modelos. Esos son pasos separados, en su mayoría no observables, posteriores al rastreo.

Una visita verificada de Googlebot en tus registros es una señal real, solo que no la estires más allá de lo que realmente muestra.

Autenticación de bots web: hacia dónde se dirige la verificación

En 2026, Google comenzó a experimentar con Web Bot Auth“un protocolo criptográfico experimental utilizado para autenticar solicitudes enviadas por bots.” La idea es “ir más allá de los encabezados fácilmente falsificables hacia una identidad verificada y desacoplar la identidad del agente de las direcciones IP.” Los bots firman criptográficamente sus solicitudes; los sitios verifican la firma contra las claves públicas publicadas de Google, y las solicitudes firmadas llevan un encabezado Signature-Agent. La advertencia del propio Google importa: “No firmamos cada solicitud de un agente en particular. Asegúrate de recurrir a los métodos establecidos de verificación de bots.” Así que es aditivo, no un reemplazo: el DNS inverso y los rangos de IP siguen siendo tu base hoy.

Los navegadores también son cada vez más difíciles de analizar a partir de la cadena UA

Todo lo anterior trata sobre rastreadores, pero la misma lección de “no confíes demasiado en la cadena” se aplica a los navegadores, y es cada vez más fuerte. Chrome ha estado implementando gradualmente la reducción de User-Agent: congelando o reduciendo la precisión de partes de su cadena UA (versión completa del navegador, versión del sistema operativo, modelo del dispositivo) en lugar de informarlas exactamente, para que la cadena no pueda usarse para identificar a un usuario específico. El propio marco de Google: “La granularidad y abundancia de detalles pueden llevar a la identificación del usuario. La disponibilidad predeterminada de esta información puede llevar a un seguimiento encubierto.” Prácticamente, eso significa que el análisis de la cadena UA para versiones exactas de navegador/SO/dispositivo — análisis, detección de dispositivos, clasificación de errores — es cada vez menos fiable y solo lo será más.

El reemplazo que Chrome recomienda son las User-Agent Client Hints (UA-CH): datos estructurados que el navegador envía solo cuando un servidor los solicita explícitamente. Las sugerencias de baja entropía (marca del navegador, versión principal, indicador móvil) se envían por defecto; las sugerencias de alta entropía (versión exacta, versión de la plataforma, modelo del dispositivo) requieren que el servidor opte por participar mediante un encabezado de respuesta Accept-CH primero — una negociación explícita, no una transmisión. Dos advertencias antes de que confíes en ello: es un mecanismo de la familia Chrome/Chromium, no algo que todos los navegadores envíen, e incluso donde se admite, “el valor puede estar en blanco, no devolverse o poblarse con un valor variable.” Las Client Hints resuelven el problema de la cadena del navegador; no son un mecanismo de verificación de rastreadores — Google y Bing aún verifican sus propios rastreadores mediante DNS y rangos de IP, no mediante Client Hints.

Segmentación por agente de usuario y cloaking

La tentación — “detectar a Googlebot por su UA y servirle algo especial” — es tanto técnicamente frágil como una violación de la política.

Frágil, porque Google no rastrea con un solo UA. Tendrías que manejar correctamente Googlebot (móvil y escritorio), Google-InspectionTool, AdsBot, GoogleOther y más, desde IPs rotativas — prácticamente imposible de incluir en una lista blanca de manera limpia.

Una violación de la política, porque servir contenido diferente a un rastreador que a los usuarios es cloaking: “presentar contenido diferente a los usuarios y a los motores de búsqueda con la intención de manipular los rankings de búsqueda y engañar a los usuarios.” La penalización va desde la degradación algorítmica hasta la desindexación completa. Ten en cuenta la línea: la adaptación legítima (diseños responsivos, negociación de contenido) está bien — es intercambiar el contenido en sí entre bots y usuarios lo que cruza la línea hacia el cloaking.

Para saber dónde se sitúa el agente de usuario en el proceso más amplio, consulta rastreo (el centro) y rastreador. Para controlar qué pueden obtener esos bots, consulta robots.txt.

Add an expert note

Pin an expert quote

New person? Create their unclaimed profile at /admin/experts/ → Pin a quote first.