Site Hızlandırma için Sunucu İşlemleri

Web sitenizi hızlandırmak için yaptığınız Google aramalarında pek çok farklı teknik ve birbirine benzer öneri bulabilirsiniz. CSS ve JS kodlarını sıkıştırma, önbellekleme (caching), Javascript erteleme ve CDN kullanımı gibi teknikleri halihazırda kullanıyor da olabilirsiniz.

Son 10 yılda pek çok projede yazılım geliştiriciler ve SEO danışmanları ile çalıştıktan sonra tüm bu yöntemleri alternatifleriyle birlikte deneyimleme fırsatı buldum. Fakat site hızlandırma konusunda ve Google’ın dikkate aldığı metrikler konusunda en dikkate değer sonuçları son 3 yılda geliştirdiğim sunucu bazlı optimizasyonda buldum.

HELIAN.work şirketinin temelleri aşağıda vereceğim ipuçları üzerine kurulu ve müşterilerine güven vererek yükselmeye devam ediyor. Bunları açık şekilde paylaşmamın sebebi, Türkiye’de yüksek reklam ve dijital pazarlama maliyetleri için bütçe ayıran firmaların dönüşüm oranlarının bütçelerine nazaran düşük kalması ve bunun ekonomik olarak genel bir zarara yol açmasıdır. Açıkçası uygulama kısmında kurumsal bir varlık gösterirken, sistemsel olarak sosyal sorumluluk bilinci güdüyoruz.

Aşağıda yer alan önermeler ve uygulamaları hakkında soru ve talepleriniz için bizimle iletişime geçebilirsiniz.

Hızlı web siteleri için hangi sunucular uygundur?

Web siteleri birer bilgisayar yazılımıdır. Haliyle her yazılımın bir işlem maliyeti vardır. Web sitenizi pazarlama ve yayın işlemleri için kullanıyorsanız, bir SaaS’tan farklı olarak daha az sistem gücüne ihtiyaç duyarsınız. Genellikle tanıtım, pazarlama ve hizmet tanıtımı için kullanılan, reklamlarla desteklenen web siteleri yüksek maliyetli sunucular kullanmak durumunda değildir.

Piyasada kiralanan paylaşımlı hostinglerin aylık fiyatlarına üzerlerine kurulan (tek seferlik) nginx, Apache, mysql, php gibi web sitesini çalıştıran yazılım paketlerinin kurulum ve güncelleme işlem maliyetleri de dahildir. Bu durum sebebiyle genellikle tek işlem için her ay ödeme yapılır ve bu konfigürasyonlar üzerinde çok fazla söz hakkında sahip olmazsınız.

Bu sebeple web sitenizin ihtiyaçlarına yönelik sistem kontrolü ve konfigürasyonu için asıl ihtiyacınız olan stack: içerisine doğru performansı verebilecek sistemleri kurabileceğimiz bir sanal sunucu + profesyonel sunucu yapılandırması hizmeti ve doğru takip güncelleme hizmetidir.

HELIAN.work müşterilerinden sadece sunucularını kiralamasını talep eder, geri kalan işlemleri uygular ve takip eder. Bu maliyeti düşürürken, performans için gerekli derin mühendislik altyapısını kurmamıza zemin hazırlar.

Performans yükselten sunucu konfigürasyonları nasıl belirlenir? 

Performans ölçümü sadece Google Web Vitals veya GTMatrix değerleriyle yapılmaz. Bu sistemler bir sonuç göstergesidir. Web sitenizin çekirdek kullanımı, çeşitli döngüsel işlemlerde yaptığı işlem hacmi ve ziyaretçi sayısı gibi değişkenler performans kurulumlarında ana gövdeyi oluşturur.

İnternet üzerinde paylaşılan çeşitli genel bilgiler güncelliğini neredeyse her ay yitiriyor. Örneğin Apache server kullanan web sitelerinin nginx server kullanan web sitelerine oranla daha hantal olduğu bir gerçektir. Fakat Apache için yayınlanmış PHP-FPM paketleri ile bu durumun tersine döndürülebildiği de bir gerçektir. İş parçacıklarını doğru yönetmek ve sunucunuzun özelliklerine göre limitleri doğru ayarlamak başlangıç noktası olmalıdır.

WordPress sitelerde (Dijital pazarlama için en çok kullanılan içerik yönetim sistemi olduğu için örneklerimizi bu yapı üzerinden vereceğiz.) kullanılan hazır temalar ve eklentiler genellikle performans tarafında negatif etki etmeleriyle anılırlar. Oysaki bu yapılar en nihayetinde kullanılan sayfaların içeriklerini görsel olarak yapılandırmak için kurgulanmışlardır. WordPress’de önbellekte olmayan ve ziyaret edilen her sayfa bir çok işleyiciyi harekete geçirir, şayet içerik sabitken her seferinde bu sayfanın oluşturulması için bu işleyiciler çalışmak durumunda kalırsa yapısal bir problem ortaya çıkar. Tam bu noktada sunucu taraflı önbellekleme önem kazanır. Fakat kişiye veya duruma özel içerik değişimleri bekleniyor ise tam bu tarafta kaynak kullanımını konfigüre etmek en önemli aşamalardan biridir.

Tüm bu durumları ele alırsak, WordPress Yavaş mı? makalesinde de odaklandığımız gibi performans üzerine yapı inşa ettiğimiz temelleri doğru başlatmaktan geçer. İçerisinde hazır sistemler kurulu, aylık ödemeleri yüksek paylaşımlı hostingler üzerinde işlem yapmak basit olabilir. Ama VDS kiralamak, ödemeyi yüksek işlemcili bir sunucu için yapmak ve sunucu optimizasyonlarını başlangıçta yaptırmak (bir hizmet olarak almak) daha uygun ve doğru bir seçenek olacaktır. İhtiyacınıza bağlı olarak yüksek lisans ücretleri ödemeyeceğiniz panel kurulumları yaptırarak kontrolü de daha maliyetsiz şekilde ele alabilirsiniz. 

HTTP/2 Yapılandırması

İnterneti dev bir restorana, web sitelerini de bu restorandaki masalara benzetelim. Siz (kullanıcı) bir masaya oturduğunuzda, tarayıcınız (Chrome, Safari vb.) garsonunuz olur. Sunucu ise mutfaktır.

Eski Yöntem: HTTP/1.1 (Sırasını Bekleyen Garson)

Eski sistemde (HTTP/1.1), garsonunuz mutfağa her seferinde sadece tek bir sipariş götürebilir ve o sipariş hazırlanana kadar başka bir şey isteyemezdi.

  • Önce çorbayı isterdiniz, garson mutfağa gider, çorba hazırlanır, masaya gelir.
  • Çorba geldikten sonra ana yemeği istersiniz, garson tekrar mutfağa gider, ana yemek hazırlanır, gelir.
  • Ana yemek geldikten sonra tatlıyı istersiniz...

Gördüğünüz gibi her şey sırayla olmak zorunda. Eğer çorbanın hazırlanması uzun sürerse, diğer her şey de gecikir. Web sitelerinde bu durum, bir resmin yüklenmesini beklerken yazının veya diğer görsellerin yüklenememesi anlamına gelir. Buna "sıranın başını kilitleme" (Head-of-Line blocking) denir.

Yeni Teknoloji: HTTP/2 (Süper Yetenekli Garson)

HTTP/2 ise bu restorana getirilmiş devrimsel bir yeniliktir. Artık garsonumuz süper yetenekli!

  • Siz masaya oturduğunuz anda çorba, ana yemek ve tatlı siparişini aynı anda verirsiniz.
  • Garsonumuz mutfağa tek bir seferde gidip tüm listeyi verir.
  • Mutfak, hazır olanı anında garsona verir. Çorba hemen hazır olduysa garson onu kapıp getirir, o sırada ana yemek pişmeye devam eder. Ana yemek hazır olunca onu da hemen getirir.

HTTP/2'nin temel farkı budur: Tek bir bağlantı üzerinden aynı anda birden fazla isteği gönderip alabilir. Tıpkı garsonun tek seferde bir tepsiyle bütün yemekleri getirmesi gibi.

HTTP/2'nin Süper Güçleri:

  1. Çoğullama (Multiplexing): En önemli özelliği budur. Yukarıdaki "aynı anda birden fazla sipariş alabilme" yeteneğidir. Bu, web sayfasındaki onlarca resim, yazı tipi ve kod dosyasının birbirini beklemeden, paralel olarak indirilmesini sağlar.
  2. Sunucu İtmesi (Server Push): Garson o kadar tecrübelidir ki, siz istemeden "Bu ana yemeğin yanına kesin salata da istersiniz" diyerek salatayı da önceden getirir. HTTP/2'de sunucu, tarayıcının birazdan isteyeceği dosyaları (örneğin bir CSS dosyasını) daha istenmeden göndererek zaman kazandırır.
  3. Başlık Sıkıştırma (Header Compression): Her siparişin üzerinde "Masa 5, Ali Bey" gibi bilgiler yazar. HTTP/2, bu bilgileri her seferinde uzun uzun yazmak yerine, çok daha verimli bir şekilde kısaltarak gönderir. Bu da veri trafiğini azaltır.

Kısacası HTTP/2, web sitelerinin çok daha hızlı ve verimli yüklenmesini sağlayan modern bir iletişim protokolüdür.

HTTP/2 Google Web Vitals İlişkisi

Web Vitals, Google'ın bir web sitesinin kullanıcı deneyimini ölçmek için kullandığı bir dizi metriktir. Yani "Bu site ne kadar hızlı açılıyor?", "Tıkladığımda ne kadar hızlı tepki veriyor?" ve "Sayfa yüklenirken görsel olarak ne kadar stabil?" gibi soruların cevabını arar.

Bu metriklerin en önemlileri (Core Web Vitals):

  • LCP (Largest Contentful Paint): Ekranda görünen en büyük içeriğin (genellikle bir resim veya büyük bir metin bloğu) ne kadar sürede yüklendiğini ölçer. İyi bir LCP, sayfanın hızlı açıldığı hissini verir.
  • INP (Interaction to Next Paint): Kullanıcının bir butona tıkladıktan veya bir forma yazı yazdıktan sonra sayfanın ne kadar sürede görsel bir tepki verdiğini ölçer. İyi bir INP, sayfanın akıcı ve duyarlı olduğunu hissettirir.
  • CLS (Cumulative Layout Shift): Sayfa yüklenirken içeriğin ne kadar kaydığını ölçer. Hani tam bir butona tıklayacakken sayfa kayar ve reklama tıklarsınız ya, işte o kötü bir CLS'dir. İyi bir CLS, sayfanın stabil olduğunu gösterir.

HTTP/2 ve Web Vitals Önerisi Arasındaki Bağlantı:

Google, "Web Vitals skorlarınızı iyileştirmek istiyorsanız HTTP/2 kullanın" der. Çünkü:

  1. HTTP/2, LCP'yi Doğrudan İyileştirir: Çoğullama (Multiplexing) sayesinde, sayfanın en büyük resmi veya metni diğer küçük dosyaların yüklenmesini beklemez. Her şey aynı anda indirildiği için o en büyük içerik ekrana çok daha hızlı gelir. Bu da LCP süresini doğrudan kısaltır.
  2. HTTP/2, INP'yi (Etkileşimi) İyileştirir: Bir web sayfasının etkileşime hazır olması için genellikle JavaScript dosyalarının indirilip çalıştırılması gerekir. HTTP/1.1'de bu dosyalar diğer her şey gibi sırada bekler. HTTP/2 ile bu dosyalar çok daha hızlı indirilir, tarayıcı daha çabuk "boşa çıkar" ve kullanıcının tıklamalarına anında yanıt verebilir hale gelir. Bu da INP skorunu iyileştirir.
  3. HTTP/2, CLS'yi Dolaylı Olarak İyileştirir: Görsel kaymalar (CLS), genellikle yazı tipleri (fontlar), resimler veya CSS kodları geç yüklendiğinde meydana gelir. Örneğin, önce standart bir fontla metin görünür, sonra özel font yüklenince metnin boyutu değişir ve sayfa kayar. HTTP/2 bu dosyaları çok daha hızlı ve öncelikli getirdiği için, sayfanın en baştan doğru ve stabil bir şekilde çizilme olasılığı artar. Böylece can sıkıcı kaymalar azalır.

Veritabanı optimizasyonu için neler yapılabilir?

Web sitelerinin içeriklerini güncellemek için bir içerik yönetim sistemi kullanıyorsanız veya kullanıcılarınız web sitenize login olarak işlem yapıyorlar ise mutlaka her ziyaretçi bir veritabanı sorgusu çalıştırır. WordPress veya benzeri altyapıları kullanan sitelerde de durum böyledir. Haliyle her ziyaretçi, veritabanınızdan gelecek bilgiyi bekler. Bu bilginin okuma ve yazma hızı web sitenizin hızını önemli derecede etkiler. 

Eğer web sitenize bağlanan herkes veritabanı üzerinde bir işlem yapıyorsa bu bağlantı hızını ve işlem hacmini doğru konfigüre etmek gerekir. HTTP/2 bile veritabanınızın hızı kadar hareket kabiliyetine sahiptir. Haliyle güncel bir Mysql/MariaBD vb. sürümüne sahip olmanız, sık ve kalabalık tabloları tespit edip sık yapılan sogulara göre indexleme yapmanız ve veritabanı üzerindeki gereksiz yükü almak için Redis veya Memcached gibi nesne önbellekleme sistemlerini etkin kullanmanız önemlidir. 

Bu sistemler, sürekli olarak atılan aynı sorgular için aynı yanıtlar dönüyor ise bunu veritabanını yormadan önbellekten servis eder ve diğer ziyaretçilerin ihtiyaç duydukları iş parçacıklarını hazır tutarlar.

Sunucu Bazlı Önbellekleme

Piyasada birçok 'hızlandırma eklentisi' bulunsa da, bunların çoğu misafir kapıya geldikten sonra evi toplamaya benzer. Gerçek performans ise misafir kapıyı çalmadan her şeyin hazır olmasıdır. Bizim uyguladığımız sunucu taraflı önbellekleme mekanizmaları  (Nginx FastCGI Cache, Varnish vb.) , gelen isteği daha WordPress'e hiç ulaşmadan, en hızlı şekilde sunar. Bu, sitenizin binlerce anlık ziyaretçiyi bile hiç yavaşlamadan karşılayabilmesi anlamına gelir.

Bu tip çalışmalar güncel versiyon takibi, ihtiyaç tespiti ve mühendislik bilgisi gerektirir. Bu sebeple HELIAN.work Sunucu Optimizasyonu hizmeti ile doğru tahlil ve tespit çalışmaları uygulanır, ihtiyaca göre mekanizma kurulumları yapılır. 

Tüm müşterilerimiz en nihayette GTMatrix ve Google PageSpeed puanlarının Yeşil renkte olmasını beklerler. Bizler yeşil renkli bir sonuç için, siyah renkli terminal ekranlarındaki uzmanlığımızı kullanırız.