Konuyla ilgili size kendi hikayemi anlatacağım. İnşallah siz de probleminizi bu yazı sayesinde çözersiniz. WordPress malum en çok kullanılan scriptlerden birisi. Ben de sitelerimin büyük bir çoğunluğunda bu alt yapıyı kullanıyorum. Geçtiğimiz günlerde sitelerimden birisi, benim herhangi bir değişiklik yapmamış olmama rağmen, aşırı şekilde yavaşladı. Öyle ki bir sayfanın açılması 10-15 saniye sürüyordu. Önce bildiğim şeyleri uyguladım, olmayınca uzun süre çözümü ile ilgili araştırma yaptım ama denediğim hiçbir şey işe yaramadı. Onlardan bazıları şunlar (belki sizin için işe yarayabilir):
- Sitenizde yüklü olan tüm eklentileri pasif hale getirip site hızınızı tekrar kontrol edin. Eğer düzelirse eklentileri tek tek aktif hale getirerek her seferinde hızı kontrol edin. Problemli eklentiyi tespit edin ve kaldırın. Çok önemli bir işleve sahipse bir benzerini kullanmayı deneyin.
- Temanızı değiştirin. Bazı temalar gereksiz php kodlar içerebiliyor ve bu sitenizi yavaşlatıyor olabilir.
- Hosting yöneticinizle iletişime geçin. Sitenizin hiti yüksek olmasına rağmen sıradan bir hostingde yayın yapıyorsanız sorun bu olabilir. Ziyaretçi sayınız yükseldikçe kullandığınız kaynak artacaktır ve dolayısıyla bu durum sitenizin çok yavaşlamasına sebep olabilir.
- Önbellek eklentileri kurmayı deneyin. WP Super Cache, Quick Cache veya bunlara benzer eklentiler sitenizin derdine derman olabilir.
- DB Optimize eklentisini kurarak MySQL databasenizi onarın. Zaman zaman bu işlemi yapmanızda fayda var zira database tabloları bazen bozulabilir ve onarmaya veya uyarlamaya ihtiyaç duyabilir. Bu eklenti gereken işlemi otomatik olarak yapar. PhpMyAdmin aracılığıyla bunu siz elle de yapabilirsiniz.
Yukarıdaki seçeneklerden hiçbiri benim işimi görmedi. Zaten bazılarını denemiştim. Eklentiler, tema, hosting vs. problem burada değildi. Delirme noktasındayken databasedeki tabloları tek tek incelemeye giriştim. Sitemde çok fazla sayıda yazı ve etiket vardı. 3-4 yıldır da yayında olan bir siteydi. Problemin bu tablolarda olabileceğini düşündüm ancak bunları silmenin bir yolu yoktu zira site içeriğimi oluşturuyorlardı. Derken wp_options tablosu dikkatimi çekti. 12MB civarı bir boyuttaydı. İçerisine baktığımda kalu beladan kalma eklentiler temalar vs ile ilgili dataların olduğu gördüm. Problem işte buradaydı. wp_options tablosu aşırı şiştiği için sitedeki sayfaların açılışında mevcut geçerli ayarlarla ilgili bilgileri bulup çalıştırana kadar çok zaman geçiyordu. Lakin bu tabloyu sıfırlamak da çok kolay olmadı.
wp_options Tablosunu Nasıl Sıfırlarım?
Buradaki yazan adımları uygulamadan önce mutlaka database yedeği alın. Yıllarca verdiğiniz emek 2 tık sonra çöp olur gider. Yedek candır kandır, yedeksiz olmaz.
Bu işi yapan bir eklenti var mı bilmiyorum. Clean Options isimli bir eklenti denedim fakat işe yaramadı. Dolayısıyla size kendi takip ettiğim yolu anlatıyorum.
1. YOL: Eğer yazılarınızı dışa aktar seçeneği çalışıyorsa xml dosyası olarak yazıların çıktısını alın. Bunu Araçlar -> Dışa Aktar seçeneği ile yapacaksınız. Daha sonra PhpMyAdmin üzerinden bütün tablolarınızı kaldırın. Daha sonra site anadizinine geldiğinizde yeni bir kurulum yapıyor gibi sitenizi kurun. Tertemiz kurulumunuzun içine Araçlar -> İçe Aktar özelliğiyle yazılarınızı, etiket ve kategorilerinizi yükleyin. Ben bunu yapamadım çünkü WordPress Dışa Aktar özelliği çalışmıyordu. Sanırım çok fazla yazı ve etiket olduğu için bunu yapamadım.
2. YOL: PhpMyAdmin üzerinden wp_options tablosu hariç tüm tabloları işaretleyip dışa aktarın. Bunu yaparken gelişmiş moda geçerek gzip sıkıştırmayı aktif hale getirin ki işlemi hızlı şekilde yapabilesiniz. Daha sonra tüm tabloları kaldırın. Sitenizin ana dizinine gidip yeni kurulumunuzu yapın. Sonra tekrar PhpMyAdmin üzerinden wp_options hariç tüm tabloları kaldırın. Sadece wp_options kalsın. Daha sonra wp_options’u hariç tutarak aldığınız yedek dosyasını İçe Aktarın. Ben bu şekilde durumu düzelttim.
Önemli Uyarı: wp_options sitenizdeki tüm ayarların barındığı tablodur. Dolayısıyla bunu sıfırlamak tüm ayarları sıfırlamak demektir. Bileşenleriniz, bileşenlerinize ait ayarlar, sitenizde aktif olan tema vs her şey buradadır. Dolayısıyla yedeklemeniz gereken sayaç kodları şu bu vs aklınıza gelen ne varsa bunları yedekleyin.
EK BİR TAVSİYE
Quick Cache eklentisini kullanmanızı öneriyorum. Ancak asıl tavsiyem database ile ilgili. Databasenizi şişiren bir diğer durum da yazılarınıza ait sürümlerdir. Hani bazı yazılara girdiğinizde bu yazıya ait daha yeni bir sürüm vardır diyor ya, işte o. Benimki gibi 1500′ün üzerinde yazı içeren bir sitede bazı yazılarda 2-3 hatta 9-10 sürüm olduğunu düşünürseniz bu deli bir rakam ortaya çıkartır. Ne yapacaksınız? Optimize Database after Deleting Revisions eklentisini kuracaksınız. Bu eklentiyi kullanarak tüm revision, draft, spam vs içerikleri silin. Ben çalıştırdım. Sonuç şöyle oldu:
Databasemin yarısından çoğunu gördüğünüz gibi bu gereksiz şeyler harcıyormuş. Şu an hem sitem hem de ben kuşlar kadar hafifiz. Darısı sizin başınıza. Yine de yapamazsanız siteye yorum bırakarak yardım isteyebilirsiniz. Yardımcı olmaya çalışırım.
Unutmadan; işlem öncesinde 12MB boyutunda olan wp_options tablosu, şu an sadece 434KB! Sitemdeki tüm ayarları tekrar yaptım ve sorunsuz halde çalışıyor üstelik. 12MB nerde 434KB nerde. Meğer sistemi hamal etmişiz de haberimiz yokmuş! :)