Si las cabeceras devuelven x-cdn-cache-status MISS, significa que la petición la sirvió el servidor de origen: la respuesta no estaba en la caché y se tuvo que pedir al servidor. Esto puede aumentar el tiempo hasta el primer byte (TTFB) y el tiempo total de carga. En las páginas que quieres que se cacheen, lo normal es ver x-cdn-cache-status HIT.
Un estado de caché MISS o BYPASS suele deberse a una de estas cuatro causas:
- Cookies del navegador
- Plugins de caché en conflicto
- Cabeceras Cache-Control en un archivo
.htaccess - Tener la sesión iniciada en
/wp-admin
Cookies del navegador
Cuando una página usa una cookie, la caché del borde de la CDN evita cachear ese contenido automáticamente. Las cookies funcionan junto con PHP mientras se carga la página para realizar una acción única; si la página se sirve desde la caché, ya fue generada antes por el servidor y la cookie no puede generarse ni actuar como se espera.
Algunas aplicaciones usan además una cookie PHPSESSID, que impide que las páginas se cacheen; por ejemplo, WooCommerce establece una cookie PHPSESSID. En muchos casos esta cookie no cambia el comportamiento, así que desactivarla es una forma de optimizar tu web para que funcione mejor con la caché.
Para ello, StackCache tiene una opción:
- Entra en
/wp-adminy abre StackCache, en el menú de la izquierda. - Por defecto estará marcada la opción Remove PHP Session Cookies Matching Empty PHP Sessions, pero puedes probar a seleccionar Remove PHP Session Cookies From All Pages.
- Pulsa Save Changes.
Cuando lo guardes, cierra la sesión de /wp-admin y recarga tu web o la página que quieres comprobar.
Plugins de caché en conflicto
Nuestra plataforma incluye varias capas de caché integradas. Una de las más eficaces, sobre todo a gran escala, es la caché del borde (edge cache).
Por desgracia, la mayoría de los plugins de caché interfieren con ella, por lo que no recomendamos usar ningún plugin de caché en tu web WordPress. Esto incluye, entre otros, W3 Total Cache (W3TC), WP Super Cache, WP Rocket y Hummingbird.
No te preocupes, no los necesitas: todos los plugins de caché están pensados para dar velocidad, y el plugin StackCache hace ese trabajo por ti.
Cabeceras Cache-Control en un archivo .htaccess
Puedes establecer las cabeceras Cache-Control y Expires en el archivo .htaccess de la carpeta raíz de la web. Te permiten controlar varios aspectos de cómo se cachea tu sitio, incluso impedir la caché por completo.
Si añades Cache-Control: no-store a un .htaccess, las cabeceras HTTP enviarán una directiva que impide cachear la web y recibirás un MISS.
Si recibes un MISS, revisa tu archivo .htaccess por si contiene directivas en conflicto.
Sesión iniciada en /wp-admin
Cuando tienes la sesión iniciada en /wp-admin, siempre se fuerza un BYPASS en las cabeceras HTTP para que el administrador de WordPress nunca se cachee. Si quieres comprobar que tu web se está cacheando, cierra primero la sesión de /wp-admin y después prueba tu sitio; de lo contrario, nunca se cacheará.