Web sitenizin hızını artırmanın belki de en güçlü yolu HTTP/2 protokolünü devreye sokmaktır. HTTP/1.1, her bir istek için bir bağlantı açar, bu da sayfanın yüklenmesini yavaşlatır. HTTP/2 ise çoklu istekleri aynı bağlantı üzerinden gönderebilir, böylece hız artar. HTTP/2’nin sunduğu diğer avantajlar arasında veri sıkıştırma ve başlıklar üzerinde iyileştirmeler de yer alır.
Eğer sitenizde HTTP/2 kullanmak istiyorsanız, öncelikle sunucunuzun bu protokolü desteklediğinden emin olmalısınız. Çoğu modern sunucu, HTTP/2'yi destekler ancak bazen bu özellik varsayılan olarak devre dışı olabilir. Bu özelliği etkinleştirmek için sunucunuzun ayarlarına girebilir ve bu protokolü aktif hale getirebilirsiniz.
# NGINX ile HTTP/2 etkinleştirme örneği
server {
listen 443 ssl http2;
server_name www.orneksite.com;
}
Birçok site, sayfa açıldığında hemen her şeyi yükler; ancak bu yaklaşım hem kullanıcı deneyimini hem de sayfa hızını olumsuz etkileyebilir. Lazy loading, görsellerin ve videoların yalnızca kullanıcı sayfayı aşağı kaydırdıkça yüklenmesini sağlar. Bu sayede başlangıçta yalnızca gerekli içerik yüklenir, sayfa daha hızlı açılır.
Lazy loading’i etkinleştirmek oldukça basittir. JavaScript kullanarak, sayfada yer alan her bir görsel için tembel yükleme işlevini ekleyebilirsiniz.
Mobil kullanıcılar, hızlı yüklenen sayfalara bayılır. Bu yüzden, AMP (Hızlandırılmış Mobil Sayfalar) teknolojisini kullanmak, mobil sayfa hızınızı önemli ölçüde artırabilir. AMP, sayfa yükleme sürelerini azaltmak için HTML, CSS ve JavaScript’i sınırlayarak optimize eder. AMP sayfaları, mobil cihazlarda hızlıca yüklenir, bu da daha iyi kullanıcı deneyimi ve SEO sağlar.
AMP ile uyumlu sayfalar oluşturmak için AMP HTML'yi kullanarak sayfalarınızı yeniden yapılandırabilirsiniz. Google, AMP sayfalarını hız açısından oldukça değerli görmektedir.
Web sitenizde çok sayıda CSS, JavaScript ve HTML dosyası varsa, her birinin ayrı ayrı yüklenmesi zaman alabilir. Kaynakları birleştirerek ve minify (küçültme) işlemi yaparak bu dosyaların boyutlarını küçültüp sayfa yükleme süresini hızlandırabilirsiniz. Bu işlem, özellikle mobil cihazlarda büyük fark yaratır.
CSS ve JavaScript dosyalarınızı birleştirip minify etmek için birçok araç mevcut. Örneğin, online araçlar veya Webpack gibi modüler yapılar bu süreci otomatikleştirir.
# Webpack ile kaynakları birleştirme örneği
module.exports = {
entry: './src/index.js',
output: {
filename: 'bundle.js',
},
mode: 'production',
};
İçeriği daha hızlı sunabilmek için yalnızca tek bir CDN (İçerik Dağıtım Ağı) kullanmak yeterli olmayabilir. Farklı coğrafi bölgelerdeki kullanıcılara daha hızlı erişim sağlamak adına birden fazla CDN kullanmak oldukça etkilidir. Birden fazla CDN kullanarak, içeriğinizin her kullanıcıya daha yakın bir sunucudan sunulmasını sağlayabilirsiniz. Bu, özellikle uluslararası trafiğe sahip siteler için önemlidir.
Birden fazla CDN entegrasyonu yapmak, biraz daha karmaşık olabilir ancak bu sayede kullanıcılarınızın deneyimi büyük ölçüde iyileşir.
Web sitenizin hızını artırmanın bir başka yolu da görsellerinizi WebP formatına dönüştürmektir. WebP, görsellerin kalitesini korurken boyutlarını küçültür. Bu, sayfanızın yüklenme süresini hızlandırır. Özellikle görsel ağırlıklı sitelerde bu format büyük fark yaratır.
WebP formatına dönüşüm yapmak oldukça kolaydır ve pek çok araç bu işlemi otomatikleştirebilir. Örneğin, Photoshop veya online dönüştürücüler ile görsellerinizi WebP formatına dönüştürebilirsiniz.
# WebP dönüştürme örneği (Linux terminali)
cwebp input.jpg -o output.webp
Web sitenizin hızını etkileyen bir diğer faktör de veritabanıdır. Özellikle dinamik içerik barındıran sitelerde, veritabanı sorguları büyük rol oynar. Veritabanınızı düzenli olarak optimize etmek, gereksiz verileri temizlemek ve indexleme yaparak sorgu sürelerini azaltmak, site hızınızı artıracaktır. Ayrıca, fazla yük getiren sorguları inceleyip optimize etmek de önemli bir adımdır.
Veritabanı optimizasyonu, genellikle veritabanı yöneticileri tarafından yapılan bir işlem olsa da, geliştiricilerin de bu konuda bilgi sahibi olması faydalıdır.
# MySQL'de veritabanı optimizasyonu
OPTIMIZE TABLE tablo_adı;