Consejos para optimizar Drupal 8 (parte 2: módulos)

Imagen
Tren a toda velocidad

En esta serie de artículos estamos viendo cómo podemosmejorar el rendimiento de nuestro sitio web y optimizar Drupal. Previamente tuvimos un articulo dedicado al lado del servidor, hablando de el uso de MariaDB, sistemas de CDN entre otros.

En esta ocasión, vamos a hablar de módulos y configuraciones que nos pueden ayudar a optimizar Drupal. Vamos a ver desde algunas opciones tan simples como utilizar la cache, hasta cargar únicamente las imágenes necesarias.

Uso de la cache:

Puede parecer muy básico, pero cuando desarrollamos desactivamos la cache y se nos puede olvidar volver a activarla de nuevo cuando pasamos a producción. De modo que es lo primero que tenemos que volver a comprobar, especialmente los modelos “Internal page cache” y “Internal dynamic page cache”.

Comprimir los CSS y JS:

Reducir la cantidad de archivos que se envían, ademas de su tamaño es algo importante, cuantos menos archivos enviemos, mas rápido cargara. Esto podemos hacerlo activando las opciones por defecto del core en “/admin/config/development/performance” y con él modulo Advanced Aggregation.

Optimizar la base de datos:

Cuando nuestro sitio es enorme y tenemos una base de datos gigante, necesita que se le haga cierto mantenimiento, ya que aunque no lo notemos, las consultas se ralentizan, sobre todo en tablas con muchas escrituras, actualizaciones y borrados (tablas de cache por ejemplo). Para hacer esto tenemos el modulo DB Maintenance, podemos configurarlo para las tablas que queramos optimizar y la frecuencia.

Usar BigPipe:

BigPipe es un modulo que a mí me parece maravilloso, por defecto ya esta activo desde Drupal 8.5, pero mejor que verifiquemos si lo tenemos, si nuestro sitio es anterior. También podemos tener en cuenta Refreshless, aun no esta disponible estable y realmente es imposible usarlo, pero de cara al futuro, esta bien tenerlo en cuenta para cuando sea estable.

Utiliza Blazy:

Blazy nos permite cargar las imágenes de la web, según se necesiten; es decir, si nuestra portada tiene 20 imágenes, pero sin hacer scroll solo se ven 4, solo se cargaran esas 4, el resto solo se descargaran si se necesitan al hacer scroll. Esto nos ayuda a optimizar mucho la carga de nuestro sitio.

Desactivar modulos no usados:

Esto es importantísimo, si no usamos un modulo lo mejor es desinstalarlo y eliminarlo (los modelos del core hay que desinstalarlos pero no eliminarlos). Ademas los módulos que únicamente son interfaces, como Field UI o Views UI tenemos que desactivarlos en producción. Tambien es recomendable desactivar Database logging y activar Syslog en producción, ya que Database Logging almacena los errores en la base de datos, y esto también ralentiza nuestra web.

Optimizar las imágenes:

Las imágenes, esas grandes enemigas que hacen que nuestra pagina consuma un gran ancho de banda al descargar. El tiempo de carga de una web esta muy ligado a la cantidad de datos que se tienen que descargar. A si que si optimizamos nuestras imágenes utilizando los estilos de imagen para ajustar las imágenes al tamaño que necesitamos (o un poco más pequeñas y que el navegador las re-escale), ahorraremos mucho ancho de banda y la web cargara más rápido.

También podemos hacer uso del modulo Responsive Image para enviar las imágenes en diferentes estilos dependiendo del dispositivo en el que se este visualizando la web.

Optimizar Drupal con composer:

Esto realmente es muy simple, un solo comando. Lo que hace es optimizar el autoload para que sea mas rápido el acceso a las clases de PHP, solo tenemos que ejecutar lo siguiente:

composer dump-autoload -o

Por el lado de los módulos y pequeñas configuraciones esto es todo en lo relacionado con optimizar Drupal, los módulos Advanced Aggregation y Blazy son especialmente importantes y seguramente sea en lo que mas notemos la mejora, ademas de optimizar las imágenes. El resto de mejoras, serán especialmente efectivas en sitios con un alto trafico.

Artículos relacionados: