Caché del sitio web & caché interna del servidor: cómo funciona la caché en WordPress

Aviso de afiliados v3.1
Aviso de afiliados v3.2 (móvil)

Al revisar la caché del sitio web y la caché interna del servidor en el servidor que ejecuta este sitio, las solicitudes de página de WordPress bajaron en orden desde el navegador por el CDN, la caché de página, OPcache y Redis, y se detuvieron en la capa que tenía una copia. Las solicitudes que llegaron directamente al servidor de origen recibieron de nginx el archivo HTML creado por WP Rocket sin bajar hasta PHP ni la base de datos.

Ⅰ. Estructura de la caché en WordPress

En informática, la caché es una técnica que guarda datos temporalmente para acceder a ellos rápido, y en la web funciona con el mismo principio y contribuye mucho al rendimiento.

La caché guarda datos para que, cada vez que un visitante entra en un sitio web, no haya que pedirlo todo de nuevo al servidor: los datos guardados se cargan rápido y baja el tiempo de carga de la página. Así se reduce la carga del servidor y mejora la experiencia del usuario.

Las cachés que usan las solicitudes de WordPress se dividen en dos ramas: la caché del sitio web y la caché interna del servidor. El estándar de caché HTTP, tal como lo describe MDN, llama private cache a la caché guardada solo en el navegador de un visitante y shared cache a las cachés CDN y proxy que comparten muchos visitantes; en este artículo agrupamos ambas como caché del sitio web.

La caché de página, OPcache y la caché de objetos se aplican al proceso en que WordPress se ejecuta dentro del servidor. El estándar HTTP no tiene una categoría para ellas, y la documentación oficial de WordPress, en su Advanced Administration Handbook, las explica como plugins de caché (caché de página), caché de objetos y caché del servidor (cachés de opcode como OPcache).

🗂️ Cachés por las que pasa una solicitud de WordPress
├─ 🌐 Caché del sitio webCaché HTTP · clasificación de MDN
│ ├─ private cacheCaché del navegador
│ └─ shared cache
│ ├─ proxy cacheProxies de redes de empresas u operadoras
│ └─ managed cacheCDN · proxy inverso (Varnish)
└─ 🖥️ Caché interna del servidorClasificación de la documentación oficial de WordPress
├─ Caché de páginaHTML estático creado por un plugin de caché (WP Rocket)
├─ OPcachecaché de opcode · ejecución de PHP
└─ Caché de objetosDatos que quedan al terminar la solicitud (Redis)

Todos los campos donde se usa la caché están en el artículo Caché: definición y todos los campos donde se usa ; las cuatro ramas de la optimización del rendimiento, incluida la caché, en Optimización del rendimiento web: estructura y definición .

En el simulador de abajo, elige una caché en el árbol de la izquierda y pulsa un chip para ver en qué capa se detiene la solicitud. La primera capa que activan los administradores de WordPress con un plugin de caché es la caché de página.

🧭 Simulador de capas de cachéSimulador explicativo
🗂️ Cachés por las que pasa una solicitud de WordPress
🧰 Tipo de solicitud
Caché del navegador
Es la caché HTTP guardada en el navegador del visitante. Elige [Imagen · CSS] y pulsa [Primera visita] → [Volver a visitar]: a partir de la segunda vez no se envía ninguna solicitud al servidor.
Cabeceras de caché HTTP
Son las reglas con las que el servidor indica al navegador y al CDN cuánto tiempo guardar una copia. Las líneas de cabecera del registro de respuestas son valores reales recibidos de un servidor con Nginx + Apache.
Caché CDN · proxy
Es una copia que comparten muchos visitantes. Activa [Usar CDN] y pulsa [Primera visita] → [Volver a visitar]: la respuesta termina en el edge.
Caché de página
Guarda como archivo el HTML que creó PHP. Pulsa [Volver a visitar] y la solicitud no baja hasta PHP ni la base de datos.
OPcache
Mantiene en memoria el bytecode PHP compilado. En [Visitar tras editar la entrada], PHP se vuelve a ejecutar, pero se omite la compilación.
Caché de objetos
Guarda los resultados de consultas en Redis. En [Visitar tras editar la entrada], solo se vuelven a leer de MariaDB los datos de la entrada modificada.
Flujo completo
La solicitud baja de arriba abajo y se detiene en la primera capa que tiene una copia.
CapaDónde se guardaQué guardaEjemplo con Nginx + Apache
Caché del navegadorDispositivo del visitanteHTML · CSS · JS · imágenes · fuentesCSS · imágenes 7 días
Caché CDN · proxyDelante del servidor (edge · proxy inverso)Copias de páginas · archivos estáticosBunny CDN
Caché de páginaDisco · memoria del servidorHTML creado por PHPWP Rocket + nginx
OPcacheMemoria del servidorBytecode PHPPHP 8.3, JIT desactivado
Caché de objetosMemoria del servidorResultados de consultas · objetosRedis
Es un simulador explicativo que solo funciona en tu navegador. Las líneas de cabecera del registro de respuestas se recibieron el 10 de octubre de 2026 de un servidor con Nginx + Apache; los valores entre paréntesis, como el ETag tras editar, son ejemplos.

Ⅱ. Caché del sitio web

La caché del sitio web es la caché en la que, cuando el servidor indica con las cabeceras de respuesta cómo guardar algo, el navegador del visitante y el CDN o proxy guardan una copia según esa instrucción. Las cabeceras típicas son [Cache-Control], [ETag] y [Expires], y cuando vence el plazo, una solicitud condicional ([304 Not Modified]) comprueba si ha cambiado.

1️⃣ Caché del navegador

La caché del navegador es la caché HTTP guardada en el navegador web del visitante: guarda HTML, CSS, JavaScript, imágenes y fuentes, y cuando se vuelve a pedir el mismo recurso, no llega al servidor o solo comprueba si ha cambiado.

El plazo lo decide el servidor, no el visitante. El servidor con Nginx + Apache de abajo indica 7 días para CSS e imágenes, y responde las páginas HTML sin plazo, para que se comprueben en cada visita.

📨 Cabeceras de respuesta medidasConfiguración Nginx + Apache · 2026-10-10
💻 Ordenador del visitanteCaché del navegador
──────▶① Primera solicitudGET /style.css
🖥️ Servidor del sitio webNginx + Apache
💻 Ordenador del visitanteCaché del navegador
◀──────② Archivo + instrucción de guardadocache-control: max-age=604800
🖥️ Servidor del sitio webNginx + Apache
③ El navegador lo guarda 7 días según la instrucción y, si vuelves en ese tiempo, no envía ninguna solicitud al servidor.
💻 Ordenador del visitanteCaché del navegador
──────▶④ Comprobación tras vencerIf-None-Match: "6ab12775-2ee8"
🖥️ Servidor del sitio webNginx + Apache
💻 Ordenador del visitanteCaché del navegador
◀──────⑤ Sin cambiosHTTP/2 304 (sin cuerpo)
🖥️ Servidor del sitio webNginx + Apache
🖼️ CSS · imágenes
cache-control: max-age=604800
expires: Sat, 17 Oct 2026 03:21:00 GMT
etag: "6ab12775-2ee8"
El navegador usa 7 días como plazo para usar la copia guardada sin volver a preguntar al servidor.
📄 Página HTML
etag: "6ac9298c-95575"
last-modified: Fri, 09 Oct 2026 17:51:08 GMT
No se indica plazo, así que al volver el navegador primero pregunta con el ETag si ha cambiado.
Si se vuelve a pedir con el mismo ETag, el servidor devuelve solo [HTTP/2 304], sin cuerpo, y el navegador sigue usando su copia guardada.

2️⃣ Caché CDN · proxy

Las cachés CDN y proxy están entre los visitantes y el servidor de origen, y las comparten muchos visitantes. Un proxy directo está del lado del visitante, como en una red de empresa, mientras que los proxies inversos y los CDN están delante del servidor y responden con una copia guardada en lugar del servidor de origen.

Un proxy inverso típico es Varnish Cache, y los CDN como Bunny CDN o Akamai siguen la misma estructura. Con DNS por regiones, los visitantes de la región del servidor de origen se conectan directamente a él, y a los de otras regiones les responde un edge del CDN cercano (p. ej., Bunny CDN) que guarda incluso el HTML.

👤 Visitante de la región del servidor de origenEl DNS devuelve la dirección de origen
→
🖥️ Servidor de origenResponde directamente, sin pasar por el CDN.
👤 Visitante de otra regiónEl DNS devuelve la dirección de un edge cercano
→
☁️ Edge de Bunny CDNSi tiene una copia del HTML o del archivo, responde aquí.
→
🖥️ Servidor de origenSolo se llega aquí si el edge no tiene copia.

La estructura y las ventajas de un CDN están en el artículo ¿Qué es un CDN? Razones para usarlo y 5 ventajas .

Ⅲ. Caché interna del servidor

La caché interna del servidor se aplica al proceso en que WordPress crea la página después de que la solicitud llega al servidor de origen. Un servidor con Nginx + Apache procesa la solicitud en el orden de abajo y, si un paso anterior encuentra una copia, se omiten los siguientes.

🅐 Cuando la caché de página tiene el archivoLa mayoría de solicitudes de página de visitantes sin sesión iniciada
① nginx recibe la solicitudEl servidor web recibe la solicitud que llegó al servidor de origen.
↓
1️⃣ Caché de página ↓② Responde con el archivo de la caché de páginanginx envía tal cual el archivo HTML creado por WP Rocket.x-rocket-nginx-serving-file: HIT
Termina sin pasar por PHP · OPcache · Redis · MariaDB.
🅑 Cuando la caché de página no tiene el archivoPrimera visita tras vaciar la caché · pantalla de acceso · solicitudes AJAX
① nginx recibe la solicitudNo hay archivo, así que pasa la solicitud a Apache.
↓
2️⃣ OPcache ↓② Se ejecuta PHP · OPcacheEjecuta los archivos PHP de WordPress como bytecode compilado.
↓
3️⃣ Caché de objetos ↓③ Caché de objetos (Redis)Los resultados de consultas y objetos guardados se toman de Redis.
↓
④ MariaDBSolo consulta los datos que no están en Redis y lee los datos de uso frecuente del buffer pool de InnoDB (memoria).
↓
⑤ Respuesta · se guarda la caché de páginaEnvía el HTML terminado y WP Rocket lo guarda como archivo, así que la siguiente solicitud se procesa como 🅐.
Según una configuración Nginx + Apache (solo pasa a Apache y PHP si no hay archivo en la caché de página), comprobado el 2026-10-10.

Cloudways y ScalaHosting te dejan elegir la configuración Nginx + Apache como opción. En Cloudways eliges, para cada aplicación, el stack Hybrid (Nginx + Apache) o el stack Lightning (solo Nginx), y en ScalaHosting puedes activar en SPanel un ajuste que pone Nginx delante de Apache.

🖥️ Hostings donde puedes elegir Nginx + Apache
CloudwaysStack a elegir por aplicación
Stack HybridNginx + Apache
Stack LightningSolo Nginx
Cloudways →
ScalaHostingAjustes del servidor web en SPanel
PredeterminadoApache
Activar NginxNginx + Apache
ScalaHosting →
CachéQué guardaCuándo se guarda
1️⃣ Caché de páginaPágina HTML terminada🅑 ⑤ WP Rocket lo guarda como archivo al responder
2️⃣ OPcacheCódigo PHP compilado (bytecode)🅑 ② Cuando un archivo PHP se ejecuta por primera vez
3️⃣ Caché de objetosFragmentos de datos como resultados de consultas y opciones🅑 ③ Cuando WordPress obtiene los datos por primera vez

1️⃣ Caché de página

  • ↪️ Caché de página completa o caché HTML

La caché de página también se llama caché de página completa (full-page cache) y, como lo que guarda es HTML, a veces se le llama caché HTML. Guarda toda la página web creada por PHP como un archivo HTML estático y, ante una solicitud de la misma página, envía ese archivo sin ejecutar PHP. Es el caso 🅐 del orden de procesamiento de arriba.

Se guarda en la memoria del servidor (RAM) o en disco (HDD/SSD): la memoria es rápida, pero cara y de capacidad limitada, y el disco tiene espacio de sobra, pero es relativamente lento.

TipoEjemploCómo guarda y responde
Plugin de cachéWP Rocket · WP Super Cache · W3 Total Cache · Cache EnablerWordPress guarda la página como archivo HTML y el servidor web envía ese archivo.
Caché del servidor webCaché FastCGI de Nginx · LiteSpeed CacheEl servidor web guarda directamente la respuesta de PHP y la envía en la siguiente solicitud.
Caché de proxy inversoVarnishUn servidor de caché colocado delante del servidor web guarda la página y responde.

Con Nginx + Apache, nginx lee directamente y envía el archivo HTML creado por WP Rocket, y la cabecera de respuesta lleva [x-rocket-nginx-serving-file: HIT]. Los pasos para activar y configurar la caché de página con WP Rocket están en el artículo Guía de configuración de WP Rocket .

2️⃣ OPcache

OPcache guarda en memoria el código PHP ya compilado a bytecode, para que al volver a ejecutar el mismo archivo no pase por el analizador de PHP. Viene incluido desde PHP 5.5, y APC y XCache, que se usaban antes, no son compatibles con PHP 7 y ya no se usan. Corresponde al paso ② de 🅑 del orden de procesamiento de arriba.

TipoEstadoDescripción
Zend OPcacheIncluido desde PHP 5.5Es la caché de opcode estándar que se usa hoy y se activa con [opcache.enable=1].
OPcache JITIncluido en OPcache desde PHP 8Convierte el bytecode otra vez a código máquina para ejecutarlo; se activa y desactiva con [opcache.jit].
APCDescontinuadoCaché de opcode que se usaba antes de OPcache; su función de caché de datos continuó en APCu.
XCacheDescontinuadoNo es compatible con PHP 7.
WinCachePara servidores Windows (IIS)Caché de opcode que la documentación oficial de WordPress menciona junto a OPcache.

OPcache se activa con el ajuste de PHP [opcache.enable=1], y el JIT, que llegó con PHP 8, se puede desactivar aparte con [opcache.jit=disable]. La instalación y la configuración están en Zend OPcache: concepto, instalación y configuración (artículo aparte).

3️⃣ Caché de objetos

La caché de objetos guarda resultados de consultas a la base de datos u objetos calculados en un almacén en memoria como Redis o Memcached. Por defecto, WordPress solo recuerda los objetos dentro de una misma solicitud; hay que conectar un almacén como Redis para que los resultados sigan ahí al terminar la solicitud. Corresponde al paso ③ de 🅑 del orden de procesamiento de arriba.

TipoAspecto¿Persiste tras la solicitud?Descripción
WP_Object_CachePredeterminada de WordPressNoCaché integrada que solo recuerda dentro de una misma solicitud.
RedisCaché de objetosSíAlmacén en memoria aparte; se conecta con el drop-in del plugin Redis Object Cache.
MemcachedCaché de objetosSíAlmacén en memoria aparte.
APCuCaché de objetosSí (en el mismo servidor)Guarda en la memoria compartida que usa PHP.
archivoCaché de objetosSíGuarda como archivos en el disco.
Buffer pool de InnoDBCaché propia de la base de datos · no es caché de objetosSíMySQL y MariaDB mantienen en memoria los datos de las tablas y los índices.
Caché de consultasCaché propia de la base de datos · no es caché de objetos—Se eliminó en MySQL 8.0; MariaDB lo conserva, pero desactivado por defecto.

WordPress se conecta a Redis mediante el archivo drop-in ([object-cache.php]) que añade el plugin Redis Object Cache. Los pasos de instalación están en Instalar y configurar Redis Cache en WordPress (artículo aparte).

🔢 FAQ & contenido recomendado

Responde una copia antigua que quedó en la caché de página o en el CDN. Vacía la caché de esa entrada en tu plugin de caché y, si usas un CDN, vacía también la copia del CDN.

Los plugins de caché de página como WP Rocket no envían páginas guardadas a los usuarios con sesión iniciada en su configuración predeterminada. El panel de administración y las páginas con sesión iniciada las crea PHP de nuevo cada vez, y entonces OPcache y la caché de objetos mantienen la velocidad.

En Chrome, pulsa [Ctrl+Shift+R] ([Cmd+Shift+R] en Mac) para recargar la página actual sin caché. Para borrar toda la caché guardada, ve a [Más] arriba a la derecha → [Eliminar datos de navegación] y elige [Archivos e imágenes almacenados en caché].

💾 Artículos sobre caché 10 artículos
🗂️ Caché
📋 Caché: definición y campos 📄 Caché del sitio web y del servidor
📋 Guía de ajustes de WP Rocket 📄 Zend OPcache 📄 Instalar Redis Cache
📄 ¿Qué es un CDN? 📄 Varnish Cache
📋 Prueba de velocidad de WP Rocket 📄 Caso de mejora de velocidad 📄 Plugins de caché y optimización

ℹ️ Aviso de afiliados
El contenido de este sitio incluye enlaces de afiliado. Cuando un visitante compra un producto o servicio a través de uno de ellos, el sitio recibe una comisión del vendedor. El importe que paga el comprador(baja durante las promociones ↓)no aumenta. Los precios, descuentos y existencias publicados corresponden al momento de redacción y pueden variar, así que confírmalos con el vendedor antes de comprar. Los productos se eligen y evalúan con criterios propios, y las comisiones no influyen en el orden ni en el contenido de las reseñas.

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *

Demuestra que eres humano: 5   +   2   =