
Hay dos mejoras de velocidad que no dependen de tu hosting ni de tu plugin de caché, sino del navegador de tu visita. Cuando funcionan bien, navegar por tu sitio se siente instantáneo. Cuando no, nadie se entera de que se las está perdiendo.
1. Carga especulativa: adelantarse al clic
Desde la versión 6.8, WordPress le dice al navegador: «si el usuario muestra intención de ir a otra página de este sitio, empieza a descargarla ya». Lo hace con un estándar llamado Speculation Rules.
Por defecto, WordPress lo activa de forma prudente:
- Solo para visitantes no conectados.
- En modo prefetch: descarga el HTML de la página siguiente, pero no la «dibuja».
- Con intensidad conservadora: empieza cuando el usuario presiona el enlace, no antes.
- Nunca para el escritorio, el login ni otros enlaces internos de WordPress.
Solo funciona en navegadores basados en Chromium (Chrome, Edge, Brave, Opera). En Safari y Firefox simplemente no hace nada, y no rompe nada.
2. bfcache: el botón Atrás instantáneo
El bfcache (caché de ida y vuelta) es una función del navegador: cuando sales de una página, la guarda completa en memoria, con su scroll y su estado. Si vuelves con el botón Atrás, la muestra al instante, sin pedir nada al servidor.
No hay que activarlo: viene en todos los navegadores modernos. Pero hay cosas que lo impiden, y son muy comunes en WordPress:
- La cabecera
Cache-Control: no-store, que algunos plugins y hostings envían a todas las páginas. - Scripts que usan el evento
unload(típico de herramientas de analítica o chats antiguos). - Conexiones abiertas (WebSocket) de chats en vivo o notificaciones.
Cómo comprobar si funcionan
El bfcache: abre tu sitio en Chrome, pulsa F12, ve a Application → Back/forward cache y pulsa Test back/forward cache. Si dice «Restored from back/forward cache», funciona. Si no, te muestra la razón exacta.
La carga especulativa: mira el código fuente de tu portada (Ctrl+U) y busca speculationrules. Si aparece un bloque <script type="speculationrules">, está activa.
También puedes revisar la cabecera desde la terminal:
curl -sI https://tudominio.cl/ | grep -i cache-control
Si aparece no-store en páginas públicas, busca qué plugin o regla del servidor lo pone: es probable que no haga falta.
Ajustarlas a tu sitio
Más velocidad (sitios con buen hosting)
El modo prudente es seguro, pero se puede ir más lejos. Este mu-plugin cambia a prerender (la página se carga y se dibuja completa por adelantado) con intensidad moderada (empieza cuando el cursor se queda sobre el enlace). Guárdalo como wp-content/mu-plugins/cwp-especulativa.php:
<?php
/**
* Plugin Name: Carga especulativa a medida (Curso WordPress)
*/
add_filter( 'wp_speculation_rules_configuration', function ( $config ) {
if ( ! is_array( $config ) ) {
return $config; // Está desactivada: no la forzamos.
}
$config['mode'] = 'prerender';
$config['eagerness'] = 'moderate';
return $config;
} );
// Rutas que nunca deben cargarse por adelantado.
add_filter( 'wp_speculation_rules_href_exclude_paths', function ( $rutas ) {
$rutas[] = '/mi-cuenta/*';
$rutas[] = '/salir/*';
return $rutas;
} );
Prerender ejecuta la página completa, incluidos los scripts. Si usas analítica que no reconoce el prerender, podrías contar visitas que nunca ocurrieron. Google Analytics 4 lo maneja bien; herramientas antiguas o hechas a mano, no siempre. Y cada prerender es una petición a tu servidor: en un hosting justo, mejor quédate en prefetch.
Desactivarla (casos raros)
Si tienes enlaces que hacen algo al visitarlos (por ejemplo, «Agregar al carrito» como enlace, o descargas que cuentan visitas), puedes excluirlos agregando la clase no-prefetch al enlace. Y si quieres apagarla del todo:
add_filter( 'wp_speculation_rules_configuration', '__return_null' );
Recuperar el bfcache
Si la prueba de Chrome dice que Cache-Control: no-store lo impide, revisa en este orden:
- Los ajustes de tu plugin de caché o de seguridad (algunos tienen una opción «no cachear en el navegador»).
- Las reglas del
.htaccessque mencionenno-store. - Si usas Cloudflare, las reglas de caché que agregan cabeceras.
Las páginas del escritorio y las de usuarios conectados sí deben llevar no-store: eso es correcto y no hay que tocarlo.
¿La prueba de bfcache te muestra una razón que no entiendes? Cópiala en el foro y te ayudamos a identificar qué plugin la provoca.





