Yayınlanma tarihi: 14 Mayıs 2025
Sıkıştırma Sözlüğü Aktarma, isteklerde tekrarlanan içeriği sıkıştırmamıza olanak tanıyan yeni bir standarttır ve 2024'ün sonlarında Chrome 130'ta kullanıma sunulmuştur. Google Arama bu yeni teknolojiyi benimsedi ve büyük iyileştirmeler elde etti.
Fırsat
Ziyaret ettiğimiz web sayfalarında çok fazla kopya içerik var. Aynı web sitesindeki birçok sayfa, aynı kodun büyük bölümlerinden oluşur. Bu kod HTML, CSS veya JavaScript olabilir. Bu kodların arasındaki içerikler değişir. Her sonuç, yüzlerce özelliğin benzersiz bir kombinasyonudur ve tamamen benzersiz içerikler oluşturur. Ancak bunları oluşturmak için tarayıcıya gönderilen kodda çok sayıda ortak nokta vardır.
Girdiğiniz arama terimi ne olursa olsun, çoğu arama sonucu sayfası görsel olarak birbirine oldukça benzer: En üstte Google logosu, arama çubuğu ve bazı kontroller bulunur. Orta kısımda arama türüne ait bazı sekmeler, solda kullanıcıya yardımcı olacak çeşitli widget'larla aralıklarla yerleştirilmiş arama sonuçlarının listesi ve sağda "hakkında" panelleriyle ek bağlam bilgileri yer alır:

Son olarak, alt kısımda sayfalandırma seçenekleri ve standart altbilgi yer alır. Bu, yalnızca görsel olarak sunulan kısımdır. Sahne arkasında, bu sayfayı oluşturmak için çok sayıda kod (HTML, CSS ve JavaScript) vardır. Bu kodun büyük bir kısmı, performans optimizasyonu olarak doğrudan sayfanın HTML'sine yerleştirilir. Bu, sayfanın daha hızlı yüklenmesine olanak tanısa da bu kodu farklı sonuç sayfaları arasında paylaşmamak gibi bir maliyeti de vardır (harici olarak önbelleğe alınmış bir kaynakta olduğu gibi).
Web'de sıkıştırma
Sıkıştırma, web'de yaygın olarak kullanılan bir teknolojidir. Kaynakları gzip veya Brotli ya da Zstandard gibi daha yeni algoritmalarla sıkıştırmak, bir dosyadaki tekrarlardan kaçınılmasını sağlar. Böylece, tüm bilgiler gönderilmeden önce sunucuda mümkün olduğunca sıkı bir şekilde paketlenir. Tarayıcı daha sonra orijinal içeriği geri yüklemek için sıkıştırılmış baytları açabilir. Görüntüler için kayıplı sıkıştırma, kullanıcılar tarafından fark edilmeyecek ek baytları kaldırarak benzer avantajlar sunar.
Yakın zamana kadar web'de sıkıştırma, kaynaklardaki sıkıştırmayla sınırlıydı. Farklı kaynaklarda ve kesinlikle farklı sayfalarda sıkıştırma yapmak mümkün değildi. Bu, web mühendislerinin düzeltmeye çalıştığı bir sınırlama olarak uzun zamandır bilinmektedir.
Sıkıştırılmış Sözlük Aktarımı imdadınıza yetişir.
Sıkıştırma Sözlüğü Aktarma, ortak "sözlükler" kullanılarak kaynaklar arasında sıkıştırmaya olanak tanıyan yeni bir standarttır. Bu sözlükler, ortak bayt dizilerinin sözlükteki referanslarla değiştirilmesine olanak tanır.
Brotli ve Zstandard gibi modern sıkıştırma algoritmaları, yaygın terimlerin sözlüklerinin kullanılmasını destekler. Bu sözlükler, terimleri sözlüğe yapılan daha küçük bir referansla değiştirerek daha fazla sıkıştırmaya olanak tanır. Brotli, yaygın web terimlerinin yer aldığı yerleşik bir sözlükle birlikte sunulur. Sıkıştırma Sözlüğü Aktarma, sunucunun ve tarayıcının özel sözlükleri paylaşması için yöntemler sunarak bu temeli geliştirir.
Özel sözlükler, sitede halihazırda kullanılan bir kaynak olabilir. Örneğin, app.v2.js
dosyasını indirirken app.v1.js
dosyasını sözlük olarak kullanarak yalnızca farkı indirebilirsiniz (genellikle "delta sıkıştırma" olarak bilinir). Alternatif olarak, <link rel="compression-dictionary">
etiketi (veya eşdeğer Link
HTTP üst bilgisi) kullanılarak ayrı bir sözlük kaynağı da belirtilebilir.
Bu, daha önce bahsedilen arama sonuçları sayfaları gibi çok fazla paylaşılan içerik veya kod içeren kaynakların indirme boyutunu önemli ölçüde azaltabilir.
Google Arama'nın sıkıştırma sözlüklerini kullanımı
Google Arama Ekibi, Arama'nın performansını sürekli olarak iyileştirmeye çalışıyor. Bu teknolojinin potansiyelini gördükleri için sıkıştırma sözlüklerini ilk kullananlardan biri oldular.
Arama, arama sonuçlarının temsili bir örneğinden oluşturulan ayrı bir sözlük dosyasıyla sonuç sayfaları için paylaşılan Brotli sıkıştırmasını kullanır. Güçlü bir otomatik ardışık düzen, sözlüğün güncel kalmasını sağlar ve günde birkaç kez yayınlanan ve sık sık değişen SRP içeriğine ayak uydurur. Bunun tam olarak nasıl çalıştığını görmek için Geliştirici Araçları'nı kullanabilirsiniz.
Bir istemci bir arama sonuçları sayfasını ilk kez yüklediğinde sunucu, rel=compression-dictionary
türüne sahip Link:
HTTP üstbilgisini kullanarak sözlüğün bağlantısını sağlar:

Link
başlığı gösteriliyorİstemci Brotli sözlük sıkıştırmayı destekliyorsa ancak paylaşılan sözlüğü henüz önbelleğe almamışsa tarayıcı, bu sözlüğü boşta kalma süresi boyunca indirir. Sözlük yanıtı, tarayıcıya bu sözlüğü hangi kaynaklarda kullanabileceğini bildiren Use-As-Dictionary
yanıt üst bilgisini içerir:

Use-As-Dictionary
başlığı gösteriliyorSözlük, standart cache-control
semantiğini kullanır ve bu başlıkta tanımlanan kurallarla eşleşen tüm kaynaklar (bu örnekte /search
ile başlayan sayfalar) için kullanılabilir.
Gelecekteki arama sonucu sayfası yüklemelerinde tarayıcı, Available-Dictionary
HTTP istek başlığını kullanarak sunucuya bir sözlüğü olduğunu söyleyebilir. Sayfayı yeniden yüklediğinizde bu işlemin nasıl çalıştığını görebilirsiniz:

Available-Dictionary
başlığı gösteriliyorGünlüğü koru onay kutusunu etkinleştirip filtreleme yaptığımızda iki yanıtı karşılaştırabiliriz:

Bu örnekte, ilk istek 107 KB'lık tam yanıttır ve Brotli (br
) sıkıştırması kullanır. İkinci yeniden yükleme isteği ise 60 KB ile boyutun neredeyse yarısıdır ve sözlük sıkıştırılmış Brotli (dcb
) sıkıştırması kullanır. Bu da daha hızlı bir indirme süresi sağlar.
Chrome'da, paylaşılan sözlükleri görüntülemek ve bu örneği baştan tekrarlamak isterseniz bunları silmek için chrome://net-internals/#sharedDictionary
sayfasını görüntüleyebilirsiniz.

#sharedDictionary
sayfasıSonuçlar
Bu değişiklik, 2025'in ilkbaharında Arama kullanıcılarına (ilk olarak Chrome kullanıcılarına) kullanıma sunuldu. Bu sayede, tüm Chrome kullanıcıları için HTML yayının ortalama boyutu standart Brotli sıkıştırmasına kıyasla% 23 oranında azaltıldı. Bu genel ortalama, hem sözlük sıkıştırması yapılmayan sonuçları (ör. sözlük kullanmayan ilk kez kullanıcılar) hem de sözlük sıkıştırması yapılmış arama sonuçlarını içerir. Sözlük sıkıştırılmış sonuçlarda tasarruflar daha da büyüktür. Daha önce incelediğimiz örnekte gördüğümüz gibi, %50'ye yakın bir iyileşme elde edebilirsiniz.
Bu sayede Largest Contentful Paint (LCP) metriği genel olarak% 1,7, yüksek gecikmeli ağlarda ise% 9'a varan oranda iyileşti. Bu oran küçük görünse de Google Arama, son derece optimize edilmiş bir site olduğundan bu büyüklükteki kazançlar çok önemlidir. Diğer siteler bu teknolojiyle daha da büyük iyileştirmeler görebilir.
Bu özelliği sitenizde deneyin.
Sıkıştırma Sözlüğü Aktarma özelliği artık tüm Chromium tabanlı tarayıcılarda (Chrome, Edge, Opera vb.) kullanılabilir. Bu, desteklemeyen tarayıcılar tarafından yok sayılacak ancak daha fazla tarayıcı destekledikçe bu durumdan yararlanabilecek olan aşamalı bir geliştirmedir.
Bu teknolojinin ele aldığı zorluklar Google Arama'ya özgü değildir. Birçok site, Arama'da kullanılan ayrı bir sözlükle veya sözlük olarak mevcut bir kaynağı (ör. yeni bir sürüm kullanıma sunulduğunda uygulamanın önceki sürümü) kullanarak sıkıştırma sözlüğü aktarma özelliğinden yararlanabilir.
Bu teknolojinin işleyiş şekli ve sitenizde nasıl uygulayabileceğiniz hakkında daha fazla bilgi için MDN'deki kılavuza göz atın.
Sözlük tabanlı sıkıştırılmış kaynaklar oluşturmak ve bunları uygun şekilde sunmak için sunucunuzda veya derleme işleminizde bazı ayarlar yapmanız gerekir. Ancak performans açısından sonuçlar gerçekten etkileyici olabilir.