Edgar Ramirez
no me queda muy claro, si simplemente puedo habilitar el ssr en mi app y ya funciona o debo configurar algo más o el backend cambia y que otras cosas debo tener en cuenta a la hora de decidir si mi app sea ssr o no
El Server Side Rendering (SSR) representa una evolución significativa en el desarrollo web moderno, especialmente para aplicaciones Angular. Esta técnica optimiza el rendimiento y mejora la visibilidad en buscadores al trasladar la carga de renderizado desde el navegador del usuario hacia el servidor. Descubre cómo implementar SSR en tu proyecto Angular y potencia tu aplicación web con mejoras sustanciales en velocidad y SEO.
¿Qué es el Server Side Rendering y por qué implementarlo?
El Server Side Rendering es una técnica que permite renderizar una aplicación web en el servidor antes de enviarla al navegador del cliente. Esto significa que cuando un usuario accede a tu sitio web, recibe una página ya renderizada y lista para mostrar, en lugar de tener que esperar a que su navegador procese todo el JavaScript para construir la interfaz.
Las principales ventajas de implementar SSR son:
Es importante destacar que SSR es especialmente útil para aplicaciones públicas como eCommerce o landing pages, donde el rendimiento inicial y el SEO son cruciales. Para aplicaciones de tipo "back office" o administrativas protegidas por login, el beneficio puede ser menor.
¿Cómo afecta el SSR al SEO de tu aplicación?
Sin SSR, cuando un crawler de motores de búsqueda como Google o Bing visita tu aplicación Angular, lo que ve es básicamente un HTML vacío sin contenido real. Esto ocurre porque el contenido se genera dinámicamente mediante JavaScript en el navegador del usuario.
Para comprobar esto, puedes hacer clic derecho en tu página y seleccionar "View page source". En una aplicación Angular tradicional (client-side rendering), verás un HTML prácticamente vacío, sin información sobre tus productos, categorías o cualquier otro contenido dinámico.
Esta falta de contenido visible para los crawlers afecta negativamente al SEO, ya que los motores de búsqueda no pueden indexar correctamente tu sitio ni entender de qué trata.
¿Cómo implementar Server Side Rendering en Angular?
Implementar SSR en Angular es sorprendentemente sencillo gracias a las herramientas que el framework proporciona. El proceso se realiza mediante un único comando que configura automáticamente tu aplicación.
Paso a paso para habilitar SSR en tu proyecto Angular
ng serve).ng add @angular/ssr
Este comando realiza varios cambios importantes en tu proyecto:
package.jsonCambios principales en la estructura del proyecto
Después de ejecutar el comando, notarás nuevos archivos como:
server.ts: Configuración del servidormain.server.ts: Punto de entrada para el renderizado en servidorTambién se añade un nuevo comando serve:ssr que puedes utilizar para ejecutar tu aplicación con SSR habilitado.
¿Cómo verificar que SSR está funcionando correctamente?
Una vez implementado SSR, puedes comprobar que está funcionando correctamente de la siguiente manera:
ng serveAhora, a diferencia de antes, verás que el HTML contiene todo el contenido de tu página, incluyendo productos, categorías y otros elementos dinámicos. Esto significa que el renderizado se está realizando en el servidor y que los crawlers de motores de búsqueda podrán indexar correctamente tu contenido.
Optimizando las peticiones HTTP en el servidor
Al implementar SSR, es posible que veas advertencias relacionadas con el cliente HTTP. Esto ocurre porque las peticiones a la API ahora se realizan desde el servidor en lugar del navegador.
Para optimizar estas peticiones, es recomendable utilizar fetch nativo en lugar del HttpClient de Angular cuando se ejecuta en el servidor:
// En app.config.ts import { provideHttpClient, withFetch } from '@angular/common/http'; export const appConfig: ApplicationConfig = { providers: [ // Otros providers... provideHttpClient(withFetch()) ] };
Esta configuración mejora el soporte para peticiones HTTP en entornos Node.js, eliminando las advertencias y optimizando el rendimiento.
¿Qué consideraciones debes tener al implementar SSR?
Al implementar SSR, debes tener en cuenta algunas consideraciones importantes:
localStorage, window, alertas, etc.) y no funcionarán en el entorno del servidor.Es importante recordar que SSR es solo un paso en la optimización de tu sitio para SEO. Para mejorar realmente tu posicionamiento en buscadores, deberías considerar otras prácticas recomendadas de SEO técnico.
El Server Side Rendering representa un avance significativo para mejorar tanto el rendimiento como la visibilidad de tu aplicación Angular. Con un simple comando, has dado un gran paso hacia una aplicación más rápida y mejor posicionada en los motores de búsqueda. ¿Has notado mejoras en el rendimiento de tu aplicación después de implementar SSR? Comparte tu experiencia en los comentarios.
Mi experiencia con SSR en Angular, usando Angular Universal y versión 16 o anterior.
TransferState justamente para evitar doble renderizado. Lo que permite es transportar un estado de los datos desde el back hacia el front y evitar llamar dos veces a la misma APIlocalstorage, el objeto window o document. Si se ejecuta algo en el servidor, se va a romper toda la página. El build de Angular nunca me ayudó mucho para detectarlo y evitarlo.ngx-pdf-viewer no están preparadas para usarse en el servidor. Simplemente, no se pueden usar.Me ha hecho transpirar bastante Angular SSR. Supongo que las últimas versiones es más fácil e intuitivo de implementar.
Edgar Ramirez
no me queda muy claro, si simplemente puedo habilitar el ssr en mi app y ya funciona o debo configurar algo más o el backend cambia y que otras cosas debo tener en cuenta a la hora de decidir si mi app sea ssr o no
Mateo Gonz
Dañaron el API de productos:
Andrés Medina
Venía trabajando con Angular 19.1.6 y no había forma de que funcione después de agregar SSR.
Tuve que actualizar el CLI y las dependecias de Angular a la última versión disponible (20.3.4) para poder volver a levantar el proyecto
Nicolas Arroyave Guerra
Buen, Quisiera saber si podrían hacer un video corto de cómo subir el proyecto a un VPS con angular 19 porque he intentado las formas que dice angular y ninguna me funciona o bien si me puede ayudar con una mano también me gustaría.
Mil gracias.
Saludos!!
Nicolas Molina
ProfesorHola, todo depende, es decir, si lo que buscas es desplegar con SSR cambia, necesitas entonces que tu VPS soporte NodeJS o seguramente crear un contenedor con Docker y que tu VPS soporte Docker para ello.
También si no es SSR, sino SPA, puede usar un Nginx y desplegarlo con eso. Por aquí tengo un video algo viejo, pero funciona en cómo hacer eso.
Reinaldo Mendoza
El local storage solo funciona en el browser