Tree shaking es una técnica de optimización que detecta y elimina automáticamente el código JavaScript no utilizado durante el proceso de creación de su sitio web. El nombre se refiere a sacudir un árbol para que caigan las ramas muertas. En la práctica, un bundler como Webpack, Rollup o Vite analiza qué funciones, variables y módulos utilizas realmente y omite todo aquello a lo que no recurres en el archivo final. Para un sitio web de una PYME media, esto significa que sus archivos JavaScript pueden reducirse entre un 30 y un 60 por ciento, lo que afecta directamente a la velocidad de carga y a la puntuación de Core Web Vitals.
Cómo se sacude el árbol en los paquetes modernos
Tree shaking se basa en la sintaxis de módulos ES6 (importación y exportación) porque es analizable estáticamente. Mientras se construye el sitio, el bundler escanea todas las declaraciones de importación y marca qué exportaciones se llaman realmente. El código que no se importa ni se llama a ninguna parte se etiqueta como "código muerto" y no se incluye en el archivo de producción. Este proceso sólo funciona de forma fiable si se utilizan bibliotecas que proporcionen módulos ES y si no se utilizan importaciones dinámicas o construcciones eval que interfieran con el análisis estático. Los frameworks modernos como React, Vue y Svelte soportan tree shaking de forma nativa, pero los módulos CommonJS más antiguos a menudo permanecen completamente en tu bundle.
Por qué sacudir los árboles es ya habitual en el desarrollo web
Alrededor de 2015, Rollup introdujo la agitación de árboles como característica principal, seguida de Webpack 2 en 2017. Era la respuesta a un problema creciente: los paquetes de JavaScript eran cada vez más grandes mediante el uso de bibliotecas extensas como Lodash o Moment.js, mientras que los sitios web a menudo solo necesitaban un puñado de funciones. Google dejó claro en 2018 que la velocidad de carga es un factor de clasificación e introdujo Core Web Vitals en 2020. Desde entonces, la agitación de los árboles ya no es un nice-to-have, sino un requisito básico para cualquier sitio web profesional. Un paquete no optimizado de 800 kB puede reducirse a 250 kB gracias al tree shaking, lo que marca la diferencia entre una experiencia móvil aceptable y una lenta.
Lo que el temblor de los árboles aporta a los sitios web de las PYME neerlandesas
En la práctica, en Monkey Vision, vemos que el tree shaking afecta sobre todo a sitios web con muchos componentes interactivos o amplios cuadros de mando. Una tienda online que carga un selector de datos, una biblioteca de validación y un script de análisis, sin tree shaking, envía fácilmente 600 kB de JavaScript al visitante, mientras que sólo se ejecuta realmente el 40%. Al habilitar el tree shaking en combinación con la división de código, se consigue un First Contentful Paint entre 1 y 2 segundos más rápido, lo que tiene un efecto medible en las tasas de rebote y conversión. Para aquellos que se toman en serio la inversión en velocidad y experiencia de usuario, el desarrollo front-end profesional con procesos de compilación optimizados es el siguiente paso lógico. Un enlace a las integraciones de API también es relevante, ya que el "tree shaking" ayuda a cargar sólo los componentes SDK necesarios. Puedes encontrar más información sobre la optimización en la Guía de optimización de JavaScript para desarrolladores de Google.