Cache Exclude
Un módulo simple que permite a los administradores excluir selectivamente rutas específicas y tipos de contenido del cache de páginas de Drupal.
cacheexclude
Instalar
composer require 'drupal/cacheexclude:^2.1'
composer require 'drupal/cacheexclude:^2.0'
composer require 'drupal/cacheexclude:8.x-1.0'
Overview
Cache Exclude proporciona una solución sencilla para gestionar las excepciones de cache de páginas en Drupal. Mientras que el cache de páginas de Drupal mejora el rendimiento almacenando en caché las páginas para usuarios anónimos, algunas páginas con contenido dinámico, aleatorio o rotativo necesitan omitir este cache para funcionar correctamente.
Este módulo permite a los administradores del sitio definir qué páginas nunca deben almacenarse en caché, ya sea especificando rutas URL (con soporte de comodines) o seleccionando tipos de contenido. Cuando un visitante accede a una página excluida, el módulo utiliza el interruptor de desactivación del cache de páginas de Drupal para evitar el almacenamiento en caché, asegurando que el contenido dinámico permanezca verdaderamente dinámico.
El módulo se integra perfectamente con el sistema de cache de Drupal e incluye soporte de migración para sitios que se actualizan desde Drupal 7.
Features
- Excluir rutas URL específicas del cache de páginas usando una interfaz de área de texto simple
- Soporte para patrones con comodines en las exclusiones de rutas (p. ej., /blog/* para excluir todas las subpáginas del blog)
- Excluir tipos de contenido completos del cache de páginas con selección mediante casillas de verificación
- Funciona tanto con rutas internas como con alias de ruta
- Utiliza el interruptor de desactivación nativo del cache de páginas de Drupal para una omisión confiable del cache
- Incluye soporte de migración de Drupal 7 a Drupal 9/10/11 para actualizaciones sin problemas
- Vacía automáticamente todos los caches cuando se guardan los ajustes para asegurar un efecto inmediato
Use Cases
Excluir páginas con bloques de contenido dinámico
Si su página principal muestra una cita aleatoria, producto destacado o banner rotativo que cambia en cada carga de página, puede añadir <front> a la lista de exclusión. Esto asegura que los visitantes anónimos siempre vean contenido actualizado en lugar de una versión en caché.
Excluir páginas de destino personalizadas
Para campañas de marketing con contenido personalizado basado en parámetros de URL o lógica del lado del servidor, añada las rutas de las páginas de destino (p. ej., /landing/*) para prevenir el almacenamiento en caché y asegurar que cada visitante vea el contenido personalizado previsto.
Excluir tipos de contenido de eventos o noticias
Si su tipo de contenido Article o Event muestra frecuentemente información sensible al tiempo o datos en tiempo real, seleccione estos tipos de contenido en los ajustes para asegurar que todos los Nodes de ese tipo nunca se almacenen en caché.
Excluir páginas con integraciones de terceros
Las páginas que incrustan feeds en tiempo real, cotizaciones bursátiles u otro contenido dinámico de terceros pueden excluirse por ruta para asegurar que el contenido incrustado esté siempre actualizado.
Migrar desde Drupal 7
Al actualizar desde Drupal 7, el módulo migra automáticamente sus ajustes de exclusión de cache existentes. Ejecute la migración cacheexclude_settings para transferir sus exclusiones de rutas y tipos de Node al nuevo sitio.
Tips
- Use alias de ruta en la lista de exclusión cuando sea posible, ya que el módulo verifica tanto las rutas internas como los alias en busca de coincidencias
- La página principal puede excluirse usando el token especial <front> en lugar de su ruta real
- Excluir demasiadas páginas puede afectar negativamente el rendimiento del sitio - solo excluya páginas que realmente necesiten contenido dinámico
- Para desarrollo y depuración, verifique el encabezado de respuesta X-Drupal-Cache: 'UNCACHEABLE (response policy)' indica que la página fue excluida del cache
- Al migrar desde Drupal 7, asegúrese de que la migración d7_node_type se ejecute antes de cacheexclude_settings para mapear correctamente los tipos de contenido
Technical Details
Admin Pages 1
/admin/config/system/cacheexclude
Configure qué páginas y tipos de contenido deben excluirse del cache de páginas de Drupal. Las páginas que coincidan con los criterios configurados no se almacenarán en caché para usuarios anónimos, permitiendo que el contenido dinámico funcione correctamente.
Troubleshooting 4
Asegúrese de estar probando como usuario anónimo (sin iniciar sesión). El cache de páginas solo aplica a usuarios anónimos. También verifique que el módulo Page Cache esté habilitado y que el formato de la ruta sea correcto (debe comenzar con una barra diagonal inicial).
Asegúrese de estar usando la sintaxis correcta de comodines. Use * como comodín (p. ej., /blog/* coincide con /blog/post-1, /blog/post-2, etc.). El patrón debe coincidir con la ruta interna o el alias de ruta.
Verifique que el Node sea realmente del tipo de contenido que seleccionó. Compruebe el nombre de máquina del tipo de contenido en el formulario de edición del Node o mediante Drush. También asegúrese de que el módulo cacheexclude esté habilitado y que los ajustes se hayan guardado.
Cache Exclude vacía automáticamente todos los caches cuando se guardan los ajustes. Si los cambios aún no surten efecto, vacíe manualmente los caches usando drush cr o la interfaz de administración en /admin/config/development/performance.
Security Notes 3
- Los ajustes de exclusión de cache requieren el permiso 'administer site configuration', que es un permiso administrativo poderoso
- Excluir páginas del cache puede exponer el sitio a una mayor carga del servidor por solicitudes maliciosas - use las exclusiones con prudencia
- El módulo no introduce ninguna vulnerabilidad de seguridad pero reducir la cobertura del cache puede hacer que el sitio sea más susceptible a picos de tráfico