Wordpress altyapısını kullanan web siteniz yavaş mı çalışıyor? İlk kurduğunuz gün gibi olmasını nasıl mı sağlarsınız? Bu soruların yanıtlarını bu yazıda ele alıyorum. Hadi başlayalım. Wordpress web sitesinin yavaşlaması aslında Wordpress'in core yapısı ile ilgili değildir genellikle. Wordpress kullanan bir web sitesi, neredeyse hiç bir kullanıcı tarafından ilk kurulduğu halinde olduğu gibi kullanılmaz. Zaten Wordpress'in en çok kullanılan altyapı olmasının asıl sebepleri; çok esnek bir yapıda olması, kolaylıkla özelleştirilebilmesi ve kullanıcılar tarafından kolaylıkla erişebilmesi diyebiliriz. Şimdi gelin ufak bir test yapalım;
- Test tarihi: 28.09.2020
- Wordpress 5.5.1
- Kullanılan eklenti: 0
- Kullanılan tema: Twentytwenty
- Hiçbir ekleme ve değişiklik yapılmadı
- VDS Private barındırma hizmeti kullanıldı (Paylaşımsız 1gb bağlantı)
- Plesk Obsidian 18.0.29
- URL: vudvork.com
Görselde görüleceği üzere; oluşturulan test kurulumunda, sitenin toplam yüklenmesi 594 milisaniyede tamamlanıyor. Yani 1 saniyenin yarısı. Bu kadar hızlı açılabilen bir web sitesinin Google Page Speed'e yansıması da elbette çok çok iyi.
Wordpress sitesi neden yavaşlar?
Bir Wordpress sitesinin yavaşlamasının birçok sebebi olabilir ancak tema ve eklentiler en fazla yavaşlama sebep olan etkenlerdir. Yukarıdaki örnekte default tema ve hiçbir eklenti kullanmadan bu yüksek skorlar alabiliyoruz ancak Wordpressi, ciddi bir kod bilgisi olmadan eklentisiz kullanmak gerçekten çok zor olacaktır. Elbette gelen default temalar her iş için uygun olmadığından temayı da değiştirmek durumundayız. Şimdi gelin ikinci bir test yapalım ve konuya açıklık getirelim;
- Yukarıdaki kurulu Wordpress üzerine birkaç eklenti ve en popüler temalardan bir tanesini kurup tekrar skorları kontrol edelim.
- Themeansar üreticisinin Consultup temasını kurduk ve etkinleştirdik.
Artık web siteniz güzel görünüyor değil mi? Ama sonuçları pek güzel görünmüyor. Yüklemiş olduğumuz tema ile birlikte sadece bir tane geliştirici tarafından geliştirilen eklenti otomatik olarak kuruldu ve sitenin doğru çalışması için gerekli. Ama temanın kullandığı kaynaklara bakacak olursak;
- Sitenin yüklenme hızı 1.69 saniyeye çıktı. İlk denemize oranla şimdiden yaklaşık 3 kat yavaşladı. Üstelik hız skorları da alt üst oldu.
Testimize devam edip, gerekli olduğunu düşündüğümüz birkaç eklenti yükleyelim;
- All In One WP Security
- Contact Form 7
- Google XML Sitemaps
- Yoast SEO
- Easy WP SMTP
- Tema'nın eklentisi
(Eklentiler etkinleştirildi ve hiçbir ayar yapılmadı)
Yavaşlama sorunu sonuçları
İlk kurulum yaptığımız web sitemiz ile tema, eklenti kurulumu sonrasında elde ettiğimiz sonuç görsel olarak elbette çok farklı, ancak web sitesinin hızında ve hız skorlarında da ciddi değişiklikler var.
|Default||Tema+Eklenti|
|Yükleme süresi||594 ms||2.46 s|
|Toplam ağırlık||495 kb||2.3 mb|
|Hız skoru||100/100||69/91|
Yaptığım test tüm kullanıcıların ihtiyacını karşılayacak olan eklenti ve tema'lara göre yapılmamıştır. Yaptığım yüklemeler basit işleyişi tamamlayacak olan yüklemelerdir. Her web sitesinin ihtiyacı olan eklenti ve tema farklıdır. Tema'lar arasında da ciddi hız skorları farklılıkları söz konusudur. Yaptığım test sonucunda sizin de görebileceğiniz üzere ciddi yükleme süresinde ve web sitesinin toplam ağırlığında ciddi artışlar mevcuttur. Yükleme sürelerindeki ve toplam ağırlıklardaki artış, hız skorlarına negatif olarak yansımış ve Google Page Speed sonucuna doğrudan etki etmiştir. Çoğu kullanıcının kullandığı Woocommerce eklentisi ve woocommerce ile uyumlu tema kullanılmamıştır.
Wordpress nasıl hızlandırılır?
Wordpress web sitesinin neden yavaşlayacağını temel prensiple anlattıktan sonra hızlandırmak için neler yapılabileceğini anlatmak oldukça ironik. Peki ya hiç yavaşlatmasak? Başta belirttiğim gibi ihtiyaç ve esneklik...
Wordpress'in yavaşlamaması için alınabilecek önlemler;
- Gereksiz eklenti kullanımından kaçınmak: Bir çok kullanıcı kullanmak istediği tema ile birlikte gelen resmen bloatware olarak nitelendirilebilen birçok eklentiyi, tema istediği için yüklüyor. Çoğu zaman hızlandırma çalışmalarını yaptığım kullanıcıların web sitelerinde aynı işi yapan 2 hatta 3 eklentinin yüklü olmasıyla karşılaştığım olmuştur. Eklentilerin tamamı frontend'de çalışmasa da, backend'de en kötü ihtimalle sorgu döndürdüğü için bile yavaşlamaya sebep olacaktır. Bu nedenle, sadece ve sadece mutlaka kullanmak zorunda olduğunuz eklentiler haricinde tüm eklentilerden kurtulun. Bloatware; gereksiz yere kaynak tüketen programlar.
- Çok fazla frontend sorgusu: Kullandığınız tema veya tasarladığınız frontend'de çok fazla sorgu olması, ciddi bir yavaşlamaya sebep olacaktır. Slider, paylaşım butonları, renkli/şekilli bilgilendirme yazıları, javascript kontrolünde olan bileşenler (Döner kartlar, büyüyen/küçülen resimler vb) önsayfanızı güzelleştiren modüllerdir ancak unutmayınız ki bunların tamamı kaynak kullanır ve kaynak kullanımı veri aktarımı demektir. Ne kadar çok veri aktarımı o kadar çok gecikme. Ne kadar gecikme o kadar çok yavaşlama. Ne kadar yavaşlama o kadar düşük hız skoru demektir. Gereksiz sorgulardan kaçındığınız sade, web sitesinin ne yaptığını ve ne vaat ettiğini net ve basit bir dille anlatan frontend her zaman birincil tercihiniz olsun.
- CSS: Tema ve frontend'den bahsetmişken, CSS'den bahsetmemek olmaz. Hangi tema kullanırsa kullanılsın, sıkıştırılmamış bir css dosyası faciaya sebep olabilir. Bu nedenle css sıkıştırması (Minify) önemlidir. Minify için eklenti kullanılabileceği gibi CSS Minifier gibi sıkıştırmayı manuel olarak yapabileceğiniz web sayfalarından yararlanabilirsiniz.
- Database: Çoğu zaman gözden kaçırılan veya atlanan bir konu olan veritabanı sorguları, nadiren de olsa ciddi yavaşlamaya sebep olur. Ancak ciddi bir yavaşlama olmasa bile bir miktar yavaşlama yaratırlar. Wordpress'in çalışma prensiplerinin arasında veritabanı sorguları da yer alır. Ziyaretçi bir istek gönderdiğinde, otomatik olarak veritabanından istekte bulunulan sayfanın içeriği sorgulanır. Bu sorgu esnasındaki geçen uzun süre, tarayıcıda geç açılan bir sayfaya neden olur. Detaylı inceleyelim.
Wordpress ve database ilişkisi
İşe en basitinden başlayalım;
Tarayıcı tarafından yani siteye girmek isteyen bir ziyaretçi tarafından istek gönderildiğinde bu istek öncelikle web sitesinin bulunduğu server veya hosting yani barındırma hizmetine iletilir. Barındırma hizmeti ilgili siteyi bulur ve isteği iletir. İlgili site yani bizim sitemiz bir Wordpress sayfası olduğu için tarayıcıdan gelen anasayfanın açılması isteğini karşılar ve anasayfamızda yer alan bileşenlerin bilgilerinin yer aldığı veritabanını çalıştırır ve sorgunun sonucu ister. Sonuç veritabanında bulunur ve işlemciye aktarılır. Wordpress işlemcisi (PHP) sorguyu derler ve tarayıcıya gönderir. Bu kısmın Google Page Speed'deki yansıması TTFB (Time to first byte) yani ilk aktarılan veri olarak nitelendirilebilir. Bu sorguların tamamı yapılırken, server veya hostinginizin işlemcisi ve belleği kullanılır. Elbette sorgunun çıktısının iletimi için internet bağlantısının hızı da etkendir. Yeterli kaynak (CPU/RAM) olmadığı zamanlarda bu sorgular yavaşlayacak veya yapılamayacaktır. Bu durumda web sayfasının açılma hızı oldukça düşecek veya error verecektir. Normal şartlar altında bir Wordpress sayfası belleğin ortalama %5'ini kullanır (Mysql). Yapılan veritabanı sorgularının artması, tüm süreçlerde kaynak kullanımı arttıracağı gibi yavaşlamaya da sebep olacaktır. Bu nedenle unutulmamalıdır ki, fazla veritabanı sorgusu yavaşlama anlamına gelecektir.
Transient'ler (Geçiciler)
Wordpress veritabanlarına geçici objeler transient'ler yazar. Transient'ler; belirli bir zaman aralığına sahip, özel bir isimle kaydedilen geçici objelerdir Memcache gibi neslel bellekleyici kullanılan durumlarda kaydedilmez. Basitçe kısa zaman aralığında, veritabanına yazmadan, tekrar tekrar sorgu yapmadan hızlıca verilerin kullanılmasını sağlar. Tüm transient'lerin belirli bir kullanım süreleri vardır ve bu süre dolduğunda kendiliğinden silinirler. Ancak bazı durumlarda kullanım süreleri gereğinden fazla uzun yazılabilir ve bu transient'ler veritabanı ve web sitesinde yavaşlamaya neden olur. Bu nedenle dikkatlice kullanım ile belirlenen kullanım süresinden önce silmek mümkündür ve size fazladan hız kazandırabilir. Transient manuel olarak bir fonksiyon ile silinmesi mümkün olduğu gibi Wp-Optimize, Delete Expired Transients gibi eklentiler ile silinmesi mümkündür Dikkatli kullanılmazsa; taslak halde bulunan veya sayfa ve yazı revizeleri silinebilir.