WordPress Heartbeat API, WordPress'in arka planda çalışan oturum açıkken yürütülen işlemlerin izlemmesine izin veren bir özelliktir. Ancak, bu özellik bazı durumlarda sunucu kaynaklarını tüketebilir ve site performansını olumsuz etkileyebilir. Bu özelliği kapatmak için aşağıdaki kodu kullanalım.
// Heartbet Api Kapat
add_action( 'init', 'stop_heartbeat', 1 );
function stop_heartbeat() {
wp_deregister_script( 'heartbeat' );
}___________________Bu teknik, statik kaynakların cache edilmesini engelleyen birçok proxy sunucularını, önbellek sistemleri ve tarayıcıları etkiler. Bu nedenle, query string'leri kaldırmak, sayfa yükleme süresini azaltır ve web sitenizin performansını artırır.
// Stringleri temizle
function remove_query_string( $src ) {
$parts = explode( '?', $src );
return $parts[0];
}
add_filter( 'script_loader_src', 'remove_query_string', 15, 1 );
add_filter( 'style_loader_src', 'remove_query_string', 15, 1 );____________________________Self-pingbacks, bir yazarın kendi yayınlarına yaptığı bağlantılardan kaynaklanan otomatik yorumlardır. WordPress'in varsayılan olarak bu özelliği etkin olduğundan, bazen spam yorumlarına benzer şekilde sitenizi yavaşlatabilirler. Bu nedenle, self-pingback'leri devre dışı bırakalım.
// Self Pingbacks Kapat
function disable_self_pingbacks( &$links ) {
foreach ( $links as $l => $link ) {
if ( 0 === strpos( $link, home_url() ) ) {
unset($links[$l]);
}
}
}
add_action( 'pre_ping', 'disable_self_pingbacks' );____________________________WordPress tarafından otomatik olarak eklenen emojiler, sitenin yüklenme süresini artırabilir. Bu nedenle, emojileri kaldırmak, sitenin performansını arttıracaktır.
// Emoji Sil remove_action( 'wp_head', 'print_emoji_detection_script', 7 ); remove_action( 'admin_print_scripts', 'print_emoji_detection_script' ); remove_action( 'wp_print_styles', 'print_emoji_styles' ); remove_action( 'admin_print_styles', 'print_emoji_styles' ); remove_filter( 'the_content_feed', 'wp_staticize_emoji' ); remove_filter( 'comment_text_rss', 'wp_staticize_emoji' ); remove_filter( 'wp_mail', 'wp_staticize_emoji_for_email' );____________________________
Disable WooCommerce Scripts and Styles on non-WooCommerce Pages, yani WooCommerce sayfaları olmayan diğer sayfalarda WooCommerce betiklerinin ve stillerinin devre dışı bırakılması anlamına gelir. Bu işlem, WooCommerce etkin olmayan sayfaların yüklenmesini hızlandıracak ve performansı arttıracaktır.
// Disable WooCommerce Scripts and Styles on non-WooCommerce 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() ) {
wp_dequeue_style( 'woocommerce_frontend_styles' );
wp_dequeue_style( 'woocommerce-general' );
wp_dequeue_style( 'woocommerce-layout' );
wp_dequeue_style( 'woocommerce-smallscreen' );
wp_dequeue_style( 'woocommerce_fancybox_styles' );
wp_dequeue_style( 'woocommerce_chosen_styles' );
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' );
}
}
}__________________________________Bu kod, Woocommerce eklentisinin sayfalar arasında yükleme süresini optimize etmek için kullanılır. Woocommerce, varsayılan olarak tüm sayfalarda eklentisinin CSS ve JS dosyalarını yükler. Bu nedenle, woocommerce olmayan sayfalarda bu dosyaların yüklenmesi gereksiz yere sayfa yükleme süresini uzatır. Bu kod, woocommerce olmayan sayfalarda woocommerce stil ve betiklerinin yüklenmesini devre dışı bırakarak sayfa yükleme hızını artırır.
// Disable WooCommerce scripts and styles on non-shop pages
function dequeue_woocommerce_styles_scripts() {
if(function_exists('is_woocommerce') && !is_woocommerce() && !is_cart() && !is_checkout()) {
wp_dequeue_style('woocommerce_frontend_styles');
wp_dequeue_style('woocommerce-general');
wp_dequeue_style('woocommerce-layout');
wp_dequeue_style('woocommerce-smallscreen');
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('jquery-payment');
wp_dequeue_script('fancybox');
wp_dequeue_script('jqueryui');
}
}
add_action('wp_enqueue_scripts', 'dequeue_woocommerce_styles_scripts', 99);________________________Ek olarak Revslider kullananlar için site yükleme hızını arttıracak kodlar.
// Revolution Slider'a async ve defer özelliklerini ekleme
function add_revslider_attributes($tag, $handle) {
if ($handle === 'revslider') {
$tag = str_replace(' src', ' async defer src', $tag);
}
return $tag;
}
add_filter('script_loader_tag', 'add_revslider_attributes', 10, 2);
// Revolution Slider'a jQuery'yi dahil etme
function add_jquery_to_revslider() {
wp_enqueue_script('jquery');
}
add_action('wp_enqueue_scripts', 'add_jquery_to_revslider');
Kendisinide anmış olalım. Güvenlik için eklenmesi gereken kodlarıda biraz toparladıktan sonra paylaşacağım.