Оптимизировать Woocommerce
Магазин на Woocommerce создает нагрузку на хостинг: долгая загрузка в браузер пользователя.
Сжали ресурсы (JS, HTML, CSS), подключили CDN… Толк практически никакой.
Есть какие-либо общие рекомендации по оптимизации сайта на Woocommerc?
Плагины Woocommerce очень требовательны к ресурсам. При создании магазина (связка WP+Woocommerce) вы должны быть готовы заранее – на виртуальных хостингах будет существенная нагрузка. И если это “живой”, динамичный магазин с большим перечнем товара, то без хорошего дорогого тарифного плана не обойтись.
Для оптимизации Woocommerce можно использовать некоторые хуки в файле functions.php Вашей текущей темы:
remove_action( 'wp_ajax_nopriv_woocommerce_get_refreshed_fragments', array( 'WC_AJAX', 'get_refreshed_fragments' ) ); remove_action( 'wp_ajax_woocommerce_get_refreshed_fragments', array( 'WC_AJAX', 'get_refreshed_fragments' ) );
а также:
add_action( 'wp_print_scripts', 'de_script', 100 );
function de_script() {
wp_dequeue_script( 'wc-cart-fragments' );
return true;
}
Для укрощения запросов к admin-ajax.php
add_action( 'init', 'my_deregister_heartbeat', 1 );
function my_deregister_heartbeat() {
global $pagenow;
if ( 'post.php' != $pagenow && 'post-new.php' != $pagenow )
wp_deregister_script('heartbeat');
}
Также можно существенно разгрузить хостинг, если скрипты WooCommerce не запускать вне магазина.
На многих сайтах WooCommerce используется как дополнение к форуму, блогу и т.д. Соответственно, при наличии WooCommerce, все его служебные файлы будут загружаться и на самом форуме или блоге, где они ВООБЩЕ не нужны. Чтобы загружать скрипты WooCommerce исключительно на страницах самого WooCommerce, в functions.php добавьте:
add_action ('wp_enqueue_scripts', 'child_manage_woocommerce_styles', 99 );
function child_manage_woocommerce_styles() {
remove_action ('wp_head', array( $GLOBALS['woocommerce'], 'generator') );
if ( function_exists ('is_woocommerce') ) {
if ( ! is_woocommerce() && ! is_cart() && ! is_checkout() ) {
wp_dequeue_style ('woocommerce_frontend_styles');
wp_dequeue_style ('woocommerce_fancybox_styles');
wp_dequeue_style ('woocommerce_chosen_styles');
wp_dequeue_style ('woocommerce_prettyPhoto_css');
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');
}}}
Реально крутая штука! магазин грузился 3,8-4 секунды, теперь 1,2-1,5 сек. Респект! Применил первые три хитрости