Wordpress performans için yapmanız gerekenler!

Yillardir wordpress kurulu sitelerde yasanan en buyuk sorunlardandir yavaslamalar, sunucuyu (hostu) kasmalar, cpu limitlerini asmalar v.s.. Bunlarin dezavantajlari coktur, kim 10 saniyede acilan bir sayfada kalmak isterrki ? Teknoloji gelistikce insanlar herseyi daha hizli yapmak istiyorlar, zaten teknolojinin gelisme yonu hep bu yonde degilmi 🙂

Benim yillardir wordpress konusunda edindigim bilgi ve tecrubelere dayanarak cikarttigim listeye goz atmanizi oneririm, cunku en azindan yasadiginiz sorunlari hafifletebilirsiniz.

En fazla 3 eklenti kullanin!

WordPress’in en guzel yani eklentilerdir, size lazim olanlari kurar sitenizi guzel bir mekan haline getirirsiniz. Ancak belli bir sure sonra bi bakmissiniz ki eklenti sayisi 20-50 arasinda bir sayiya ulasmis. Ben bazi optimizasyon yaptigim sitelerde 45 eklenti kurulu siteler biliyorumki bunu sunucuya akilalmaz bir baski yapacagini soylemem gerek. Cok basit bir ornek vermem gerekirse eklenti dosyalarinin phpde include yontemi ile sisteme dahil edildigini ve calisir duruma getirildigini az cok anlayabiliyoruz. Burda bir dosyanin include edilmesi ve phpnin o dosyayi kullanilabilir duruma getirmek icin islemesi bellir bir sure alacaktir. bu belkide saniyenin yarisinin yarisidir. Ancak bu sure tek eklenti oldugunda bariz bir etkisi olmayacaktir. Problem aktif eklenti sayisinin 10-20 den fazla olmasi durumunda gerceklesir. Her eklentinin sisteme eklenerek php programinin dosyayi isler duruma getirmesinin en az 2-10 saniye arasinda bir etkisi olacaktir. Bu sure test edilerek bulunmamistir, genel olarak phpnin isleyisini ve include edilmesi gibi islemlerin tahmini etki edecegi sure dusunulerek kendimce hazirlanmistir, ancak sure tam tam olarak ayni olmasada etkisi soyledigim gibi olacaktir.

Benim gozumde temada once hosta (sunucuya) en cok yuku bindiren eklentilerdir. Eklentilerin yapisi, ozelliklede kullanici arayuzunde kullanilmayacak seylerinde calistirilmasi sistemin islem ve olusturulma suresini etkilemekte. Bu konuda ornek vermem gerekirse sadece admin panelde calistirilacak ozelliklerin, site ana sayfasi yada diger normal sayfalarinda bir kullanici gezerkende islenmesi. Burda soylemek istedigim eklentinin amaci yoneticiye hizmet etmek ancak yaptigi etki kullanilmadigi durumlarda sisteme gereksiz yuk bindirmesi. Ben bu sebepledir hazirladigim butun eklentilerde kullanci arayuzunde kullanilmayacaksa admin kontrolu yaptirarak fonksiyonlari hazirlarim. Boylece bir ziyaretci yada kullanici sitenizde bir yazi okurken hazirlanan admin tarafli fonksiyonlar calismayacak, gereksiz yuk ve acilis suresinin uzamasina neden olmayacak.

Yukarida verdigim ornek sadece admin tarafli degil, ornegin giris yapan kullanicilarin kullanacagi uygulamalar icinde giris yapilmismi, yapilmamismi kontrolu yaparak misafirler icin fonksiyonlari calistirmayarak hem zaman, hemde host kaynaklarini israfsiz kullanmayi onleyebilirsiniz.

Yukarida verdigim ornekleri destekleyecek wordpress kodlarinida vereyim, illaki eklenti yazari arkadaslar yada optimizasyoncu arkadaslarin isine yarayacaktir.

Admin sayfasinda ise calismasini istediginiz fonksiyonlar icin:

Yada kullanici giris yapmis ise calistirmak istediginiz ozellikler icin:

Bu fonksiyonlar ornektir arkadaslar, bunlari bulunulan sayfalar, bolumler yada kullanici ozelliklerine gore artirabilir, sisteme binen yuk miktarini ciddi oranda azaltabilirsiniz.

Eklentilerin optimize edilmesini anlattiktan sonra ilk baslarken yazdigim en fazla 3 eklenti olayina deginerek bu bolumu sonlandirmak istiyorum. Sitenizde ne kadar eklenti kullaniyorsaniz yasadiginiz sorunlarida o kadar artirabilirsiniz (cumle biraz ters oldu) 🙂 FAzla kullanmadiginiz eklentileri silebilirsiniz. Ornegin istatistik eklentileri. Google analistik varken wordpress panelinizde istatistik eklentisi kullanmak cok anormal bir durum olsa gerek 🙂 Yada google analistik kullanmiyorsaniz wordpress Jetpack eklentisini kullanin, ben oyle yapiyorum 🙂 sistme 20 eklenti kuracagime, birtek wordpress Jetpack kuruyorum, ihtiyacim olan ozelliklerini acarak kullaniyorum. Bence sizlerinde denemesini tavsiye ederim, seo araclari, yorum eklentileri, begenme, paylasma v.S bir cok ozelligi icerisinde barindirirken, sistemde ayri ayri kullandiginiz eklentiler kadar etki etmiyor.

Sitenizde kullanacaginiz eklenti sayisini sunucunuzun yada sisteminizin durumuna gorede sinirlayabilirsiniz. Ben en fazla 3 diyorum ama siz cok guclu bir sunucuya sahipseniz bu sayiyi 5-6 ya kadar cikarabilirsiniz. Ancak bunun acilis ve php’nin handle suresini cokda etkilemeyecegini soylemek isterim.

Son olaran bir ozlusozle eklentiler bolumunu sonlandirayim: Essegin (sunucu/host) semerine (WordPress) kaldirabileceginden fazla yuk (Eklenti) yukleme, onunda bi cani var :):):)

Tema secimine dikkat edin!

WordPress, seni seviyorum yaa, derken aslinda bu ozelliklerine hayran kaldigimizi dile getiriyoruz. Ancak soyle bir durum var ki ilk kurdugunuzda wordpress’in hizi sizi sasirtmasin, cunku kullandigini temanin bile cok etkisi var. Ancak ben eklentilerin temaya dahil edilerek kullanilmasindan yanayim. Tabi bu durumu abartan tema yapimcilarida yok degil.

Tema guzel gorunsun diye her yerine bisey koymayin, yada koyacaksanizda cache ozelligini icerisinde barindirsin. Ornegin bir bilesen kullaniyosunuz ve degisik konular listeleyeceksiniz. Bazen bunlarin sorgu sayisi 30-40 dan fazla olabiliyor, yapilacak sorguya gore degisir. sadece bilesen kismina bir cache ozelligi ekleyerek her sayfaya girildiginde yada yenilendiginde 50 sorgu yapmasini onleyebilirsiniz. Bunun bir kac yontemi var ancak benim size onerecegim wordpress transient fonksiyonlarini kullanmaniz. Tabi herseyde oldugu gibi bunda da asiriya kacmamanizi onerecegim 🙂 Simdi bir kac ornek vererek sizlerinde kullanimina sunmak istiyorum, once mantigi, sonrasinda da kullanabileceginiz fonksiyonlari yazacagim.

Not: Bu cache ozelligini sadece temada degil, eklentilerde de kullanabilirsiniz.

Transient ile cache mantigi

  1. Cache ismini belirler transient tablosunda cache varmi yokmu kontrol ederiz
  2. Cache yoksa ise yapilan sorgular serialize ile cache tablosuna kaydedilir.
  3. Cache varsa cache tablosundaki sorgunun serialize kodu alinarak donguye sokulur.

NOT: transient fonksiyonunda belirlenen cache suresi bittikten sonra tablodan otomatik olarak olusturdugunuz cache ismindeki alan silini. Boylece ikinci bir kontrol yapmaya gerek kalmaz 🙂

Suanda hazirladigim ornek kodlari yazayim:

Yukarida yaptiginiz cache verdiginiz sure bitene kadar yenilenmez. Bu yuzden cacheyi belli durumlarda sildirmek isteyebilirsiniz. Ornegin yeni konu, yorum yada sayfa olusturuldugunda otomatik olarak aldirdiginiz cacheleri temizleyebilir, yenilerinin olusmasi icin zemin yaratabilirsiniz.

Yukaridaki kodlari tema fonksiyon dosyasina yada eklentinizin bir yerine ekleyin. Boylece yeni yazi yazildiginda, guncellendiginde yada silindiginde belirlediginiz isimlerdeki cache alinan kodlar temizlenecek ve yenileri icin bosaltilacak 🙂

Tasarimsal iyilestirmeler

Bu konuya fazla deginmeyecegim, cunku zaten bilinen bir sey ancak atlanan seylerde yok degil. Tasarimlarinizda mumkun oldugunca resim bulundurmayin, css ve javascript kodlariniz minimize edilerek kucultulsun, js dosyalariniz mumkunse ve sorun olusturmayacaksa temada sitenizin en altina ekleyin. Bu yapilacak islemler en azindan acilisi etkileyecektir, olumlu yonde 🙂

Kullanici deneyimi icin responsive tasarimlar tercih edin yada tema yapimcisiysaniz bu yonde calismalar yapin. Ben genelde projelerimde bootstrap kullaniyorum, bunun anlatiminada yakin zamanda yer verebilirim. Herseyi icerisinde barindiran ve baslangic icin cok kolayliklar sunan bir tasarimsal framework dur 🙂

Kullanilmayan verileri silin

Her eklenti aktif edip, sildiginizde yada yenilerini eklediginizde veritabanina bunlar ile ilgili kucuk bilgiler birakilir, olusturulur. Ancak isin kotu tarafi siz eklentiyi sildiginizde bu eklentilerin olusturduklari veriler tamamen silinmez. En basit ornegim soz konusu bir eklentinin versiyon numarasini option tablosunda tuttugunu varsayalim. Eklenti yazari bu option tablosunu eklenti silindiginde silinmesi icin ayarlamamis ise o orda yillarca kalabilir. Bir tanesi tabiki sorun olmayacaktir, anca her isleminizde bu sayi artacagi icin 100-200 den fazla kullanilmayan veriye sahip olabilirsiniz.

Bu neden kotudur ? Siteniz her acildiginda option tablosundakiler otomatik olarak yuklenir yani sorgu ile calistirilir. Veriler ne kadar az ise bu olusturma suresi daha az olacaktir, ve kullanilmayan verilerin cekilerek sistemin zamanini yemesini onlemis olacaksiniz. Bu tarz eklenti artiklarini temizlemek icin yine bir eklenti kullanmaniz gerekecek (eger el ile yapmayacaksaniz) / Clean Options : Bu eklenti ile kullanilmayan verileri listeleyerek sistemeden kaldirabilirsiniz. (Burda dikkat etmeniz gereken kullanilan verilerde olabilir, onlara dokunmamaniz)

Veritabani optimizasyonu

Veritabani onarimi ve optimizasyonu icin phpmyadmine girerek el ile yapabilirsiniz yada bu eklentiyi kurarak WP-Optimize arada bir aktif edip calistirirsiniz. Bu eklenti ile bosta duran yazi kayitlari ,(siz yazarken otomatik olusturulur), spam yorumlar, trackback ve pingbacklari silebilirsiniz. Ayrica veritabani onarimi, repair yaparak sorgular sirasinda daha verimli olmasini saglayabilirsiniz.

Tarayici cache ozelligini aktif edin!

.htaccess dosyasina ekleyeceginiz bir kac basit kod ile tarayicinizin css,js ve resim dosyalarini cache alarak bir sonraki acilista tekrar istek yaparak dns protokolunu asar, buda sitenizde gozle gorulur bir hiz ve verimin olusmasini saglar. Bu kodlari her yerde bulabilirsiniz, paylasmayacagim cunku yoruldum, baska bahara kaldi artik 🙂

Yoruldum

Simdilik bu kadar yeter, cunku yoruldum, ancak bu tarz optimizasyon ipuclarina yer vermeye ve wordpress e olan hakimiyetinizi artirmaya calisacagim. Herhangi bir sorunuz olursa muftuluge iletebilirsiniz, iyi gunler..

3 Yorumlar

Bir Cevap Yazın