Ventajas y desventajas del Server Side Rendering
Clase 5 de 17 • Curso de Server Side Render o SSR con React.js
Resumen
¿Cuáles son las ventajas del Server-Side Rendering?
El Server-Side Rendering (SSR) ofrece una serie de beneficios significativos, especialmente en el ámbito de la optimización de motores de búsqueda (SEO) y el rendimiento web.
-
Mejora del SEO y la indexación: Al utilizar SSR, se obtiene un primer vistazo completo del DOM al cargarse la aplicación. Esto permite que los motores de búsqueda indexen de manera más eficiente el contenido, mejorando la visibilidad en los resultados de búsqueda.
-
Accesibilidad mejorada: SSR presenta todos los elementos HTML desde el inicio, haciendo la aplicación más accesible para diversos usuarios.
-
Rendimiento: Proporciona una carga inicial más rápida debido a que los elementos cruciales están disponibles inmediatamente, lo que se traduce en mejoras en el rendimiento.
-
Función de proxy server: Con SSR, es posible transformar el servidor en un proxy server. Esto significa manejar respuestas de solicitudes a APIs antes de enviarlas al cliente, garantizando datos limpios y fáciles de manejar.
-
Prefetching de datos: Permite cargar datos necesarios de antemano sin requerir múltiples solicitudes desde el cliente. Esto es bien útil para manejar grandes cantidades de información sin saturar el navegador.
¿Y cuáles son las desventajas del Server-Side Rendering?
A pesar de sus múltiples ventajas, el SSR presenta también algunos desafíos que deben tenerse en cuenta.
-
Costo de infraestructura: A diferencia de los archivos estáticos, que pueden alojarse en servidores simples, SSR requiere un servidor Node específicamente, lo que puede conllevar gastos extra en infraestructura.
-
Vulnerabilidad a ataques: Al disminuir la dependencia de JavaScript en el cliente, creas un nuevo vector de ataque en el servidor que debe manejarse con buenas políticas de seguridad.
-
Routing más lento: En aplicaciones de una sola página (SPA), el routing se realiza en el cliente, permitiendo una navegación rápida. En SSR, el routing recae en el servidor, lo que puede resultar en una experiencia más lenta para el usuario.
-
Incompatibilidad con ciertas APIs: Algunas APIs del navegador y librerías pueden no funcionar con SSR. Al tratar de usarlas, podrían aparecer excepciones debido a que no existen en el contexto del servidor.
¿Existe una solución para superar las limitaciones del Server-Side Rendering?
Es fundamental conocer las limitaciones del SSR para mitigar sus desventajas. Una técnica útil en este contexto es la rehidratación, que ayuda a integrar la interactividad en un DOM inicialmente generado por SSR.
- Proceso de rehidratación: Luego de que el servidor envía el HTML inicial sin interactividad (comparado con enviar un "DOM seco"), el cliente utiliza frameworks como React para añadir interactividad, mediante un proceso llamado rehidratación. Esto consiste en añadir capas de JavaScript al DOM ya existente.
Este enfoque no solo mitiga algunas de las limitaciones del SSR, sino que también optimiza la experiencia del usuario combinando lo mejor del Client-Side y Server-Side Rendering.
Para profundizar en tópicos técnicos específicos sobre el rendimiento del SSR y el proceso de rehidratación, se recomienda revisar recursos como el sitio web.dev, escrito por expertos de Google, donde se detalla cada paso de este proceso y se mide mediante herramientas como Core Web Vitals. Así, podrás entender mejor cómo afecta cada tipo de renderizado al rendimiento de la web. ¡Te invitamos a seguir explorando estas fascinantes tecnologías para aprovechar al máximo sus capacidades!