Joomla 4, Joomla 3'e göre büyük bir gelişmedir. Kutudan çıktığı andan itibaren, yapılandırılmış veriler için yerleşik desteğe sahip çok hızlı bir CMS (eski adıyla "mikro veri"), hatta herhangi bir kullanım için çeşitli önbellekleme seçenekleri elde edersiniz. hafif kişisel sitelerden devasa, yoğun portallara.
Çok eski, geçmiş yinelemeleriyle ilgili nedenlerden dolayı, SEO CMS için kötü, yavaş bir kötü itibara sahiptir. Bu, gerçeğin ötesinde olamazdı. Aslında, herhangi bir üçüncü taraf yazılımı olmayan Joomla 4, amaca yönelik olarak oluşturulmuş üçüncü taraf yazılımlarla desteklendiğinde bile rakiplerinden daha iyi performans gösterir.
Bu makale dizisinde, performansını daha da artırmak için bir Joomla 4'ü nasıl ayarlayabileceğinizi ve sizin veya müşterinizin sitesini oluştururken tüm tuzaklardan nasıl kaçınacağınızı tartışacağız. Sonuç, hem arama motorlarına hem de yaşayan, nefes alan site ziyaretçilerine hitap eden bir sitedir.
Bu beş bölümlük seri, geçen yılki Joomla 3 performans ayarlama serimin bir güncellemesidir. Bu seriyi Joomla Topluluğu Dergisi aracılığıyla Joomla topluluğuyla paylaşabildiğim için mutluyum. Bunu mümkün kılan harika gönüllülere çok teşekkürler!
Serinin bu ilk bölümünde, genel olarak bunun neden önemli olduğundan ve bu hedefe ulaşmak için atabileceğiniz bariz ilk adımların neler olduğundan bahsedeceğiz.
Neden Hızlı Bir Siteye İhtiyacınız var?
Joomla sitenizin performansını optimize etme maceramıza başlamadan önce en temel soruyu ele almamız gerekiyor: neden önemli? Sonuçta sitenizi yayına hazır ilan etmeden önce daha çok çalışmanız gerektiğinden bahsediyoruz. Zaten yeterli miktarda organik trafik çekse ve size hızlı gelse bile bu gerçekten çabaya değer mi?
Hem felsefi hem de pratik nedenlerle kesinlikle zaman ayırmaya değer olduğuna inanıyorum.
İlk felsefi neden, yavaş bir sitenin birçok düzeyde savurgan bir site olmasıdır. Herkesin zamanını boşa harcar. Bir sayfanın yüklenmesi için 4-5 saniye beklemek o kadar büyük bir kayıp gibi gelmeyebilir ama bir yıl boyunca ve her birimiz yüklenmeyi bekleyen yüzbinlerce sayfa boyunca topluca insan-yıllarca zamanımızı boşa harcıyoruz. Tüm bu süre boyunca, içeriği olması gerekenden daha yavaş oluşturmak, gerekenden daha fazla veri sağlamak ve sitenizin çevresel ayak iziyle ilgili her şeyi içeren her şeyi görüntülemek için gerekenden daha yavaş işlemek için elektrik harcıyoruz.
İkinci felsefi neden, yavaş sitelerin dışlayıcı olmasıdır. Yüksek gecikmeli veya yavaş İnternet bağlantılarına güvenen, yetersiz hizmet alan topluluklar tarafından bunlara ulaşmak daha zordur. Bir Afrika köyündeki dış dünyayla tek uygun bağlantı olan uydu interneti veya ABD'de yoksul bir okul bölgesindeki McDonald's otoparkındaki zayıf WiFi olsun. Yavaş site, içeriği ile onu tüketebilecek ve bundan yararlanabilecek insanlar arasında soyut ama çok gerçek bir engel oluşturuyor olabilir. Çoğumuzun hızlı, düşük gecikmeli İnternet bağlantılarına sahip gelişmiş ülkelerdeki şehir merkezlerinde yaşayacak kadar ayrıcalıklı olmamız, bu bilginin erişimini artırmak için nispeten kolay bir şey yapmayı ihmal ederek bilgiye kapı bekçisi olarak hareket etmemiz gerektiği anlamına gelmez. Bu, özellikle kâr amacı gütmeyen, eğitim, hükümet veya diğer kaynak web siteleri geliştiriyorsanız önemlidir.
Pratik nedenlere gelince, yavaş bir sitenin ziyaretçi için sinir bozucu bir deneyim yaratması gibi bariz bir sorunla başlayalım. Sizin sitenizden vazgeçmeleri ve başka birinin sitesini ziyaret etmeleri muhtemeldir. Kalırlarsa, bir dizi uzun ve gereksiz gecikmeye maruz kaldıktan sonra olumsuz bir ruh hali içinde olmaları muhtemeldir. Bu, sitenizin içeriğini zayıflatır ve zarar verir, tekrar ziyaretleri engeller ve dönüşüm oranınızı düşürür.
İkinci ve en önemli pratik neden, arama motorlarının artık sitenizi yalnızca içeriğe ve diğer sitelerle bağlantıya göre sıralamamasıdır. Önemli Web Verilerini hesaba katarlar. Esasen, şişkin veya yavaş yüklenen bir site, arama motoru sıralamalarında cezalandırılacaktır. Sitenizin sosyal ve çevresel etkisini önemsemeseniz bile hızlı bir siteye sahip olmanız sizin yararınızadır.
İşletim Varsayımları
Site optimizasyonu konusunda okumuş olabileceğiniz makalelerin çoğu aksiyomatik olma eğilimindedir. Tek Doğru Yol diye bir şey olduğunu iddia ediyorlar ve onu takip etmezseniz sonsuz lanete atılacaksınız. Makale yazan insan sayısı kadar birbirini dışlayan aksiyomatik görüşün olduğu gerçeğinin ironisi, görünüşe göre bu yazarların gözünden kaçtı.
Tek Doğru Yol diye bir şey yoktur. Tek bir kişi tarafından boş zamanlarında inşa edilen küçük bir sitenin, en az birkaç düzine kişiden oluşan özel bir ekip tarafından inşa edilen ve sürdürülen orta-büyük bir siteyle aynı metodolojiyi izleyebileceğini veya daha kötüsü izlemesi gerektiğini ima etmek bile devre dışıdır.
Bu makale dizisini, müşterilerinin dayattığı zaman ve bütçe kısıtlamaları dahilinde Joomla kullanan, tek başına veya küçük bir ekibin parçası olarak siteler oluşturan site entegratörlerinin çoğuyla yazıyorum. Çoğunuz Küçük ve Orta Ölçekli İşletmeler için çok küçük ve orta ölçekli siteler ve hatta küçük "anne ve baba" dükkanları inşa ediyorsunuz. “Mükemmel bir puan” elde etme konusunda takıntılı olmayı göze alamazsınız. Bu, her site için pragmatik beklenti değil, neredeyse ulaşılamaz hedeftir. Evet, mükemmel bir skor elde edebilirsiniz, ancak bu, inşa edilmesi ve bakımının yapılması zor bir siteniz olduğu anlamına geliyorsa, bu gerçekten olumlu bir şey mi yoksa farkında olmadan bir Darwin ödülü için adınızı mı yazdınız?
Yalnızca karşılayabileceğiniz kadar optimize etmelisiniz. Karşılamanız gereken son tarihler var ve açıkçası, bazı optimizasyonlar marjinal kazançlar için orantısız bir zamanınızı alabilir. Basitten başlayın ve yalnızca müşterinizin son teslim tarihine ve bütçesine bağlı olarak daha derine inin.
Bu makale dizisinin bağlamı budur. Aksiyomatik değil, pratik. Tam performans kazanımları ve sürdürülebilirlik arasında makul bir ödünleşimle gerçek dünya sitelerini optimize etmenin çeşitli yollarını sunuyorum. Bunlar teoride harika çalışan ancak pratikte okuyucularımızın çoğu için gerçekçi olarak mevcut olandan çok daha fazla kaynak gerektiren temiz oda yaklaşımları değildir.
Bunu başka bir şekilde koyalım. Evet, dilerseniz her zaman bir mikro hizmet ve CDN destekli uygulama oluşturabilirsiniz. Veya kendi özel uygulamanızı oluşturmak yerine Joomla (veya WordPress veya Drupal) gibi bir CMS kullanmanın herkese uyan tek beden yaklaşımının dayattığı çok sayıda sınırlamayı ortadan kaldıran gerçekten gelişmiş bazı teknikler kullanın. Ama burada size bir CMS'yi neden veya nasıl kullanmayacağınızı söylemek için burada değilim. Daha önce nasıl yaklaşacağınızı bilmediğiniz daha iyi sonuçlar elde etmek için sahip olduğunuz CMS'yi en iyi şekilde nasıl kullanabileceğinizi anlatmak için buradayım. Bunların hepsi sitelerimde uyguladığım teknikler ve çete avcıları gibi çalıştılar!
Kesinlikle "Açık"
Joomla'yı 2004'te Mambo olarak adlandırıldığından beri kullandığınızda, tıpkı sizinki gibi, site oluşturmaya nasıl yaklaştığınız konusunda oldukça açık görünen bazı temel gerçekler vardır. Sorun şu. Hiçbir şey gerçekten “açık” değildir; her şey deneyimle ilgili.
Geçmişte, insanların bana acı verecek kadar açık olan bazı noktaları görmedikleri için akıllarını yitirmiş olmaları gerektiğini düşündüm. Sonunda, sayısız sitenin arka uçlarında bulunma konusunda benzersiz bir deneyime sahip olduğumu ve uzun bir kariyer boyunca benzersiz bir dizi beceri biriktirdiğimi fark ettim. Üzgünüm, yanlış film. Demek istediğim, benim için aşikâr olan’ın, ya yeni başlayan ya da işleri benden farklı bir şekilde yapmaya alışmış biri için oldukça gizemli olabileceğini fark ettim. Gerçeği söylemek gerekirse, 16 yıl önceki kendime ulaşabilseydim, daha sonra zor yoldan öğrendiğim şeyleri ya saçma sapan ya da uzun vadede beni baltalayan şeyler yaptığım için muhtemelen suratıma tokat atardım.
Sitelerde gördüğüm en yaygın üç hatayı ve bunların nasıl kolayca düzeltileceğini tartışacağım. Hey, bazılarının Joomla'nın kendisiyle ilgisi bile yok!
Barındırma
Gördüğüm en yaygın hata, insanların ucuz, paylaşılan barındırmayı seçmesi ve ardından Joomla sitelerinin yavaş olduğundan şikâyet etmesi. Evet, siteleri yavaş ama sebep Joomla değil. Siteniz için seçtiğiniz Hosting çok önemlidir. Burada kuruş kesmeye çalışmayın!
Ucuz bir sunucunun neden ayda 3 doların altında bir fiyat sunduğunu hiç merak ettiniz mi, oysa kaliteli bir ev sahibi aynı veya nominal olarak daha düşük özelliklere sahip paylaşımlı barındırma için beş ila on kat daha fazla ücret alıyor mu? Aradaki fark, en ucuz sunucunun daha fazla siteyi tek bir fiziksel sunucuya sıkıştırmaya çalışması ve daha yavaş CPU ve bellek, daha yavaş mekanik disk sürücüleri ve daha sınırlı İnternet bağlantısı kullanarak maliyetleri düşürmesidir. Tüm bunlar, sitenizi başlangıçta kayda değer ölçüde yavaşlatmak için bir araya geliyor. Kötü barındırma ile başladığınızda hiçbir ayar sizi kurtaramaz.
Böyle düşün. Bir savaş uçağı kadar aerodinamik bir araba yapabilirsiniz. Üzerinde çalıştığı motor, bir moped’ten tek silindirli, iki zamanlı bir motorsa, kazanmaz ve hız rekorları kıramaz. Muhtemelen hızlı yürüyen biri tarafından geçilecektir. Sitenizin motoru, barındırma ortamınızdır. Bundan çıkarabileceğiniz maksimum performansı belirler.
İdeal performans ile gerçekçi bütçeniz arasında bir denge kurmaya çalışın. Emin değilseniz, ağızdan ağza iyi bir itibara sahip orta sınıf bir paylaşılan barındırma sağlayıcısı seçin ve muhtemelen gerçek dünya trafiğiyle birkaç ay sonra yeniden değerlendirin. Müşteriniz barındırmayı dikte ederse, The Talk'u yanlarında bulundurduğunuzdan emin olun: ne yaparsanız yapın, barındırma seçiminin oluşturduğunuz sitenin performansını sınırlayacağını açıklayın.
Önceden Oluşturulmuş Şablonlar
Site inşa eden pek çok kişi, çok sayıda seçeneğe sahip önceden oluşturulmuş bir şablon, herkes için her şey olmaya çalışan genel bir çerçeve, genellikle düzinelerce bileşen, eklenti ve modül ile birleştirilmiş bir site oluşturmak için gerçekten o kadar da karmaşık olmayan bir şablon kullanıyor. Bunun hakkında düşün.
Bunu geçmişte kendim yaptığım için temyizi anlıyorum. Neyin işe yaradığını bulana kadar sitenizin düzenini bozmak ve farklı seçenekleri denemek için yetkilendirilmiş hissediyorsunuz. Bunun yaratıcı süreciniz olduğunu düşünüyorsanız, ancak sitenizin nasıl görünmesini istediğinizi anladıktan sonra genel, önceden oluşturulmuş şablona bağlı kalmanız gerekmiyorsa bunu yapmanız gerektiğini söyleyebilirim. Kendi şablonunuzu yapmaktan rahatsızlık duyuyorsanız, elbette, önceden oluşturulmuş bir şablon sizin için tek yoldur, ancak bunun sizi performans ölçümlerinde sınırlayacağını unutmayın.
Nesnel sorun, genel bir şablonun hız için değil, esneklik için oluşturulmuş olmasıdır. Tecrübelerime göre, sayfa yükünüz (İlk Bayt Süresi - TTFB), bu tür bir şablonu kullanarak yanınızda taşıdığınız tüm gereksiz bagajlar nedeniyle 1 ila 3 saniye arasında iyi bir artış gösterebilir. Joomla 4'ün Cassiopeia'sını temel alan özel bir şablonun, bir milisaniyenin kesri aralığında, ihmal edilebilir bir etkisi vardır.
Yarıya kadar gitseniz ve yalnızca genel bir şablon çerçevesi kullansanız bile, ne yaptığınızı gerçekten bilmiyorsanız, hala birçok gereksiz kodu sürüklemiş olursunuz. Güvenlik nedeniyle düzenli olarak bakımı yapılması gereken önemli miktarda PHP ve JavaScript kodu yüklediğinizden bahsetmiyorum bile.
Önceden oluşturulmuş şablonlar ve şablon çerçeveleriyle ilgili bir başka sorun da, tüm CSS ve JavaScript'lerini HTML çıktısının başına yükleme eğiliminde olmalarıdır; bu, Temel Web Verileriniz, özellikle First Contentful Paint üzerinde olumsuz bir etkiye sahiptir. Cassiopeia'ya dayalı özel bir şablon, bu statik dosyaları ertelenmiş olarak yükleyerek sitenizin görüntülenmesini çok daha hızlı hale getirecektir.
Becerileriniz ve zamanınız varsa, kendi şablonunuzu oluşturmaktan daha iyi olursunuz. Bu kulağa korkutucu geliyor, ancak zaten deneyimli bir Joomla site oluşturucusuysanız ve Joomla'nın şablon geçersiz kılmaları gibi temel ancak güçlü araçlarını anlıyorsanız değil. İstediğiniz herhangi bir CSS çerçevesini kullanabilir ve varsayılan Joomla 4 şablonu Cassiopeia'yı kaldırarak başlayabilirsiniz.
Ben hiçbir şekilde bir ön uç geliştirici değilim. Sitem için oluşturulan tasarımı çok kolay bir şekilde alıp Cassiopeia tabanlı bir Joomla 4 şablonuna çok fazla sorun yaşamadan "çevirmeyi" başardım. Joomla'da yerleşik olarak bulunan ve Cassiopeia'nın kullandığı Bootstrap 5 son derece çok yönlüdür. Her türlü görsel sunumu mümkün kılmak için anlamanız gereken tek şey - ve duyarlı! — CSS Flexbox'tır.
Aşırıya Kaçma
"Yapabiliyor olman, yapman gerektiği anlamına gelmez" gibi çok eski bir atasözü vardır. Joomla bağlamında, yüzlerce uzantı yükleyebilmeniz, yüklemeniz gerektiği anlamına gelmez!
Joomla Uzantıları Dizini'ndeki 7000'den fazla uzantıyla, denize girmek ve her şeyi güneşin altında kurmak oldukça kolaydır. Bunun için bir eklenti, bunun için bir modül, basit bir şablon geçersiz kılma yerine bir sayfa oluşturucu ve siz farkına varmadan sitenizin her sayfasında 300'den fazla üçüncü taraf uzantısı yükleniyor. Tahmin edebileceğiniz gibi, bu herhangi bir sitenin yavaşlamasına neden olur.
Modülleri konuşalım. Rastgele gözlemim, ziyaret ettiğim veya üzerinde çalıştığım sitelerin %90'ında görüntülenen modüllerin %90'ının hiçbir varlık nedeni olmadığıdır. Şehrinizdeki hava kimsenin umurunda değil; yapsalardı, sitenizi ziyaret etmek yerine Google, Alexa veya Siri'ye sorarlardı. Kenar çubuğunda sahip olduğunuz içeriğe giden üç düzine düğme, bağlantı ve başlık kimsenin umurunda değil. İnsanlar bir telefon rehberi değil, sezgisel navigasyon istiyor. Daha da kötüsü, sosyal medya siteleri sitenizin ziyaretçilerini "kenar çubuğu ve afiş körlüğü" moduna girmeye şartlandırdı, yani bu içeriğin önemsiz olduğunu varsayıyorlar, ilgilenmeleri gerekmiyor. Modüller gerçek bir amaca hizmet edebilir, ancak bunları dikkatli bir şekilde kullanın. Gereksiz modüllerle “boş alanı doldurmaya” çalışmayın.
Bu da bizi eklentilere, özellikle de tam sayfa metin arama ve değiştirme yapan içerik eklentileri ve sistem eklentilerine getiriyor. İçerik eklentileri, sitenizde her içerik görüntülendiğinde çalışır. Bir çeşit başlatma ve bir çeşit metin değiştirme yapmaları gerekiyor. Bu işlemler zaman alır. Tam sayfa arama ve sistem eklentileri ile değiştirme, özellikle düzenli ifadeler kullanıyorlarsa, daha da fazla zaman alır. Gerçekten de siteniz tarafından her sayfa çıktısında bir arama ve değiştirme, şablon geçersiz kılmaları, dil geçersiz kılmaları veya arka uçta veya doğrudan veritaban’ında içeriği değiştirmek için biraz zaman harcamak için daha iyi bir çözüm mü?
Modüllerin ve eklentilerin aşırı kötüye kullanımını bir araya getirdiğinizde, yüzlerce veritabanı sorgusu yapması ve oluşturması sonsuza kadar süren içerikteki öğeleri değiştirmek için birkaç değerli saniye harcaması gereken bir siteye sahip olabilirsiniz. Evet, bu site çok yavaş olacak. Bu gerçekten Joomla'nın hatası değil, uyguladığınız uygulama yaklaşımının doğrudan bir sonucu. Mutlaka kötü olduğunu söylemeyeceğim ama gitmenin en iyi yolu olduğunu da söylemeyeceğim.
Çözülmesi gereken bir sorununuz varsa, bir uzantı kullanmak son çareniz olmalıdır. Önce özel alanlar, şablon geçersiz kılmalar ve dil geçersiz kılmalar ile başlayın. Sitenin “boş” göründüğünü düşünüyorsanız kaliteli içerik yapın, kimsenin umursamadığı gereksiz modüllerle doldurmayın ama yine de sitenizi yavaşlatın. Ana yönerge KISS'dir: Aptalca Basit Tutun. Söylemesi yapmaktan daha kolaydır ve oraya ulaşmak genellikle birkaç tekrar alır. Bir uzantıya ihtiyacınız olup olmadığını her zaman yeniden değerlendirmeyi ve artık kullanmadığınızda onu devre dışı bırakmayı veya kaldırmayı unutmayın.
Kaba Eklemek Yerine Geçersiz Kıl
Çoğu kişi, kendi veya müşterilerinin sitelerini geliştirmeye, bir Android veya iPhone kullanıcısının cihazlarını kullanmaya yaklaştığı şekilde yaklaşır: Bir şey yapmam gerekirse, bir şey yüklemem gerekir. Buna O Sendrom İçin Bir Uygulama Var veya kısaca “TAFTS” diyorum. Bir terminal koşulu gibi geliyor, değil mi?
Bu sendromdan muzdarip insanlar, siteyi yavaşlatan ve birkaç ay sonra Joomla veya PHP'yi güncellemede büyük bir engel haline getiren milyonlarca uzantı kullanıyor.
Mesele şu ki, sitenize fazla eklenti eklemenize gerek yok. Joomla, kutunun dışında son derece esnektir. Bir şey yapmak istediğinizde durun ve kendinize sorun: Bu sadece temel Joomla özellikleriyle yapılabilir mi?
Çoğu CMS'den farklı olarak Joomla, dil geçersiz kılmaları, şablon/düzen geçersiz kılmaları ve özel alanları kullanarak her şeyi ve her şeyi nasıl görüntülediğini geçersiz kılmanıza olanak tanır. Bu basit araçları kullanarak, yönetimi son derece kolay olan inanılmaz derecede karmaşık içerikler oluşturabilirsiniz. Ne de olsa Joomla, sloganı “basitlikte güç” olan Mambo adlı bir CMS'den geliyor.
Düzen geçersiz kılmaları ve özel alanlardan başka hiçbir şey kullanmadan, videoları kendi kendine barındıran (YouTube / Vimeo yerleştirme yok) iş sitem için bir video eğitimleri sayfası oluşturdum. Açtığınız video kategorileri sayfası, basit bir şablon geçersiz kılma ve bir dizi özel CSS içeren bir Joomla kategori blog görünümüdür. Bir kategoriye tıkladığınızda bir video listesi görürsünüz. Bu, yalnızca şablon geçersiz kılma içeren bir kategori listesi görünümüdür. Videonun uzunluğu özel bir metin alanıdır. Video dosyasına ve poster çerçevesi görüntüsüne işaret eden iki özel URL alanı daha vardır. Bunlar, tek tek video sayfasının (video oynatıcı) üst kısmını görüntülemek için kullanılır. O sayfa sadece bir makale. Makale içeriği, sayfanın altında gördüğünüz transkripttir. Transkript, sayfanın JavaScript'i tarafından ayrıştırılan veri-zaman kodu özelliklerine sahiptir, şablona yüklenen geçersiz kılma, onları video oynatıcıda zaman içinde belirli noktalara işaret etmek için tıklanabilir bağlantılar haline getirir. Temiz ve hepsi temel Joomla. Üçüncü taraf bir galeriye veya özel bir video eğitimi bileşenine gerek yok.
Mütevazı Etiketler listesi sayfasının kâr amacı gütmeyen bir kuruluş için güzel bir içerik alanı seçim paneli haline geldiğini gördüm. Özel alanlara sahip temel makalelerin, JavaScript dokunmatik olay işleyicisi dışında sıfır üçüncü taraf koduyla, dokunmatik öncelikli bir web uygulaması için içeriği kullanıcı dostu bir şekilde tanımladığını gördüm. Joomla kullanıcı profili sayfasını bir araya getirilmiş bir grup alan yerine profesyonel, üst düzey bir hizmet gibi gösteren çok basit şablon geçersiz kılmaları bile gördüm.
Kabul edelim ki, sadece çekirdek ile her şey mümkün değildir - çekirdek Joomla ile makul bir şekilde e-ticaret yapamaz veya randevu alamazsınız, üçüncü taraf bir uzantıya veya hizmete ihtiyacınız vardır - ancak uzantılar kesinlikle sahip olduğunuz ilk veya tek seçeneğiniz değildir.
Üçüncü taraf uzantılarının iyi planlanmış ve minimum düzeyde kullanımına bağlı kalarak siteyi yavaşlatmaktan kaçınır ve uzun vadede sürdürülebilir olmasını sağlarsınız. Bu, özellikle daha az kullanılan uzantılar Dünya'nın yüzünden düştüğünde ve bir siteyi kısmen yeniden uygulamak veya eski bir Joomla sürümüyle yapıştırmak gibi zor bir seçimle baş başa kaldığınızda önemlidir. Unutmayın millet, bir gram önsezi, çok geç olduğunda çılgınca kötü bir kararı düzeltmeye çalışmak için yarım kilo değerindedir.
Devam Edecek
Bu, beş bölümlük bir dizinin birinci bölümüdür. Bölüm 2: Temel Ayarlar üzerine olacaktır.
Kaynak: Joomla.org - Nicholas K. Dionysopoulos