Principal
/
Tutorial WordPress
/
Tutorial para el plugin Speed Optimizer
/
Cómo usar los filtros personalizados de Speed Optimizer

Cómo usar los filtros personalizados de Speed Optimizer

En el mundo digital de hoy, el rendimiento de tu sitio web puede hacer o deshacer tu éxito. Un sitio web que carga rápido y funciona sin problemas puede mejorar significativamente la experiencia del usuario, aumentando el tráfico de tu sitio, la participación y las tasas de conversión.

Speed Optimizer es una solución innovadora que mejora el rendimiento de tu sitio web. Esta poderosa herramienta proporciona un conjunto de filtros personalizados que te permiten ajustar el almacenamiento en caché de tu sitio web, la optimización de imágenes y el manejo de scripts, entre otras cosas.

Con estos filtros, puedes controlar los permisos de purga de caché, limitar las URLs precalentadas, añadir cookies de omisión de caché, excluir URLs específicas de ser cacheadas, personalizar el ancho máximo de la imagen, y mucho más.

En este tutorial, encontrarás una guía detallada sobre cómo usar los filtros personalizados de Speed Optimizer para potenciar el rendimiento de tu sitio web, así que sigue leyendo.

Controla qué roles de usuario tienen permiso para hacer una purga de caché manual

Para una personalización avanzada, hemos incorporado un filtro que te permite controlar qué roles de usuario tienen acceso para limpiar la caché usando el botón Purgar SG Cache.

Aquí tienes un ejemplo de código que puedes añadir a tu archivo functions.php para personalizar aún más tu experiencia de almacenamiento en caché:

add_filter( 'sgo_purge_button_capabilities', 'sgo_add_new_role' );
function sgo_add_new_role( $default_capabilities ) {
// Allow new user role to flush cache.
$default_capabilities[] = 'delete_others_posts'; // Para Editores.
$default_capabilities[] = 'edit_published_posts'; // For Authors.

return $default_capabilities;
}

Limitar el número de URLs que mi sitio precalienta

También hemos introducido un filtro adicional que te permite administrar el número de URLs que tu sitio web precargará sin esfuerzo. Por defecto, este valor está establecido en 200, asegurando un rendimiento óptimo.

Aquí tienes un ejemplo de código que puedes incorporar sin problemas en tu archivo functions.php:

add_filter( 'sg_file_caching_preheat_url_limit', 'sgo_preheat_limit' );
function sgo_preheat_limit( $xml_urls ) {
// Definir el límite personalizado para el precalentamiento de URL XML.
$xml_urls = 300;

return $xml_urls;
}

Recuerda que al realizar modificaciones en los filtros relacionados con la caché de archivos que se proporcionan a continuación, es esencial limpiar la caché. Esta acción regenera el archivo sgo-config y asegura que los filtros se añadan con éxito.

Añadir una cookie de evasión de caché

Si necesitas añadir una cookie de derivación de caché a las existentes por defecto, puedes utilizar el siguiente filtro:

add_filter( 'sgo_bypass_cookies', 'add_sgo_bypass_cookies');
function add_sgo_bypass_cookies( $bypass_cookies ) {
// Añade las cookies que necesitas para eludir la caché.
$bypass_cookies[] = 'cookie_name';
$bypass_cookies[] = 'cookie_name_2';

return $bypass_cookies;
}

Si quieres omitir la caché para un parámetro de consulta específico, puedes usar el siguiente filtro:

add_filter( 'sgo_bypass_query_params', 'add_sgo_bypass_query_params');
function add_sgo_bypass_query_params( $bypass_query_params ) {
// Añadir parámetros de consulta personalizados, que omitirán la caché.
$bypass_query_params[] = 'query_param';
$bypass_query_params[] = 'query_param2';

return $bypass_query_params;
}

Si necesitas añadir un parámetro de consulta específico que será ignorado en los procesos de cache-creation y cache-spawn, puedes hacerlo usando este filtro:

add_filter( 'sgo_ignored_query_params', 'add_sgo_ignored_query_params');
function add_sgo_ignored_query_params( $ignored_query_params ) {
// Los parámetros de consulta que serán ignorados.
$ignored_query_params[] = 'query_param';
$ignored_query_params[] = 'query_param2';

return $ignored_query_params;
}

Excluir ciertas URLs de ser cacheadas

Si quieres excluir ciertas URLs del almacenamiento en caché de tu sitio web, puedes usar el filtro que hemos diseñado para ese propósito. Asegúrate de rodear la parte de la URL con barras diagonales. También se pueden usar comodines. Mira el siguiente ejemplo:

add_filter( 'sgo_exclude_urls_from_cache', 'sgo_add_excluded_urls_from_cache');
function sgo_add_excluded_urls_from_cache( $excluded_urls ) {
// La parte de la URL que necesita ser excluida de la caché.
$excluded_urls[] = '/excluded_url/';
$excluded_urls[] = '/wildcard/exclude/*';

return $excluded_urls;
}

Excluir tablas específicas del control Heartbeat

Personaliza el proceso de optimización excluyendo tablas específicas de ser optimizadas. Puedes ajustar el proceso de optimización para que se adapte a tus necesidades especificas especificando el nombre de la tabla sin el prefijo de la base de datos. Aquí tienes un ejemplo de código que puedes añadir a tu archivo functions.php:

add_filter( 'sgo_db_optimization_exclude', 'sgo_db_optimization_exclude_table' );
function sgo_db_optimization_exclude_table( $excluded_tables ) {
// Añadir tablas que necesitas excluir sin el prefijo wpdb.
$excluded_tables[] = 'table_name';
$excluded_tables[] = 'another_table_name';

return $excluded_tables;
}

Personalizar ancho máximo de imagen

También puedes modificar la configuración de ancho máximo para satisfacer tus necesidades específicas. Con este nivel de personalización, tienes la flexibilidad de optimizar el tamaño de las imágenes en función de tus requisitos únicos. Aquí tienes un fragmento de código de ejemplo que puedes añadir a tu archivo functions.php:

add_filter( 'sgo_set_max_image_width', 'max_image_width' );
function max_image_width($max_allowed_width) {
// Añade el valor que quieres ajustar como max image width.
$max_allowed_width = 1250;

return $max_allowed_width;
}

Modificar la calidad WebP por defecto

Puedes modificar la calidad por defecto de la Webp usando el filtro que hemos diseñado para este propósito. El ajuste por defecto es 80, y puedes usar valores entre 0 y 100:

add_filter( 'sgo_webp_quality', 'webp_quality' );
function webp_quality( $quality ) {
// Añade el valor que quieres ajustar como Webp image quality.
$quality = 100;

return $quality;
}

Puedes modificar el tipo de calidad web por defecto usando el filtro que hemos diseñado para ello. El tipo de calidad predeterminado es lossy, que es igual a 0 si quieres establecerlo en lossless – ajusta el tipo a 1 de la siguiente manera:

add_filter( 'sgo_webp_quality_type', 'reset_webp_quality_type' );
function reset_webp_quality_type($quality_type) {
// Añade el valor que quieres ajustar como max image width.
$quality_type = 1;

return $quality_type;
}

Compatibilidad de plugins

En algunos casos, ciertos plugins pueden no activar los enlaces estándar de WordPress o requerir una purga de caché. Para hacer frente a estas situaciones, hemos proporcionado una función pública que puedes utilizar en tu código.

if (function_exists('sg_cachepress_purge_cache')) {
sg_cachepress_purge_cache();
}

Preferiblemente, puedes pasar una URL a la función para limpiar la caché solo para ella en lugar de purgar toda la caché. Por ejemplo:

if (function_exists('sg_cachepress_purge_cache')) {
sg_cachepress_purge_cache('https://yoursite.com/pluginpage');
}

Puedes excluir estilos de ser combinados y minificados usando los filtros que hemos diseñado para ese propósito. Aquí tienes un ejemplo del código que puedes añadir a tu archivo functions.php:

add_filter( 'sgo_css_combine_exclude', 'css_combine_exclude' );
function css_combine_exclude( $exclude_list ) {
// Añadir el identificador de estilo a la lista de exclusiones.
$exclude_list[] = 'style-handle';
$exclude_list[] = 'style-handle-2';

return $exclude_list;
}

add_filter( 'sgo_css_minify_exclude', 'css_minify_exclude' );
function css_minify_exclude( $exclude_list ) {
// Añadir el identificador de estilo a la lista de exclusiones.
$exclude_list[] = 'style-handle';
$exclude_list[] = 'style-handle-2';

return $exclude_list;
}

Puedes excluir scripts de ser minimizados usando el filtro que hemos diseñado para ese propósito. Aquí tienes un ejemplo del código que puedes añadir a tu archivo functions.php:

add_filter( 'sgo_js_minify_exclude', 'js_minify_exclude' );
function js_minify_exclude( $exclude_list ) {
$exclude_list[] = 'script-handle';
$exclude_list[] = 'script-handle-2';

return $exclude_list;
}

Excluir scripts de ser combinados usando el filtro que hemos diseñado para ese propósito. Aquí tienes un ejemplo del código, puedes añadirlo a tu archivo functions.php:

add_filter( 'sgo_javascript_combine_exclude', 'js_combine_exclude' );
function js_combine_exclude( $exclude_list ) {
$exclude_list[] = 'script-handle';
$exclude_list[] = 'script-handle-2';

return $exclude_list;
}

O excluir un script externo de ser combinado usando el filtro que hemos diseñado para ese propósito. Aquí tienes un ejemplo del código que puedes añadir a tu archivo functions.php:

add_filter( 'sgo_javascript_combine_excluded_external_paths', 'js_combine_exclude_external_script' );
function js_combine_exclude_external_script( $exclude_list ) {
$exclude_list[] = 'script-host.com';
$exclude_list[] = 'script-host-2.com';

return $exclude_list;
}

o alternativamente:

add_filter( 'sgo_javascript_combine_exclude_ids', 'js_sgo_javascript_combine_exclude_ids' );
function js_sgo_javascript_combine_exclude_ids( $exclude_list ) {
  $exclude_list[] = 'javascript-id1';
  $exclude_list[] = 'javascript-id2';

  return $exclude_list;
}

Puedes excluir scripts en línea de ser combinados usando el filtro que hemos diseñado para ese propósito. Aquí tienes un fragmento de código que puedes añadir a tu archivo functions.php:

add_filter( 'sgo_javascript_combine_excluded_inline_content', 'js_combine_exclude_inline_script' );
function js_combine_exclude_inline_script( $exclude_list ) {
$exclude_list[] = 'primeros símbolos del script de contenido en línea';

return $exclude_list;
}

Puedes excluir todos los scripts en línea de ser combinados. Aquí tienes un fragmento de código de ejemplo que puedes añadir a tu archivo functions.php:

add_filter( 'sgo_javascript_combine_exclude_all_inline', '__return_true' );

Además, puedes excluir todos los scripts en línea de ser combinados usando el código de filtro a continuación y añadiéndolo a tu archivo functions.php.

add_filter( 'sgo_javascript_combine_exclude_all_inline_modules', '__return_true' );

Excluir script de la carga asíncrona añadiendo el código que se muestra a continuación en tu archivo functions.php.

add_filter( 'sgo_js_async_exclude', 'js_async_exclude' );
function js_async_exclude( $exclude_list ) {
$exclude_list[] = 'script-handle';
$exclude_list[] = 'script-handle-2';

return $exclude_list;
}

Excluir una URL específica o una URL que contenga un query param específico usando los siguientes filtros:

add_filter( 'sgo_html_minify_exclude_params', 'html_minify_exclude_params' );
function html_minify_exclude_params( $exclude_params ) {
// Añade los query params que quieres excluir.
$exclude_params[] = 'test';

return $exclude_params;
}

add_filter( 'sgo_html_minify_exclude_urls', 'html_minify_exclude' );
function html_minify_exclude( $exclude_urls ) {
// Añade la url que quieres excluir.
$exclude_urls[] = 'http://mydomain.com/page-slug';

return $exclude_urls;
}

Puedes excluir recursos estáticos de la eliminación de sus query strings usando el filtro que hemos diseñado para ese propósito. Aquí tienes un ejemplo del código que puedes añadir a tu archivo functions.php:

add_filter( 'sgo_rqs_exclude', 'sgo_rqs_exclude_scripts' );
function sgo_rqs_exclude_scripts( $exclude_list ) {
$exclude_list[] = 'part-of-the-resource-path.js';
return $exclude_list;
}

Además, puedes excluir imágenes de Lazy Load usando el siguiente filtro:

add_filter( 'sgo_lazy_load_exclude_classes', 'exclude_images_with_specific_class' );
function include_images_with_specific_class($classes) {
// Añade el nombre de la clase que quieres excluir de la carga diferida.
$classes[] = 'test-class';

return $clases;
}

Además, puedes excluir un tipo específico de entrada de Lazy Load usando el siguiente filtro:

add_filter( 'sgo_lazy_load_exclude_post_types', 'exclude_lazy_load_from_post_type' );
function include_lazy_load_from_post_type($post_types) {
// Añade el tipo de entrada que quieres excluir del uso de lazy load.
$post_types[] = 'post-type';

return $post_types;
}

Puedes excluir una URL específica de Lazy Load usando el siguiente filtro:

add_filter( 'sgo_lazy_load_exclude_urls', 'exclude_lazy_load_for_url' );
function include_lazy_load_for_url( $excluded_urls ) {
// Añade la url que quieres excluir del uso de lazy load.
$excluded_urls[] = 'http://mydomain.com/page-slug';

return $excluded_urls;
}

Con estos nuevos filtros, puedes excluir activos específicos de ser Lazy Loaded. Ten en cuenta que el uso de estos filtros puede reducir el rendimiento en algunos casos.

Puedes usar este filtro para excluir imágenes específicas añadiendo su URL de origen:

add_filter( 'sgo_lazy_load_exclude_images', 'exclude_images_from_lazy_load' );
function include_images_from_lazy_load( $excluded_images ) {
// Añade la url src de la imagen que quieres excluir del uso de lazy load.
$excluded_images[] = 'http://mydomain.com/wp-content/uploads/your-image.jpeg';

return $excluded_images;
}

Puedes usar este filtro para excluir videos específicos añadiendo su URL de origen:

add_filter( 'sgo_lazy_load_exclude_videos', 'exclude_videos_from_lazy_load );
function include_videos_from_lazy_load( $excluded_videos ) {
// Añade la url src del video que quieres excluir de usar la carga diferida.
$excluded_videos[] = 'http://mydomain.com/wp-content/uploads/your-video.mp4';

return $excluded_videos;
}

Puedes usar este filtro para excluir un iframe específico añadiendo su URL de origen:

add_filter( 'sgo_lazy_load_exclude_iframe', 'exclude_iframe_from_lazy_load );
function include_iframe_from_lazy_load( $excluded_iframe ) {
// Añade la url src del iframe que quieres excluir del uso de lazy load.
$excluded_iframe[] = 'http://mydomain.com/wp-content/uploads/iframe-src.mp4';

return $excluded_iframe;
}

Resumen

Esta guía proporciona información sobre los filtros personalizados de Speed Optimizer, que te permiten adaptar el rendimiento de tu sitio web a tus necesidades específicas. Estos filtros te permiten controlar los permisos de purga de caché, administrar el número de URLs precalentadas, añadir cookies de evasión de caché, y excluir ciertas URLs de ser cacheadas. La guía también mostró cómo personalizar el ancho máximo de la imagen, modificar la configuración de calidad WebP predeterminada y excluir tablas específicas del control Heartbeat.

Proporcionamos ejemplos de código para cada filtro, ayudándote a implementar estas características fácilmente. Al aprovechar estos filtros personalizados, puedes mejorar significativamente el rendimiento de tu sitio web, ofreciendo una experiencia de usuario más fluida y rápida.

Preguntas frecuentes sobre el Optimizador de SiteGround

Después de habilitar la opción Combinar CSS/JS desde el plugin, mi sitio web no se muestra como debería. ¿Cuál podría ser la razón?

Si encuentras que la combinación de ciertos archivos CSS/JS está rompiendo la funcionalidad del sitio, necesitarás excluir los archivos relevantes de la combinación. Puedes excluir ciertos elementos de la combinación usando el menú desplegable en Speed Optimizer > Frontend.

Estoy intentando excluir una hoja de estilo de ser combinada / minificada por el plugin pero no la veo en la lista de exclusión?

La lista desplegable en el código de tu sitio web contiene Estilos CSS que se han implementado utilizando procedimientos de codificación estándar. Estilos CSS que se han añadido sin adherirse a los estándares de codificación recomendados no aparecerán en el menú desplegable. -down list. Para incluir estos estilos, necesitas utilizar filtros de código de exclusión.

En este caso, debes identificar o estar familiarizado con el identificador del estilo en lugar de hacer referencia directamente al nombre de la hoja de estilo. Los identificadores se pueden excluir a través del archivo functions.php de tu plantilla activa.

Deberías usar el siguiente filtro para excluir estilos de ser combinados:

add_filter( 'sgo_css_combine_exclude', 'css_combine_exclude' );
function css_combine_exclude( $exclude_list ) {
// Añadir el identificador de estilo a la lista de exclusiones.
$exclude_list[] = 'style-handle';
$exclude_list[] = 'style-handle-2';
return $exclude_list;
}

Deberías usar el siguiente filtro para excluir estilos de ser minificados:

add_filter( 'sgo_css_minify_exclude', 'css_minify_exclude' );
function css_minify_exclude( $exclude_list ) {
// Añadir el identificador de estilo a la lista de exclusiones.
$exclude_list[] = 'style-handle';
$exclude_list[] = 'style-handle-2';
return $exclude_list;
}

¿Cómo puedo excluir que un plugin se vea afectado por las optimizaciones de JavaScript de combine and defer que bloquean el renderizado? Habilitar estas optimizaciones actualmente interrumpe la funcionalidad del sitio web.

Puedes excluir scripts usando el menú desplegable de exclusión en Speed Optimizer > Frontend > Javascript. Si algunos archivos no están visibles en la lista, no están en cola correctamente, pero lo más probable es que estén codificados. Los handles del script pueden ser excluidos a través del archivo functions.php de tu plantilla activa. Puedes usar los siguientes fragmentos de código para excluir handles de la combinación y bloqueo de renderizado.

Para excluir archivos de ser combinados, deberías usar:

add_filter( 'sgo_javascript_combine_exclude', 'js_combine_exclude' );
function js_combine_exclude( $exclude_list ) {
$exclude_list[] = 'script-handle';
$exclude_list[] = 'script-handle-2';
return $exclude_list;
}

Para excluir script/s de la carga asíncrona, usa el filtro que se muestra a continuación, que puedes añadir al archivo functions.php de tu plantilla:

add_filter( 'sgo_js_async_exclude', 'js_async_exclude' );
function js_async_exclude( $exclude_list ) {
$exclude_list[] = 'script-handle';
$exclude_list[] = 'script-handle-2';
return $exclude_list;
}

Mi compresión / conversión de imagen está atascada, ¿qué puedo hacer para resolver esto?

Deberías comprobar si tu aplicación puede ejecutar trabajos cron con éxito. Por lo general, esto significaría que el cron nativo está deshabilitado, y no se crea ningún trabajo cron real en tu panel de control.

Comparte este artículo