Solución para mejorar resultado de Google Page Speed cuando tienes instalado Woocommerce; es necesario tocar código por lo que cuidadín!
Seguro que ya has aplicado todos los pasos que has visto en numerosas webs para mejorar los resultados en google page speed pero, lo que estas webs no te explican, o por lo menos a mi me costó solucionarlo, es la solución a la compresión de una lectura que da google page speed cuando tienes Woocommerce instalado en tu WordPress.
Pues estás de suerte porque vamos a subirle ese puntito más a tu puntuación de Google Page Speed de hoy!
Primero ¿qué es wc-ajax=get_refreshed_fragments ?
Básicamente, WooCommerce intenta recopilar los detalles del carrito de compras llamando al script y tarda mucho tiempo en completar la tarea. El complemento obtiene los detalles del carrito en cada página para mostrar los últimos artículos del carrito llamando al administrador Ajax.
¿Cual es el problema?
Llamar al admin Ajax en cada página retrasá considerablemente el tiempo de carga de la página y también consume grandes recursos del servidor. El otro problema es que el complemento hace esta acción incluso en una página donde no hay un carrito de compras o detalles relacionados con el producto.
¿Solución?
El problema se debe solucionar modificando el archivo functions.php de tu tema, añadiendo un fragmento de código que inhabilite esta acción de tres posibles formas:
- Inhabilitar solo la fragmentación del carrito en la página principal del sitio
- Inhabilitar solo la fragmentación del carrito en la página principal y publicaciones
- Inhabilitar todos los estilos y scripts de WooCommerce en todas las páginas, excepto en las páginas de la tienda.
IMPORTANTE: Realiza una copia de seguridad antes de modificar código o haz los cambios en un clon para pruebas
Para hacerlo mediante acceso FTP, inicia sesión en su servidor mediante una cuenta FTP. Dirigete a " /wp-content / tu-theme / " y encuentra el archivo " functions.php ". Editae y agrega el código que elijas al final del archivo y carga el archivo modificado nuevamente en el servidor.
IMPORTANTE: Recuerda agregar solo uno de los bloques de código de las tres opciones. No agregues varios o todos los códigos en tu archivo functions.php
1. Para inhabilitar la fragmentación del carro en la página principal, pegar el siguiente codigo en functions.php de tu tema:
[restrict userlevel="subscriber"]
/** Disable Ajax Call from WooCommerce */
add_action( 'wp_enqueue_scripts', 'dequeue_woocommerce_cart_fragments', 11);
function dequeue_woocommerce_cart_fragments() { if (is_front_page()) wp_dequeue_script('wc-cart-fragments'); }
Una vez que el archivo se haya actualizado, dirigete al menú " Configuración de WooCommerce " y " Productos > Mostrar ". Activa la casilla de verificación con la opción "Redirigir a la página del carrito después de la adición exitosa".
Esto ayudará al cliente a ir a la página principal del carrito en lugar de esperar mucho tiempo después de que el artículo se haya agregado al carrito. De lo contrario, aunque se agregue el artículo, es posible que el carrito de compras no muestre los detalles actualizados cuando se encuentre en la misma página que el script de fragmentación del carrito.
*Si la tienda online es de servicios o productos que suelen comprarse por separado, veo recomendable activar esto siempre para facilitar y acelerar el proceso de compra de producto.
[/restrict]
2. Para inhabilitar la fragmentación del carro en la página de inicio y las publicaciones, pegar el siguiente codigo en functions.php de tu tema:
[restrict userlevel="subscriber"]
/** Disable Ajax Call from WooCommerce on front page and posts*/
add_action( 'wp_enqueue_scripts', 'dequeue_woocommerce_cart_fragments', 11);
function dequeue_woocommerce_cart_fragments() {
if (is_front_page() || is_single() ) wp_dequeue_script('wc-cart-fragments');
}
[/restrict]
3. Para inhabilitar todos los estilos y scripts de WooCommerce en todo el sitio, pegar el siguiente codigo en functions.php de tu tema:
[restrict userlevel="subscriber"]
/** Disable All WooCommerce Styles and Scripts Except Shop Pages*/
add_action( 'wp_enqueue_scripts', 'dequeue_woocommerce_styles_scripts', 99 );
function dequeue_woocommerce_styles_scripts() {
if ( function_exists( 'is_woocommerce' ) ) {
if ( ! is_woocommerce() && ! is_cart() && ! is_checkout() ) {
# Styles
wp_dequeue_style( 'woocommerce-general' );
wp_dequeue_style( 'woocommerce-layout' );
wp_dequeue_style( 'woocommerce-smallscreen' );
wp_dequeue_style( 'woocommerce_frontend_styles' );
wp_dequeue_style( 'woocommerce_fancybox_styles' );
wp_dequeue_style( 'woocommerce_chosen_styles' );
wp_dequeue_style( 'woocommerce_prettyPhoto_css' );
# Scripts
wp_dequeue_script( 'wc_price_slider' );
wp_dequeue_script( 'wc-single-product' );
wp_dequeue_script( 'wc-add-to-cart' );
wp_dequeue_script( 'wc-cart-fragments' );
wp_dequeue_script( 'wc-checkout' );
wp_dequeue_script( 'wc-add-to-cart-variation' );
wp_dequeue_script( 'wc-single-product' );
wp_dequeue_script( 'wc-cart' );
wp_dequeue_script( 'wc-chosen' );
wp_dequeue_script( 'woocommerce' );
wp_dequeue_script( 'prettyPhoto' );
wp_dequeue_script( 'prettyPhoto-init' );
wp_dequeue_script( 'jquery-blockui' );
wp_dequeue_script( 'jquery-placeholder' );
wp_dequeue_script( 'fancybox' );
wp_dequeue_script( 'jqueryui' );
}
}
}
IMPORTANTE: Recuerda agregar solo uno de los bloques de código de las tres opciones. No agregues varios o todos los códigos en tu archivo functions.php
[/restrict]
Probando resultado
Una vez que se agregas el código (en nuestro caso hemos utilizado la opción 2 que creemos que es la recomendable para todos los sitios en general), limpia la memoria caché si utilizas el complemento de cache tipo WP Super Cache. Ahora comprueba en Google PageSpeed Insights, no deberías ver el script " wc-ajax = get_refreshed_fragments " en la sección de "Habilitar compresión".
¡Ahorra tiempo y evita posibles errores! ¿Necesitas mejoras o que nos encarguemos del Mantenimiento WordPress de tu web? Contacta ahora!