# Qué ve un rastreador de IA en tu tienda y cómo comprobarlo

> Qué ve un rastreador de IA como GPTBot u OAI-SearchBot en tu tienda: tu robots.txt, el HTML que envía tu servidor y cómo comprobarlo paso a paso.

URL: https://clione.ai/es/guias/que-ve-un-rastreador-de-ia/
Lang: es

Si vendes en Shopify o en BigCommerce, habrás leído que los bots de IA no ejecutan JavaScript, o que ChatGPT lee el [JSON-LD](/es/glosario/json-ld/) de tus fichas. Casi nunca viene con una fuente. Esta guía no te pide que creas ninguna de las dos frases: te enseña a mirar qué puede leer un [rastreador de IA](/es/glosario/rastreador/) de tu [ficha de producto](/es/glosario/ficha-de-producto/), con las reglas tal como las escriben el estándar y cada empresa, en cinco pasos que acaban en algo que puedes ver.

## Qué descarga un rastreador de IA

Antes de pedir una página, un rastreador bien educado pide tu [robots.txt](/es/glosario/robots-txt/) y busca las reglas que le tocan.[^rfc9309] Después pide la URL y recibe lo que responde tu servidor: el HTML tal como sale, antes de que nadie ejecute nada. **Eso es lo que descarga cualquier agente al que dejes pasar.**

Lo que JavaScript añade después de cargar depende del [renderizado de JavaScript](/es/glosario/renderizado-javascript/), y de las cuatro empresas cuyos agentes mira esta guía, OpenAI, [Perplexity](/es/glosario/perplexity/), Anthropic y Google, solo Google documenta que lo hace. [Googlebot](/es/glosario/googlebot/) rastrea la URL, pone en una cola de renderizado las páginas que responden con un 200, las renderiza con un Chromium sin interfaz y lo que sale de ahí pasa a la [indexación](/es/glosario/indexacion/). Aun así, Google dice que el [renderizado en el servidor](/es/glosario/ssr/) o el prerrenderizado sigue siendo buena idea, porque la web va más rápida para personas y rastreadores y porque **no todos los bots pueden ejecutar JavaScript**.[^google-js-seo] OpenAI, Perplexity y Anthropic no dicen nada de JavaScript en la documentación de sus rastreadores, que leímos el 5 de octubre de 2026.[^openai-bots][^perplexity-bots][^anthropic-bots] No dicen que no lo ejecuten: no lo dicen.

Con los [datos estructurados](/es/glosario/datos-estructurados/) pasa lo mismo que con el texto. Un bloque `application/ld+json` escrito en el HTML del servidor viaja en cada descarga, y Google usa los datos estructurados que encuentra para entender el contenido de la página y para mostrar [resultados enriquecidos](/es/glosario/resultados-enriquecidos/).[^google-structured-data] Si el marcado [Product](/es/glosario/schema-product/) lo genera JavaScript, Google avisa de que los rastreos de Shopping pueden ser menos frecuentes y menos fiables, un problema en datos que cambian rápido, como el precio y la disponibilidad.[^google-js-sd]

Para sus funciones de IA, Google no pide archivos nuevos ni un marcado especial: la página tiene que estar indexada, poder mostrarse con fragmento y tener los datos estructurados de acuerdo con el texto que se ve.[^google-ai-features] Qué agente busca y cuál entrena, empresa por empresa, está en la [entrada de GEO](/es/glosario/geo/); aquí nos quedamos con lo práctico: cómo entra cada uno y cómo lo compruebas.

## Paso 1: lee tu robots.txt como lo lee cada agente

Abre tu `robots.txt` en el navegador, en la raíz de tu dominio. Si buscabas qué poner en el `robots.txt` para ChatGPT, la primera sorpresa es que ChatGPT no es un agente sino tres, y cada uno lee el archivo por su cuenta. Las reglas, tal como las escriben el estándar (RFC 9309) y Google:

- **Cada agente obedece un solo grupo**: el que lo nombra. Busca su nombre sin distinguir mayúsculas y, si lo encuentra, deja de leer el grupo `User-agent: *`. Solo cae en el `*` si ningún grupo lo nombra.[^rfc9309][^google-robots-spec]
- Dentro del grupo gana la regla con la ruta más larga que coincide, y si un `Allow` y un `Disallow` empatan, gana el `Allow`. Google lo llama aplicar la regla menos restrictiva.[^rfc9309][^google-robots-spec]
- Si el archivo responde con un error 4xx, el agente puede rastrearlo todo. Con un 5xx, el estándar manda suponer que no puede rastrear nada; Google para doce horas, sigue con la copia guardada hasta 30 días y, si el error continúa, actúa como si no hubiera restricciones.[^rfc9309][^google-robots-spec]
- El archivo se guarda en caché hasta 24 horas, y OpenAI calcula unas 24 horas para que sus sistemas noten un cambio.[^rfc9309][^google-robots-spec][^openai-bots]
- `Crawl-delay` no es del estándar: Anthropic lo admite, Google no, y OpenAI y Perplexity no dicen nada.[^anthropic-bots][^google-robots-spec]
- Y lo que no es: el propio estándar dice que estas reglas no son una forma de autorizar el acceso.[^rfc9309]

Estos son los nombres que buscan en el archivo los agentes de las cuatro empresas, lo que dice cada una sobre si los respeta y dónde publica sus IP:

| Empresa    | Agente (el nombre que va en `robots.txt`)                            | ¿Sigue `robots.txt`? Según su documentación                         | Lista de IP                                                                              |
| ---------- | -------------------------------------------------------------------- | ------------------------------------------------------------------- | ---------------------------------------------------------------------------------------- |
| OpenAI     | [OAI-SearchBot](/es/glosario/oai-searchbot/)                         | Se controla en `robots.txt`, aparte de los otros dos.[^openai-bots] | [`openai.com/searchbot.json`](https://openai.com/searchbot.json)                         |
| OpenAI     | [GPTBot](/es/glosario/gptbot/)                                       | Se controla en `robots.txt`, aparte de los otros dos.[^openai-bots] | [`openai.com/gptbot.json`](https://openai.com/gptbot.json)                               |
| OpenAI     | [ChatGPT-User](/es/glosario/chatgpt-user/)                           | Puede que no: lo lanza una persona desde ChatGPT.[^openai-bots]     | [`openai.com/chatgpt-user.json`](https://openai.com/chatgpt-user.json)                   |
| Perplexity | [PerplexityBot](/es/glosario/perplexitybot/)                         | Sí.[^perplexity-bots]                                               | [`perplexity.com/perplexitybot.json`](https://www.perplexity.com/perplexitybot.json)     |
| Perplexity | Perplexity-User                                                      | Por lo general lo ignora: lo lanza una persona.[^perplexity-bots]   | [`perplexity.com/perplexity-user.json`](https://www.perplexity.com/perplexity-user.json) |
| Anthropic  | [ClaudeBot](/es/glosario/claudebot/), Claude-SearchBot y Claude-User | Sí, y admite `Crawl-delay`.[^anthropic-bots]                        | [`claude.com/crawling/bots.json`](https://claude.com/crawling/bots.json)                 |
| Google     | Googlebot                                                            | Sí, en los rastreos automáticos.[^google-crawlers-overview]         | Por DNS inverso o con sus listas JSON.[^google-verify]                                   |

[Google-Extended](/es/glosario/google-extended/) no está en la tabla porque no es un agente: no tiene [_user agent_](/es/glosario/user-agent/) propio, Google rastrea con sus agentes de siempre y usa ese nombre en `robots.txt` solo como control. Según Google, no afecta a tu presencia en la Búsqueda ni es una señal de posicionamiento.[^google-common-crawlers]

La primera regla tiene una consecuencia práctica: al dar a un agente un grupo propio, le quitas las reglas del general. En este ejemplo ficticio, OAI-SearchBot encuentra su grupo, deja de leer el `*` y pasa a tener permiso para `/cart` y `/checkout`. Si quieres un grupo para un agente, copia en él las líneas `Disallow` del grupo general.


```text
User-agent: *
Disallow: /cart
Disallow: /checkout

User-agent: OAI-SearchBot
Allow: /
```


**Shopify.** El archivo por defecto bloquea `/admin`, `/cart`, `/checkout`, `/checkouts/`, `/account`, `/orders` y las colecciones ordenadas y filtradas. Para cambiarlo se edita la plantilla `robots.txt.liquid` del tema, y Shopify avisa de que es una personalización sin soporte y de que usarla mal puede hacerte perder todo el tráfico.[^shopify-robots] Su documentación para desarrolladores recomienda partir de los objetos de [Liquid](/es/glosario/liquid/) que reproducen las reglas por defecto (`robots.default_groups`) en lugar de reescribir el archivo, y su ejemplo para permitir un rastreador es un grupo con `Allow: /` y nada más: copiado tal cual para un agente, lo deja sin las reglas de `/cart` y `/checkout`.[^shopify-robots-liquid] Shopify gestiona además los bots en la capa de red sin que tengas que hacer nada, y avisa de que las reglas de `robots.txt` son orientativas: no todos los rastreadores las cumplen. Bloquear rastreadores de IA ahí o en la red solo afecta a lo que se descubre en la web abierta, y no frena los datos de producto que [Shopify Catalog](/es/glosario/shopify-catalog/) envía a los [_agentic storefronts_](/es/glosario/agentic-storefronts/) que tengas activados.[^shopify-robots]

**BigCommerce.** El archivo se edita en `Settings › Website › Search Engine Robots`, y con Multi-Storefront, por tienda. Pero lo que ves ahí no es el archivo entero: BigCommerce aplica a los rastreadores de IA y de mucho volumen un grupo aparte, con `Crawl-delay: 10` y unas pocas rutas bloqueadas, que no puedes ver ni editar en los ajustes y que sí aparece en tu `/robots.txt`. Por defecto, no hace falta añadir nada para que los bots de IA rastreen la tienda.[^bigcommerce-robots]

En las dos plataformas la regla es la misma: **lee el archivo vivo, no la pantalla de ajustes**. Para cada agente de la tabla, busca qué grupo lo nombra, o si cae en el `*`, y qué dice ese grupo de la ruta de tus fichas. Cuándo conviene dejar fuera a cada uno es otra decisión, y la tienes en [cuándo bloquear cada agente](/es/glosario/bloqueo-de-bots-de-ia/).

## Paso 2: mira el HTML que envía tu servidor

Abre una ficha y pide su código fuente: «Ver código fuente de la página» en el menú del botón derecho, o `view-source:` delante de la URL. No uses el inspector de las herramientas para desarrolladores, que enseña la página después de ejecutar JavaScript y no lo que salió del servidor. Busca en ese código cada dato que quieres que lea un agente:

- el nombre del producto, el precio y la disponibilidad;
- la descripción, las reseñas y las preguntas frecuentes;
- `application/ld+json`: cuántos bloques hay y qué `@type` declara cada uno. En una ficha, lo esperable es un Product.

**Lo que encuentras en el código fuente llega en cualquier descarga.** Lo que ves en la página y no aparece aquí lo ha puesto JavaScript, y solo lo lee un agente que renderiza. Si tu tema monta la ficha con [renderizado del lado del servidor](/es/glosario/ssr/), esos datos estarán en el código; lo que añade una app o un script después de cargar, no. Para guardar una copia y compararla en los pasos siguientes basta una línea en la terminal, como `curl -s -o servidor.html https://tu-tienda.example/products/ejemplo` (la URL es ficticia).


## Paso 3: compáralo con lo que renderiza Google

El único renderizador por el que puedes mirar es el de Google, y tiene dos ventanas:

- **La inspección de URLs de [Search Console](/es/glosario/search-console/).** «Ver página rastreada» enseña el HTML que devolvió tu servidor, las cabeceras HTTP, los mensajes de la consola de JavaScript y los recursos que cargó la página. «Probar URL publicada» examina la URL en ese momento y, si la prueba sale bien y la URL es pública, añade una captura de lo que pintó. El campo «Rastreado como» dice si entró como móvil o como ordenador.[^gsc-url-inspection]
- **La [Prueba de resultados enriquecidos](/es/glosario/prueba-de-resultados-enriquecidos/).** Úsala con la URL, no pegando el código: con el código hay límites de JavaScript.[^google-js-sd] Entra como móvil salvo que elijas otra cosa y lista los tipos de datos estructurados que encuentra.[^google-rrt] Si tu Product aparece aquí y no estaba en el código fuente del paso 2, lo genera JavaScript: Google lo ve, con el aviso de Shopping del primer apartado, y un agente que no renderiza, no.

**Es el renderizador de Google y solo dice lo que ve Google.** Para el resto de agentes, lo que cuenta es el código fuente del paso 2. Si lo que buscas es revisar el marcado en sí, tienes la guía para [auditar los datos estructurados de una ficha](/es/guias/auditar-ficha-de-producto/), y conviene recordar que [validar el marcado no es lo mismo que verificar que se publica](/es/comparativas/validar-vs-verificar/).


## Paso 4: pide la página con el user agent de cada agente

Si buscabas el _user agent_ de ChatGPT, son tres, uno por agente. Cada empresa publica sus cadenas completas: OAI-SearchBot/1.4, GPTBot/1.4 y ChatGPT-User/1.0 en OpenAI;[^openai-bots] PerplexityBot/1.0 y Perplexity-User/1.0 en Perplexity;[^perplexity-bots] Googlebot/2.1, en versión para móvil y para ordenador, en Google.[^google-common-crawlers] Anthropic publica los nombres de sus agentes, pero no las cadenas completas.[^anthropic-bots] Cuando filtres, busca el nombre y no la cadena entera, porque la versión cambia.

Pide la misma ficha con tu navegador y con la cadena completa de cada agente, y compara las respuestas: el código de estado, el tamaño y si llega la ficha o una página de comprobación de seguridad. Con la terminal es una línea por agente: `curl -A "<cadena del agente>" -o agente.html <URL de tu ficha>`.

Esto te dice si tu servidor, tu [CDN](/es/glosario/cache-cdn-bots/) o tu cortafuegos cambian la respuesta según el _user agent_. No te dice qué recibe el rastreador de verdad, porque **un user agent prestado no es el rastreador**: tu petición sale de tu IP, y los agentes reales salen de los rangos que publica cada empresa. Perplexity recomienda a quien configura un cortafuegos que combine la cadena con la comprobación de la IP,[^perplexity-bots] y un cortafuegos que lo haga puede tratar tu petición como lo que es, una imitación. Por eso Google pide que el rastreo esté permitido en `robots.txt` y también en cualquier CDN o infraestructura de alojamiento:[^google-ai-features] un `Allow` en el archivo no abre la puerta del cortafuegos.

## Paso 5: confirma las visitas reales en los registros

El rastreador de verdad solo aparece en los registros de peticiones de tu servidor o de tu CDN. Filtra por el nombre del agente y comprueba la IP de cada línea:

- OpenAI, Perplexity y Anthropic publican sus rangos en las listas JSON de la tabla del paso 1.[^openai-bots][^perplexity-bots][^anthropic-bots]
- A Google se le comprueba con una búsqueda DNS inversa de la IP, que tiene que devolver un dominio `googlebot.com`, `google.com` o `googleusercontent.com`, y otra directa sobre ese dominio; o con sus listas JSON.[^google-verify]

Una línea de ejemplo, ficticia (la IP es de un rango reservado para ejemplos):


```text
203.0.113.24 - - [05/Oct/2026:10:14:07 +0200] "GET /products/ejemplo HTTP/1.1" 200 48213 "-" "Mozilla/5.0 AppleWebKit/537.36 (KHTML, like Gecko); compatible; GPTBot/1.4; +https://openai.com/gptbot"
```


Esa línea dice que la petición se llama GPTBot, y **no es GPTBot hasta que su IP está en `gptbot.json`**. En los registros, mira:

- cada cuánto pide `robots.txt`;
- los códigos de estado: un 200 es la página, un 403 es un bloqueo y un 429 es que tu servidor le ha pedido que vaya más despacio;
- si después del HTML pide el JavaScript, el CSS o las imágenes, que es una señal de que renderiza;
- los bytes: una respuesta mucho más pequeña que tu ficha puede ser una página de comprobación.

Las listas cambian, y bloquear por IP tiene su límite: Anthropic avisa de que bloquear sus direcciones puede no funcionar bien ni garantizar la exclusión de forma permanente.[^anthropic-bots] Si tu tienda está en una plataforma alojada, pregunta qué registros te da antes de planear esta comprobación. Shopify, por ejemplo, no recomienda poner un proxy delante de la tienda.[^shopify-robots]

## Lo que hemos probado

### Lo que comprobamos desde fuera, el 5 de octubre de 2026

Desde un ordenador nuestro, sin ser ningún rastreador, leímos archivos públicos y pedimos fichas con cadenas prestadas. Las tiendas van sin nombre, salvo la de demostración de BigCommerce, que es de la propia plataforma.

- **El archivo por defecto de Shopify.** En dos tiendas grandes de Shopify, el `robots.txt` vivo solo tiene grupos para el `*` y para algunos rastreadores de anuncios y de herramientas de SEO. No nombra a ningún agente de la tabla, así que todos caen en el `*` y en sus reglas.
- **El grupo aparte de BigCommerce.** El archivo vivo de su tienda de demostración, `cornerstone-light-demo.mybigcommerce.com`, tiene un tercer grupo que nombra a OAI-SearchBot, GPTBot, ChatGPT-User, PerplexityBot, ClaudeBot y Google-Extended, entre varias decenas de agentes, con `Crawl-delay: 10` y unas pocas rutas bloqueadas. Claude-SearchBot, Claude-User y Perplexity-User no están en él, así que para ellos manda el `*`.
- **El mismo HTML con cualquier cadena.** Pedimos una ficha de tres tiendas de Shopify con la cadena de un navegador y con las de OAI-SearchBot, GPTBot, PerplexityBot y Googlebot. Cada tienda devolvió un 200 y el mismo HTML, byte a byte, con dos bloques `application/ld+json`, uno de ellos con un nodo Product. Es nuestra IP con una cadena prestada: dice que esos servidores no cambian la respuesta según el _user agent_, no lo que recibe ningún rastreador.
- **Un muro en lugar del archivo.** Al pedir el `robots.txt` de otra tienda grande recibimos un 429 y una página de comprobación de seguridad. Eso también es lo que puede recibir un agente.

### La prueba con los agentes reales

- **Preparación.** Una URL pública montada como una ficha de producto, marcada «ejemplo ficticio» salvo que sea la ficha de un cliente con su permiso (entonces la página suma `real-example`). Sin enlaces a ella, fuera del sitemap y con un `robots.txt` que deje pasar a todos los agentes de la tabla; se guarda el `robots.txt` tal como se sirvió ese día. Una tienda de desarrollo de Shopify con contraseña no sirve. En ella, cuatro valores testigo, cada uno una cadena aleatoria de ocho caracteres sin ningún resultado en la web: C1, texto visible en el HTML del servidor; C2, solo dentro del nodo Product del JSON-LD del servidor (por ejemplo, en `mpn`), sin verse en la página; C3, texto visible que escribe JavaScript después de cargar y que no está en el HTML del servidor; C4, una propiedad del JSON-LD que solo añade JavaScript. Se comprueba en el código fuente que C1 y C2 están y C3 y C4 no, y en el navegador que se ven C1 y C3. Se anotan el alojamiento, la plataforma y su versión, el tema y su versión, y la fecha.
- **Ejecuciones.** ChatGPT con búsqueda, Perplexity y Claude con acceso a la web: tres ejecuciones en cada uno, cada vez en un chat nuevo, con el estado de la sesión anotado y la hora de inicio al minuto para cruzarla con los registros. Una sola consulta en español, escrita antes de empezar, que pide los valores etiquetados «copiados literalmente» de la URL sin revelarlos. Además, el renderizador de Google: la Prueba de resultados enriquecidos con la URL (¿detecta C2? ¿y C4?) y, si la propiedad está verificada, «Probar URL publicada» en la inspección de URLs (¿aparece C3?). [Gemini](/es/glosario/gemini/) y [Copilot](/es/glosario/copilot/) son opcionales, solo si el revisor los quiere: sus agentes no están en las fuentes que hemos abierto, así que el agente que aparezca en los registros se anota sin interpretarlo.
- **Registros.** Por cada ventana de ejecución: la hora, la IP, el _user agent_, la ruta, el estado y los bytes. Por cada petición: el agente; si la IP está en la lista de su empresa, con la fecha de creación de la lista; si pidió `robots.txt` antes; si pidió JavaScript, CSS o imágenes después del HTML; y el código de estado. Si los registros de una tienda real alcanzan treinta días, una segunda tabla opcional con las peticiones por agente, verificadas y sin verificar.
- **Lo que se publica.** Dónde estaba cada valor testigo (y las cadenas, si el revisor lo aprueba), la tabla de abajo con su fecha, una línea con la tienda y sus versiones, y los límites.

Probado en: alojamiento, plataforma y versión, tema y versión, fecha.

| Asistente                                 | Ejecución         | Agente en el registro | IP verificada | Pidió `robots.txt` | Pidió JS, CSS o imágenes | Estado | C1 · C2 · C3 · C4 |
| ----------------------------------------- | ----------------- | --------------------- | ------------- | ------------------ | ------------------------ | ------ | ----------------- |
| ChatGPT con búsqueda                      | 1                 |                       |               |                    |                          |        |                   |
| ChatGPT con búsqueda                      | 2                 |                       |               |                    |                          |        |                   |
| ChatGPT con búsqueda                      | 3                 |                       |               |                    |                          |        |                   |
| Perplexity                                | 1                 |                       |               |                    |                          |        |                   |
| Perplexity                                | 2                 |                       |               |                    |                          |        |                   |
| Perplexity                                | 3                 |                       |               |                    |                          |        |                   |
| Claude con acceso a la web                | 1                 |                       |               |                    |                          |        |                   |
| Claude con acceso a la web                | 2                 |                       |               |                    |                          |        |                   |
| Claude con acceso a la web                | 3                 |                       |               |                    |                          |        |                   |
| Google: Prueba de resultados enriquecidos | Con la URL        |                       |               |                    |                          |        |                   |
| Google: inspección de URLs                | Prueba en directo |                       |               |                    |                          |        |                   |

Los límites, tal cual: una página, un día y tres ejecuciones por asistente. ChatGPT-User, Perplexity-User y Claude-User, los agentes que lanza una persona, no son los rastreadores de búsqueda; a estos solo se les ve si pasan dentro de la ventana de los registros. Lo que contesta un asistente es la salida de un modelo: los valores aleatorios descartan que acierte por casualidad, no que se calle algo, así que un «no» pesa menos que un «sí». Y el comportamiento de los agentes y sus listas de IP cambian.
