Los rastreadores de IA no ejecutan tu JavaScript. Comprueba qué ven realmente.
Si tus páginas se renderizan en el navegador, ChatGPT, Claude y Perplexity pueden estar leyendo una carcasa vacía. Cómo detectarlo y cómo solucionarlo en Next.js, React y otros frameworks.
La mayoría de los rastreadores de IA leen el HTML que envía tu servidor y nada más. Si tu página de producto construye su contenido con JavaScript después de cargarse, un rastreador como GPTBot o ClaudeBot puede recibir una página con una cabecera, un pie y un indicador de carga. No puede recomendar un producto que no puede leer.
Quién renderiza y quién no
Googlebot ejecuta JavaScript. Pone las páginas en cola para renderizarlas e indexa lo que mostraría el navegador, y por eso los sitios renderizados en el cliente pueden posicionarse en Google. Gemini y Google AI Overviews se basan en el índice de Google, así que heredan esa capacidad.
Los rastreadores de ChatGPT, Claude y Perplexity son distintos. Un análisis del tráfico de rastreadores publicado en 2024 por Vercel y MERJ descubrió que los rastreadores de OpenAI y de Anthropic descargaban los archivos JavaScript, pero no los ejecutaban. Mientras ningún proveedor documente lo contrario, da por hecho que estos rastreadores solo ven tu HTML sin procesar.
Esa diferencia explica un misterio habitual: un sitio que se posiciona bien en Google, pero nunca aparece en las respuestas de ChatGPT sobre su propia categoría.
Cómo revisar tus propias páginas
Abre una página de producto y usa «Ver código fuente de la página», no el inspector de elementos. El inspector muestra la página después de ejecutar JavaScript. El código fuente muestra lo que recibe un rastreador que no renderiza.
Busca en el código fuente una frase que veas en la página, como el titular o un precio. Si está, los rastreadores pueden leerla. Si el código fuente solo contiene un <div> raíz y etiquetas script, tu contenido se renderiza en el navegador.
También puedes pedir la página desde un terminal:
curl -s https://yourdomain.com/pricing | grep -i "per month"Si no hay coincidencias, el texto de precios nunca llega a un rastreador que se salta el JavaScript.
La auditoría de preparación para IA gratuita de Promptvane hace esta comprobación en tu página de inicio y en una muestra de páginas del sitemap, y señala cualquier página cuyo HTML apenas tenga texto.
Soluciones según el framework
El objetivo es el mismo en todos: enviar el contenido en la primera respuesta HTML.
En Next.js con App Router, las páginas son Server Components por defecto y se renderizan en el servidor. Los problemas empiezan cuando toda una página se marca con 'use client' y carga sus datos en useEffect. Lleva la carga de datos al Server Component (o a generateStaticParams en las páginas estáticas) y deja 'use client' solo para las partes interactivas.
En Next.js con Pages Router, usa getStaticProps o getServerSideProps en las páginas de contenido en lugar de cargar los datos en el cliente.
En una aplicación de una sola página con React o Vue creada con Vite, añade prerenderizado a las páginas públicas o lleva las páginas de marketing a un framework que renderice en el servidor, como Next.js, Nuxt, Astro o Remix.
WordPress, Webflow y la mayoría de los creadores de sitios alojados ya renderizan en el servidor. Revisa los maquetadores y plugins que cargan contenido mediante widgets de JavaScript, como carruseles de reseñas y tablas de precios.
Contenido que se esconde de otras formas
El renderizado en el servidor no es la única trampa. El contenido dentro de pestañas y acordeones no da problemas mientras esté en el HTML; el que solo se carga al hacer clic en la pestaña, sí. El texto dentro de imágenes es invisible para los rastreadores que no aplican OCR. Los precios que inserta un script de pago de terceros a menudo ni siquiera aparecen en tu código fuente.
FAQ
¿Si Googlebot renderiza JavaScript, ya estoy cubierto?
Para la Búsqueda de Google, en gran parte sí. Para ChatGPT, Claude y Perplexity, no. No se ha demostrado que sus rastreadores ejecuten JavaScript, así que el contenido que solo existe tras el renderizado probablemente sea invisible para ellos.
¿Basta con renderizar en el servidor la página de inicio?
No. Los asistentes suelen citar la página que responde a la pregunta: una página de precios, una comparativa, una página de funciones. Cada página que quieras que te citen necesita tener su contenido en el HTML.
¿El renderizado en el servidor empeora el rendimiento?
Normalmente ocurre lo contrario. Las páginas renderizadas en el servidor y las estáticas muestran el contenido antes, lo que también mejora las Core Web Vitals.