---
url: 'https://metadrop.net/es/articulos/optimizando-el-rendimiento-de-drupal-internal-page-cache'
title: 'Optimizando el Rendimiento de Drupal - Internal Page Cache'
author: 'Luis Ruiz'
date: '2024-09-22T21:12:47+00:00'
updated: '2026-06-09T11:42:29+00:00'
type: article
summary: 'En este artículo explicamos cómo funciona la Internal Page Cache de Drupal, un módulo del núcleo que almacena en caché las páginas para usuarios anónimos, optimizando el rendimiento al evitar la renderización repetida. Ofrecemos algunas recomendaciones sobre el uso de este módulo.'
tags:
  - 'Drupal Planet'
  - Cache
image: 'https://metadrop.net/sites/default/files/styles/full/public/2021-01/drupal-logo-square.png.webp?itok=f-Iy82Ho'
published: true
og:
  determiner: Automatic
  site_name: Metadrop
  'image:url': 'https://metadrop.net/sites/default/files/styles/full/public/2021-01/drupal-logo-square.png.webp?itok=f-Iy82Ho'
  'image:type': image/png
  'image:width': '550'
  'image:height': '550'
  'image:alt': 'Optimizando el Rendimiento de Drupal - Internal Page Cache'
  street_address: 'Calle Manuel Luna, 12, 3 Dcha'
  locality: Madrid
  region: Madrid
  postal_code: '28020'
  country_name: España
  email: hola@metadrop.net
  phone_number: '910053180'
schema:
  '@context': 'https://schema.org'
  '@graph':
    -
      '@type': Article
      '@id': 'https://metadrop.net/es/articulos/optimizando-el-rendimiento-de-drupal-internal-page-cache#article'
      name: 'Optimizando el Rendimiento de Drupal - Internal Page Cache'
      headline: 'Optimizando el Rendimiento de Drupal - Internal Page Cache'
      description: 'En este artículo explicamos cómo funciona la Internal Page Cache de Drupal, un módulo del núcleo que almacena en caché las páginas para usuarios anónimos, optimizando el rendimiento al evitar la renderización repetida. Ofrecemos algunas recomendaciones sobre el uso de este módulo.'
      about: Cache
      image:
        '@type': ImageObject
        url: 'https://metadrop.net/sites/default/files/styles/full/public/2021-01/drupal-logo-square.png.webp?itok=f-Iy82Ho'
        width: '550'
        height: '550'
      datePublished: '2024-09-26T23:12:47+0200'
      dateModified: '2026-06-09T13:42:29+0200'
      author:
        '@type': Person
        name: 'Luis Ruiz'
      publisher:
        '@type': Organization
        '@id': 'https://metadrop.net/#organization'
      mainEntityOfPage: 'https://metadrop.net/es/articulos/optimizando-el-rendimiento-de-drupal-internal-page-cache'
    -
      '@type': Organization
      '@id': 'https://metadrop.net/#organization'
      url: 'https://metadrop.net/'
      name: Metadrop
      sameAs:
        - 'https://www.drupal.org/metadrop'
        - 'https://twitter.com/metadrop'
        - 'https://asociaciondrupal.es/partner/metadrop'
        - 'https://www.linkedin.com/company/metadrop'
      logo:
        '@type': ImageObject
        url: 'https://metadrop.net/themes/custom/mdrop_radix/logo-metadrop-500-500.jpg'
        width: '500'
        height: '500'
    -
      '@type': ItemPage
      '@id': 'https://metadrop.net/es/articulos/optimizando-el-rendimiento-de-drupal-internal-page-cache'
      breadcrumb:
        '@type': BreadcrumbList
        itemListElement:
          -
            '@type': ListItem
            position: 1
            name: Inicio
            item: 'https://metadrop.net/es'
          -
            '@type': ListItem
            position: 2
            name: 'Artículos expertos sobre Drupal y tecnología'
            item: 'https://metadrop.net/es/articulos'
      publisher:
        '@type': Organization
        '@id': 'https://metadrop.net/#organization'
---
 1. [Artículos](https://metadrop.net/es/articulos)
 
  

# Optimizando el Rendimiento de Drupal - Internal Page Cache

Jueves 26 de Septiembre de 2024

 

 



En este artículo explicamos cómo funciona la Internal Page Cache de Drupal, un módulo del núcleo que almacena en caché las páginas para usuarios anónimos, optimizando el rendimiento al evitar la renderización repetida. Ofrecemos algunas recomendaciones sobre el uso de este módulo.



   



The Internal Page Cache es un **módulo del núcleo de Drupal** que se encarga de almacenar en **caché** las **páginas** solicitadas por **usuarios anónimos**.

Cuando una página está en caché y un usuario anónimo realiza una nueva solicitud, Drupal no necesita ejecutar ningún proceso de renderización o construcción de la página. Simplemente recupera la página renderizada de la caché y la envía al cliente.

El motivo por el que solo se aplica a usuarios anónimos y no a usuarios autenticados es porque la página que se devuelve al cliente debe tener exactamente el **mismo contenido** para todos los usuarios.

En el caso de usuarios autenticados, aunque parte del contenido pueda ser igual para todos, siempre hay elementos que pueden variar, como el bloque de usuario que muestra el nombre del usuario, o información específica, por ejemplo, sus últimas publicaciones.

Para estos casos, existe el módulo **Dynamic Page Cache**, que gestiona el almacenamiento en caché tanto para usuarios anónimos como para **usuarios autenticados**.

## Funcionamiento

### Cache Bin

Para el almacenamiento y gestión de las páginas en caché, Internal Page Cache define su propio *cache bin* denominado “Page”, es decir, que los **objetos cacheados** **se almacenan de manera independiente** al resto de sistemas de caché existentes en Drupal.

 

Page Cache bin definition

 

 

Si accedemos a la base de datos de una instalación en el que esta activado el módulo, y no se utiliza ningún sistema de caché en memoria (como Redis o Memcache), veremos una **tabla** llamada “**page\_cache**”.

En esta tabla se almacenan los objetos de respuesta cacheados. Se compone principalmente de las siguientes columnas:

- **CID**: La URL del objeto de respuesta cacheado, utilizada como identificador único para recuperar el objeto de la caché.
- **DATA**: Almacena el objeto de respuesta serializado.
- **EXPIRE**: La fecha de expiración del objeto en caché. Por defecto, será -1, lo que indica que no tiene fecha de expiración.
- **TAGS**: Las *cache tags* de todos los componentes que forman la página. De este modo, si alguno de estos componentes se modifica, se invalida el objeto en caché para reconstruir la página por completo.
- **CHECKSUM**: Gracias a este campo, Drupal puede saber rápidamente si alguna de las *cache tags* asociadas al objeto ha sido invalidada.
    
     
    
    Page cache bin table

### Middleware HTTP

Define su propio ***middleware*** ([Middleware API](https://www.drupal.org/docs/8/api/middleware-api/overview "Middleware API")) para **interceptar la solicitud HTTP** antes de que esta llegue al *kernel* principal.

 

Middleware HTTP

 

 


A grandes rasgos, sin entrar en demasiados detalles en los diferentes procesos que realiza, este *middleware* se encarga de determinar **si el** ***response*** **es apto** para ser cacheado. Si lo es, verifica si existe un **objeto en caché**; si existe, lo devuelve, y si no, delega la generación del objeto *response*. Antes de devolver la respuesta al cliente, la almacena en caché para futuras solicitudes.

## ¿Cómo saber si una página está cacheada?

La manera de saber si una página está siendo cacheada por Internal Page Cache es consultar los ***headers*** **del** ***response*** en el *inspector* de nuestro navegador.

Cuando el módulo está activo, añade un nuevo parámetro a los encabezados de las respuestas que pueden ser cacheadas por él: “**X-Drupal-Cache**”.

 

Headers response - Page cache

 

 

Por lo tanto, si visitas una página después de haber iniciado sesión, no verás este parámetro en los encabezados de la solicitud porque, como mencionamos antes, solo aplica para usuarios anónimos. En cambio, si la visitas como usuario anónimo, verás dicho parámetro.

Valores del parámetro X-Drupal-Cache:

- **MISS**: Indica que no había un objeto en caché para esa respuesta cuando se realizó la solicitud, por lo que la página que se devuelve no proviene de la caché. La próxima vez que se realice una solicitud para esta misma página, el valor será HIT.
- **HIT**: Indica que se está devolviendo una página cacheada.

## Particularidades

### Max Age

El parámetro **Max Age no está activo para la Internal Page Cache**. Esto significa que, incluso si establecemos un valor específico en el parámetro, la Internal Page Cache no considerará dicho valor y nunca invalidará ni regenerará el objeto en caché en función de este parámetro.

Una posible solución, si deseamos establecer una invalidación basada en Max Age, es crear una *cache tag* personalizado y asociarlo a los objetos en caché a los que queremos aplicar una determinada caducidad.

Luego, debemos configurar una *cron job* para ejecutarse en el intervalo deseado y así invalidar la *cache tag*.

### Cache context

El *cache context* no se aplica a las páginas servidas a usuarios anónimos y almacenadas en caché por Internal Page Cache. Como hemos visto, devuelve directamente el objeto cacheado, por lo que solo tendrá en cuenta los ***cache context*** en el momento de la **construcción de la página** antes de ser cacheada.

### Invalidación

Los únicos métodos para regenerar los objetos cacheadas por Internal Page Cache son **invalidando los** ***cache tags*** asociados con cada página en caché, o **limpiando manualmente** la cache.

## Recomendaciones

Drupal.org recomienda habilitar este sistema de cache en sitios o instalaciones de tamaño pequeño a mediano. Si el sitio es grande o tiene mucho tráfico, se debe considerar la implementación de otras capas de almacenamiento en caché, como un **proxy cache**.

De hecho, si el módulo está habilitado y existe un proxy cache, habrá dos capas de caché realizando la misma función, por lo que se recomienda **desactivar el Internal Page Cache**. Para ello, solo habrá que deshabilitar el módulo.



[Cache](https://metadrop.net/es/articulos?text=Cache)

 

- Luis Ruiz
    
    Senior Drupal Developer
 
[Servicios de Auditoría Web](https://metadrop.net/es/servicios/auditoria-web " See Servicios de Auditoría Web")

Auditorías web independientes de accesibilidad, SEO, rendimiento, seguridad y experiencia de usuario — en Drupal o cualquier plataforma. Se obtiene un plan de corrección priorizado y accionable con esfuerzo estimado.

 

 Ver más