Eklentisiz WordPress Hız Optimizasyonu Nasıl Yapılır (Sadece Kod Rehberi)

Yayınlanma tarihi | Yazan
6 dk okuma

Bunu okuyorsanız, muhtemelen şunlardan bıkmışsınızdır: standart WordPress performans tavsiyeleri. Olağan rutin—WP Rocket kurmak, bir görsel optimize edici eklentisi eklemek ve bir varlık yöneticisi atmak—genellikle bir paradoksa yol açar: sitenizi hızlandırmak için eklentiler yüklersiniz, ancak eklentilerin kendileri veritabanı şişkinliği, arka plan cron işleri ve kendi CSS/JS yüklerini ekler.

Gerçek şu ki, WordPress'in bir saniyenin altında yüklenmesi için 15 performans eklentisine ihtiyacı yoktur. Gerçek hız optimizasyonu metal katmanında—sunucu, veritabanı ve çekirdek kodda—gerçekleşir.

Bu rehberde, eklenti ekosistemini tamamen atlayacağız. WordPress'i sunucu tarafı yapılandırmaları kullanarak optimize edeceğiz, wp-config.php ayarlamalar ve cerrahi functions.php kod parçacıkları.


1. Sunucu Tarafı Temeli (PHP Gerekmez)

Tek bir satır WordPress koduna dokunmadan önce, sunucu ortamınızın yoğun bir şekilde optimize edilmesi gerekir. Zayıf bir sunucu, ön uç önbellekleme ile düzeltilemez.

PHP 8.1+'e Yükseltin

WordPress PHP üzerinde çalışır. PHP 7.4'ten PHP 8.1 veya 8.2'ye geçmek, yürütme süresinde -30 azalma ve bellek tüketiminde önemli ölçüde düşüş sağlayabilir. Eylem: Bunu cPanel'inizden, Plesk'ten veya kendi VPS'nizi yönetiyorsanız CLI aracılığıyla değiştirin.

Sunucu Seviyesinde Sıkıştırmayı Etkinleştirin (Gzip yerine Brotli)

Gzip standart olsa da, Brotli (Google tarafından geliştirilmiştir) metin dosyaları (HTML, CSS, JS) için aynı CPU maliyetinde yaklaşık -20 daha iyi sıkıştırma oranları sağlar. Eylem (Nginx): Şunun olduğundan emin olun: nginx.conf Brotli etkinleştirilmiş durumda:

brotli on;
brotli_comp_level 6;
brotli_types text/plain text/css application/javascript application/json image/svg+xml;

FastCGI Önbellekleme (Nginx) veya LiteSpeed Cache Uygulayın

PHP tabanlı bir önbellekleme eklentisi kullanmak yerine (ki bu, önbelleği sunmak için WordPress'in kısmen yüklenmesini gerektirir), web sunucusu düzeyinde önbellekleme yapın. Nginx FastCGI önbellekleme, oluşturulan HTML'yi RAM'de veya diskte saklar ve doğrudan sunarak anonim ziyaretçiler için PHP ve MySQL'i tamamen devre dışı bırakır.


2. Şununla Güçlendirme ve Hafifletme: wp-config.php

Dosyası wp-config.php kontrol merkezinizdir. Varsayılan olarak WordPress, zamanla veritabanınızı şişiren belirli davranışlara izin verir.

Bu kod parçacıklarını tam olarak şu satırdan önce ekleyin: /* That's all, stop editing! Happy publishing. */ satırı.

Yazı Revizyonlarını Sınırlandırın

Varsayılan olarak WordPress, yazılarınızın sonsuz revizyonunu saklar. 50 kez güncellenen bir yazı, wp_posts veritabanı tablonuzda 50 kopyaya sahip olur ve veritabanı sorgularını önemli ölçüde yavaşlatır.

// Keep only the last 3 revisions
define( 'WP_POST_REVISIONS', 3 );

Otomatik Kaydetme Aralığını Optimize Edin

WordPress her 60 saniyede bir otomatik kaydeder. Birden fazla editörünüz çalışıyorsa, bu veritabanını yorar. Süreyi uzatın.

// Change autosave from 60 seconds to 5 minutes
define( 'AUTOSAVE_INTERVAL', 300 );

Çöp Kutusunu Daha Hızlı Boşaltın

Silinen yazılar ve yorumlar 30 gün boyunca veritabanında kalır. Veritabanını yalın tutmak için bunu azaltın.

// Empty trash every 7 days
define( 'EMPTY_TRASH_DAYS', 7 );

3. "Şişkinlik Karşıtı" functions.php Ana Kod Parçacığı

WordPress çekirdeği, varsayılan olarak  ve 

 içine çok miktarda eski destek betiği, keşif bağlantıları ve satır içi stiller enjekte eder.

Rakiplere karşı maksimum bilgi kazanımı elde etmek için size sadece "bir şişkinlik giderme eklentisi kullanın" demeyeceğiz. İşte en yaygın WordPress şişkinliğini cerrahi olarak kaldırmak için gereken kesin kod.

Not: Bunu Çocuk Temanızın functions.php dosyasına veya bir mu-plugin dosyasına ekleyin.

/**
 * The Ultimate WordPress Debloat Snippet
 */
add_action('init', function() {
    // 1. Remove RSD, XMLRPC, and WLW links
    remove_action('wp_head', 'rsd_link');
    remove_action('wp_head', 'wlwmanifest_link');
    add_filter('xmlrpc_enabled', '__return_false');

    // 2. Remove WordPress version footprint (Security & Speed)
    remove_action('wp_head', 'wp_generator');

    // 3. Remove Shortlinks and REST API links from header
    remove_action('wp_head', 'wp_shortlink_wp_head');
    remove_action('wp_head', 'rest_output_link_wp_head');

    // 4. Disable native Emojis (Saves 1 JS and 1 CSS HTTP Request)
    remove_action('wp_head', 'print_emoji_detection_script', 7);
    remove_action('wp_print_styles', 'print_emoji_styles');
    remove_action('admin_print_scripts', 'print_emoji_detection_script');
    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');

    // 5. Disable oEmbeds (If you don't embed external URLs automatically)
    remove_action('wp_head', 'wp_oembed_add_discovery_links');
    remove_action('wp_head', 'wp_oembed_add_host_js');
    add_action('wp_footer', function() { wp_deregister_script('wp-embed'); });
});

/**
 * 6. Remove Global Styles (WP 5.9+ Inline CSS Bloat)
 */
add_action('wp_enqueue_scripts', function() {
    wp_dequeue_style('global-styles');
    wp_dequeue_style('classic-theme-styles');
}, 100);

/**
 * 7. Remove jQuery Migrate (If using modern themes/plugins)
 */
add_action('wp_default_scripts', function($scripts) {
    if (!is_admin() && isset($scripts->registered['jquery'])) {
        $script = $scripts->registered['jquery'];
        if ($script->deps) {
            $script->deps = array_diff($script->deps, ['jquery-migrate']);
        }
    }
});

/**
 * 8. Throttle the Heartbeat API
 * Prevents high CPU usage when leaving the WP Admin open
 */
add_filter('heartbeat_settings', function($settings) {
    $settings['interval'] = 60; // Throttle to 60 seconds
    return $settings;
});

Az önce ne başardık?

Yukarıdaki kodu ekleyerek, anında 5-8 gereksiz HTTP isteğini ortadan kaldırdınız ve her sayfa yüklemesinden düzinelerce satır satır içi CSS/JS'yi kaldırdınız; üstelik tek bir eklenti bile yüklemeden.


4. Medya Optimizasyonu (Zor Yol)

Smush veya Imagify gibi eklentiler kullanışlıdır, ancak görüntü işleme işlemlerini PHP sunucunuzda çalıştırarak CPU kaynaklarını tüketirler.

Manuel WebP/AVIF Dönüşümü

WordPress'e herhangi bir görsel yüklemeden önce, onu Squoosh.app (Google tarafından) veya TinyPNGgibi harici, kayıpsız bir sıkıştırıcıdan geçirin. Daha da iyisi, yüklemeden önce yerel olarak .webp veya .avif formatlarına dönüştürün.

Yerel Lazy Loading'den Yararlanın

WordPress 5.5'ten beri yerel lazy loading yerleşiktir. WordPress otomatik olarak görsellerinize loading="lazy" ekler. JavaScript tabanlı bir lazy loading eklentisine ihtiyacınız yoktur. Ancak, "ekranın üst kısmındaki" (logo veya hero görseliniz gibi) görsellerinizin bu özniteliğe sahip OLMADIĞINDAN emin olun, aksi takdirde En Büyük İçerikli Boyama (LCP) gecikecektir.

Sayfadaki ilk görsel için lazy loading'i şu şekilde kaldırabilirsiniz: functions.php:

add_filter( 'wp_get_attachment_image_attributes', function( $attr, $attachment, $size ) {
    static $is_first_image = true;
    if ( $is_first_image ) {
        $attr['loading'] = 'eager'; // Force immediate load for LCP
        $is_first_image = false;
    }
    return $attr;
}, 10, 3 );

5. phpMyAdmin ile Veritabanı Birleştirme

Optimizasyon eklentileri genellikle bir "Veritabanını Temizle" düğmesi içerir. Bunu veritabanı düzeyinde yerel olarak yapabilirsiniz.

  1. Hosting panelinize giriş yapın ve phpMyAdmin.
  2. açın. WordPress veritabanınızı seçin.
  3. En alta kaydırın, işaretleyin Tümünü işaretle.
  4. "Seçili olanlarla:" açılır menüsünden şunu seçin: Tabloyu optimize et.

MySQL tablo dizinlerini yeniden oluşturacak ve kullanılmayan alanı geri kazanacaktır. Bunu ayda bir kez manuel olarak yapın.


Karar

WordPress'i eklentisiz optimize etmek sadece premium aboneliklerden tasarruf etmekle ilgili değildir. Bu bir felsefedir teknik borcu azaltmak. Yüklemediğiniz her eklenti, yamalamanız gerekmeyen bir güvenlik açığı, temizlemeniz gerekmeyen bir veritabanı tablosu ve sunucunuzun yürütmek zorunda olmadığı bir PHP betiğidir.

İş yükünü sunucuya kaydırın (PHP 8.1+, Nginx FastCGI), disiplini zorunlu kılın wp-config.phpve çekirdek şişkinliğini şununla kesin: functions.phpİlk Bayta Kadar Süreniz (TTFB) ve Temel Web Verileriniz (Core Web Vitals) aradaki farkı yansıtacaktır.

Bu Gönderiyi Paylaş

Ajay Malik

Ajay Malik, 8 yılı aşkın deneyime sahip bir WordPress geliştiricisi ve Elite Freelancer'dır.