# Lo que ve un agente de IA en tu ficha de producto

> Pega el código de tu ficha y mira lo que recibe un rastreador que no ejecuta JavaScript: texto, encabezados, meta y JSON-LD. Herramienta gratuita.

URL: https://clione.ai/es/herramientas/lo-que-ve-un-agente/
Lang: es

Si vendes online, o llevas las tiendas de tus clientes desde una agencia, esta herramienta responde a una pregunta concreta: **qué hay en tu ficha para un [agente de IA](/es/glosario/agente-de-ia/) que no ejecuta JavaScript**. Pegas el código de una [ficha de producto](/es/glosario/ficha-de-producto/) y la herramienta lo lee como lo leería un [rastreador](/es/glosario/rastreador/) de ese tipo: sin ejecutar nada ni cargar nada, con lo que escribió tu servidor y nada más. Encuentra el título, las etiquetas que deciden su [indexación](/es/glosario/indexacion/), el texto, los enlaces y cada bloque [JSON-LD](/es/glosario/json-ld/). Si pegas también la página tal como la pinta tu navegador, te dice qué parte de la ficha solo existe después de JavaScript.

Todo ocurre en tu navegador. La herramienta no hace ninguna petición: lee lo que pegas como datos, sin ejecutar sus scripts, y **nada de lo que pegas sale de esta página**.

## Cómo usarla

1. **Copia el código fuente.** Abre la 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. Selecciona todo, cópialo y pégalo en el primer campo. Ese texto es el HTML que envió tu servidor, antes de que se ejecute ningún script.
2. **Copia la página renderizada, si quieres comparar.** Abre las herramientas para desarrolladores, ve a Elementos, haz clic derecho en el elemento `<html>` y elige Copiar › Copiar outerHTML. Pégalo en el segundo campo. Es opcional, pero es la mitad que responde a la pregunta de JavaScript.
3. **Pulsa Comprobar.** Si antes quieres ver un resultado, «Cargar un ejemplo» rellena los dos campos con una tienda ficticia montada en el navegador: el código fuente es un contenedor vacío con tres scripts, y la camisa de lino, su encabezado y su bloque de datos solo aparecen en la versión renderizada.
4. **Lee el resultado de arriba abajo**: primero lo que recibe un rastreador que no ejecuta JavaScript, después lo que solo aparece con JavaScript.

## Cómo leer el resultado

### Lo que recibe un rastreador que no ejecuta JavaScript

La primera parte lee solo el código fuente. Cada fila es algo que un rastreador encuentra sin renderizar, y «Falta» marca lo que no está:

- **Título.** El texto de la etiqueta `<title>`. Google admite que JavaScript ponga o cambie el título y la [_meta description_](/es/glosario/meta-description/),[^google-js-seo] pero un rastreador que no renderiza solo tiene lo que hay aquí.
- **Meta description.** El resumen que la página da de sí misma en `<meta name="description">`. Si falta en el código fuente y la ves en la página, la pone un script.
- **Meta robots.** Las instrucciones de indexación de la página. «Ninguno» es lo habitual: sin esa etiqueta, la página puede indexarse con normalidad. Si aquí ves [noindex](/es/glosario/noindex/), la página pide no salir en los resultados de búsqueda,[^google-robots-meta] y Google avisa de que, si lo encuentra antes de renderizar, puede saltarse el renderizado: quitarlo con JavaScript puede no funcionar.[^google-js-seo]
- **[Canonical](/es/glosario/canonical/).** La URL que la página declara como la buena, en `<link rel="canonical">`. Google pide que JavaScript no cambie el canonical que ya está en el HTML; si no puedes ponerlo en el HTML, que lo ponga JavaScript y no esté en el original.[^google-js-seo]
- **Idioma de la página.** El atributo `lang` del elemento `<html>`. Declara el idioma, pero no lo tomes por la señal que lo decide: Google dice que determina el idioma por el contenido visible y que no usa el atributo `lang`.[^google-multilingual]
- **Palabras de texto.** Las palabras del cuerpo que no están dentro de scripts, estilos, plantillas, SVG, iframes ni objetos. Cuenta también el menú y el pie, así que **compárala con la de la página renderizada** más que leerla sola.
- **Enlaces.** Cuántos enlaces con `href` hay en el código fuente. [Googlebot](/es/glosario/googlebot/) busca enlaces en el HTML de la respuesta antes de renderizar nada.[^google-js-seo] Si la cifra crece mucho después de JavaScript, parte de tu navegación solo existe en el navegador.
- **Imágenes sin [texto alternativo](/es/glosario/texto-alternativo/).** Las `<img>` que no tienen atributo `alt`; un `alt=""` vacío no cuenta como falta. Google usa ese texto, junto con la visión artificial y el resto de la página, para entender de qué trata cada imagen.[^google-images]
- **Scripts.** Los `<script>` que no son datos. La cifra sola no dice nada; junto a pocas palabras, sí, y por eso existe el aviso del apartado siguiente.
- **Bloques JSON-LD.** Uno por cada `<script type="application/ld+json">`, con los tipos que declara dentro. En una ficha, lo esperable es al menos un nodo [Product](/es/glosario/schema-product/). Si un bloque no se puede leer, sale marcado con el error: un JSON roto es un bloque que ninguna máquina puede usar.
- **Encabezados.** Los `h1`, `h2` y `h3` del código fuente, hasta sesenta. Si el nombre del producto no está aquí, búscalo en la parte renderizada.

### Cuando la página se construye en el navegador

Si el código fuente tiene menos de 150 palabras de texto y tres scripts o más, la herramienta lo avisa antes de la lista: la página probablemente se monta en el navegador, y un rastreador que no ejecuta JavaScript recibe poco de ella. Es una pista, no un diagnóstico, y el umbral es nuestro, no de ningún estándar.

Si salta, pega la página renderizada para ver qué falta y pide a quien mantiene el tema o la app que esos datos salgan en el HTML del servidor, con [renderizado del lado del servidor](/es/glosario/ssr/) o con prerrenderizado. Google lo recomienda porque la web va más rápida para personas y rastreadores, y porque **no todos los bots pueden ejecutar JavaScript**.[^google-js-seo]

### Lo que solo aparece después de JavaScript

Con la página renderizada pegada, la segunda parte compara las dos versiones y enseña solo las diferencias:

- **Palabras de más**: cuántas palabras de texto añade JavaScript.
- **Campos que cambian**: si el título, la meta description, el canonical o la meta robots tienen otro valor después de JavaScript, con el antes y el después.
- **Encabezados que solo aparecen después.**
- **Bloques JSON-LD que solo aparecen después.** La comparación es exacta: un bloque que un script modifica, aunque sea en un campo, cuenta como nuevo. Si tu Product está aquí, lo genera JavaScript, y Google avisa de que el marcado generado así puede hacer los rastreos de Shopping menos frecuentes y menos fiables, un problema en datos que cambian rápido, como el precio y la disponibilidad.[^google-js-sd]

Si JavaScript no añade texto, encabezados ni JSON-LD, la herramienta lo dice con un «=»: lo que ves en la ficha está ya en lo que descarga cualquier rastreador al que dejes pasar.

## Lo que esta herramienta no puede decirte

- **No descarga tu página.** Por seguridad, los navegadores limitan las peticiones que un script hace a otro dominio, y solo las dejan pasar si ese servidor lo permite con cabeceras CORS.[^mdn-cors] Por eso la herramienta trabaja con lo que pegas, y no con una URL.
- **Lo que pegas es lo que recibió tu navegador.** Tu servidor, tu [CDN](/es/glosario/cache-cdn-bots/) o tu cortafuegos pueden responder a [GPTBot](/es/glosario/gptbot/) algo distinto de lo que te responden a ti, o pararlo antes de que llegue a la ficha. Google pide que el rastreo esté permitido en el [robots.txt](/es/glosario/robots-txt/) y también en cualquier CDN o alojamiento,[^google-ai-features] y [Perplexity](/es/glosario/perplexity/) recomienda a quien configura un cortafuegos que compruebe el nombre del agente y también su IP.[^perplexity-bots] Lo que recibe el rastreador de verdad solo se ve en los registros del servidor, y cómo leerlos está en la guía [qué ve un rastreador de IA en tu tienda](/es/guias/que-ve-un-rastreador-de-ia/).
- **No sabe si un agente renderiza.** Compara dos textos; no ejecuta nada. Google documenta que renderiza, y OpenAI no dice nada de JavaScript en la documentación de sus rastreadores.[^openai-bots]
- **Solo lee JSON-LD.** No lee [microdatos](/es/glosario/microdatos/) ni [RDFa](/es/glosario/rdfa/), y no valida el marcado: dice qué tipos hay, no si están completos. Para eso tienes [Cobertura de datos](/es/herramientas/cobertura-de-datos/).
- **No lee tu robots.txt.** Si un agente tiene prohibida la ficha, nada de esto le llega. Compruébalo en [robots.txt para bots de IA](/es/herramientas/robots-txt-bots-ia/).

## Código fuente y DOM: por qué la diferencia decide qué lee un agente

Una página existe dos veces. Las herramientas de Chrome lo explican así: el HTML es el contenido inicial de la página y el DOM es el contenido activo, el de ahora, y cuando JavaScript añade, quita o edita nodos, el DOM deja de ser igual que el HTML.[^chrome-devtools-dom] El código fuente que pegas en el primer campo es ese HTML; la página renderizada del segundo es el DOM.

Un rastreador descarga el primero. El segundo solo lo tiene quien ejecuta los scripts: tu navegador y un rastreador que hace [renderizado de JavaScript](/es/glosario/renderizado-javascript/). Googlebot es de estos: pone en una cola de renderizado las páginas que responden con un 200 y las renderiza con un Chromium sin interfaz, y lo que sale de ahí pasa a la indexación.[^google-js-seo] De los demás no sabemos tanto, porque no lo documentan: OpenAI, por ejemplo, no menciona JavaScript.[^openai-bots]

La consecuencia práctica es una sola. **Lo que está en el código fuente llega a cualquier agente al que dejes pasar; lo que solo está en el DOM depende de que ese agente renderice.** Por eso los [datos estructurados](/es/glosario/datos-estructurados/) de una ficha, el nombre, el precio y la disponibilidad tienen que estar en el HTML que envía el servidor, y por eso esta herramienta empieza por ahí. La guía [qué ve un rastreador de IA en tu tienda](/es/guias/que-ve-un-rastreador-de-ia/) sigue el camino completo: el robots.txt, el código fuente, el renderizador de Google, el [_user agent_](/es/glosario/user-agent/) prestado y los registros.
