WordPress Autoload Şişkinliği: Denetle ve Düzelt

WordPress autoload şişkinliği her istekte wp_options'ı şişirir. Fazla veriyi iki SQL sorgusuyla bulun, güvenle kapatın ve 800 KB altına inin.
İçindekiler
Makale başlıklarına göz atarak istediğiniz içeriğe kolaylıkla ulaşın.

Önemli Noktalar

  • Query Monitor eklentisi, WordPress sayfalarındaki yavaş sorguları incelemek için kullanılır.
  • wp_postmeta tablosundaki yavaş sorgular, meta_key ve meta_value sütunlarını kapsayan bileşik indexler ile hızlandırılır.
  • MySQL sorguları, ideal bir performans için 50 ms altında çalışmalı ve tipik bir sayfa toplam 200 ms altı veritabanı süresine sahip olmalıdır.

WordPress her istekte tüm autoload setinizi wp_options‘tan yükler.

Set şişmişse, bedelini her sayfa öder.

Autoload Verinizi Denetleyin: İki Sorgu

Bunları phpMyAdmin, Adminer veya wp db query‘ye yapıştırın. İlki toplam autoload boyutunu KB olarak verir. İkincisi, buna yol açan 25 seçeneği listeler. Prefix’iniz farklıysa wp_ kısmını değiştirin.

-- Toplam autoload verisi (KB) + satır sayısı
SELECT ROUND(SUM(LENGTH(option_value)) / 1024, 1) AS autoload_kb,
       COUNT(*) AS autoload_count
FROM wp_options
WHERE autoload IN ('yes', 'on', 'auto', 'auto-on');
-- En büyük 25 suçlu, en büyük önce
SELECT option_name,
       ROUND(LENGTH(option_value) / 1024, 1) AS size_kb,
       autoload
FROM wp_options
WHERE autoload IN ('yes', 'on', 'auto', 'auto-on')
ORDER BY LENGTH(option_value) DESC
LIMIT 25;

IN (…) listesi neden önemli: WordPress 6.6+ klasik 'yes' ve 'on' yanında 'auto' ve 'auto-on' da yazar. Sadece autoload = 'yes'‘e bakan bir sorgu gerçek boyutu eksik sayar. Bu yüzden birçok site kâğıt üstünde iyi görünür ama her istekte şişmiş bir set yükler.

WordPress Autoloader ile Autoload Verisi Farkı

“Autoloader” WordPress’te iki ayrı şey demektir ve arama ikisini de döndürür. Hangisine sahip olduğunuzu 30 saniyede kontrol edin.

İnsanların dediğiGerçekte neSiteyi yavaşlatır mı?
PHP sınıf autoloader’ı (Composer, spl_autoload_register, PSR-4)Bir sınıf ilk kullanıldığında dosyasını yükleyen fonksiyon; elle require yazmazsınızNeredeyse hiç. Dosya sistemi araması, genelde OPcache’lenir
Autoload seçenekleri (wp_options‘taki autoload sütunu)Kodunuz çalışmadan önce, her istekte belleğe çekilen satırlarEvet. Size pahalıya patlayan bu; sayfanın konusu da bu

Host “autoloaded data” uyarısı verdiği için veya profilleyicide alloptions gördüğünüz için buradaysanız, ikincisini istiyorsunuz. Class not found hatası ayıklıyorsanız birincisini; o bir Composer/PSR-4 sorunudur.

Autoload Verisi Nedir?

WordPress’in her sayfa yüklemesinde, tema veya eklenti kodu çalışmadan önce koşan tek bir sorgusu vardır:

SELECT option_name, option_value
FROM wp_options
WHERE autoload = 'yes'

Bu, tüm “autoload” seçeneklerini tek seferde belleğe yükler. Çekirdek bu verinin ~100 KB’sine ihtiyaç duyar. Sorun, eklentilerin bunu kötüye kullanmasıdır.

Desen: Bir eklentiyi kapatırsınız; verisi autoload='yes' olarak wp_options‘ta kalır. 2 yılda 30 eklenti kurarsınız. Artık her istekte 5 MB veri yüklüyorsunuz; çoğu artık kullanmadığınız eklentilerden.

TTFB’yi ara sıra zıplatan yavaş sorguların aksine, autoload şişkinliği sabit bir vergidir. Önbellekli ya da değil, ön yüz ya da admin, her isteğe gecikme ekler.

Sağlıklı Autoload Boyutu: wp_options Eşikleri

Toplam autoload boyutunu bir bütçe olarak görün, gösteriş metriği değil. Denetim sorgusunu çalıştırın, sonucunuzu bu tabloya göre okuyun.

Autoload boyutuKararNe yapmalı
300 KB altıİyiHiçbir şey. Çekirdek tek başına ~100 KB ister; normal bölgedesiniz. Büyük kurulum veya taşıma sonrası tekrar bakın.
300–800 KBİzleTop-25 sorgusunu çalıştır. En büyük satırların hangi eklentiye ait olduğunu not et; büyümeden öksüz ve bayat cache’lerin autoload’unu kapat.
800 KB–1 MBHarekete geçÇoğu yönetilen hostun işaretlediği çizgiyi aştın. Bu hafta temizlik planla. Silmek yerine autoload='no' tercih et.
1 MB üstüAcilWordPress tüm seti tek alloptions anahtarında önbelleğe alır. Çoğu Redis/Memcached kurulumu tek değeri ~1 MB ile sınırlar; set sessizce önbelleğe alınamaz veya yük altında 502 olarak çıkar.

3 MB üstü autoload verisi olan siteler yaygındır. 10 MB+ gördük; bu, WordPress sayfayı kurmaya başlamadan önce her istekte MySQL’den PHP’ye taşınan 10 MB demektir.

WP Engine “Autoloaded Data” Uyarısı: Ne Yapmalı?

WP Engine autoload verisini 800 KB’yi geçince işaretler; altını normal sayar. Bunu panel uyarısı olarak yüzeye çıkaran az sayıdaki hosttan biridir. Fiziği host-bağımsızdır; her istek tüm seti PHP’ye çeker.

  1. Önce kendiniz ölçün. Yukarıdaki denetim sorgusunu çalıştırın. Host panelleri zamanlamayla örnekler; gördüğünüz sayı saatlerce eski olabilir. Bazı paneller hâlâ autoload = 'yes'‘i test eder ve 6.6+ sürümde eksik sayar.
  2. Toplamı değil, suçluları bulun. Toplam bir belirtidir. İlk 25 satırı LENGTH(option_value)‘a göre listeleyin; yükün çoğunu genelde üç dört satır taşır.
  3. Her birini dokunma listesiyle kontrol edin. Bir şey değiştirmeden önce aşağıdaki listeye bakın. Bazı büyük autoload seçenekleri büyük olmalıdır.
  4. Autoload’u kapatın, silmeyin. wp option set-autoload OPTION_NAME off veriyi bozmadan geri alınabilir bırakır. Satır silmek bir eklentinin ayarlarını bozmanın yoludur.
  5. Yeniden ölçün ve panelin yetişmesini bekleyin. Uyarı, WP Engine’in bir sonraki kontrolünde temizlenir, anında değil.

Memcached’e özel bir uyarı: ~1 MB üstünde blob anahtar limitini aşabilir, sessizce önbelleğe alınamaz ve her istek veritabanına döner. Bu, wp-admin’de yavaş sayfa yerine rastgele 502 olarak görünür.

WordPress Autoload Şişkinliğinin Nedenleri

1. Kapatılan Eklenti Artıkları

Çoğu eklenti ardından temizlik yapmaz. Etkinleştirmede seçenek ekler ve kapatma/silme sonrası bile sonsuza dek bırakır. Bulun:

SELECT option_name, LENGTH(option_value) AS size
FROM wp_options
WHERE autoload = 'yes'
ORDER BY size DESC
LIMIT 20;

Artık kullanmadığınız eklentilere ait isimleri arayın. Bunları autoload='no' yapmak veya silmek güvenlidir.

2. Büyüyen Serileştirilmiş Diziler

Bazı eklentiler büyüyen veriyi tek seçenekte tutar: kayıtlar, analitik anlık görüntüleri, cron zamanlamaları. Tek bir option_value 500 KB+ serileştirilmiş PHP olabilir.

3. Süresi Dolmuş Transient’ler

Transient’ler wp_options‘ta tutulan geçici cache değerleridir. Dış nesne önbelleği yoksa dolanları birikir. WordPress bunları yalnızca tembel şekilde, bir sonraki erişimde temizler.

SELECT COUNT(*) FROM wp_options
WHERE option_name LIKE '_transient_%'
AND autoload = 'yes';

4. Yanlış Yapılandırılmış Eklentiler

Kullanıcı başı ayarları, büyük JSON yapılandırmaları veya önbelleklenmiş API yanıtlarını autoload seçeneğinde tutan eklentiler. Veri gerekli olabilir ama her istekte yüklenmesi gerekmez.

wp_options’ta Autoload Verisi Nasıl Denetlenir?

  1. Toplam autoload boyutunu kontrol edin. Yukarıdaki SQL’i çalıştırın. 1 MB üstü hemen inceleme gerektirir.
  2. En büyük suçluları bulun. Seçenekleri LENGTH(option_value)‘a göre sıralayın. İlk 10 genelde şişkinliğin %80’inden fazlasını oluşturur.
  3. Öksüz veriyi belirleyin. İsimleri aktif eklentilerinizle karşılaştırın. Kapatılmış eklentilerden gelen seçeneklere dokunmak güvenlidir.
  4. Değiştirmeden önce test edin. Tek seferde bir seçeneği autoload='no' yapın. Sitenin çalıştığını doğrulayın. Bazı seçenekler gerçekten autoload gerektirir.
  5. Dolmuş transient’leri temizleyin. Zaman aşımını geçmiş transient’leri silin. Bu her zaman güvenlidir.

Neyi KAPATMAMALI?

autoload‘u çevirmek geri alınabilir. Satır silmek değil. Bazı seçenekler sahibi aktifken autoload kalmalı, yoksa WordPress ve eklentiler bootstrap’ın başında bozulur. Hata da vermez, sessizce kötüleşir. Toplu değişiklikten önce bunu kontrol edin.

Autoload kalsın (kullanımdayken)Genelde autoload='no' güvenli
cron (tüm WP-Cron haritası); active_plugins, template, stylesheet; siteurl, home, blogname; user_roles, permalink_structure, rewrite_rules; aktif temanın theme_mods_*‘ı; aktif eklentilerin çalışma ayarları (WooCommerce config, Yoast wpseo_*, güvenlik duvarı kuralları)Silinen eklentilerden öksüz satırlar; bayat _transient_* ve _site_transient_* (tanım gereği cache); güncelleme artıkları _site_transient_update_*; kuyruk/telemetri kaydı action_scheduler_*, wc_tracks_*; aşırı büyük sayfa oluşturucu CSS/asset blobları (_elementor_* ve Divi sık tekrar eder)

Kural: eklenti aktifse ve seçenek her istekte okuduğu yapılandırmaysa autoload açık kalsın. Eklenti gittiyse ya da değer bir cache, kayıt veya kuyruk blob’uysa önce autoload’u kapatın; ancak hiçbir şeyin okumadığını doğruladıktan sonra silin.

Yaygın Autoload Suçluları: Kapatmak Güvenli mi?

Sürekli gördüğüm 20 prefix ve her biriyle ne yaptığım. “Dikkat”, cevabın eklentinin hâlâ aktif olup olmamasına bağlı olduğu anlamına gelir; önce onu kontrol edin.

Seçenek / prefixKaynakAutoload kapatmak güvenli mi?
_transient_* / _site_transient_*Çekirdek + herhangi eklentiEvet — tanım gereği cache; nesne önbellekli sitelerde zaten wp_options’ta durmamalı
action_scheduler_*Action Scheduler (WooCommerce vb.)Evet — kuyruk kaydı, zamanlayıcı çalışınca talep üzerine yüklenir
wc_tracks_*WooCommerce (telemetri)Evet — kullanım izleme; kullanıcıya dönük hiçbir şey buna bağlı değil
woocommerce_* (ayarlar)WooCommerce çekirdekHayır — para birimi, vergi, ödeme yapılandırması her istekte okunur
elementor_*Elementor (ayarlar)Dikkat — aktifken gerekir; yalnızca Elementor kapatıldıysa güvenli
_elementor_*Elementor (iç/cache verisi)Dikkat — bazısı CSS/asset cache (güvenli), bazısı çalışma durumu; satır satır denetle
jetpack_* / _jetpack_*JetpackDikkat — bağlantı token’ları ve senkron durumu; yanlış olanı çevirmek bağlantıyı bozar
wpseo_*Yoast SEOAktifken Hayır — başlık, meta ve indexable ayarları her ön yüz isteğinde yüklenir. Kaldırıldıysa Evet
aioseo_*All in One SEODikkat — çekirdek ayarlar aktifken kalır; aşırı büyük cache/log seçeneklerini çevirmek güvenli
rank_math_*Rank MathDikkat — çalışma ayarları Hayır, analitik/cache blobları Evet
wf* / wflogsWordfenceDikkat — aktifken güvenlik duvarı config’i her istekte okunur; log satırları ve kaldırma sonrası öksüzler kesin Evet
et_*Divi (Elegant Themes)Dikkat — aktif tema ayarları Hayır; Divi’den geçtiyseniz tüm et_* ölü yük — Evet
fs_accountsFreemius SDK (birçok eklentide gömülü)Dikkat — tüm Freemius tabanlı eklentilerin paylaştığı tek satır; biri aktifken çevirmek lisansı bozar
rewrite_rulesÇekirdekDikkat — çoğu zaman en büyük seçenek ama WordPress URL yönlendirmek için ister. Asla silme; devasaysa şişiren eklentiyi bul
cronÇekirdekHayır — tüm WP-Cron programı burada; autoload’u kapatmak zamanlı görevleri bozar

WordPress’te Autoload Şişkinliği Nasıl Düzeltilir?

Belirli Seçeneklerin Autoload’unu Kapatın

UPDATE wp_options SET autoload = 'no'
WHERE option_name = 'old_plugin_settings';

Dolmuş Transient’leri Temizleyin

DELETE FROM wp_options
WHERE option_name LIKE '_transient_timeout_%'
AND option_value < UNIX_TIMESTAMP();

Öksüz Eklenti Verisini Silin

-- Yalnızca eklentinin gittiğini doğruladıktan sonra:
DELETE FROM wp_options
WHERE option_name LIKE 'removed_plugin_%';

Manuel çözümlerin sorunu: kalıcı olmazlar. Eklentiler veri eklemeye devam eder. Transient’ler yeniden birikir. Yeni eklentiler yeni autoload seçenekleri getirir. Kontrol altında tutmak için aylık denetim gerekir.

Autoload Şişkinliği Neden Büyümeye Devam Eder?

Autoload şişkinliği ilerleyicidir. 50 KB’lik adımlarla yavaşça büyür; siteniz belirgin yavaşlayana kadar görünmez.

  1. Yeni eklenti kuruldu → 200 KB autoload yapılandırma seçeneği
  2. Eklenti kapatıldı → veri kalır, hâlâ autoload’lanır
  3. Transient cache miss → autoload’la yeni transient saklanır
  4. Eklenti güncellemesi → geçiş yeni autoload satırları ekler

WordPress yönetici paneliniz de yavaşladıysa, gizli neden çoğu zaman autoload şişkinliğidir. Sorun performansa dönüşmeden hangi seçeneğin bellek harcadığını gösteren sürekli izlemeye ihtiyacınız var.

Autoload Şişkinliği SSS

300 KB altı sağlıklı, 300–800 KB izlenmeli, 800 KB üstü harekete geçmeli. 1 MB üstünde set tek anahtar limitini aşabilir, önbelleğe alınamaz ve 502 hatalarına yol açar.
Hayır. wp option set-autoload OPTION_NAME off veriyi bozmadan bırakır ve geri alınabilir. Yalnızca her istekte belleğe yüklenmesini durdurur. Satır silmek ayrı ve geri dönüşü olmayan bir işlemdir.
Paneller zamanlamayla örnekler, bu yüzden sayı eski olabilir. Bazıları hâlâ yalnızca autoload = 'yes'‘i test eder; WordPress 6.6+ ise 'on', 'auto' ve 'auto-on' da yazar. Dört değeri de sayın.

Hiçbir güncellemeyi kaçırma!

bw/a web sitesini Tercih Edilen Kaynak olarak Google'a ekleyin
ve arama sonuçlarında daha fazla görün.

⭐ Tercih Edilen Kaynak Olarak Ekle

Yazar Hakkında

Tolga Altaş fotoğrafı
‎Dijital Pazarlama Uzmanı · ‎bw/a (better with agency) · 11 yıl deneyim

Tolga Altaş, Samsun merkezli dijital pazarlama ajansı bw/a (better with agency) bünyesinde Dijital Pazarlama Uzmanı olarak görev yapıyor. Yerel işletmeler için SEO, Google Ads, sosyal medya yönetimi ve web tasarımı alanlarında uçtan uca dijital pazarlama stratejileri geliştiriyor. Veri odaklı yaklaşımıyla markaların organik görünürlüğünü ve dönüşüm oranlarını artırmaya odaklanıyor.

Dijital PazarlamaSEOGoogle AdsSosyal Medya Yönetimiİçerik PazarlamasıWeb TasarımıYerel SEO