Drupal: Rendimiento Drupal — Caché · BigPipe · Varnish | keliam.com

Rendimiento en Drupal: por qué la caché es tu mejor aliada

Drupal tiene fama de ser una plataforma potente pero pesada. La realidad es que un Drupal bien configurado puede servir miles de peticiones por segundo con tiempos de respuesta inferiores a 100 milisegundos. La diferencia entre un Drupal lento y uno rápido no está en la plataforma — está en cómo se configura su sistema de caché y en las decisiones de arquitectura que se toman durante el desarrollo.

En los proyectos de desarrollo Drupal que gestionamos en Keliam, la optimización de rendimiento es un requisito desde el primer sprint, no algo que se aborda al final cuando las cosas van lentas.

Cache tags y cache contexts: la invalidación inteligente

El sistema de caché de Drupal es uno de los más sofisticados entre los CMS. Los cache tags permiten invalidar selectivamente fragmentos de caché cuando cambia un contenido específico, sin tener que vaciar toda la caché. Los cache contexts permiten servir versiones diferentes de una página según el idioma, el rol del usuario, la URL o cualquier otra variable, manteniendo cada variante en caché de forma independiente.

Y los cache max-age definen el tiempo de vida de cada fragmento. La combinación de estos tres mecanismos permite una estrategia de caché extremadamente granular: puedes cachear una página entera durante horas pero invalidar solo el bloque de últimas noticias cuando se publica un artículo nuevo.

BigPipe y Lazy Builder: personalización sin sacrificar caché

Uno de los retos clásicos del rendimiento web es servir páginas cacheadas cuando hay elementos personalizados (nombre del usuario, carrito de compra, contenido geolocalizado). Drupal resuelve esto con BigPipe, que envía la página cacheada inmediatamente y rellena los bloques personalizados de forma asíncrona, y con Lazy Builders, que difieren la renderización de componentes costosos.

Con BigPipe activado, el usuario percibe una carga casi instantánea porque el HTML estático llega inmediatamente, mientras los componentes dinámicos se renderizan en paralelo. Es una solución elegante que evita tener que elegir entre personalización y velocidad.

Varnish como capa de caché HTTP

Para sitios con tráfico significativo, Varnish delante de Drupal es prácticamente imprescindible. El módulo Purge de Drupal se integra nativamente con Varnish para enviar invalidaciones de caché basadas en los cache tags. Esto significa que Varnish puede servir páginas sin tocar Drupal, pero se invalida automáticamente y de forma selectiva cuando el contenido cambia.

La configuración del VCL (Varnish Configuration Language) requiere atención al detalle: gestionar correctamente las cookies de sesión para no cachear contenido personalizado, diferenciar entre usuarios anónimos y autenticados, y definir las reglas de purga por cache tag.

Herramientas de diagnóstico y métricas

No puedes optimizar lo que no mides. El módulo WebProfiler (parte de Devel) muestra información detallada de cada petición: queries SQL ejecutadas, tiempo de cada una, cache hits y misses, y hooks invocados. Para producción, herramientas como New Relic o Blackfire.io permiten perfilar el rendimiento a nivel de aplicación y detectar cuellos de botella en código personalizado.

A nivel de infraestructura, monitorizar el hit rate de Varnish, los tiempos de respuesta del backend PHP y el uso de memoria de los procesos PHP-FPM es fundamental para mantener el rendimiento a lo largo del tiempo. Si tu Drupal va lento o necesitas prepararlo para un pico de tráfico, podemos ayudarte a diagnosticar y resolver los problemas de rendimiento.

🚀 ¿Tu proyecto Drupal necesita un impulso?

En Keliam trabajamos con Drupal desde hace años en proyectos de alta exigencia. Si buscas un partner técnico para migraciones, desarrollo de módulos o arquitectura headless, estamos aquí.

Solicita tu consulta gratuita →

Scroll al inicio