Caché en WordPress: la diferencia entre caché de página, caché de objetos y CDN (y por qué tu WooCommerce sigue lento)
Instalar WP Rocket o W3 Total Cache no resuelve todo. Si tu WooCommerce sigue lento aunque tengas un plugin de caché instalado, es porque estás usando el tipo de caché equivocado. Te explicamos la diferencia real entre caché de página, caché de objetos (Redis/Memcached) y CDN, cuándo usar cada uno, y por qué caché de página no sirve para el checkout de WooCommerce. Con casos reales documentados.
En una línea: La caché de página guarda el HTML completo de una página para servirlo rápidamente. La caché de objetos guarda resultados de consultas a la base de datos para evitar repetirlas. El CDN distribuye recursos estáticos (imágenes, CSS, JS) desde servidores cercanos al usuario. Son tres cosas diferentes que resuelven problemas diferentes. Si tu WooCommerce es lento, probablemente necesitas caché de objetos (Redis), no más caché de página.
1. Por qué la caché no es una sola cosa
Cuando alguien dice "instala un plugin de caché", generalmente se refiere a caché de página: un plugin que guarda el HTML completo de una página para servirlo rápidamente sin ejecutar PHP ni consultar la base de datos.
Pero WordPress no solo genera HTML. WordPress hace consultas a la base de datos, procesa lógica, carga archivos, y ejecuta código PHP en cada visita. Caché de página resuelve solo una parte del problema.
Como ves, hay múltiples capas donde puedes implementar caché. Cada capa resuelve un problema diferente:
- CDN: Reduce la distancia entre el visitante y los recursos estáticos (imágenes, CSS, JS)
- Caché de página: Evita que WordPress genere HTML desde cero en cada visita
- Caché de objetos: Evita que WordPress haga las mismas consultas a la base de datos repetidamente
Instalar un plugin de caché de página en un WooCommerce es como ponerle alerón a un auto con el motor descompuesto. Se ve más rápido, pero no lo es. Para WooCommerce, necesitas caché de objetos (Redis/Memcached), no caché de página.
— Manuel Macedo, Mexico WordPress2. Caché de página: qué es, cuándo funciona, cuándo NO funciona
Guarda el HTML completo de una página
Cómo funciona: Cuando un visitante carga una página, WordPress genera el HTML ejecutando PHP y consultando la base de datos. Un plugin de caché de página guarda ese HTML completo en un archivo estático. La próxima vez que alguien visite la misma página, el servidor entrega el archivo HTML sin ejecutar PHP ni consultar la base de datos.
Cuándo funciona bien:
- Páginas estáticas: portada, página "Acerca de", entradas de blog
- Sitios corporativos con poco contenido dinámico
- Blogs y sitios de contenido
Cuándo NO funciona:
- Páginas dinámicas: carrito, checkout, mi cuenta en WooCommerce
- Páginas con contenido personalizado por usuario
- Páginas con formularios que necesitan procesamiento del servidor
- Sitios con contenido que cambia frecuentemente (cada minuto)
Muchos sitios de WooCommerce tienen plugins de caché de página configurados incorrectamente, cacheando páginas que no deberían cachearse: carrito, checkout, mi cuenta. Esto causa que los clientes vean carritos de otros clientes, pedidos duplicados, o sesiones corruptas. Si tienes WooCommerce, las páginas de carrito, checkout y mi cuenta deben estar excluidas de la caché de página.
Plugins populares de caché de página
- WP Rocket ($49-$249 USD/año): el más popular, fácil de configurar
- W3 Total Cache (gratuito): muy completo pero complejo de configurar
- WP Super Cache (gratuito): simple, desarrollado por Automattic
- LiteSpeed Cache (gratuito): solo para servidores con LiteSpeed
3. Caché de objetos (Redis/Memcached): por qué es crítica para WooCommerce
Guarda resultados de consultas a la base de datos
Cómo funciona: WordPress hace muchas consultas a la base de datos en cada visita: obtener información de productos, calcular totales, verificar sesiones, cargar configuraciones. La caché de objetos guarda los resultados de estas consultas en memoria (usando Redis o Memcached). La próxima vez que WordPress necesite los mismos datos, los obtiene de la caché en milisegundos, sin consultar la base de datos.
Cuándo es crítica:
- WooCommerce con catálogos grandes (más de 1,000 productos)
- Sitios con alto tráfico (más de 10,000 visitas/día)
- Sitios con consultas complejas o lentas
- Sitios donde la caché de página no es suficiente (contenido dinámico)
Requisitos:
- Servidor con Redis o Memcached instalado
- Plugin de WordPress para conectar con Redis/Memcached (Redis Object Cache, W3 Total Cache, etc.)
- Configuración correcta en
wp-config.php
Caché de página guarda el HTML completo de una página. Caché de objetos guarda resultados de consultas individuales a la base de datos. Son complementarias, no excluyentes. Para WooCommerce, necesitas ambas: caché de objetos para el checkout y páginas dinámicas, y caché de página para portada, catálogo y páginas estáticas.
Redis vs Memcached
| Característica | Redis | Memcached |
|---|---|---|
| Almacenamiento | En memoria + disco (persistente) | Solo en memoria (volátil) |
| Estructuras de datos | Strings, hashes, listas, sets, sorted sets | Solo strings |
| Rendimiento | Excelente | Excelente |
| Uso de memoria | Más eficiente | Menos eficiente |
| Popularidad en WordPress | Más popular | Menos común |
| Recomendación | Recomendado | Alternativa |
Nuestra recomendación: Usa Redis. Es más flexible, más eficiente en uso de memoria, y tiene mejor soporte en plugins de WordPress. La mayoría de los hostings administrados de calidad ofrecen Redis incluido.
4. CDN: qué es y cómo complementa la caché
Distribuye recursos estáticos desde servidores cercanos al usuario
Cómo funciona: Un CDN (Cloudflare, BunnyCDN, Fastly) tiene servidores en múltiples ubicaciones geográficas. Cuando un visitante carga tu sitio, el CDN entrega los recursos estáticos (imágenes, CSS, JavaScript) desde el servidor más cercano al visitante, reduciendo la latencia.
Cuándo es útil:
- Sitios con visitantes de múltiples países o regiones
- Sitios con muchas imágenes o recursos estáticos pesados
- Sitios con alto tráfico que necesitan distribuir la carga
Cuándo NO es suficiente:
- Si el problema es PHP lento o consultas lentas a la base de datos
- Si el servidor está saturado
- Si el sitio tiene código mal optimizado
Un CDN es excelente para entregar recursos estáticos rápidamente, pero no resuelve problemas de rendimiento del lado del servidor. Si tu WordPress tarda 5 segundos en generar HTML, un CDN no va a ayudar. Necesitas optimizar PHP, base de datos y caché de objetos primero.
CDN populares
- Cloudflare (gratuito / $20 USD/mes Pro): el más popular, incluye seguridad y optimizaciones
- BunnyCDN ($0.01/GB): muy económico, excelente rendimiento
- Fastly (desde $50 USD/mes): usado por sitios de alto tráfico
- KeyCDN ($0.04/GB): buena alternativa
5. Los 5 errores comunes con caché en WordPress
Como mencionamos, caché de página en carrito, checkout o mi cuenta causa que los clientes vean carritos de otros clientes, pedidos duplicados, o sesiones corruptas. Estas páginas deben estar excluidas de la caché de página.
Tener WP Rocket + W3 Total Cache + LiteSpeed Cache activos al mismo tiempo. Cada plugin intenta cachéar la página de forma diferente, causando conflictos, páginas en blanco, o contenido desactualizado. Elige UN plugin de caché de página y configúralo correctamente.
Configurar Cloudflare para cachéar todas las páginas, incluyendo carrito y checkout. Esto causa los mismos problemas que caché de página en páginas dinámicas. Configura Cloudflare para cachéar solo recursos estáticos (imágenes, CSS, JS) y páginas estáticas (portada, blog), excluyendo páginas dinámicas.
Actualizar una entrada o producto y que los visitantes sigan viendo la versión antigua porque la caché no se purgó. Configura tu plugin de caché para purgar automáticamente cuando actualices contenido, o purga manualmente después de cambios importantes.
Instalar WP Rocket y pensar que el sitio está optimizado, cuando en realidad WooCommerce necesita caché de objetos (Redis) para funcionar rápido. La caché de página no sirve para checkout, carrito o páginas de producto dinámicas. Necesitas Redis o Memcached.
6. Cómo diagnosticar qué tipo de caché necesitas
| Síntoma | Problema probable | Solución |
|---|---|---|
| Portada y páginas estáticas lentas | Falta caché de página | Instalar WP Rocket o similar |
| WooCommerce lento (checkout, carrito, producto) | Falta caché de objetos | Instalar Redis + plugin Redis Object Cache |
| Imágenes y recursos estáticos lentos | Falta CDN | Configurar Cloudflare o BunnyCDN |
| Sitio lento en ciertas regiones geográficas | Falta CDN | Configurar CDN con servidores en esas regiones |
| Sitio lento en todas partes | Problema de servidor o código | Optimizar PHP, base de datos, o migrar a mejor hosting |
| Admin de WordPress lento | Falta caché de objetos | Instalar Redis + plugin Redis Object Cache |
Herramientas de diagnóstico
- Query Monitor (plugin gratuito): muestra queries lentas, hooks, y rendimiento de plugins
- GTmetrix (gratuito): analiza rendimiento y sugiere optimizaciones
- WebPageTest (gratuito): prueba de rendimiento desde múltiples ubicaciones
- New Relic (desde $0/mes con límites): monitoreo avanzado de rendimiento
7. Caso real: dos capas de caché peleándose
Periódico digital con dos capas de caché que se pelean: de 4.2s a 1.1s
Síntoma: Un periódico digital con alto tráfico reportó que la portada tardaba más de 4 segundos en cargar. El sitio tenía 30 plugins activos, incluyendo dos plugins de caché (WP Super Cache y W3 Total Cache) y Cloudflare.
Diagnóstico: Los dos plugins de caché estaban peleándose entre sí, generando caché duplicado y sirviendo páginas inconsistentes. Además, Cloudflare estaba cacheando páginas dinámicas (portada con noticias de última hora) que deberían actualizarse cada minuto. El resultado: contenido desactualizado y rendimiento pobre.
Solución:
- Desactivamos W3 Total Cache y dejamos solo WP Super Cache
- Configuramos WP Super Cache para excluir páginas de admin y preview
- Configuramos Cloudflare con Page Rules para cachéar solo recursos estáticos y portada con TTL de 60 segundos
- Instalamos Redis Object Cache para caché de objetos
- Optimizamos queries lentas identificadas con Query Monitor
Resultado: La portada pasó de 4.2 segundos a 1.1 segundos. El tráfico orgánico se recuperó en 6 semanas (había caído porque Google penalizó el sitio lento). El cliente dejó de recibir quejas de lectores sobre contenido desactualizado.
8. Caso real: WooCommerce con Redis que bajó de 8s a 1.4s
Tienda de ropa con 4,500 productos: checkout en 8.2 segundos bajó a 1.4s
Síntoma: Una tienda de ropa con 4,500 productos y 15,000 visitas mensuales reportó que el checkout tardaba más de 8 segundos. Los clientes abandonaban el carrito antes de completar la compra. La tasa de conversión era del 11%, muy por debajo del promedio de la industria (20-25%).
Diagnóstico: Identificamos cuatro problemas principales:
- Queries lentas: la tabla
wp_postmetatenía 2.3 millones de filas sin índices optimizados. Cada consulta de producto tardaba 1.8 segundos. - Sin caché de objetos: el servidor no tenía Redis instalado. Cada visita hacía las mismas consultas desde cero.
- Imágenes sin optimizar: las imágenes de productos eran JPEG de 2000x3000px, sin convertir a WebP.
- Scripts innecesarios: 12 plugins cargaban scripts en el checkout (redes sociales, chat en vivo, formularios, analytics duplicados).
Solución:
- Optimización de índices en
wp_postmetaywp_woocommerce_order_itemmeta - Instalación de Redis en el servidor y configuración de Redis Object Cache
- Conversión de 12,000 imágenes de productos a WebP con lazy loading
- Desactivación de scripts innecesarios en el checkout con
wp_dequeue_script - Actualización de PHP 7.4 a PHP 8.2 (después de pruebas en staging)
Resultado: El checkout pasó de 8.2 segundos a 1.4 segundos. La tasa de conversión subió de 11% a 22%. Con un ticket promedio de $1,200 MXN, la tienda pasó de 165 ventas mensuales a 330 ventas mensuales. Eso son $198,000 MXN adicionales al mes. La optimización costó $45,000 MXN y se pagó sola en la primera semana.
Para WooCommerce, la combinación ganadora es: caché de objetos (Redis) + caché de página (WP Rocket) + CDN (Cloudflare). Cada uno resuelve un problema diferente. Si solo usas caché de página, tu checkout seguirá lento. Si solo usas Redis, tus páginas estáticas no estarán optimizadas. Si solo usas CDN, no resuelves problemas del lado del servidor.
9. Checklist de configuración de caché
Si vas a configurar caché en tu WordPress, pasa este checklist:
| Verificación | Prioridad | Cómo |
|---|---|---|
| Caché de página configurada (WP Rocket o similar) | Crítica | Instalar plugin y configurar para páginas estáticas |
| Páginas dinámicas excluidas de caché de página | Crítica | Excluir carrito, checkout, mi cuenta en WooCommerce |
| Redis o Memcached instalado en el servidor | Crítica | Verificar con hosting o instalar manualmente |
| Plugin de caché de objetos configurado | Crítica | Redis Object Cache o similar |
| CDN configurado para recursos estáticos | Alta | Cloudflare, BunnyCDN o similar |
| CDN excluyendo páginas dinámicas | Crítica | Configurar Page Rules en Cloudflare |
| Solo un plugin de caché de página activo | Crítica | Desactivar plugins duplicados |
| Purga automática de caché al actualizar contenido | Alta | Configurar en plugin de caché |
| Imágenes optimizadas (WebP, lazy loading) | Alta | ShortPixel, Imagify o similar |
| Scripts innecesarios desactivados en checkout | Alta | Asset CleanUp o Perfmatters |
Configurar caché correctamente requiere conocimiento técnico. Un error en la configuración puede causar que tu sitio muestre contenido desactualizado, que el checkout falle, o que el rendimiento empeore en lugar de mejorar. Si no tienes experiencia, contrata a un profesional. El costo de una configuración correcta es una fracción del costo de perder ventas por un sitio lento.
¿Tu WordPress es lento aunque tengas caché instalada?
Auditamos tu configuración de caché, identificamos conflictos, configuramos Redis, optimizamos queries, y documentamos los resultados. Si tu WooCommerce tarda más de 3 segundos en el checkout, podemos bajarlo a menos de 2 segundos.
10. Preguntas frecuentes
Depende del tamaño del sitio y la complejidad. Un sitio corporativo pequeño toma entre 4 y 6 horas (configurar caché de página, Redis, CDN, optimizar queries). Un WooCommerce con catálogo grande toma entre 8 y 15 horas (incluye optimización de índices, configuración de Redis, exclusión de páginas dinámicas, pruebas exhaustivas). El costo varía según el alcance, pero el retorno se mide en velocidad y conversiones. Solicita una cotización aquí.
Si tienes conocimientos técnicos (administrar servidor, configurar Redis, editar wp-config.php), sí. Pero si no, es arriesgado. Un error en la configuración puede causar que tu sitio muestre contenido desactualizado, que el checkout falle, o que el rendimiento empeore. Además, necesitas acceso SSH al servidor para instalar Redis, y no todos los hostings lo permiten. Si no tienes experiencia, lo más seguro es contratar a un profesional.
No. Redis requiere que el servidor lo tenga instalado y configurado. La mayoría de los hostings administrados de calidad (Kinsta, WP Engine, SiteGround) ofrecen Redis incluido. Los hostings compartidos baratos generalmente no lo ofrecen. Si tu hosting no tiene Redis, puedes: (1) migrar a un hosting que lo ofrezca, (2) instalar Redis manualmente en un VPS (requiere conocimiento técnico), o (3) usar Memcached como alternativa (menos común pero también efectivo).
Depende del sitio. En sitios con consultas lentas a la base de datos (WooCommerce con catálogos grandes, sitios con muchas consultas personalizadas), Redis puede reducir el tiempo de carga entre 30% y 70%. En sitios simples con pocas consultas, la mejora es menor (10-20%). En el caso real que documentamos (tienda con 4,500 productos), el checkout pasó de 8.2s a 1.4s (-83%) después de implementar Redis y optimizar queries.
No. Cloudflare es un CDN, no un plugin de caché de página. Cloudflare distribuye recursos estáticos (imágenes, CSS, JS) desde servidores cercanos al usuario, pero no cachea el HTML completo de las páginas (a menos que configures Page Rules específicas). Para caché de página, necesitas un plugin como WP Rocket. Para caché de objetos, necesitas Redis. Cloudflare complementa, pero no reemplaza.
Usa herramientas como GTmetrix o WebPageTest para medir el tiempo de carga. Si la caché de página funciona, verás un "TTFB" (Time To First Byte) bajo (menos de 200ms). Si Redis funciona, verás menos consultas a la base de datos en Query Monitor. Si el CDN funciona, verás que los recursos estáticos se cargan desde dominios como cdn.tusitio.com o cloudflare.com. También puedes revisar los headers HTTP: si ves X-Cache: HIT, la caché funcionó.
