
Dentro de la mayoría de los equipos de ingeniería vive, en silencio, una suposición: si Google puede rastrear y renderizar nuestro sitio, los crawlers de IA también.
Es falsa. Y es la suposición equivocada más cara del SEO técnico ahora mismo.
El desfase
Googlebot renderiza JavaScript. Lo hace desde hace años: la página entra en una cola de renderizado, un Chromium headless ejecuta los scripts y el resultado se indexa. Con retraso, pero funciona.
Los crawlers de IA no renderizan nada.
Un estudio de logs de servidor de Vercel y MERJ, publicado el 17 de diciembre de 2024, encontró que ninguno de los principales crawlers de IA ejecuta JavaScript. Eso incluye GPTBot, OAI-SearchBot y ChatGPT-User de OpenAI, y ClaudeBot de Anthropic. Un análisis aparte de más de 500 millones de peticiones de GPTBot no halló ninguna prueba de ejecución de JavaScript.
El detalle que más me llama la atención: estos crawlers sí descargan los archivos JavaScript. GPTBot en torno al 11,5% de las peticiones, ClaudeBot en torno al 23,84%. Descargan los scripts y nunca los ejecutan.
Aquí no hay medias tintas. O tu contenido está en la respuesta HTML inicial, o no lo está.
La única excepción es Google Gemini, que viaja sobre el Web Rendering Service de Googlebot y hereda su capacidad de ejecutar JS, junto con todos sus retrasos de cola.
Así que ambas cosas son ciertas a la vez
Tu sitio en React está en la primera página. Google lo renderizó, lo indexó, lo posiciona.
Entonces un cliente le pregunta a ChatGPT justo lo que tu página responde, y no apareces en la respuesta. Tu posicionamiento está bien. El crawler recibió una cáscara vacía:
<body>
<div id="root"></div>
<script type="module" src="/assets/index-a1b2c3.js"></script>
</body>
Eres, a la vez, el primero y el invisible.
La trampa dentro de la trampa: los datos estructurados
Aquí es donde se vuelve concreto.
Montas un sitio en React. Añades react-helmet. Inyectas JSON-LD a través de él: Organization, LocalBusiness, FAQPage, el grafo completo:
<Helmet>
<script type="application/ld+json">
{JSON.stringify(schema)}
</script>
</Helmet>
Abres DevTools, despliegas <head> y ahí está. Un marcado precioso. Trabajo hecho.
No está hecho. DevTools te muestra el DOM renderizado, la página después de que el JavaScript se haya ejecutado. Eso no es lo que recibe un crawler.
Abre view-source: en su lugar. No el panel Elements. Si tu JSON-LD solo existe en DevTools y no en view-source, entonces GPTBot, ClaudeBot y PerplexityBot no lo ven nunca.
Google sí lo encontrará, porque Google renderiza. Por eso este fallo es tan silencioso: cada herramienta con la que sueles comprobar te dice que todo está bien.
Un matiz que conviene saber: el contenido no tiene que ser prosa visible para contar. Los datos incrustados en el HTML inicial como JSON inline o payload renderizado en servidor sí están en la respuesta cruda y son legibles. Lo que se pierde es, en concreto, lo que el navegador construye después de la carga.
Por qué esto se agrava
Cerca del 92% de las consultas del agente de ChatGPT dependen del índice de Bing, y el renderizado de JavaScript de Bingbot es limitado. Así que una SPA renderizada en cliente corre el riesgo de estar ausente de Bing y de cada crawler de IA que lo consulta. Dos fallos, una sola causa.
La prueba lleva treinta segundos
curl -s https://you.com/page | grep -c "ld+json"
curl -s https://you.com/page | grep "your headline text"
Si grep no devuelve nada, el crawler tampoco.
Hazlo en tu página de precios, tus páginas de servicios, tu mejor artículo. Son las páginas que más tienen que perder.
La solución no es nueva
Renderizado en servidor, generación estática o prerenderizado. Next.js, Nuxt, Angular Universal, Django SSR: el framework importa menos que el principio: pon el contenido real en el HTML que envía el servidor.
En nuestra propia plataforma el JSON-LD se renderiza directamente en el DOM en lugar de inyectarse por Helmet, y las páginas clave se prerenderizan. No porque sea elegante, sino porque es la diferencia entre tener esquema y tener un esquema que cualquiera puede leer.
Es el mismo consejo que lleva diez años siendo correcto. Lo que cambió es el coste de ignorarlo. Antes significaba esperar la cola de renderizado de Google. Ahora significa estar ausente de las respuestas por completo, en el canal de descubrimiento que más rápido crece.
También te puede interesar

Diseño Web para Restaurantes en Alaquàs
Creamos páginas web para restaurantes en Alaquàs con menú online, reservas y delivery. Solicita tu web profesional en 24-48h. ¡Transforma…

Outreach y Link Building: Estrategias Efectivas para 2026
Guía práctica de outreach y link building en 2026. Aprende técnicas de prospección, personalización y seguimiento para conseguir backlink…

Diseño Web para Psicólogos en Valencia: Confianza y Resultados
Descubre cómo un diseño web profesional genera confianza y capta pacientes. SEO, experiencia de usuario y conversión para psicólogos en V…