¿Te preocupa que la web headless responda lento, que las APIs se saturen o que los usuarios reciban datos desactualizados? Muchas implementaciones headless fallan por no implementar la caché adecuada para las respuestas JSON/GraphQL. Esta guía resuelve de forma clara y práctica cómo aplicar cache para headless wp sin complicaciones técnicas innecesarias.
Puntos clave: Lo que debes saber en 1 minuto
La caché para headless wp debe centrarse en la API : cachear páginas HTML no es suficiente; hay que cachear las respuestas JSON/GraphQL.
Usar CDN/edge es la forma más simple y segura : servicios como Cloudflare o Fastly pueden cachear JSON y manejar invalidaciones con webhooks.
Elegir plugins de purga, no plugins de caché tradicional : para principiantes lo recomendable es un plugin sencillo que envíe webhooks de purga a la CDN o cache de borde.
Configurar reglas de cache-control y bypass para previews : evitar cachear contenido autenticado y previews con headers o cookies.
Hay opciones económicas y listas para usar : combos de plugin gratuito + CDN con plan básico suelen ser suficientes para la mayoría de proyectos.
✉
¿Quieres más información? Escríbenos y te orientamos
Mejor plugin cache headless para principiantes: opciones recomendadas según tipo de web
Para quienes gestionan su primera web headless, la prioridad es facilidad, compatibilidad y bajo riesgo. A continuación, recomendaciones según escenario.
Sitio estático o SSG (Next.js, Gatsby) que consulta la REST/GraphQL de WP
Recomendado: Cloudflare Workers + regla de cache para JSON . No requiere tocar el servidor WP; se configura en el dashboard de Cloudflare.
Alternativa plugin: WP Offload Cache? No , los plugins tradicionales no trabajan sobre JSON directamente.
Sitio con SSR o ISR (Next.js con server-side o incremental)
Recomendado: Usar un plugin de purga y webhooks (p. ej. 'WP Webhooks' o 'Purge Cache For Cloudflare') para invalidar paths JSON tras publicar/actualizar.
Complemento: configurar reglas de Cache-Control desde la capa CDN/edge.
App en producción con contenido dinámico y usuarios autenticados
Recomendado: Redis o Memcached en servidor para object cache (mejor para reduce carga en WP admin), y CDN para respuestas públicas.
Plugin sugerido: Redis Object Cache (si el hosting lo permite) combinado con webhooks para CDN.
Tabla comparativa rápida
Escenario
Solución simple para principiantes
Ventaja
Nivel técnico
SSG estático
Cloudflare + reglas JSON
Configuración centralizada, coste bajo
Bajo
SSR/ISR
Plugin de purga + CDN
Integración con flujos de deploy, invalidación fiable
Medio
Contenido dinámico
Redis (hosting) + CDN
Reduce carga en WP, latencia baja
Medio
Previews/autenticado
Bypass por header/cookie
Evita servir contenido privado cacheado
Medio
Cómo configurar cache headless paso a paso (ejemplo con Cloudflare y plugin de purga)
Paso 1: decidir qué cachear
Cachear respuestas públicas de la REST API y/o GraphQL.
No cachear endpoints que devuelvan datos personalizados por usuario (carritos, perfiles).
Paso 2: crear reglas de cache en la CDN (ejemplo Cloudflare)
En el panel de Cloudflare ir a "Rules > Transform Rules" y crear una regla que detecte requests a /wp-json/* o /graphql.
Establecer cache ttl (ej. 3600s) y añadir header Cache-Control si se desea.
Activar "Edge Cache TTL" para que la CDN cachee la respuesta incluso si el origin no tiene caché larga.
Paso 3: instalar plugin de purga en WordPress
Instalar un plugin ligero como Purge Cache For Cloudflare o WP Webhooks (ambos gratuitos con configuración sencilla).
En el plugin, pegar la API token de Cloudflare con permisos de 'Cache Purge'.
Configurar el plugin para purgar rutas relevantes al publicar (post, page, tipo de contenido personalizado).
Paso 4: asegurar previews y contenido autenticado
Añadir en la CDN una regla para no cachear si existe cookie o header de preview, por ejemplo WordPress preview cookie.
En la REST API configurar respuesta con header: Cache-Control: private, no-store para endpoints autenticados.
Paso 5: probar y medir
Usar curl o Postman para verificar headers: curl -I https://example.com/wp-json/wp/v2/posts/123 debe devolver CF-Cache-Status y Cache-Control.
Medir latencia antes y después con herramientas como WebPageTest o simple curl timings.
✉
¿Quieres más información? Escríbenos y te orientamos
Guía simple plugins cache para API WordPress: qué buscar y cómo instalarlos
Qué buscar en un plugin para entornos headless
Soporte explícito para purgar CDN mediante webhooks o API.
Capacidad de purgar rutas específicas (endpoints API) y no solo URLs HTML.
Ligereza: sin minificación de HTML ni hooks que afecten a la API.
Buen registro de actividad y compatibilidad con hosting común.
Plugins recomendables y por qué
Purge Cache For Cloudflare: fácil , directo, purga por URL y por tag; ideal para principiantes con Cloudflare.
WP Webhooks: versátil , permite enviar webhooks a cualquier endpoint (por ejemplo a una función edge o CDN).
WP-CLI + scripts de purga: útil para despliegues automatizados (requiere acceso SSH).
Redis Object Cache: no es obligatorio pero recomendable si el hosting lo soporta; reduce llamadas a base de datos.
Instalación básica (ejemplo Purge Cache For Cloudflare)
Plugins > Añadir nuevo > buscar "Purge Cache For Cloudflare" > instalar y activar.
Ajustes > Purge Cache For Cloudflare > introducir API token (solo permisos 'Cache Purge') > guardar.
Marcar eventos que dispararán purga: publicar, actualizar, eliminar.
Qué plugin usar si cache headless falla: diagnóstico y remedios rápidos
Problema: datos no se actualizan tras publicar
Verificar si la purga llegó al CDN: revisar logs del plugin o panel Cloudflare.
Si la purga falla, usar curl para purgar manualmente: curl -X POST "https://api.cloudflare.com/client/v4/zones/{zone-id}/purge_cache" -H "Authorization: Bearer TOKEN" -H "Content-Type: application/json" --data '{"files":["https://example.com/wp-json/wp/v2/posts/123"]}'.
Problema: contenidos privados aparecen cacheados
Revisar reglas que detectan cookies/headers de preview.
Asegurar que los endpoints que requieren autenticación devuelvan Cache-Control: private, no-store.
Problema: la API responde lento solo en picos
Activar object cache (Redis) para reducir consultas al DB.
Aumentar TTL de la CDN para bajar número de peticiones al origin.
Qué plugin alternativo instalar si el actual falla
Cambiar a WP Webhooks si el plugin específico de CDN no purga bien: permite enviar la purga a cualquier endpoint.
Si la falla es por saturación, añadir Redis Object Cache y una solución CDN/edge robusta (Fastly o Cloudflare Pro).
Estrategias de invalidación: mejores prácticas para headless wp
Usar purga por URL para cambios puntuales.
Usar purga por tag (si la CDN/edge lo soporta) para invalidar colecciones (por ejemplo todos los posts de una categoría).
En SSG/ISR, integrar el webhook en el flujo de deploy para regenerar páginas estáticas.
Programar TTL adecuados: contenido muy estático puede tener TTL largo; noticias o actualizaciones frecuentes deben tener TTL corto.
Flujo básico de caché para headless WP
📝 Editor publica → 🔔 WordPress envía webhook → 🌐 CDN purga/actualiza → ✅ Usuarios reciben contenido actualizado
Si se usa SSG: 🔁 Webhook activa nuevo build y despliegue en edge.
✉
¿Quieres más información? Escríbenos y te orientamos
Ventajas, riesgos y errores comunes
Beneficios / cuándo aplicar ✅
Reducir latencia : cache en edge reduce tiempo de respuesta global.
Aumentar disponibilidad : menos peticiones al origin evita sobrecarga.
Escalabilidad económica : muchos CDN tienen planes económicos comparados con mayor CPU en el hosting.
Errores que debes evitar / riesgos ⚠️
Cachear contenido autenticado : evitar por completo.
No imponer bypass para previews : arriesga mostrar borradores a usuarios.
Usar plugins de caché HTML tradicionales sin controlar la API : pueden no afectar a respuestas JSON.
Preguntas frecuentes
¿Qué es cache para headless wp?
Es la estrategia que guarda respuestas de la API (REST/GraphQL) en capas de caché (CDN/edge, object cache) para reducir latencia y carga del servidor.
¿Se puede usar WP Rocket para headless?
WP Rocket actúa sobre HTML y assets; no cachea automáticamente respuestas JSON. Para headless, combinar WP Rocket con un plugin de purga y CDN no soluciona la caché de la API.
¿Cómo evitar cachear previews y contenido privado?
Configurar reglas en la CDN que detecten cookies o headers de preview y aplicar Cache-Control: no-store en endpoints autenticados.
¿Cuánto cuesta una solución cache headless económica?
Se puede montar con plugin gratuito + Cloudflare Free/Pro . Coste inicial puede ser 0–10 €/mes; planes Pro añaden funciones por ~5–20 €/mes.
¿Necesita el hosting soporte para Redis?
Sí, Redis requiere soporte en el servidor o servicio gestionado. Muchos hostings ofrecen Redis en planes medios; alternativa: confiar solo en CDN para reducir carga.
Cache-Control (max-age, s-maxage, stale-while-revalidate), ETag y Vary (por ejemplo Vary: Cookie si aplica) son esenciales.
¿Cómo medir si la caché funciona?
Comprobar headers (CF-Cache-Status en Cloudflare), latencia con curl y visitas al origin en el panel del hosting/CDN.
¿Se necesita programador para implementar la caché?
Muchas soluciones básicas pueden configurarse sin programador (Cloudflare + plugin de purga). Para invalidaciones complejas o integración CI/CD puede ser necesario soporte técnico.
Siguientes acciones
Revisar si el front-end consume /wp-json/ o /graphql y listar endpoints públicos.
Activar una CDN (Cloudflare Free es suficiente) y crear regla para cachear respuestas JSON públicas.
Instalar un plugin de purga (Purge Cache For Cloudflare o WP Webhooks) y configurar webhooks al publicar.