Lidiar con javascript para seo es uno de los temas que más dudas genera en mis consultorías. He visto clientes que, por una mala implementación de elementos dinámicos, han visto cómo su visibilidad en buscadores caía en picado. La clave no es evitar el código, sino entender cómo los buscadores interpretan lo que programas.
Cómo renderizan los buscadores
Cuando un bot llega a tu web, no siempre ve lo mismo que el usuario. Algunos buscadores ejecutan Javascript, pero otros se limitan a leer el HTML puro. En mi experiencia, nunca debes asumir que todo el contenido generado por scripts será indexado correctamente. Si inyectas bloques de texto vitales solo mediante funciones complejas que requieren una interacción previa, es probable que Google no los vea nunca.
Para auditar esto, no te fíes solo del código fuente. Usa el inspector de elementos de tu navegador. Lo que ves ahí, una vez cargada la página, se aproxima mucho más a la versión que el renderizador del buscador procesa.
La problemática de los errores 404
He visto auténticos desastres en sitios construidos totalmente con Javascript. El error 404 es una señal de servidor, y ahí radica el peligro: si tu web es una Single Page Application, no puedes generar un error 404 real desde el cliente. Si un usuario o un bot llega a una URL inexistente, el servidor debe responder con el código de estado correcto. Si el servidor responde 200 pero el Javascript muestra un mensaje de error, estarás creando un problema de soft 404 que confundirá a los bots.
Técnicas de control de contenido
Lo que mejor me ha funcionado para equilibrar diseño y SEO es aplicar lógica condicional en la carga del contenido. Aquí te detallo dos técnicas habituales:
- Ofuscación de enlaces: Si tienes enlaces que no aportan valor SEO o que generan contenido duplicado, puedes inyectarlos mediante Javascript después de que el usuario mueva el ratón. De esta forma, el bot encuentra una estructura limpia al llegar, pero el usuario disfruta de la funcionalidad completa.
- Despliegue con leer más: Para evitar que el buscador vea contenido oculto mediante un display:none, lo ideal es que el bloque esté presente desde el inicio en el DOM. Puedes usar una función que lo oculte solo cuando el usuario haga scroll o interactúe, asegurando que el contenido sea accesible para el rastreo desde el primer segundo.
Recuerda siempre que menos es más. Si puedes resolver algo con CSS, no uses Javascript. La sencillez en tu maquetación es el mejor aliado que puede tener tu posicionamiento.
Preguntas frecuentes
¿El contenido oculto con Javascript se indexa?
Si está en el DOM al cargar, sí. Si solo aparece tras una interacción compleja, es probable que los buscadores no lo procesen.
¿Puedo generar un error 404 con Javascript?
No. Un error 404 real debe ser enviado por el servidor, no por el cliente. Si confías en JS para esto, crearás errores de rastreo.
¿Qué técnica es mejor para el botón leer más?
Lo ideal es que el contenido cargue visible para el bot y sea Javascript quien lo oculte tras la carga, mejorando la experiencia de usuario sin penalizar el SEO.