Uso de filtros para personalizar los parámetros de caché en Jetpack Boost
En esta guía aprenderás a personalizar el comportamiento de la caché de Jetpack Boost mediante filtros para mejorar el rendimiento del sitio y reducir la fragmentación de la caché.
Cómo funciona la caché de página en Jetpack Boost
La función de caché de página de Jetpack Boost genera y almacena versiones estáticas de las páginas dinámicas de WordPress. Usamos la URL de una página y las cookies del navegador del visitante para identificar una página.
Una persona que visita una página sin cookies en su navegador se describe como un «usuario anónimo», porque no hay datos que permitan identificarla. El archivo de caché generado para ella puede utilizarse potencialmente para muchos otros visitantes. Para maximizar la velocidad, estas páginas almacenadas en caché se sirven antes de que WordPress se inicialice por completo, lo que significa que la mayoría de las funcionalidades de WordPress no están disponibles en esta fase.
Para los desarrolladores que necesitan ejecutar código al principio del proceso de servir una página, Jetpack Boost ofrece Extra Code Loader. Esta herramienta permite ejecutar código personalizado antes de dos puntos críticos de una solicitud de WordPress:
- Cuando se sirve una página almacenada en caché.
- Cuando se crea el búfer de salida para almacenar en caché una página nueva.
Esta funcionalidad permite a los desarrolladores realizar las operaciones o modificaciones necesarias incluso cuando trabajan con páginas almacenadas en caché, garantizando tanto la velocidad como las posibilidades de personalización.
Personalizar el comportamiento de la caché con filtros
Para modificar los parámetros de la caché, puedes crear un archivo llamado wp-content/boost-cache-extra.php. Jetpack Boost lo cargará y lo ejecutará como cualquier otro script de PHP. <?php etiqueta de apertura.
Este script se ejecutará muy al principio del proceso de servir una página, por lo que la mayoría de las funcionalidades de WordPress no estarán disponibles. Sin embargo, filters y actions pueden utilizarse.
⚠️ Importante: Asegúrate de que el archivo contenga código válido de PHP para evitar problemas que puedan afectar al sitio. Te recomendamos encarecidamente probar cualquier cambio en un entorno de pruebas antes de aplicarlo en producción.
Filtros disponibles
Jetpack Boost ofrece varios filtros para personalizar la caché:
jetpack_boost_ignore_cookies: Acepta un parámetro: una matriz de nombres de cookies. Estos nombres de cookies se ignoran y se eliminan de la lista de cookies que se utilizan para identificar un archivo de caché. En los nombres de las cookies se pueden utilizar expresiones regulares. La lista predeterminada de nombres de cookies incluye las cookies de Cloudflare descritas aquí, una expresión regular que coincide con cualquier cookie que empiece porsbsj_y las cookies tk_ai y tk_qs. Esto significa que un visitante que tenga cualquiera de estas cookies en su navegador verá el archivo de caché creado para los visitantes anónimos del sitio, en lugar de obtener un archivo de caché personalizado.jetpack_boost_ignore_get_parameters: Acepta un parámetro: una matriz de nombres de parámetros GET. La caché ignora estos parámetros del mismo modo que funciona el filtro anterior. La lista predeterminada de parámetros incluye algunos de los parámetros «utm_» utilizados con fines de marketing.jetpack_boost_cache_parameters: Acepta un parámetro: una matriz. Es similar a los filtros anteriores, pero contiene la información de amboscookiesyget. Se ejecuta antes en la solicitud que los filtros anteriores, pero se recomienda utilizar los otros filtros en lugar de este. Los filtros anteriores utilizan este filtro.jetpack_boost_cache_bypass_patterns: Acepta un parámetro: una matriz de expresiones regulares. Permite al propietario del sitio modificar la lista de patrones con los que se comparan las URL que omiten la caché. Son las URL que aparecen en el formulario Excepciones de la página de ajustes.jetpack_boost_cache_request_cacheable: Acepta un parámetro booleano. Devuelve true para hacer que la caché de la página actual pueda almacenarse.jetpack_boost_cache_accept_headers: Acepta un parámetro: una matriz de encabezados Accept que el plugin no almacenará en caché. La lista predeterminada incluye varios tipos de encabezados JSON.
En la lista de cookies que utiliza Boost, los valores de las cookies del banner de cookies de Jetpack eucookielaw y personalized-ads-consent se establecen en 1 para que todos los visitantes que hagan clic en el botón Aceptar del banner de cookies reciban el mismo archivo de caché (si el resto de las cookies es igual), lo que mejora la eficiencia de la caché. Las cookies en sí no se modifican y se creará un archivo de caché nuevo para los visitantes que hagan clic en Aceptar en el banner de cookies.
Si tu sitio tiene una cookie cuyo valor cambia cada vez que se carga una página, pero ningún código de PHP utiliza ese valor, puede que esté impidiendo que el sitio utilice la caché de forma eficaz. jetpack_boost_cache_parameters Usa el filtro para modificar el valor de modo que sea constante cada vez que se cargue una página.
¿Por qué ignorar determinadas cookies?
Las cookies desempeñan un papel fundamental a la hora de identificar a los visitantes de un sitio web. Cuando un usuario inicia sesión, se coloca una cookie en su navegador, pero las cookies sirven para diversos fines de seguimiento, más allá de modificar el contenido de la página. A los visitantes nuevos y a los bots que ven una versión «anónima» del sitio web normalmente se les sirve una página utilizada con frecuencia y almacenada en caché, ya que este tipo de visitantes suele superar en número a quienes han interactuado con el sitio. Una vez establecida una cookie, se crea un archivo de caché nuevo para la página y a los visitantes posteriores que tengan esa cookie se les sirve ese archivo de caché específico. Este proceso es esencial porque la presencia de la cookie identifica al visitante de algún modo.
Sin embargo, si JavaScript en el sitio web establece una cookie que no influye en el aspecto del sitio mediante PHP, puede ser seguro ignorar esa cookie. Es importante señalar que ciertas cookies, como las cookies de inicio de sesión de WordPress, no se pueden ignorar debido a su función crítica.
Ejemplos de modificación del comportamiento de la caché con filtros
Ignorar una cookie
Para ignorar una cookie, como la que establece un banner de cookies, utiliza el filtro denominado jetpack_boost_ignore_cookies. Este ejemplo muestra cómo ignorar la cookie denominada cookie_banner_settings. Cualquier código que dependa de esta cookie debe estar en JavaScript y ejecutarse en el navegador. Si PHP en el servidor la utilizara para decidir si mostrar el banner o realizar cualquier otra función, la cookie no se puede ignorar.
<?php
// Ignore the 'cookie_banner_settings' cookie.
function ignore_banner_cookie( $cookies ) {
$cookies[] = 'cookie_banner_settings';
return $cookies;
}
add_filter( 'jetpack_boost_ignore_cookies', 'add_test_cookie' );
Este código garantiza que la cookie_banner_settings cookie se ignore, lo que permite servir un único archivo de caché a los visitantes anónimos.
Ignorar un parámetro GET
Para excluir de la identificación de la caché un parámetro GET específico, como test, utiliza el filtro jetpack_boost_ignore_get_parameters. Este ejemplo garantiza que las URL con el parámetro denominado ?test sirvan el mismo archivo de caché que la URL base URL:
<?php
// ignore the 'test' GET parameter in the URL.
function ignore_test_get( $get) {
$get[] = "test";
return $get;
}
add_filter( 'jetpack_boost_ignore_get_parameters', 'ignore_test_get' );
Este código elimina el parámetro test de la identificación de la caché, garantizando que páginas como yourjetpack.blog/?test=123 sirvan el mismo archivo almacenado en caché que yourjetpack.blog/.
Páginas que ahora compartirán el mismo archivo de caché:
yourjetpack.blog/yourjetpack.blog/?test=1yourjetpack.blog/?test=testingyourjetpack.blog/?test=123
Corrige un valor de cookie que cambia constantemente
Este es un ejemplo en el que se establece en 1 una cookie de contador de páginas hipotética en los parámetros de caché. Esto solo se puede hacer cuando JavaScript muestra el contador, no PHP. Esto permite almacenar en caché la página de WordPress y utilizarla para más visitantes, mientras el contador muestra cuántas páginas han visitado.
<?php
// Fix the "page_counter" cookie
function fix_page_counter( $parameters ) {
if ( isset( $parameters['cookies']['page_counter'] ) ) {
$parameters['cookies']['page_counter'] = 1;
}
return $parameters;
}
add_filter( 'jetpack_boost_cache_parameters', 'fix_page_counter' );
Personalizar el comportamiento de la caché con los filtros de Jetpack Boost te permite optimizar el rendimiento y garantizar una experiencia fluida para los visitantes de tu sitio. Al ignorar cookies y parámetros GET innecesarios, puedes servir páginas almacenadas en caché de forma más eficiente y reducir la carga del servidor.
Desactiva la caché en determinadas condiciones
Si quieres que una determinada página de tu sitio se muestre sin caché, pero solo a determinados visitantes, puedes utilizar el jetpack_boost_cache_request_cacheable, que sirve de filtro. En este ejemplo, cualquier visitante que utilice la dirección IP 192.168.1.1 y tenga la cookie «source=vip» podrá acceder a la página /about/ sin caché.
<?php
function uncacheable_vips( $cacheable ) {
if (
isset( $_SERVER['REQUEST_URI'] ) && $_SERVER['REQUEST_URI'] === '/about/' &&
isset( $_COOKIE['source'] ) && $_COOKIE['source'] === 'vip' &&
isset( $_SERVER['REMOTE_ADDR'] ) && $_SERVER['REMOTE_ADDR'] === '192.168.1.1'
) {
return false;
} else {
return true;
}
}
add_filter( 'jetpack_boost_cache_request_cacheable', 'uncacheable_vips' );
¿Aún necesitas ayuda?
Por favor, ponte en contacto con soporte. Estaremos encantados de asesorarte.