1. Resimleri Optimize Edin
Resimleri optimize etmek için bir çok yöntem var arayıp bulabilirsiniz yada benim kullandığım yöntem var onu kullanabilirsiniz.
https://github.com/yeniref/Wordpress-Resim-S-k-t-rma Kullanımı Açıklama kısmında var.
2. Javascript ve Css dosyalarını sıkıştırın
Bunun için onlarca site var google amcaya sorabilirsiniz.
3.Oluşturmayı Engelleyen Kaynakları Ortadan Kaldırın
Fontawesome kodunun footer a taşıyın alttaki şablondaki gibi düzenleyin
<link rel='stylesheet' id='font-awesome-css' href='<?php echo get_template_directory_uri();?>/assets/fonts/font-awesome/css/all.min.css' type='text/css' media='all' />
4.Font yüklemelerini erteleyin.
Örnek kullanım altta
<link rel="preload" href="<?php echo get_template_directory_uri();?>/assets/fonts/font-awesome/webfonts/fa-solid-900.woff2" as="font" crossorigin="anonymous">
5.Tarayıcı önbelleğinden yararlanın .htaccess alttaki kodu ekleyin
<filesMatch ".(ico|pdf|flv|jpg|svg|jpeg|png|gif|js|css|swf)$"> Header set Cache-Control "max-age=604800, public"</filesMatch>
6.Gzip Etkinleştirin .htaccess alttaki kodları ekleyin
<IfModule mod_deflate.c>
AddOutputFilterByType DEFLATE application/javascript
AddOutputFilterByType DEFLATE application/rss+xml
AddOutputFilterByType DEFLATE application/vnd.ms-fontobject
AddOutputFilterByType DEFLATE application/x-font
AddOutputFilterByType DEFLATE application/x-font-opentype
AddOutputFilterByType DEFLATE application/x-font-otf
AddOutputFilterByType DEFLATE application/x-font-truetype
AddOutputFilterByType DEFLATE application/x-font-ttf
AddOutputFilterByType DEFLATE application/x-javascript
AddOutputFilterByType DEFLATE application/xhtml+xml
AddOutputFilterByType DEFLATE application/xml
AddOutputFilterByType DEFLATE font/opentype
AddOutputFilterByType DEFLATE font/otf
AddOutputFilterByType DEFLATE font/ttf
AddOutputFilterByType DEFLATE image/svg+xml
AddOutputFilterByType DEFLATE image/x-icon
AddOutputFilterByType DEFLATE text/css
AddOutputFilterByType DEFLATE text/html
AddOutputFilterByType DEFLATE text/javascript
AddOutputFilterByType DEFLATE text/plain
AddOutputFilterByType DEFLATE text/xml
BrowserMatch ^Mozilla/4 gzip-only-text/html
BrowserMatch ^Mozilla/4\.0[678] no-gzip
BrowserMatch \bMSIE !no-gzip !gzip-only-text/html
Header append Vary User-Agent
</IfModule>
7.Js ve Css versiyon kaldırın
Alttaki fonksiyonu temanızın functions.php dosyasına ekleyin.
function wp_js_version_kaldırma( $src ) {
if ( strpos( $src, 'ver=' ) )
$src = remove_query_arg( 'ver', $src );
return $src;
}
add_filter( 'style_loader_src', 'wp_js_version_kaldırma', 9999 );
add_filter( 'script_loader_src', 'wp_js_version_kaldırma', 9999 );8.Wordpress varsayılan olarak eklenen css ve js kodlarını temizleyin if( !function_exists( "wp_temizlik" ) ) {
function wp_temizlik() {
// wp header temizlik
remove_action( 'wp_head', 'wlwmanifest_link' ); // Windows Live Writer silme
remove_action( 'wp_head', 'wp_generator' );// WP version silme
remove_action('wp_head', 'wp_oembed_add_discovery_links', 10); // application/json+oembed silme
remove_action('wp_head', 'print_emoji_detection_script', 7); //js emoji silme
remove_action('wp_print_styles', 'print_emoji_styles'); //style emoji silme
remove_action('wp_head', 'wp_resource_hints', 2); //<link rel='dns-prefetch' href='//s.w.org' /> silme
remove_action('wp_head', 'rest_output_link_wp_head', 10); //https://api.w.org/ silme
wp_deregister_script( 'wp-embed' ); // wp-embed kodları silme
wp_deregister_script( 'imagesloaded' );
remove_action('wp_head', 'wp_shortlink_wp_head', 10, 0);
}
}
add_action( 'init', 'wp_temizlik' );9.Dns Prefetch ile site açılış hızını artırın
Harici yerlerden çekilen adreslerin DNS çözümlemesini yapar.Adsense Analiytcs gibi kodların siteyi yavaşlatmasını engeller.
head kodundan önceye ekleyin.
<link href="//www.google.com" rel="dns-prefetch" />
<link href="//apis.google.com" rel="dns-prefetch" />
<link href="//fonts.googleapis.com" rel="dns-prefetch" />
<link href="//fonts.gstatic.com" rel="dns-prefetch" />
<link href="//www.gstatic.com" rel="dns-prefetch" />
<link href="//adservice.google.com" rel="dns-prefetch" />
<link href="//pagead2.googlesyndication.com" rel="dns-prefetch" />
<link href="//tpc.googlesyndication.com" rel="dns-prefetch" />
<link href="//ad.doubleclick.net" rel="dns-prefetch" />
<link href="//googleads.g.doubleclick.net" rel="dns-prefetch" />
<link href="//securepubads.g.doubleclick.net" rel="dns-prefetch" />
<link href="//stats.g.doubleclick.net" rel="dns-prefetch" />
<link href="//cm.g.doubleclick.net" rel="dns-prefetch" />
<link href="//partner.googleadservices.com" rel="dns-prefetch" />
<link href="//www.google-analytics.com" rel="dns-prefetch" />
<link href="//www.googletagmanager.com" rel="dns-prefetch" />
<link href="//www.googletagservices.com" rel="dns-prefetch" />
<link href="//lh3.googleusercontent.com" rel="dns-prefetch" />
<link href="//www.youtube.com" rel="dns-prefetch" />
<link href="//player.vimeo.com" rel="dns-prefetch" /> <link href="//www.google.com" rel="dns-prefetch" />
<link href="//apis.google.com" rel="dns-prefetch" />
<link href="//fonts.googleapis.com" rel="dns-prefetch" />
10.SQL Sorgusu ile Transient Verilerini Temizleyin DELETE FROM `wp_options` WHERE `option_name` LIKE ('_transient_%');DELETE FROM `wp_options` WHERE `option_name` LIKE ('_site_transient_%');Bonus Alttaki Fonksiyonu functions.php ekleyin
Wordpress sayfalamadan dolayı oluşan hantallığı ortadan kaldırır.
if ( ! function_exists( 'wpartisan_set_no_found_rows' ) ) :
function wpartisan_set_no_found_rows( \WP_Query $wp_query ) {
$wp_query->set( 'no_found_rows', true );
}
endif;
add_filter( 'pre_get_posts', 'wpartisan_set_no_found_rows', 10, 1 );
if ( ! function_exists( 'wpartisan_set_found_posts' ) ) :
function wpartisan_set_found_posts( $clauses, \WP_Query $wp_query ) {
if ( $wp_query->is_singular() ) {
return $clauses;
}
global $wpdb;
$where = isset( $clauses[ 'where' ] ) ? $clauses[ 'where' ] : '';
$join = isset( $clauses[ 'join' ] ) ? $clauses[ 'join' ] : '';
$distinct = isset( $clauses[ 'distinct' ] ) ? $clauses[ 'distinct' ] : '';
$wp_query->found_posts = $wpdb->get_var( "SELECT $distinct COUNT(*) FROM {$wpdb->posts} $join WHERE 1=1 $where" );
$posts_per_page = ( ! empty( $wp_query->query_vars['posts_per_page'] ) ? absint( $wp_query->query_vars['posts_per_page'] ) : absint( get_option( 'posts_per_page' ) ) );
$wp_query->max_num_pages = ceil( $wp_query->found_posts / $posts_per_page );
return $clauses;
}
endif;
add_filter( 'posts_clauses', 'wpartisan_set_found_posts', 10, 2 );İşlemleri uygulamadan önce yedek alın.