SEO para JavaScript: qué es y cómo funciona
El SEO para JavaScript asegura que el contenido y los enlaces generados con JavaScript puedan rastrearse, renderizarse e indexarse por buscadores y bots de IA.
El SEO para JavaScript es la parte del SEO técnico que se ocupa de los sitios construidos o mejorados con JavaScript: React, Vue, Angular, Svelte y los frameworks que giran a su alrededor. El objetivo es sencillo: todo lo que las personas ven una vez que se ejecutan los scripts, los buscadores y los rastreadores de IA también deben poder encontrarlo, renderizarlo e indexarlo.
Cómo gestiona Google el JavaScript
Google procesa las páginas con JavaScript en tres fases: rastreo, renderizado e indexación (fundamentos del SEO para JavaScript). Primero, Googlebot descarga el HTML sin procesar. Después, la página espera en una cola de renderizado hasta que una versión actualizada de Chromium ejecuta los scripts, y los enlaces encontrados en el HTML renderizado se ponen en cola para el rastreo. El renderizado suele ocurrir con rapidez, pero es un paso adicional que puede fallar: archivos de script bloqueados, tiempos de espera agotados, errores de código o contenido que espera una acción del usuario.
Muchos otros bots no renderizan
Bing también renderiza JavaScript, pero muchos rastreadores no lo hacen. Análisis independientes, como uno publicado por Vercel a finales de 2024, comprobaron que los principales rastreadores de IA, entre ellos GPTBot y ClaudeBot, descargan archivos JavaScript sin ejecutarlos. Si las descripciones de tus productos o el texto de tus artículos solo aparecen después de una petición en el cliente, las herramientas de búsqueda con IA pueden ver una carcasa vacía, y no pueden citar lo que no pueden leer.
Opciones de renderizado
| Enfoque | Qué reciben los rastreadores | Riesgo SEO |
|---|---|---|
| Renderizado en el servidor (SSR) | HTML completo en cada petición | Bajo |
| Generación estática (SSG) | Archivos HTML precompilados | Bajo |
| Renderizado en el cliente (CSR) | Una carcasa casi vacía más scripts | Alto para los bots que no son de Google |
Google describe el renderizado dinámico —servir a los bots una copia prerrenderizada— como una solución provisional y no a largo plazo. El renderizado en el servidor o la generación estática, con hidratación en el navegador, es la opción robusta.
Ejemplo: enlaces que los rastreadores pueden seguir
<!-- Rastreable -->
<a href="/shoes/trail-runners">Zapatillas de trail</a>
<!-- No rastreable: sin href, o una ruta que es solo un fragmento -->
<span onclick="goTo('/shoes/trail-runners')">Zapatillas de trail</span>
<a href="#/shoes/trail-runners">Zapatillas de trail</a>
Google sigue los elementos <a> con un href que se pueda resolver. Todo lo que va después de un # se ignora, así que las rutas basadas en hash se reducen todas a una única URL.
Errores frecuentes
- Soft 404 en aplicaciones de una sola página: una vista de «no encontrado» servida con HTTP 200. Devuelve un 404 real desde el servidor o añade
noindexa la vista de error. - Títulos, canonicals y etiquetas robots modificados por JavaScript, de modo que entran en conflicto con el HTML del servidor.
- Bloquear las carpetas de scripts en robots.txt, con lo que Google no puede renderizar la página en absoluto.
- Contenido que se carga al hacer scroll o clic y que Googlebot nunca activa.
Comprueba lo que ven los bots
El analizador SEO lee tu página como un rastreador que no renderiza: solo el HTML del servidor, sin JavaScript. Si su recuento de palabras, sus encabezados o sus enlaces quedan muy por debajo de lo que ves en el navegador, tu contenido depende del renderizado en el cliente. Entradas relacionadas: rastreador web, indexación y recursos que bloquean el renderizado.
Preguntas frecuentes
¿Puede Google indexar contenido generado con JavaScript?
Sí. Google renderiza las páginas con una versión actual de Chromium e indexa el resultado renderizado. Funciona mejor cuando el contenido no depende de acciones del usuario y cuando robots.txt no bloquea los scripts.
¿Es malo un framework de JavaScript para el SEO?
No por sí mismo. Frameworks como Next.js, Nuxt y SvelteKit admiten el renderizado en el servidor y la generación estática, que dan a los rastreadores el HTML completo. El riesgo está en depender únicamente del renderizado en el cliente.
¿Cómo puedo ver el HTML que renderiza Google?
Usa la herramienta Inspección de URLs de Google Search Console y consulta la página rastreada o la prueba en vivo. Muestra el HTML renderizado, una captura de pantalla y los recursos que Google no pudo cargar.