A partir de WordPress 6.8 WordPress incorpora de forma nativa la denominada carga especulativa, como mejora para ofrecer tiempos de carga más rápidos en todas las páginas de un sitio.
Qué es la carga especulativa
La carga especulativa es una API que ofrece a los navegadores la posibilidad de empezar a hacer precarga (prefetch) o prelectura (prerrender) del contenido de ciertos enlaces en según qué condiciones.
La diferencia entre ambos métodos de optimización es la siguiente:
- Precarga (prefetch) – Solo debería usarse para contenido estático, pues hacer lo contrario, cargando por ejemplo JavaScript, puede provocar errores.
- Prelectura (prerrender) – Es seguro usarlo para todo tipo de contenidos.
De este modo, se puede configurar si, cuando el visitante de la página pasa el cursor sobre un enlace, dependiendo de ciertos parámetros, se empezará a precargar la página enlazada, y de este modo, cuando el visitante finalmente haga clic, la página ya esté totalmente disponible en la caché del navegador, como si la hubiese visitado previamente.
Hay varios niveles de anticipación de esta carga especulativa:
- Conservadora – Se inicia la precarga o prelectura solo cuando el visitante hace clic.
- Moderada – Se inicia la precarga o prelectura cuando el visitante pasa el cursor sobre el enlace.
- Ansiosa – Se inicia la precarga o prelectura ante el más mínimo acercamiento del cursor al enlace.
Cómo incorpora WordPress la carga especulativa
Hasta la versión 6.8 solo era posible incorporar esta tecnología mediante un plugin, pero desde entonces estaba previsto que WordPress incorporase una nueva sección de opciones en la pantalla de ajustes de lectura, en la que configurar el nivel de anticipación (ver arriba) que queremos aplicar a la carga especulativa y si preferimos precarga o prelectura, algo así…
Pero no fue así, no hay ajustes posibles de manera sencilla.
Eso sí, esto será así para sitios con enlaces permanentes personalizados, o bonitos, si usas las URLs simples del tipo ?p=123 la carga especulativa estará desactivada por defecto, pero podrías activarla activando el filtro siguiente:
add_filter( 'plsr_enabled_without_pretty_permalinks', '__return_true' );
Esto es debido a que a que los plugins suelen utilizar URL con parámetros de consulta personalizados para permitir a los usuarios realizar acciones, y dichas URL no deberían cargarse de forma especulativa.
En los sitios sin enlaces permanentes bonitos, es imposible o al menos extremadamente complejo diferenciar entre qué parámetros de consulta son los predeterminados del núcleo y qué parámetros de consulta son personalizados.
URLs con parámetros son, por ejemplo, todas las de añadir al carrito de WooCommerce, para que te hagas una idea.
Por otra parte, la carga especulativa solo estará activa por defecto para usuarios que no estén conectados.
¿Se pueden excluir URLs de la carga especulativa?
Hay varias maneras de excluir URLs de la carga especulativa, además de las que se excluyen automáticamente, por distintos motivos. Esta sería más o menos la lista de URLs excluidas y de cómo excluir:
- URLs con el atributo nofollow – No se hace precarga ni prelectura de enlaces con
rel="nofollow"porque suelen ser enlaces no necesarios para la navegación, externos o muy redundantes (añadir al carrito, acceder, salir, etc.) - URLs con la clase CSS
no-prerrender– Puedes aplicar esta clase CSS a cualquier enlace y no se precargará con las reglas de especulación. - URLs generadas con
wp_nonce_url()o la query var_wpnoncese excluyen automáticamente también de la carga especulativa. - Por defecto, los enlaces de WordPress a las pantallas de acceso y administración no se precargan tampoco.
Adicionalmente, puedes excluir completamente de precarga y prelectura cualquier url como en el siguiente ejemplo:
add_filter(
'plsr_speculation_rules_href_exclude_paths',
function ( array $exclude_paths ): array {
$exclude_paths[] = '/carrito/*';
return $exclude_paths;
}
);
Este código excluye de la carga especulativa cualquier url que contenga la ruta /carrito/.
O excluir de la precarga pero no de la prelectura, como en este otro ejemplo:
add_filter(
'plsr_speculation_rules_href_exclude_paths',
function ( array $exclude_paths, string $mode ): array {
if ( 'prerender' === $mode ) {
$exclude_paths[] = '/producto/*';
}
return $exclude_paths;
},
10,
2
);
En este caso, si la URL lleva a una URL que contenga la ruta /producto/ no se precarga pero sí se hace prelectura.
¿Qué ventajas tiene la carga especulativa?
La carga especulativa de contenidos es una técnica que, usando funcionalidades nativas del navegador, y también ya de WordPress, ofrecerá una experiencia real de navegación más rápida a tus visitantes, especialmente para páginas que no estén en caché, permitiendo una navegación prácticamente inmediata, de unas páginas a otras, especialmente para usuarios nuevos, que serán los más beneficiados de esta tecnología.
A fin de cuentas vas a conseguir hacer que se navegue más rápido por tu web sin tener que instalar ni configurar complicados plugins o scripts de optimización, simplemente gracias a las funcionalidades incluidas en tu navegador y en WordPress.
¿Te gustó este artículo? ¡Ni te imaginas lo que te estás perdiendo en YouTube!








Hola, Fernando,
Muchas gracias por compartir este artículo, además de interesante, resulta muy útil.
Me surge una duda: ¿la nueva función nativa de WordPress en esta versión es equivalente a la “precarga de enlaces” que WP Rocket ha ofrecido desde hace tiempo?
Personalmente, siempre utilizo WP Rocket y, en webs más bien estáticas, suelo activar la función de “precarga de enlaces”. Sin embargo, en proyectos con WooCommerce me ha generado algunos problemas, por lo que prefiero desactivarla en esos casos.
¿Recomiendas utilizar la nueva característica de WordPress en lugar de la de WP Rocket?
Aprecio mucho tus valiosas aportaciones a la comunidad WP. ¡Gracias!
Hola Quique,
No, son cosas distintas, lo explico aquí: Carga especulativa en WordPress