El cache de Cloudflare y WordPress
Por defecto, Cloudflare cachea automaticamente los archivos estaticos de un sitio web: imagenes, CSS, JavaScript, fuentes y otros recursos que no cambian frecuentemente. Sin embargo, Cloudflare no cachea las paginas HTML dinamicas de WordPress por defecto, ya que no puede saber si el contenido es el mismo para todos los usuarios o si varía segun la sesion.
Con la configuracion correcta de reglas de pagina (Page Rules) o Cache Rules en Cloudflare, es posible indicarle al CDN que cachee tambien el HTML de WordPress para usuarios no autenticados, lo que puede reducir dramaticamente la carga del servidor y mejorar los tiempos de respuesta.
Configurar cache de HTML con Page Rules
- Acceder al panel de Cloudflare y seleccionar el dominio.
- Ir a Rules > Page Rules.
- Crear una regla para excluir del cache las paginas dinamicas de WordPress primero (mas especifico primero):
URL: tudominio.com/wp-admin/* Configuracion: Cache Level = Bypass URL: tudominio.com/wp-login.php Configuracion: Cache Level = Bypass
Cache Rules modernas (alternativa a Page Rules)
Las Cache Rules son el sucesor de las Page Rules en Cloudflare con mayor flexibilidad. Ir a Caching > Cache Rules y crear reglas para controlar que se cachea y que no:
| URL o condicion | Accion de cache |
|---|---|
| Ruta empieza con /wp-admin | Bypass cache (no cachear) |
| URI es /wp-login.php | Bypass cache |
| Cookie contiene wordpress_logged_in | Bypass cache (usuario autenticado) |
| Cookie contiene woocommerce_items_in_cart | Bypass cache (carrito activo) |
| Resto del sitio | Cache todo (Cache Everything) |
Purgar el cache de Cloudflare
Cuando se publica contenido nuevo en WordPress, el cache de Cloudflare debe vaciarse para que los visitantes vean la version actualizada:
- Desde el panel de Cloudflare: Ir a Caching > Configuration > Purge Cache. Se puede purgar todo el cache o URLs especificas.
- Con el plugin de WordPress: El plugin oficial de Cloudflare para WordPress puede configurarse para purgar automaticamente el cache cuando se publica o actualiza contenido.
- Via API de Cloudflare: Para integraciones automatizadas, usar la API REST de Cloudflare para purgar el cache programaticamente.
Cabeceras de cache en la respuesta
Para verificar si una pagina esta siendo servida desde el cache de Cloudflare, revisar la cabecera CF-Cache-Status en la respuesta HTTP:
curl -I https://tudominio.com | grep -i "cf-cache"
Los valores posibles son: HIT (servida desde cache), MISS (no estaba en cache, se busco en el servidor), BYPASS (regla indica no cachear), EXPIRED (estaba en cache pero vencio).
