La página que Google veía estaba vacía
El sitio de un cliente llevaba ocho meses publicado. Buen texto, casos reales, un diseñador que sabía lo que hacía. Posicionaba para exactamente un término: el nombre de la propia empresa. El equipo supuso que el mercado estaba saturado. El mercado nunca había visto el sitio.
La página entera se renderizaba en el navegador. Lo que enviaba el servidor era esto:
<div id="root"></div>
<script type="module" src="/assets/index.js"></script>Cada titular, cada caso, cada palabra del texto existía solo después de que el JavaScript se ejecutara. Google puede ejecutar JavaScript. La pregunta es si lo hará, y cuándo.
El renderizado es una cola, no una garantía
Googlebot rastrea en dos pasadas. La primera trae tu HTML e indexa lo que haya en él. Si la página necesita JavaScript para producir contenido, la URL entra en una cola de renderizado y vuelve más tarde — a veces horas, a veces días, y ese retraso no es algo que controles ni puedas observar directamente.
En un sitio con autoridad, la cola se vacía lo bastante rápido como para que nadie lo note. En un dominio nuevo sin señales, es la diferencia entre indexarse este mes o el trimestre siguiente. Y cualquier otro crawler — el del preview de LinkedIn, el del unfurl de Slack, la mayor parte de la recuperación por IA — no renderiza nada. Lee el HTML y se va.
Comprobarlo lleva treinta segundos
Pide tu propia página como lo hace un crawler, con JavaScript desactivado por construcción:
curl -sS https://tusitio.com | grep -o '<h1[^>]*>.*</h1>'Si vuelve tu titular, el servidor está enviando contenido real. Si no vuelve nada, eso es lo que ve la primera pasada. Hazlo también en una página interna — un caso, una página de servicio — porque muchos sitios renderizan la home en el servidor y todo lo demás en el cliente.
Lo que de verdad lo arregla
Renderizado en servidor, o generación estática, o cualquier enfoque en el que el HTML salga de tu servidor ya conteniendo las palabras. El framework importa mucho menos que la propiedad: contenido en la respuesta inicial.
- Páginas de marketing, casos, documentación, cualquier cosa que quieras que se encuentre: renderiza en el servidor. No hay ninguna ventaja en entregarlas como una cáscara vacía.
- Paneles y herramientas autenticadas: renderizar en cliente está bien. Nadie las busca y tampoco deberían indexarse.
- El middleware de prerenderizado que sirve una instantánea solo a los bots es un parche, no una solución. Pasas a mantener dos versiones de cada página y a confiar en que coincidan.
La parte que nadie presupuesta
Migrar la estrategia de renderizado no es reescribirlo todo, pero tampoco es un fin de semana. El enrutado, la obtención de datos y el estado suelen dar por sentado el navegador. La estimación honesta es semanas, no días.
La razón para hacerlo igualmente es que la alternativa es pagar por tráfico que deberías haber ganado. Un sitio que no se puede leer es un folleto con un dominio — y ocho meses de buen texto que nadie encontró sale más caro que la migración.
¿Construyendo algo donde estas decisiones importan?
Iniciar proyecto