Cada vez que se accede a una página web, el navegador tiene que re­n­de­ri­zar­la para que la pre­se­n­ta­ción sea atractiva y responda al nivel de in­ter­ac­ti­vi­dad deseado. No obstante, el pro­ce­sa­mie­n­to de los scripts dinámicos y del código estático puede rea­li­zar­se de forma muy diferente en función del enfoque de pro­gra­ma­ción del proyecto web. Descubre un análisis de los tres enfoques pri­n­ci­pa­les: el server-side rendering, el client-side rendering y la ge­ne­ra­ción de sitios estáticos.

Server-side rendering (SSR)

El server-side rendering (también re­n­de­ri­za­do del lado del servidor, pro­gra­ma­ción del lado del servidor o server side scripting) es una te­c­no­lo­gía que se utiliza en el de­sa­rro­llo de apli­ca­cio­nes web y de páginas web con elementos dinámicos. Se basa en la uti­li­za­ción de scripts que ejecuta el servidor web con ayuda del lenguaje de pro­gra­ma­ción adecuado cuando un cliente solicita el contenido. Ya en la petición inicial se cargan al completo las in­s­tru­c­cio­nes HTML, CSS y Ja­va­S­cri­pt.

Nota

El usuario no ve el código fuente de los scripts eje­cu­ta­dos en el lado del servidor.

En los primeros tiempos de la World Wide Web, el server-side rendering lo llevaban a cabo casi úni­ca­me­n­te de­sa­rro­lla­do­res que escribían programas en scripts C y Perl y desde la línea de comandos. Estas apli­ca­cio­nes las eje­cu­ta­ban e in­te­r­pre­ta­ban sistemas ope­ra­ti­vos del lado del servidor. El resultado podía tra­n­s­mi­ti­r­se desde el servidor web al navegador de acceso a través de la Common Gateway Interface (CGI).

Los lenguajes de pro­gra­ma­ción típicos del re­n­de­ri­za­do del lado del servidor son:

  • Java
  • Ruby
  • ASP.NET
  • Perl
  • PHP
  • Python
  • Node.js o Ja­va­S­cri­pt

¿Qué ventajas tiene la pro­gra­ma­ción del lado del servidor?

La gran ventaja del SSR es que el servidor carga pre­via­me­n­te las páginas web. La petición del usuario se procesa casi de forma inmediata, lo que le permite acceder con gran rapidez a la página. Este enfoque es muy útil para las webs estáticas. Además, la rapidez de carga de la página tiene una in­flue­n­cia positiva en el po­si­cio­na­mie­n­to en bu­s­ca­do­res, pues gracias al SSR los crawlers pueden rastrear las páginas con mayor facilidad.

¿Cuáles son las de­s­ve­n­ta­jas de la pro­gra­ma­ción del lado del servidor?

El server-side scripting requiere que el servidor entregue páginas HTML pre­ca­r­ga­das con cada solicitud. Si un cliente sigue enviando pe­ti­cio­nes al servidor web para mostrar al usuario in­fo­r­ma­ción nueva y mo­di­fi­ca­da, se produce una so­bre­ca­r­ga de las ca­pa­ci­da­des del servidor. Por ello, el SSR no se re­co­mie­n­da en páginas web con un gran número de pe­ti­cio­nes o que requieren un gran número de in­ter­ac­cio­nes de los usuarios. En estos proyectos, el tiempo de respuesta del servidor web anularía la ventaja de la carga rápida de páginas.

Consejo

Un entorno de hosting seguro, estable y de alto re­n­di­mie­n­to es la base para el éxito de un proyecto web. Escoge un hosting web con IONOS y obtén lo mejor de una solución escalable con tu propio dominio y los más altos es­tá­n­da­res de seguridad.

Client-side rendering (CSR)

El client-side rendering, también re­n­de­ri­za­do del lado del cliente, pro­gra­ma­ción del lado del cliente o client-side scripting, es una técnica a la que recurren los de­sa­rro­lla­do­res web pri­n­ci­pa­l­me­n­te para realizar proyectos con contenido dinámico. En este caso, el servidor no ejecuta ni procesa los scripts; lo hace el navegador de acceso. Para ello, los scripts se insertan en el documento HTML o XHTML o se escriben en un archivo separado que se vincula al documento.

Cuando el usuario trata de acceder a una web con scripts del lado del cliente, el servidor web envía el documento HTML y los scripts al navegador. Este los ejecuta y presenta el resultado final. Los scripts del lado del cliente también pueden contener in­s­tru­c­cio­nes concretas para el navegador web sobre cómo debe reac­cio­nar ante de­te­r­mi­na­das acciones del usuario, por ejemplo, si este pulsa un botón. A menudo, el cliente no tiene que volver a es­ta­ble­cer contacto con el servidor web.

El lenguaje de scripting del lado del cliente más im­po­r­ta­n­te es Ja­va­S­cri­pt.

Nota

En teoría, se pueden usar di­fe­re­n­tes lenguajes de scripting para el client-side rendering. Sin embargo, para que los di­fe­re­n­tes grupos de usuarios puedan cargar el proyecto, los distintos na­ve­ga­do­res deben ser capaces de darle soporte. En la ac­tua­li­dad, solo Ja­va­S­cri­pt cumple esta condición.

¿Cuáles son las ventajas del client-side scripting?

El CSR es de gran utilidad para proyectos web que cuentan con una gran in­ter­ac­ción con los usuarios. Aunque, en un principio, el proceso de carga es largo (en co­m­pa­ra­ción con otros enfoques), el re­n­de­ri­za­do del resto de páginas es más rápido. La ex­pe­rie­n­cia de usuario es si­g­ni­fi­ca­ti­va­me­n­te mejor que con el re­n­de­ri­za­do del lado del servidor, pues no es necesario que los scripts y co­n­te­ni­dos estén cargados co­m­ple­ta­me­n­te cuando el usuario accede a una nueva página.

Dado que los scripts se ejecutan en el navegador del usuario, este tiene la po­si­bi­li­dad (a di­fe­re­n­cia de los scripts del lado del servidor) de ver el código fuente.

¿Cuáles son las de­s­ve­n­ta­jas del client-side rendering?

Este enfoque lleva ligado dos problemas im­po­r­ta­n­tes: en primer lugar, a los motores de búsqueda les resulta más difícil encontrar e indexar las páginas. Aunque los crawlers de Google son capaces de hacerlo, el SEO del sitio no se beneficia en este caso (sobre todo porque muchos otros motores de búsqueda a menudo son incapaces de indexar las páginas re­n­de­ri­za­das del lado del cliente).

Por otro lado, el client-side scripting requiere que el navegador soporte Ja­va­S­cri­pt. Aunque suele ser así, los scripts del lado del cliente pueden ser blo­quea­dos por ex­te­n­sio­nes del navegador. Estas ex­te­n­sio­nes se usan para evitar que las ventanas eme­r­ge­n­tes y las he­rra­mie­n­tas de se­gui­mie­n­to, que también se basan en CSR, ra­le­n­ti­cen el tiempo de carga.

Static site ge­ne­ra­to­rs (SSG)

La tendencia de los últimos años muestra que, en términos de diseño, las webs cada vez se asemejan más a las apli­ca­cio­nes. El diseño re­s­po­n­si­vo e in­ter­ac­ti­vo ha adquirido tanta im­po­r­ta­n­cia como los co­n­te­ni­dos ricos y variados. Además, los usuarios esperan tiempos de carga rápidos y una ex­pe­rie­n­cia fluida en la que, por ejemplo, las páginas no empiecen a cargarse siempre desde cero. Al mismo tiempo, los ad­mi­ni­s­tra­do­res de páginas web no deben descuidar la op­ti­mi­za­ción de motores de búsqueda (SEO) para poder obtener un buen po­si­cio­na­mie­n­to de sus páginas en los rankings de Google.

La ge­ne­ra­ción de sitios estáticos trata de cubrir todas estas exi­ge­n­cias. Con la ayuda de static site ge­ne­ra­to­rs se crean páginas HTML que utilizan pla­n­ti­llas para poder ser re­pro­du­ci­das en cualquier momento cuando un cliente hace una petición. A di­fe­re­n­cia del server-side rendering, el re­n­de­ri­za­do SSG se produce por ade­la­n­ta­do (antes de la solicitud del cliente), lo que reduce los tiempos de carga.

Los static site ge­ne­ra­to­rs más conocidos son:

  • Jekyll
  • Hugo
  • Next
  • Gatsby
  • Gridsome
  • Nuxt
  • Hexo
  • Eleventy
  • Jigsaw
  • Vuepress

¿Cuáles son las ventajas de la ge­ne­ra­ción de sitios estáticos?

La ge­ne­ra­ción de sitos estáticos es útil para proyectos con un contenido que no suele cambiar como, por ejemplo, una página de inicio personal o un blog. Estos tipos de proyectos web suelen tener poco contenido dinámico y suelen be­ne­fi­ciar­se de una máxima velocidad gracias al pre­rre­n­de­ri­za­do (es decir, la carga previa de la página) con el static site generator. Además, los proyectos con SSG cuentan con pocos puntos de ataque, ya que el potencial de riesgo se limita al clic que realiza el cliente para acceder a la página.

Consejo

¿Desplegar páginas web estáticas di­re­c­ta­me­n­te a través de GitHub? Puedes hacerlo sin problemas con Deploy Now de IONOS. Despliega tus páginas web estáticas desde GitHub di­re­c­ta­me­n­te en una in­frae­s­tru­c­tu­ra geo­rre­du­n­da­n­te y protegida contra DDoS sin li­mi­ta­cio­nes de co­n­s­tru­c­ción ni de ancho de banda.

¿Cuáles son las de­s­ve­n­ta­jas de la ge­ne­ra­ción de sitios estáticos?

La pre­rre­n­de­ri­za­ción en el contexto de la SSG conlleva también una serie de de­s­ve­n­ta­jas: si el proyecto web está sujeto a cambios regulares (en términos técnicos o de contenido), el enfoque no es práctico. Con cada cambio, las páginas estáticas del proyecto web tienen que “volver” a cargarse. Cuanto mayor es el proyecto, más tiempo se requiere para el proceso de re­co­n­s­tru­c­ción, por lo que la ge­ne­ra­ción de sitios estáticos no se re­co­mie­n­da para aquellas webs con un gran número de su­b­pá­gi­nas estáticas.

SSR vs. CSR vs. SSG: co­n­clu­sión

El server-side rendering permite que las páginas se carguen de forma excelente, aunque requiere una alta uti­li­za­ción en el servidor web. El client-side rendering funciona en sentido contrario y alivia al servidor, pues renderiza una gran parte de la página en el navegador (para ello el usuario no debe haber bloqueado Ja­va­S­cri­pt). La ge­ne­ra­ción de sitios estáticos reduce la carga tanto al servidor como al cliente y, gracias al enfoque de pre­rre­n­de­ri­za­ción, permite mostrar rá­pi­da­me­n­te el contenido, siempre que no sea in­ter­ac­ti­vo ni cambie co­n­s­ta­n­te­me­n­te.

Estas tres es­tra­te­gias de re­pre­se­n­ta­ción de proyectos web tienen sus ventajas y de­s­ve­n­ta­jas. Para dar con el enfoque que mejor se adapta a tus re­que­ri­mie­n­tos, analiza cui­da­do­sa­me­n­te qué ca­ra­c­te­rí­s­ti­cas be­ne­fi­cian a tu proyecto.

Nota

Entre las métricas más im­po­r­ta­n­tes de Googles Core Web Vitals se pueden citar los tiempos de carga, la rapidez de la in­ter­ac­ti­vi­dad y el diseño estable. Para saber si has escogido la es­tra­te­gia de rendering adecuada para tu proyecto web, puedes también guiarte por las va­lo­ra­cio­nes del servicio de Google, que se basa en los datos de los usuarios.

Ir al menú principal