Producto

Store Framework: cómo VTEX ha optimizado el rendimiento de las tiendas con React

Rodrigo Affonso
Rodrigo Affonso June 10, 2020
Store Framework: cómo VTEX ha optimizado el rendimiento de las tiendas con React

El desafío de mejorar el rendimiento de un comercio electrónico no es algo trivial. Perder ventas por tener un sitio web lento es una de las pesadillas de cualquier negocio que tenga una tienda en línea. Por lo tanto, en VTEX, optimizar el rendimiento y el tiempo de carga de la página son la máxima prioridad.

Este artículo no es una receta de éxito para mejorar el rendimiento, sino un informe que muestra un camino audaz hacia la innovación. Una trayectoria que tuvo aciertos, desaciertos, pruebas y mejoras, pero que ya tiene un impacto diario en la vida de los clientes.

¿Por qué es importante el rendimiento para el comercio electrónico?

Inevitablemente, el rendimiento es uno de los factores críticos para el éxito de un comercio electrónico. Según Radware, el 20% de los consumidores abandonan sus carritos de compras debido a la velocidad del sitio web. Además de eso, el tiempo de carga de la página y su ranking de SEO están íntimamente relacionados. Por lo tanto, los desarrolladores de todo el mundo trabajan duro para optimizar sus sitios web.

Desde métodos simples hasta herramientas extremadamente complejas, hay muchas formas de lidiar con problemas de rendimiento: reducir el tamaño de la imagen, reducir la cantidad de solicitudes HTTP y almacenar el máximo de datos posible en el caché son excelentes formas de lidiar con esto. Pero en VTEX, decidimos ir más allá:


Rendimiento de las tiendas VTEX: ir más allá con Store Framework y React

Nuestros desarrolladores trabajan sin parar buscando formas disruptivas de lidiar con la necesidad de optimización del rendimiento. En el caso de Store Framework, nuestra solución para la implementación de tiendas, que se basa en componentes React, la respuesta encontrada fue Partial Hydration de React, un método innovador para lidiar con la velocidad de carga de componentes no estáticos, como un carrusel.

Si se pregunta qué es React, puedo explicarlo: React es una biblioteca de JavaScript creada por Facebook para el diseño front-end y es la base de muchos sitios web como Netflix, Walmart y Airbnb. En VTEX, es la base de nuestros componentes y también de Store Framework.

Ahora, imagine que accede a una página que tiene elementos interactivos como en el caso de un carrusel. Los carruseles, por ser elementos dinámicos, requieren que los datos asociados a estos sean descargados para que solo entonces podamos verlos. Pero no es posible descargar solo el código del carrusel, todo el contenido de la página debe descargarse, lo que causa lentitud. En este contexto surge Partial Hydration de React, que permite descargar solo el contenido necesario. 

Hablando en términos técnicos: cuando se accede a una página creada usando React, el código JavaScript presente en cada componente debe ejecutarse para devolver un elemento HTML. Para hacerlo, realizamos el Server Side Rendering (SSR), proceso en el que los componentes de JavaScript y CSS en una página se renderizan de forma estática en el servidor en lugar de cargarse en el navegador (client-side).  Este proceso reduce el tiempo de carga de la página, lo que permite al usuario tener acceso a ese contenido de forma casi instantánea.

El único problema de SSR es que solo devuelve componentes estáticos: el contenido se vuelve dinámico del lado del cliente a través de un proceso llamado Hydration. Sin embargo, esto sucede para todo el contenido de la página, es todo o nada: todo el código de la página se descarga y se ejecuta en el usuario, lo que provoca que se cargue lentamente. 
Este es el problema que resuelve Partial Hydration. Con este método, podemos descargar y ejecutar solo las partes del código que son necesarias, en este caso, el contenido que ve el usuario, arriba del scroll de la página. Debajo del scroll, los componentes se cargan “a pedido”, es decir, solo cuando el usuario se desplaza hacia abajo se descargan y ejecutan. De esta forma, al descargar solo el código necesario, logramos reducir el tiempo de carga de la página.

En este ejemplo, el código del componente ProductSummary no se carga en un primer momento, cuando está debajo del scroll de la página.  Solo cuando el usuario se desplaza hacia abajo, se descarga y ejecuta.


Un nuevo paradigma para los equipos de negocio y desarrollo

Lucas Bebber, desarrollador de VTEX que ha liderado el proyecto de rendimiento en el equipo de producto, señala que este cambio es un nuevo paradigma en el uso de React. Además, nos contó sobre la tecnología asociada con Partial Hydration:

¿Por qué React fue la tecnología elegida por VTEX para construir tiendas en Store Framework?

“React es muy popular en la industria tecnológica, pero no exactamente por razones de rendimiento. En VTEX, lo elegimos porque con esta tecnología somos capaces de estructurar muy bien las partes de nuestro código. Esto permite que se creen componentes independientes y que puedan actualizarse. Además, con el uso de Partial Hydration, encontramos lo mejor de ambos mundos: tener componentes React, manteniendo la renderización en el servidor y descargando apenas los componentes no estáticos.”

Si Partial Hydration es tan prominente, ¿por qué pocas empresas lo utilizan alrededor del mundo?

“Es posible que las compañías apliquen Partial Hydration para productos internos, pero como herramienta de plataforma es de hecho muy poco utilizado. Una de las razones de esto es que React, en sí, solo funciona con renderización, no cuida de la parte de descarga de assets, que también sería necesario para aprovechar mejor esta técnica. Por lo tanto, para realizar Partial Hydration, la compañía necesita tener un control total del stack: una plataforma que cuide tanto del back-end como del front-end. Y este es uno de nuestros diferenciales con VTEX IO.”


Los resultados de utilizar Store Framework y la tecnología React

En VTEX, la idea de utilizar Partial Hydration se formuló e implementó en los últimos 4 meses y todavía planeamos desarrollarla más. En el futuro, evolucionaremos para reducir aún más la necesidad de descarga y ejecución del lado del cliente: los componentes estáticos nunca necesitarán descargarse y ejecutarse. Además, hay otras mejoras de rendimiento en progreso, como la optimización de personalizaciones CSS.

Reconocemos que los procesos de mejoras de rendimiento están en progreso. Hemos trabajado y logrado resultados efectivos, pero somos conscientes de que esta jornada de mejora es interminable.

Los resultados son alentadores: hemos realizado una serie de pruebas para validar este método y mejorarlo, como en la tienda Al’s Sporting Goods.

Gráfico que expressa a melhoria de desempenho devido ao Partial Hydration: +80% no Desktop e +118% no mobile

Estos resultados nos dan la seguridad de que vamos en la dirección correcta y poco a poco  los beneficios comienzan a materializarse: recientemente, hicimos un release sobre mejoras de rendimiento y, en los próximos meses, tenemos la intención de proporcionar a todos los desarrolladores de Store Framework más herramientas para garantizar el rendimiento que siempre hemos deseado.

Continúe leyendo: historias relacionadas
Producto

VTEX Pick and Pack: el complemento de la logística inteligente

El ecommerce hoy Hoy, el comercio electrónico es altamente competitivo. Las marcas buscan destacarse para retener a los…

Consuelo Cabrera
Consuelo Cabrera
Producto

Flywire se asocia con VTEX para ofrecer experiencias de pago integradas a las instituciones de educación superior de América Latina

La integración de Flywire con VTEX proporciona una experiencia de pago simplificada a lo largo de todo el…

Monserrat Contreras
Monserrat Contreras
Historias de Clientes

XIAOMI fideliza a sus clientes de la mano de VTEX

En el ecommerce como en cualquier negocio se busca permanecer. Lograr conquistar al cliente a fin de que…

Valeria Reyes
Valeria Reyes
Producto

Soluciones OOTB, de terceros y personalizadas: cómo elegir la solución adecuada para tus metas comerciales.

Sin duda no es una tarea fácil elegir el conjunto de herramientas y plataformas adecuadas para el funcionamiento…

Guilherme Portela, Paloma Castrioto, Renato Ricardi
Guilherme Portela, Paloma Castrioto, Renato Ricardi
Producto

Empresas de todo el mundo mejoran la rentabilidad con el Seller Portal del marketplace de VTEX

VTEX sabe que el modelo de marketplace es una de las estrategias más importantes para los players del…

Lalo Aguilar
Lalo Aguilar
Producto

Nuevas funcionalidades de marketplace en VTEX: ve más allá del ecommerce tradicional

Por más de 10 años, las funcionalidades de marketplace han sido un pilar de VTEX Commerce Platform.  La…

Lalo Aguilar
Lalo Aguilar
Producto

VTEX y Adyen se asocian para ofrecer un comercio unificado a los retailers online

Ya sea añadiendo nuevos contenidos, impulsando iniciativas de marketing o invirtiendo en la próxima gran tendencia, se puede…

Gabriela Porto
Gabriela Porto
Producto

Por qué VTEX IO es adecuado para las empresas de retail

Las empresas de retail suelen necesitar implementar estrategias avanzadas e interconectadas para tener éxito en el ámbito del…

Allan Centurione
Allan Centurione
Producto

Los mejores aspectos de VTEX IO

Muchos desarrolladores y especialistas en ecommerce se han visto estancados al intentar cambiar aspectos de sus sitios web…

Larícia Mota
Larícia Mota
See More