Оптимизировать 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 сек. Респект! Применил первые три хитрости