Opencart Optimizasyon - 3 Adımda Eklentisiz %100 Hızlandırma

Opencart sitelerini nasıl optimize edilebilineceğinden bahsetmeden önce sitenizin neden yavaş çalışabileceğini ve bunların hangi durumlara bağlı olduğuna dair yazacağım. Bu adımları uyguladığınızda %100 sonuç alınacağını söyleyerek giriş yapmak istiyorum.

Opencart Optimizasyon - 3 Adımda Eklentisiz %100 Hızlandırma

1. İşleme Dayalı Yavaşlama Sorunları

Yüksek işlemci (%100 CPU) kullanımı 

Sayfanın render edilmesi (oluşturulması) sırasında yoğun işlemler yapılıyorsa sayfanın oluşturulması için gereken iş yükü ve dolayısıyla oluşturulma zamanı uzar. Bu durumla genelde mağazanızda çok sayıda ürün var ise ve çok sayıda ürün listelenirse karşılaşılır. Ürün sayısı ve dolayısıyla veri sayısı artarsa veritabanında bulunması ve işlenmesi gereken veri çoğalacak burada işlemciye yük oluşacaktır.

Opencart arama sayfasında ürün arandığında, aranan ürünlerin getirilebilmesi için veritabanı sorgusunda LIKE operatöründen faydalanır. Arama sayfası için LIKE operatörü, SELECT deyiminin WHERE yan tümcesinde, aranan kalıplara göre filtrelemek için kullanılır. Yani arama formunda kullanılan metin; ürün isimlerinde, model numarasında, anahtar kelimlerde ve diğer sütunlarda taranarak ilgili ürünler bulunur. Ürünler taranırken dil, para birimi, mağaza, indirimler vb gibi ilişkili durumlar da WHERE tümcesinde yer alır. 100.000 ürün olduğunda 100.000 sütunda bu işlem yürütülür.

1 ürün için getirilen veri için yapılması gereken işlem ile daha fazla ürün için (özellikle LIKE operatörünün kullanıldığı site içi arama durumları) yapılması gereken işlem gücü aynı değildir. ID'si soygusuyla gönderilen ürün çok daha hızlı işleme alınır. Eğer çok sayıda ürününüz yoksa ve ürün sayfasına ulaşırken siteniz yavaş ise muhtemelen CPU kullanımına dayalı bir problem yaşamıyorsunuzdur. 

Ayrıca işlemci kullanımının başka nedenleri de olabilir. En yaygın olanları yukarıda belirtilen yüksek sayıda ürün getirme işlemlerinde yaşanır. SELECT işlemleri için ayrıca Memcached teknolojisinden faydalanarak daha hızlı ve daha düşük CPU değerleri de elde edebilirsiniz. Memcached konusuna bir başka yazıda değineceğim. Şimdilik sorunları tespit edebiliriz ve giderebiliriz.

CPU kullanımınız %100 değilse ancak yine de düşük değilse aynı anda yapılan isteklerde yine %100 değerlere ulaşacaktır (Aynı anda aynı sitede 5 kullanıcının olması gibi). 

Çözüm:

  1. Eğer ürün sayfasına gitmek istediğinizde, ürün sayfası yavaş açılıyor ise bu işlemci kullanımıyla ilgili değildir. Yine de bir eklenti yüklediyseniz, eklenti buna neden olabilir. Bu yüzden kullanım sırasında CPU değerlerini izleyin. 
  2. Eğer ürün sayınız 10.000+ ise işlemci kullanımı yoğunlaşacak, %100 kullanıma ulaşacaktır. Sorguların optimize edilmesi için çalışma yürütün veya profesyonel destek alın. 
  3. Hosting paketi kullanıyorsanız hosting firmasından web sitenizin barındırıldığı sunucunun CPU değerlerini öğrenin. Daha hızlı hosting sunan bir hosting firması ile çalışmaya devam edin veya kendi sunucunuzu kurun.

    Hosting için, test etme fırsatı bulduğum FastComet firmasında iyi değerler yakaladığımı söyleyebilirim. Hızlı bir hosting için tercih edebilirsiniz.  Paketleri incelemek için tıklayın

İşlemci kullanımınız normal değerlerde ise 2. maddeye geçiniz.

 

2. Eklentiler ve VQMOD

Kötü yazılmış bir kod bloğu tüm programla dilleri için kötü sonuçlar yaratır. Çoğu zaman kod blokları çalışır ancak yola çıkılan algoritmaya göre farklı hız sonuçları oluşur. 

Eklentiler, menuel kod blokları ve vqmod dosyası ile eklenen kod blokları buna neden olabilir. 

Sorunlar:

  1. Eğer OpenCart sitenizin bir parçasında manuel işlem yaptıysanız (Herhangi bir kod bloğu üzerinden ekleme veya yeniden düzenleme) ve işlemin kalitesinden emin değilseniz kötü bir algoritma yaratmış olabilirsiniz.
  2. Eğer standart opencart eklentilerinden başka bir eklenti kullanıyorsanız eklentinizin kod kalitesi kötü olabilir. 
  3. Eğer vqmod dosyası kullanıyorsanız içe aktarılan kod blokları kötü sonuçlar yaratabilir.

Çözüm: 

  1. Kurulumdan sonra değişiklik yaptığınız dosyalardaki manuel değişiklikleri geri alın. 
  2. Kurulumdan sonra yüklediğiniz 3. parti eklentileri kapatın.
  3. Kurulumdan sonra yüklediğiniz vqmod dosyalarını silin veya ekini güncelleyerek çalışmaz hale getirin. (Vqmod dosyasını .xml_ olarak güncelleyebilirsiniz.)

Adım adım maddeleri uygulayarak tekrar hız skorunuzu kontrol edin.

 

3. Tema Kaynaklı Hız Sorunları

İşleme dayalı hız sorunları yaşamıyorsanız tema kaynaklı sorunlar yaşıyorsunuz demektir. 

Site hızını düşüren tema kaynaklı faktörleri 4 ana başlık altında toplayabiliriz. Bu faktörler;

1. İmaj dosyalarının optimize olduğundan emin olun

  1. Görselleri sitenize yüklemeden önce sıkıştırma ve yeniden boyutlandırma işlemleri yapın. Bu sayede dosya boyutlarını küçülterek görsellerin daha hızlı yüklenmesini sağlayabilirsiniz.
  2. Eğer çok etkili ve büyük bir mesajınız yok ise slayt kullanmayın. Afişlerin sayısını asgari seviyede tutun.
  3. Ürünlerin sergilendiği div alanının boyutunu öğeyi inceleyerek elde edin. Yeni ürünler, sizin için seçtiklerimiz, kampanyalı ürünler gibi eklentilerde yerleştirilen ürün boyutu kadar en ve boy genişliğini güncelleyin. Bu işlemi kategori sayfası, arama sayfası, marka detay sayfası gibi diğer sayfalarda da uygunlayın.
    Görsellerin diğer öğelerden sonra yüklenmesi için Lazy load tekniğinden faydalanın.

2. Kaynak dosyalarının optimize olduğundan emin olun.

  1. Tarayıcıların önbellekleme (cache) özelliğinden faydalanarak bu dosyaları daha hızlı yükletebilirsiniz. (Tarayıcı önbellekleme özelliğini nasıl kullanacağınızı buradan öğrenin.)
  2. CSS ve Javascript kodlarında yorum, boşluk gibi gereksiz satır kullanımından kaçının. Kaynak dosyaları olabildiğince minimalize etmek tarayıcıların kodları daha hızlı çözümlemesine yardımcı olacaktır. 
  3. Javascript’leri HTML kodlarında üst kısım yerine body kısmının kapanış etiketinden hemen öncesine yerleştirin. Böylece sayfa içerikleri kaynak dosyalar tetiklenmeden önce yüklenmeye başlayacaktır. Bu yöntem yerine dosyaları ilk açılışta yüklemek yerine ertelemeli olarak yükletmek için async attribute’unu da kullanabilirsiniz.

3. Veri aktarımını hızlandırın

  1. Tarayıcıların önbellekleme (cache) özelliğinden faydalanın. Bu özellik sayesinde belirlenen süre boyunca sitenize tekrar gelen kullanıcılar için imaj ve kaynak dosyalar önbellekten çekilerek daha hızlı sayfa yüklemesi sağlanacaktır.
  2. Dosyalarınızı HTTP sıkıştırma ile sunun. Gzip biçiminde yapabileceğiniz sıkıştırma işlemi sayesinde verilerin boyutlarında tasarruf edebilir, daha hızlı veri aktarımı elde edebilirsiniz.
  3. Content Delivery Network (CDN ) adı verilen sunucu sistemini kullanarak sayfa kaynaklarınızın farklı sunuculardan yüklenmesini sağlayın. Bu sistem sayesinde kullanıcı ile server arasındaki fiziksel uzaklık nedeniyle hız kaybı yaşamaz, kaynakların en yakın server’dan yüklenmesini sağlayabilirsiniz.

Web sitenizi Apache web sunucusu ile yayınlıyorsanız (Hosting kullanıyorsanız %99 Apache kullanır) buradaki talimatları .htaccess dosyasına uygulayarak veri aktarımını hızlandırın. 

4. HTTP isteklerini azaltın

  1. Gereksiz yönlendirmelerden ve yönlendirme zincirinden kaçının. Bu sayede gereksiz HTTP isteği oluşturmanın önüne geçebilirsiniz.
  2. 404 kodu döndüren sayfaları site içi linklemelerden kaldırın. 404 durum koduna sahip kaynak dosyalar var ise bu dosyaları düzeltmeyi deneyin, eğer kullanılabilir durumda değillerse HTTP isteği sayısını artırmamak için bu dosyaları kaynak kodlardan kaldırın.
  3. Çok fazla sayıda CSS ve Javascript dosyası kullanmak yerine kaynak verileri mümkün olduğunca tek dosyada toplayın. Böylece sayfalar yüklenirken kaynak dosyalar için gönderilen HTTP isteği az seviyede olacak ve daha iyi site performansı sağlanacaktır.
  4. Her sayfanızda tekrar eden ikon, logo vb. statik imaj dosyalarını CSS Sprite yöntemi ile kullanın. Bu yöntem ile her imaj için farklı HTTP isteğinin gönderilmesini engelleyebilirsiniz.

Özet

OpenCart sitenizi optimize etmek için sorunları tespit etmek ve bu değişiklikleri takip etmeniz gerekecektir. Eğer bu adımları doğru bir şekilde uyguladığınızda Gtmetrix, Google Page Speed skorlarınızın %90-%100 aralığında olduğunu görecek ve daha önemlisi müşterilerinize daha iyi bir kullanıcı deneyimi sunacaksınız. 

  1. İşlemci (%100 CPU) kullanımınını yüksekse bunu düşürmek için sorguları, kullandığınız özelliklere göre yeniden düzenleyin. 
  2. Daha sonra eklenen eklenti, vqmod ve manuel kod bloklarını gözden geçirin.  Sorunu tespit edebilmek için bunları kapatın ve kötü kod bloklarını tespit edip yeni bir yol izleyin.
  3. İmajları ve kaynak dosyaları optimize edin, veri aktarımını hızlandırın ve HTTP isteklerini azaltın.

Sorunları gidermek konusunda kafanız karışıksa profesyonel destek için bize ulaşın.