11 min read

¿Pueden los rastreadores de IA leer tu sitio? Analizamos 342 sitios de lanzamiento sin JavaScript

La mayoría de los rastreadores de IA no ejecutan JavaScript. Solicitamos 365 sitios de productos lanzados recientemente tal como ellos lo hacen. De los 342 que cargaron, 1 de cada 10 devolvió una página con título y descripción pero casi sin texto en el cuerpo. Lo que medimos, por qué ocurre y la comprobación de dos minutos para tu propio sitio.

GEOAI CrawlersJavaScript SEOTechnical SEOData
¿Pueden los rastreadores de IA leer tu sitio? Analizamos 342 sitios de lanzamiento sin JavaScript

En octubre de 2026 solicitamos 365 sitios de productos lanzados en aat.ee tal como lo haría un rastreador que no ejecuta JavaScript, y contamos el texto en el HTML que recibimos. De los 342 que respondieron con HTTP 200, 37 (10,8%) devolvieron menos de 50 palabras de texto en el cuerpo. Casi todos ellos seguían teniendo un título y una meta descripción, así que la página se ve bien en una vista previa de enlace mientras que el contenido en sí solo llega después de que se ejecuta JavaScript. Cuando cargamos las mismas 37 páginas en un navegador real, 23 de las 30 que terminaron de cargar mostraron 150 palabras o más.

Esto importa porque se observó que los rastreadores que hay detrás de ChatGPT, Claude y Perplexity no ejecutan JavaScript. Si la descripción de tu producto existe solo en la página renderizada, esos sistemas puede que nunca la vean. A continuación están los números, la causa y una comprobación que puedes hacer en tu propio sitio en dos minutos.

Qué rastreadores ejecutan JavaScript

OpenAI, Anthropic, Meta, ByteDance y Perplexity no documentan si sus rastreadores renderizan JavaScript. La mejor evidencia disponible es un estudio de diciembre de 2024 de Vercel y MERJ. Descubrió que ninguno de los principales rastreadores de IA que examinó renderizaba JavaScript: OAI-SearchBot, ChatGPT-User y GPTBot de OpenAI, ClaudeBot de Anthropic, Meta-ExternalAgent, Bytespider de ByteDance y PerplexityBot. Los rastreadores de ChatGPT y Claude sí descargaron archivos JavaScript (11,50% y 23,84% de sus solicitudes), pero no los ejecutaron. Gemini, que usa la infraestructura de Googlebot, sí renderizaba. AppleBot también.

Googlebot renderiza JavaScript, pero en un paso aparte. La guía de SEO para JavaScript de Google dice que las páginas se ponen en cola y que "una vez que los recursos de Google lo permiten, un Chromium sin interfaz renderiza la página y ejecuta el JavaScript". Google sigue recomendando la renderización del lado del servidor o la pre-renderización, porque "hace que tu sitio web sea más rápido para los usuarios y los rastreadores, y no todos los bots pueden ejecutar JavaScript".

El estudio es una sola observación, de hace casi dos años, y el comportamiento de los rastreadores puede cambiar sin aviso. Sigue siendo el mejor dato disponible, y ninguna de las empresas lo ha contradicho.

Cómo medimos

  • Muestra: 400 URL de proyectos extraídas al azar de productos lanzados en aat.ee en los 120 días anteriores a la auditoría. Conservamos una URL por nombre de host y descartamos 14 enlaces que apuntaban a GitHub, tiendas de aplicaciones o Hugging Face en lugar del sitio propio del producto, lo que dejó 365 sitios. 342 devolvieron HTTP 200 y son la base de los números siguientes.
  • Solicitud: un GET por sitio con un user agent que lleva el token OAI-SearchBot de OpenAI, siguiendo redirecciones, sin ejecutar JavaScript.
  • Medición: palabras de texto visible en el cuerpo tras eliminar los elementos <script>, <style>, <noscript>, <template> y <svg>. También registramos si el HTML contenía un título, una meta descripción, un enlace canónico, JSON-LD y un <h1>.
  • Límites: solo obtuvimos la URL que envió el fundador, normalmente la página de inicio. Nuestras solicitudes salieron de nuestra propia red, no de los rangos de IP de OpenAI, así que un sitio que trata de forma distinta a los rastreadores verificados podría servirles otra cosa. El texto dentro de las etiquetas script no se contó. El estudio de Vercel señala que los datos incrustados en el HTML inicial, como JSON, "pueden seguir indexándose", así que para algunos frameworks nuestro recuento subestima lo que recibe un rastreador. La mayoría de las páginas vacías de abajo son aplicaciones de una sola página cuyo contenido vive en paquetes de JavaScript separados, que el estudio encontró que estos rastreadores descargan pero no ejecutan.

Los resultados

Palabras en el cuerpo del HTML sin procesarSitiosPorcentaje de 342
Menos de 203510,2%
20–4920,6%
50–14930,9%
150–399236,7%
400 o más27981,6%

El sitio mediano devolvió unas 1.180 palabras, así que la mayoría de los sitios de lanzamiento están en buena forma. El problema está concentrado: 37 sitios, casi todos con prácticamente nada en el cuerpo.

La cabecera está completa y el cuerpo está vacío. De las 37 páginas con poco texto, 36 tenían un <title> y 34 tenían una meta descripción. Solo 4 tenían un <h1>, y solo 4 tenían cinco o más enlaces. Un rastreador que lee este HTML aprende el nombre del producto y un eslogan de una línea, y nada sobre funciones, precios o para quién es.

Un patrón explica la mayoría. 30 de las 37 servían un <div id="root"> o <div id="app"> vacío y construían toda la página en el navegador, que es lo predeterminado en una aplicación de una sola página hecha con Vite o Create React App. 12 eran compilaciones de Vite. En cambio, solo 1 de los 165 sitios Next.js de la muestra tenía poco texto. Next.js renderiza las páginas en el servidor de forma predeterminada, así que el contenido está en la primera respuesta.

Las plantillas se filtran. 16 de las 37 seguían teniendo la meta descripción predeterminada de Create React App, "Web site created using create-react-app". Esas 16 venían de tres cuentas de remitentes que lanzaban una familia de productos similares, así que inflan el total. Si las excluimos, la proporción con poco texto es de 21 de 326, o 6,4%. Eso sigue siendo aproximadamente uno de cada dieciséis lanzamientos.

En un navegador, el contenido está ahí

Después cargamos las 37 páginas con poco texto en Chromium sin interfaz, esperamos cinco segundos tras el evento de carga y contamos de nuevo el texto visible. 30 páginas terminaron de cargar. 7 agotaron el tiempo tras tres intentos.

Palabras en el cuerpo tras ejecutarse JavaScriptSitios (de 30)
150 o más23
50–1492
Menos de 505

La página mediana pasó de 0 palabras en el HTML sin procesar a unas 475 tras la renderización. Así que en la mayoría de estos sitios el texto existe, y un visitante en un navegador lo ve. Simplemente no está en el HTML que envía el servidor, que es la única parte que lee un rastreador que no renderiza. Las cinco que se quedaron por debajo de 50 palabras eran una pantalla de inicio de sesión, una página que se renderizó en blanco y tres páginas muy cortas. Esas tienen poco texto para todos, no solo para los rastreadores.

Un hallazgo secundario: cierta protección contra bots también bloquea al rastreador

Tres sitios respondieron a nuestra solicitud con OAI-SearchBot con HTTP 403 y respondieron a la misma solicitud con un user agent de Chrome con 200. Dos de ellos devolvieron un desafío de Cloudflare (cf-mitigated: challenge). Ninguno de sus archivos robots.txt prohibía los rastreadores de IA, así que los propietarios probablemente no pretendían bloquearlos.

No podemos saber a partir de esto si el rastreador real de OpenAI está bloqueado. La protección contra bots como la de Cloudflare puede reconocer a los bots verificados por sus direcciones IP, y nuestras solicitudes no venían de OpenAI. Tómalo como un motivo para revisar: si usas Cloudflare, comprueba la configuración de rastreadores de IA y de lucha contra bots en el panel y confirma que coincide con lo que dice tu robots.txt.

Comprueba tu propio sitio en dos minutos

  1. Obtén la página como lo hace un rastreador.

    UA='Mozilla/5.0 AppleWebKit/537.36 (KHTML, like Gecko; compatible; OAI-SearchBot/1.0; +https://openai.com/searchbot)'
    curl -sL -A "$UA" -o raw.html -w '%{http_code}\n' https://yoursite.com
    grep -c 'a sentence from your hero section' raw.html

    Un estado distinto de 200 normalmente significa que el rastreador recibe una página de error o de desafío en lugar de tu contenido. Un recuento de 0 significa que esa frase exacta no está en el HTML. Elige una frase corta, ya que el marcado puede dividir una larga.

  2. Mira la página sin JavaScript. En Chrome DevTools, abre el menú de comandos (Ctrl+Shift+P o Cmd+Shift+P), ejecuta "Disable JavaScript" y recarga. Lo que ves es aproximadamente lo que lee un rastreador que no renderiza.

  3. Comprueba Google por separado. La Inspección de URL de Search Console muestra el HTML que renderizó Googlebot. Solo te informa sobre Google.

  4. Repite con tus páginas de precios y de funciones, no solo con la página de inicio. Esas son las páginas que un asistente necesita para describir tu producto.

Cómo solucionarlo, según el stack

StackQué envía el servidor de forma predeterminadaSolución
SPA con Vite o Create React AppUn <div> raíz vacíoPre-renderiza las rutas de marketing en el momento de la compilación, o muévelas a un framework que renderice HTML en el servidor o en la compilación
React Router v7Depende del modoUsa el modo framework con renderización en el servidor o prerender para las rutas públicas
Next.js App RouterHTML renderizado en el servidor; las páginas son Server ComponentsMantén el texto principal fuera de los componentes de cliente que obtienen datos después del montaje
Nuxt, SvelteKitHTML renderizado en el servidorComprueba que la SSR no esté desactivada (ssr: false) para las páginas públicas
Astro, Framer, Webflow, Wix, WordPressHTML estático o renderizado en el servidorNormalmente está bien; comprueba la protección contra bots y que el texto no lo cargue un script

Se aplican tres reglas sea cual sea el que uses:

  • Pon los datos en la primera respuesta. Es decir, el nombre del producto, qué hace, para quién es, los precios y los enlaces principales, en el HTML que devuelve el servidor.
  • Sirve a los bots la misma página que a las personas. Google llama a la renderización dinámica, una versión pre-renderizada aparte para los rastreadores, "un apaño y no una solución recomendada". La guía GEO de Microsoft dice: "Asegúrate de que el DOM renderizado contiene los mismos datos que ven los consumidores; nunca sirvas un HTML distinto a los bots".
  • No te quedes en el <head>. Un buen título y una buena descripción ayudan con las vistas previas de enlaces. No bastan para que un rastreador describa tu producto.

Preguntas frecuentes

¿Google ve mi contenido renderizado en el cliente? Normalmente sí, con el tiempo. Googlebot pone las páginas en cola para renderizarlas y ejecuta JavaScript con Chromium sin interfaz. Eso cubre la Búsqueda de Google y Gemini. Para ser un enlace de apoyo en los AI Overviews, una página "debe estar indexada y ser elegible para mostrarse en la Búsqueda de Google con un fragmento", así que una renderización lenta o fallida todavía puede costarte ahí. No cubre ChatGPT, Claude ni Perplexity, cuyos rastreadores se observó que no renderizan.

¿Un <div id="root"> vacío es una penalización de posicionamiento? No. Nada lo penaliza. El coste es que un rastreador que no renderiza no tiene nada que leer, así que no puede citar ni describir la página.

Mi sitio tiene una buena meta descripción. ¿No basta con eso? Le da al rastreador una frase. Un asistente al que se le pregunta qué hace tu producto, o cómo se compara con una alternativa, necesita el texto del cuerpo: funciones, precios, casos de uso.

¿Tengo que reconstruir mi aplicación? Normalmente no. Pre-renderizar las páginas públicas, como la de inicio, precios, funciones y documentación, es suficiente. La aplicación con sesión iniciada puede seguir renderizándose en el cliente.

¿Solucionar esto hará que ChatGPT me cite? Nadie puede prometer eso. Ser legible es una condición previa. Que te citen depende de lo que otras fuentes digan de ti y de lo bien que tu página responda a la pregunta. Nuestro manual de optimización para búsqueda con IA cubre el resto.

Lecturas relacionadas

Fuentes


Cada producto en aat.ee tiene una página de listado permanente renderizada en el servidor, así que los rastreadores pueden leer una descripción de tu producto incluso antes de que tu propio sitio esté listo para ellos. Envía tu producto, o consulta las opciones de listado.

¿Has creado algo nuevo?

Lánzalo en aat.ee y hazte descubrir

Listado dofollow permanente en un directorio indexado
Nombrado y citado por asistentes de IA
Envía tu proyecto