Una de las funcionalidades del plugin de optimizaciones WP Rocket es la precarga de caché, una característica que puede ayudar a mejorar mucho la experiencia de navegación por tu web … aunque tiene sus peros…
¿Qué es la precarga de caché?
La precarga, también llamada precalentamiento en otros plugins, de caché es una técnica que usan algunos plugins de optimización y caché para WordPress que consiste en que se almacenan en la caché todas o una serie de URLs de tu web aunque no las haya visitado aún ningún usuario, que sería el funcionamiento normal de la caché.
De este modo, cuando un visitante real accede a una URL por primera vez no se generarán todas las consultas habituales que realizaría WordPress para mostrar su contenido sino que, al ya estar almacenada en caché (de archivos), la página se cargará al instante, sin consultas a la base de datos, desde la copia previamente almacenada (precargada) en la caché.
¿Cómo funciona la precarga de caché de WP Rocket?
WP Rocket, por defecto, incluso aunque no tengas activa la funcionalidad de precarga de caché, siempre precarga la página de inicio de tu web y, adicionalmente, si activas esta característica, el plugin precargará todo esto:
- URLs que estén en los mapas de sitio generados por los principales plugins de SEO.
- URLs que estén en el mapa del sitio por defecto de WordPress, si no tuvieses ningún mapa del sitio creado por un plugin de SEO.
- URLs enlazadas desde la página de inicio de la web, si no estuviese ni siquiera disponible el mapa del sitio por defecto de WordPress.
- URLs que no estçen incluidas en un mapa del sitio pero que hayan recibido alguna visita de usuarios.
La precarga de caché de WP Rocket se activará si…
- Guardas cambios en los ajustes de WP Rocket que afecten a la parte visible de la web (cuando se borra la caché).
- Haces clic en el botón de «Borrar y precargar caché» en la barra de herramientas de administración de WordPress o en el escritorio de WP Rocket.
- Cada vez que se llama a la función
rocket_clean_domain
. - Se publica o actualiza una URL de entradas, páginas o tipos de contenido personalizados.
- Se publica o actualiza la página de inicio.
- Se publica o actualiza una URL de taxonomía, como categorías, etiquetas, etc.
- Cuando caduca la la vida útil de la caché.
¿Cómo sé si WP Rocket está precargando la caché?
Si quieres comprobar si está funcionando la precarga de caché de WP Rocket haz lo siguiente:
- Accede a la ruta de instalación de WordPress a través de (S)FTP o el gestor de archivos del hosting.
- Ve a la carpeta de caché, en
/wp-content/cache/wp-rocket/tudominio.com/
. - Haz clic en «Borrar caché y precargar» desde la barra de administración de WordPress.
- Actualiza la carpeta, debería vaciarse.
- Actualiza una vez más y los archivos de caché deberían comenzar a aparecer, dentro de las propias carpetas específicas de su slug.Ejemplo: /wp-content/cache/wp-rocket/tudominio.com/producto/index-https.html .
¿Por qué se cae mi web o me avisa el hosting de falta de recursos si activo la precarga de caché?
Es bastante común en alojamientos compartidos con pocos recursos que la web se ralentice o que incluso llegue a dejar de estar operativa, y en ocasiones puede que tu empresa de hosting te indique que estás consumiendo demasiados recursos del servidor.
Esto es debido a que, aunque no tengas visitas reales, WP Rocket, al precargar la caché, consume muchos ciclos de CPU para generar automáticamente la caché de todas las URLs que hemos visto antes.
Cómo reducir el consumo de recursos sin desactivar la precarga de caché
Y llegamos al meollo de la cuestión, que es ni nada menos poder usar esta funcionalidad tan interesante para la experiencia de navegación de tu web de la precarga de caché, pero sin tener que contratar un carísimo plan de hosting ni que se caiga la web.
Podemos abordar este reto de precargar la caché sin incurrir en altos consumos de CPU de varias maneras…
Excluir URLs de la precarga de caché de WP Rocket
Desde la misma interfaz de WP Rocket puedes excluir URLs de la precarga, incluso usando comodines.
No hace falta que excluyas la paginación de WordPress (p.ej.:/category/nombre-categoria/page/2…8/
), pero sí puedes excluir URLs que no necesites o no quieras almacenar en caché, con lo que puedes reducir algo el consumo de recursos.
Esto evita que se precarguen esas URLs, pero no que se almacenen en caché cuando reciban visitas reales de usuarios, así que no repercute negativamente en la velocidad de carga de esas URLs en situaciones normales.
Otro modo de excluir URLs de la caché sería mediante una función, como la siguiente:
/* Excluir productos de precarga de WP Rocket */ function ayudawp_sin_precarga_productos_destacados( array $regexes ) : array { $excluded_categories = array( 'destacados', ); $new_regex = $_SERVER['REQUEST_URI']; if(!is_singular('product')) { return $regexes; } if ( ( !has_term( $excluded_categories, 'product_cat' ) ) ) { return $regexes; } $regexes[] = $new_regex; return $regexes; } add_filter( 'rocket_preload_exclude_urls', 'ayudawp_sin_precarga_productos_destacados');
En esta función indicamos a WP Rocket que no se haga precarga de los productos de la categoría llamada «destacados».
También puedes excluir de la precarga URLs que no hayan tenido modificaciones durante un largo periodo de tiempo, como por ejemplo un año, con la siguiente función:
/* Excluir urls antiguas de precarga de WP Rocket */ add_filter( 'rocket_preload_delay_delete_non_accessed', function( $interval ){ return '1 year'; } );
Esto es muy efectivo en webs con mucho contenido, como blogs o diarios de noticias.
Incluir solo URLs específicas en la precarga de caché de WP Rocket
Otro modo de excluir URLs sería especificar únicamente qué URLs sí queremos precargar, como en el siguiente ejemplo:
/* Lista de inclusion en precarga de WP Rocket */ add_filter( 'rocket_preload_exclude_urls', function( $regexes, $url ) { $inclusion_list = [ 'https://midominio.com/mi-url-1/', 'https://midominio.com/mi-url-2/', ]; if ( ! in_array( $url, $inclusion_list, true ) ) { $regexes[] = $url; }
También podemos especificar que se haga la precarga únicamente las URLs de un mapa del sitio específico, con el plugin que ofrece WP Rocket en este enlace, del que tendrás que modificar su código para indicar qué mapa del sitio específico quieres precargar, en la siguiente línea del plugin:
$my_custom_sitemap = 'https://midominio.com/page-sitemap1.xml';
Personalizar los parámetros de precarga de caché de WP Rocket
Además de todo lo anterior, quizás prefieras personalizar alguno de los parámetros de la precarga, evitando así un consumo excesivo de la CPU del servidor.
Para conseguirlo, WP Rocket ofrece 3 parámetros que podemos modificar:
Disponemos de tres filtros para conseguirlo:
- Tamaño de lote :
rocket_preload_cache_pending_jobs_cron_rows_count
es la cantidad de URL que se procesarán en cada ejecución.
Valor por defecto: 45 (URL). - Intervalo entre lotes :
rocket_preload_pending_jobs_cron_interval
Es la pausa que se aplicará entre procesamientos de lotes .
Valor por defecto: 60 (segundos). - Retraso entre solicitudes:
rocket_preload_delay_between_requests
este es el retraso entre solicitudes. Establecer un valor más alto espaciará las solicitudes y reducirá el uso de la CPU.
Valor por defecto: 500000 (microsegundos = 0,5 segundos).
Para ello, WP Rocket ofrece un plugin que puedes descargar desde este enlace e instalarlo como cualquier otro plugin, que cambia los parámetros por defecto:
- El tamaño del lote se reducirá de 45 a 30 URL por ejecución.
- El intervalo de cron entre lotes se reducirá de 60 segundos a 120 segundos.
- El retraso entre solicitudes se establecerá entre 0,5 segundos y 0,6 segundos.
Si prefieres modificar estos parámetros según tus necesidades puedes modificarlos directamente en el código del plugin, donde verás que viene muy bien especificado cada parámetro modificable:
<?php /** * Plugin Name: WP Rocket | Change Preload Parameters * Description: Reduce the CPU usage by changing the default Preload parameters (batch size, interval, pause between requests) * Plugin URI: https://github.com/wp-media/wp-rocket-helpers/tree/master/preload/wp-rocket-preload-change-parameters/ * Author: WP Rocket Support Team * Author URI: http://wp-rocket.me/ * License: GNU General Public License v2 or later * License URI: http://www.gnu.org/licenses/gpl-2.0.html * * Copyright SAS WP MEDIA 2022 */ namespace WP_Rocket\Helpers\static_files\preload\change_parameters; // Standard plugin security, keep this line in place. defined( 'ABSPATH' ) or die(); /** * 1) BATCH SIZE * Change the number of URLs to preload on each batch, 45 is the default. * A lower value can help the server to work on fewer requests at a time */ function preload_batch_size( $value ) { // change this value, default is 45 urls: $value = 30; return $value; } add_filter( 'rocket_preload_cache_pending_jobs_cron_rows_count', __NAMESPACE__ .'\preload_batch_size' ); /** * 2) CRON INTERVAL: * Set the desired cron interval in seconds * By setting a higher value the server will have more time to rest between processing batches. */ function preload_cron_interval( $interval ) { // change this value, default is 60 seconds: $interval = 120; return $interval; } add_filter( 'rocket_preload_pending_jobs_cron_interval', __NAMESPACE__ .'\preload_cron_interval' ); /** * 3) DELAY BETWEEN REQUESTS: * This is the delay between requests. A higher delay will reduce the CPU usage. * Default is 0.5 seconds (500000 microseconds) */ function preload_requests_delay( $delay_between ) { // Edit this value, change the number of seconds $seconds = 0.6; // finish editing // All done, don't change this part. $delay_between = $seconds * 1000000; return $delay_between; } add_filter( 'rocket_preload_delay_between_requests', __NAMESPACE__ .'\preload_requests_delay' );
Como ves, por opciones que no quede.
¿Debo hacer precarga de caché?
Por supuesto que sí. Es una característica muy interesante que puede ofrecer una mejora importante en la experiencia de navegación para tus visitantes, y el plugin WP Rocket es una joya a la hora de optimizar tu web, que además – como hemos visto – permite personalizar cada una de sus características, como en este caso la precarga de caché.
¿Te gustó este artículo? ¡Ni te imaginas lo que te estás perdiendo en YouTube!
binance referral bonus
Your article helped me a lot, is there any more related content? Thanks!