inicio/ noticias/ Casos de Éxito

Qué es el caching en WordPress y cómo funciona

Cómo funciona el caching en WordPress

Descubre qué es el caching en WordPress, qué tipos existen y cómo influye en la velocidad real de tu sitio web o tienda WooCommerce.

Qué es el caching en WordPress y por qué importa

Cada vez que un usuario visita una página WordPress, el servidor ejecuta código PHP, consulta la base de datos MySQL, monta el HTML y lo envía al navegador. Si la página no cambia entre visitas, repetir todo ese proceso para cada petición es un desperdicio de recursos. Ahí es donde entra el caching en WordPress: un mecanismo que almacena una versión ya procesada del contenido para servirla de forma inmediata en las siguientes solicitudes.

El concepto de caché informática no es exclusivo de WordPress. Existe en navegadores, CDNs, servidores proxy y sistemas operativos. Lo que hace especial al ecosistema WordPress es la cantidad de capas donde se puede implementar y las implicaciones que tiene para el rendimiento, la experiencia de usuario y el posicionamiento en buscadores.

Según datos de Google, el 53 % de los usuarios móviles abandona una página que tarda más de tres segundos en cargar. Un sistema de caché bien configurado puede reducir los tiempos de respuesta del servidor (TTFB) de 800-1200 ms a menos de 200 ms en la mayoría de instalaciones WordPress estándar.

Cómo funciona el proceso de caching paso a paso

Para entender cómo funciona la caché en WordPress, conviene visualizar el flujo completo de una petición web:

📩 Guía técnica WordPress en tu email

Recibe artículos sobre rendimiento, WooCommerce y desarrollo WordPress. Sin spam, solo contenido útil.

Suscribirme gratis →
  1. Primera visita (cache miss): El servidor recibe la petición, ejecuta PHP, consulta la base de datos, genera el HTML final y lo envía al navegador. Antes de devolverlo, guarda una copia estática de ese HTML.
  2. Visitas posteriores (cache hit): Cuando llega otra petición a la misma URL, el sistema detecta que ya tiene una copia válida. En lugar de repetir todo el proceso, sirve directamente el archivo estático almacenado.
  3. Invalidación: Cuando el contenido cambia —se edita una entrada, se actualiza un producto, se modifica un menú— el sistema marca esa copia como obsoleta y la regenera en la siguiente visita.

Este ciclo de generación, almacenamiento y purga es el corazón de cualquier sistema de caché. La diferencia entre una implementación buena y una mediocre está en los detalles: qué se cachea, durante cuánto tiempo, y cuándo se invalida exactamente.

Tipos de caché que afectan a WordPress

No existe un solo tipo de caché. En un sitio WordPress intervienen varias capas simultáneamente, y cada una actúa en un punto diferente del flujo:

Caché de página completa (full-page cache)

a black and white sign with the number six on it
Photo by Al Amin Shamim on Unsplash

Es la más impactante. Almacena el HTML completo de cada URL. Cuando un visitante anónimo accede a una página cacheada, el servidor ni siquiera necesita ejecutar PHP. Herramientas como WP Super Cache, W3 Total Cache o los sistemas de caché integrados en hostings como Kinsta o SiteGround trabajan en esta capa.

Su limitación principal: no funciona bien con contenido dinámico personalizado por usuario (carritos de compra, áreas de cliente, páginas con geolocalización). En tiendas WooCommerce, las páginas de carrito, checkout y «mi cuenta» suelen excluirse del full-page cache.

Caché de objetos (object cache)

WordPress tiene un sistema interno de object cache que almacena resultados de consultas a la base de datos durante la misma petición. Pero cuando se combina con un almacenamiento persistente como Redis o Memcached, esos resultados sobreviven entre peticiones. Esto reduce drásticamente la carga sobre MySQL, especialmente en sitios con muchas consultas dinámicas.

En WooCommerce, donde una sola página de producto puede generar decenas de queries (variaciones, precios, stock, productos relacionados), el object cache con Redis puede marcar la diferencia entre un sitio ágil y uno que se arrastra bajo carga.

Caché del navegador (browser cache)

El servidor indica al navegador que guarde localmente ciertos recursos estáticos: imágenes, hojas de estilo CSS, archivos JavaScript. Se controla mediante cabeceras HTTP como Cache-Control y Expires. La ventaja es obvia: si el navegador ya tiene el archivo, no lo pide al servidor. El inconveniente: si actualizas un CSS y el navegador del usuario tiene la versión antigua, verá el diseño roto hasta que expire la caché.

La solución estándar es usar «cache busting» —añadir un parámetro de versión al archivo (style.css?ver=2.3)— para que el navegador lo trate como un recurso nuevo.

Caché de CDN

Las redes de distribución de contenido como Cloudflare almacenan copias de tus archivos estáticos (y opcionalmente del HTML) en servidores distribuidos por todo el mundo. Un usuario en Madrid recibe los archivos desde un nodo cercano en lugar de esperar a que lleguen desde un servidor en Estados Unidos. Esto reduce la latencia geográfica y descarga trabajo del servidor de origen.

Caché de opcode (OPcache)

PHP necesita compilar cada archivo .php a bytecode antes de ejecutarlo. OPcache almacena ese bytecode compilado en memoria, eliminando la fase de compilación en cada petición. Es transparente para el usuario final, pero en un CMS como WordPress —que carga decenas de archivos PHP por petición— el impacto es significativo. La mayoría de hostings de calidad lo tienen habilitado por defecto.

Errores habituales en la configuración de caché

Activar un plugin de caché y olvidarse no es una estrategia. Estos son los problemas que veo con más frecuencia en auditorías de sitios WordPress:

  • Caché doble: Tener un plugin de caché de página activo cuando el hosting ya incluye su propio sistema. El resultado suelen ser conflictos, páginas en blanco o contenido desactualizado.
  • No excluir páginas dinámicas: Cachear la página de carrito o de checkout en WooCommerce provoca que los usuarios vean datos de otros visitantes o carritos vacíos cuando tienen productos.
  • TTL demasiado agresivo: Configurar tiempos de expiración de semanas en un blog que publica a diario significa que los lectores no ven el contenido nuevo. Ajustar el «time to live» al ritmo de actualización del sitio es fundamental.
  • Olvidar la invalidación: Cambiar el diseño, actualizar un producto o modificar un widget sin purgar la caché deja al usuario viendo la versión antigua. Un buen sistema debe invalidar automáticamente las páginas afectadas cuando cambia el contenido relacionado.
  • Ignorar la caché para usuarios logueados: En sitios con membresía o tienda, servir páginas cacheadas a usuarios autenticados puede exponer información privada. La mayoría de plugins excluyen a usuarios logueados por defecto, pero conviene verificarlo.

Cómo verificar que la caché funciona correctamente

No basta con instalar un plugin y asumir que todo va bien. Hay formas concretas de comprobar que el sistema de caché de tu WordPress está funcionando:

Inspeccionar cabeceras HTTP

Abre las herramientas de desarrollo del navegador (F12 → pestaña «Network»), recarga la página y observa las cabeceras de respuesta. Busca indicadores como X-Cache: HIT, X-WP-Super-Cache: Served o cf-cache-status: HIT (en Cloudflare). Si ves «MISS» en todas las peticiones, la caché no está sirviendo contenido almacenado.

Medir el TTFB

El Time To First Byte refleja cuánto tarda el servidor en empezar a responder. Con caché de página activa, debería estar por debajo de 200 ms en la mayoría de casos. Herramientas como GTmetrix, WebPageTest o el propio Lighthouse de Chrome te dan este dato.

Comparar con y sin caché

Desactiva temporalmente la caché, mide los tiempos de carga, reactívala y mide de nuevo. Si no hay diferencia apreciable, algo no está configurado correctamente o hay otro cuello de botella (hosting insuficiente, plugins pesados, base de datos sin optimizar).

Caché y WooCommerce: consideraciones específicas

Las tiendas online tienen una complejidad adicional porque mezclan contenido estático (páginas de categoría, fichas de producto para visitantes anónimos) con contenido altamente dinámico (carrito, sesión de usuario, precios personalizados, stock en tiempo real).

La estrategia óptima suele ser combinar full-page cache para las páginas públicas con object cache persistente (Redis) para las consultas frecuentes a base de datos. Las páginas de carrito, checkout, «mi cuenta» y cualquier endpoint AJAX de WooCommerce deben excluirse del cache de página.

En catálogos grandes —más de 5.000 productos— la caché de consultas de base de datos cobra especial relevancia. Sin ella, cada filtro de categoría o búsqueda puede generar queries pesadas que saturan MySQL bajo tráfico concurrente.

Si quieres profundizar en cómo mejorar el rendimiento técnico de tu proyecto WordPress o WooCommerce, puedes consultar los servicios de desarrollo WordPress disponibles.

Mi opinión como desarrollador WordPress

Desde mi experiencia auditando sitios WordPress, la caché es probablemente el área donde más rendimiento se gana con menos esfuerzo técnico, pero también donde más errores silenciosos se acumulan. He visto tiendas WooCommerce con tres capas de caché superpuestas generando conflictos que nadie detectaba hasta que un cliente reportaba ver el carrito de otro usuario. Y al revés: sitios que llevaban meses con un plugin de caché instalado pero desactivado en la práctica porque una mala configuración lo inutilizaba. Entender qué hace cada capa y verificar que realmente está funcionando es tan importante como activarla. No se trata de instalar y olvidar, sino de medir y ajustar.

¿Necesitas ayuda con tu proyecto? Trabajo con negocios y agencias en WordPress, WooCommerce, IA e integraciones. Escríbeme y lo vemos juntos.

fernandodomecq
// Sobre el autor

fernandodomecq

Desarrollador WordPress freelance especializado en WooCommerce, integraciones e IA. Escribo sobre proyectos web, agencias y buenas prácticas técnicas.

Ver todos los artículos
// Compartir
// contacto — respuesta en < 24h

¿Hablamos de
tu proyecto?

hola@fernandomecq.com