Back

Loading…

Documentation

Optimizando nuestros proyectos de Drupal

Este tema da para una serie muy buena porque permite ir desde lo más fundamental —cómo Drupal decide si una respuesta puede cachearse— hasta optimizaciones más avanzadas como Redis, CDN, PHP/OPcache o base de datos.

Yo lo organizaría así:

  1. ⚡ Optimizar Drupal empieza por entender la caché Qué capas de caché tiene Drupal, qué hacen Internal Page Cache y Dynamic Page Cache, y por qué antes de añadir Redis o un CDN debemos comprobar que Drupal esté generando respuestas cacheables.

  2. 🧠 Cacheability en Drupal: max-age, contexts y tags Explicar el modelo de cache metadata de Drupal: qué significa cada componente, cómo se propaga y por qué un pequeño bloque puede volver dinámica una página completa.

  3. 🔍 Cómo diagnosticar una página que Drupal no quiere cachear Trabajar con headers como:

    cache-control
    x-drupal-cache
    x-drupal-dynamic-cache
    

    y con herramientas como curl, Webprofiler y render cache debugging. Aquí encaja perfectamente el caso real que vimos con:

    cache-control: must-revalidate, no-cache, private
    x-drupal-dynamic-cache: UNCACHEABLE (response policy)
    
  4. 👤 Usuarios anónimos vs autenticados: qué puede cachear Drupal realmente Por qué las estrategias son diferentes, qué ocurre con sesiones, cookies, carrito, formularios y contenido personalizado.

  5. 🛒 Drupal Commerce y caché: por qué el carrito cambia las reglas Muy útil usando Fulterer como inspiración: cart, mini-cart, precios, variaciones, sesión y páginas que deben permanecer dinámicas.

  6. 🚦 De Drupal a HTTP Cache: cuándo tiene sentido Varnish, CDN o Cloudflare Explicar que una capa externa no puede corregir una respuesta que Drupal ya declara:

    private
    no-cache
    

    Primero hacemos cacheable Drupal; después aprovechamos reverse proxies y edge caching.

  7. 🧰 Redis en Drupal: qué mejora y qué no Diferenciar claramente:

    Redis
    ≠
    Page Cache
    

    Redis mejora el backend de caché y puede reducir carga de base de datos, pero no convierte mágicamente páginas no cacheables en cacheables.

  8. 🐘 PHP y OPcache: optimizar Drupal por debajo de Drupal PHP-FPM, OPcache, memoria, workers y por qué Drupal puede estar correctamente cacheado y aun así tener un servidor PHP mal configurado.

  9. 🗄️ Base de datos: cuándo Drupal realmente necesita nuestra atención Queries lentas, índices, Views, cache bins, cron, tablas grandes y cómo diferenciar un problema de caché de un problema SQL.

  10. 🎨 Frontend performance: CSS, JavaScript, imágenes y Drupal Aggregation, BigPipe, lazy loading, responsive images, WebP/AVIF, fuentes y cómo separar tiempo de backend de Core Web Vitals.

  11. 📊 Cómo medir Drupal antes y después de optimizarlo curl, DevTools, TTFB, Lighthouse, Webprofiler, logs y métricas. La idea principal:

No optimizar basándonos en sensaciones; medir antes y después.

  1. 🏗️ Una arquitectura de rendimiento para Drupal en producción Artículo final conectando todo:
Browser
   ↓
CDN
   ↓
Reverse proxy
   ↓
Drupal Page/Dynamic Cache
   ↓
Redis
   ↓
PHP + OPcache
   ↓
Database

Me gusta que la serie empiece sin Redis, sin Varnish y sin CDN. El primer aprendizaje debería ser precisamente:

Antes de añadir infraestructura para acelerar Drupal, debemos asegurarnos de que Drupal entiende correctamente qué puede cachear.

Y usaría como título de la serie algo como ⚡ “Optimización práctica de Drupal: desde la caché hasta producción”.

El primer artículo podría llamarse “⚡ Optimizar Drupal empieza por entender la caché” y podemos escribirlo con el mismo estilo de los artículos de Composer: agradable de leer, técnico pero accesible, con ejemplos reales de headers y comandos curl.

Contents