Sıkıştırma Sözlükleriyle Google Arama'yı İyileştirme

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:

Üstte arama çubuğunun, solda ana sütunda sonuçların ve sağda ek bilgilerin bulunduğu tipik bir Google Arama sonuçları sayfası
Google Arama Sonuçları Sayfası

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.

Browser Support

  • Chrome: 130.
  • Edge: 130.
  • Firefox: not supported.
  • Safari: not supported.

Source

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:

Chrome DevTools&#39;da, Link rel=compression-dictionary üst bilgisinin vurgulandığı yanıt HTTP üst bilgileri
Chrome Geliştirici Araçları'nda Ağ sekmesinde 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:

Chrome Geliştirici Araçları&#39;ndaki yanıt HTTP başlıklarında &quot;Sözlük Olarak Kullan&quot; başlığı vurgulanmış halde
Chrome Geliştirici Araçları'nda Ağ sekmesinde Use-As-Dictionary başlığı gösteriliyor

Sö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:

Chrome Geliştirici Araçları&#39;nda, Available-Dictionary başlığının vurgulandığı yanıt HTTP başlıkları
Chrome Geliştirici Araçları'nda Ağ sekmesinde Available-Dictionary başlığı gösteriliyor

Günlüğü koru onay kutusunu etkinleştirip filtreleme yaptığımızda iki yanıtı karşılaştırabiliriz:

Aynı kaynağın iki indirme işleminin karşılaştırması. Üstteki 107 kB, alttaki ise 60 kB&#39;tır.
Chrome Geliştirici Araçları ağ sekmesi

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.

Bir paylaşılan sözlüğü gösteren Paylaşılan Sözlük sayfası
Net-Internals #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.