JavaScript y SEO: renderizado e indexación
9 min
Google puede renderizar JavaScript, pero con un retraso que puede ir de unos segundos a varias semanas según la autoridad del sitio. Los contenidos críticos (texto principal, enlaces, datos estructurados) no deben depender del JavaScript para ser visibles. El Server-Side Rendering (SSR) o el prerendering son las soluciones recomendadas.
Los frameworks JavaScript modernos (React, Vue, Angular, Next.js) dominan el desarrollo web. Pero su relación con el SEO sigue siendo compleja: aunque Google ha avanzado en el renderizado JS, los riesgos de indexación parcial o retrasada son reales y costosos.
Cómo trata Google el JavaScript
Googlebot descarga el HTML inicial de la página y luego coloca el renderizado JavaScript en una cola de espera (WRS — Web Rendering Service). El renderizado completo puede producirse segundos, días o incluso semanas después, según la popularidad del sitio y la carga del motor.
Este retraso de renderizado significa que el contenido solo en JS siempre se indexa más tarde que el contenido HTML estático. En un sitio de poca autoridad, algunos contenidos pueden no llegar nunca a renderizarse correctamente.
Los riesgos concretos para la indexación
El contenido que solo se muestra tras una interacción del usuario (clic, scroll, pestaña) nunca es visto por Googlebot. Los acordeones de FAQ, las pestañas de contenido y los contenidos al pasar el ratón son los casos más habituales.
Los enlaces generados dinámicamente por JavaScript no siempre los sigue Googlebot. Si tu enlazado interno se basa en enlaces creados tras la carga de la página, una parte de tu arquitectura permanece invisible para el rastreador.
- Contenido detrás de un evento clic o hover: no indexado.
- Enlaces en un menú hamburguesa en JS puro sin fallback HTML: potencialmente ignorados.
- Datos estructurados JSON-LD inyectados mediante JS: renderizado diferido, elegibilidad para rich results retrasada.
- Meta tags generados en el lado del cliente: title y description potencialmente ausentes en el primer rastreo.
- Texto de paginación cargado mediante AJAX sin URL dedicada: contenido invisible.
Las soluciones recomendadas
El Server-Side Rendering (SSR) genera el HTML completo en el servidor antes de enviarlo al navegador. Googlebot recibe un HTML rico desde el primer rastreo, sin esperar el renderizado JavaScript. Next.js, Nuxt.js y SvelteKit ofrecen SSR de forma nativa.
El Static Site Generation (SSG) pre-genera las páginas en cada build. Aún más rápido que el SSR, pero adecuado únicamente para contenidos que se actualizan con poca frecuencia.
Si una refactorización en SSR no es viable, el prerendering a través de un servicio como Rendertron o Prerender.io detecta Googlebot y le sirve una versión HTML estática pre-renderizada de la página.
Los sitios que migran de una arquitectura SPA (Single Page Application) a SSR observan de media una mejora del 20 al 50 % en el número de páginas indexadas en los 60 días siguientes a la migración.
Estudios sectoriales 2025-2026 sobre migraciones SSR e indexación
Diagnosticar los problemas de renderizado JS en tu sitio
La herramienta de inspección de URL de Search Console ofrece una captura de pantalla de la página tal como la ve Googlebot. Compara esta captura con la visualización real en tu navegador: cualquier diferencia revela un problema de renderizado.
Prueba también desactivando JavaScript en Chrome (DevTools > Settings > Debugger > Disable JavaScript): si tu página no muestra nada o pierde sus enlaces de navegación, tienes un problema SEO crítico que resolver.
FAQ
¿Puede Google indexar correctamente una SPA (Single Page Application)?
Sí, pero con limitaciones y retrasos. El contenido de las SPA se indexa tras el renderizado JavaScript, lo que puede llevar varias semanas. En sitios competitivos, este retraso es una desventaja real. El SSR o el prerendering sigue siendo la solución más fiable.
¿Es Next.js una buena opción para el SEO?
Sí, es uno de los frameworks más SEO-friendly del mercado. Ofrece SSR, SSG e ISR (Incremental Static Regeneration) de forma nativa. Las meta tags, el sitemap y los datos estructurados pueden generarse en el servidor sin configuración compleja.
¿Se indexan los contenidos en pestañas o acordeones?
Google afirma que el contenido oculto por CSS (display:none o visibility:hidden) puede indexarse pero con una ponderación reducida. El contenido detrás de una interacción JavaScript es más problemático. Para las FAQ o la información clave, prefiere un renderizado HTML nativo con details/summary o asegúrate de que el contenido está presente en el HTML inicial.
¿Hay que hacer el JavaScript compatible para todos los bots o solo para Google?
Google es el único motor que renderiza activamente JavaScript. Bing progresa pero sigue en un nivel inferior. Si tu audiencia proviene principalmente de Google, concentra tus esfuerzos en la compatibilidad con Googlebot. Una arquitectura SSR beneficia automáticamente a todos los bots.