
Sitenize güzel bir yazı tipi eklediniz, bir simge seti çektiniz, bir analitik betiği koydunuz. Her biri ayrı bir sunucudan yükleniyor — ve sayfanız artık kendi hostinginizin dışındaki dört beş kaynağa bağımlı.
Bu yazı, dış kaynakların performans ve gizlilik etkilerini ele alıyor.
Her Dış Kaynağın Gizli Maliyeti
Bir dış kaynak eklendiğinde tarayıcının yapması gerekenler:
- Alan adını çözümle
- Bağlantı kur
- Şifreli oturum başlat
- İsteği gönder
- Yanıtı bekle
Bu zincir, dosya küçük olsa bile zaman alır: yeni bir alan adına yapılan ilk istek, kendi sunucunuzdaki aynı boyuttaki dosyadan belirgin şekilde yavaştır.
Üstelik bu maliyet dosya sayısıyla değil, alan adı sayısıyla ölçeklenir. Aynı kaynaktan beş dosya çekmek, beş farklı kaynaktan birer dosya çekmekten çok daha ucuzdur.
Geçersizleşen Bir İnanış
Uzun yıllar şu inanç yaygındı: ortak kaynaklar paylaşılan bir adresten çekilirse, ziyaretçinin tarayıcısında zaten önbellekte olur.
Bu artık geçerli değildir. Modern tarayıcılar önbelleği site bazında ayırır — başka bir sitede indirilmiş bir dosya, sizin sitenizde yeniden indirilir.
- Paylaşılan önbellek avantajı ortadan kalktı. Gizlilik nedeniyle kapatıldı.
- Dış kaynak artık net bir maliyettir. Karşılığında kazanç yok.
- Kendi sunucunuzdan sunmak genellikle daha hızlıdır.
Bu değişiklik, dış kaynak kullanımının temel gerekçesini ortadan kaldırdı. Bugün bir yazı tipini dışarıdan çekmenin performans avantajı yoktur.
Gizlilik Boyutu
Dış kaynak, ziyaretçinizin tarayıcısının başka bir sunucuya istek yapması demektir. O sunucu şunları görür:
| Görülen bilgi | Kaynağı |
|---|---|
| Ziyaretçinin IP adresi | Bağlantının kendisi |
| Hangi sayfadan geldiği | Yönlendiren başlığı |
| Tarayıcı ve işletim sistemi | İstemci başlığı |
| Ziyaret zamanı | Sunucu kaydı |
Bu, gizlilik metninizde belirtilmesi gereken bir veri paylaşımıdır: bir dış kaynak eklediğinizde, ziyaretçinizin verisini üçüncü bir tarafa aktarmış olursunuz — kullanıcı bunu hiç fark etmese bile.
Bu yüzden gizlilik metnindeki üçüncü taraf listesi, sayfanızın çektiği tüm dış kaynakları içermelidir.
Yerelde Barındırmak
Yazı tiplerini kendi hostinginizden sunmak için:
- Dosyaları indirin. Lisansının izin verdiğinden emin olun.
- Yalnızca gereken ağırlıkları alın. Her kalınlık ayrı dosyadır.
- Modern biçimi tercih edin. Boyut farkı belirgindir.
- Karakter alt kümesi kullanın. Kullanmadığınız alfabeleri çıkarın.
- Uzun önbellek süresi tanımlayın.
Dördüncü madde en büyük kazancı sağlar ve çoğu kişi bilmez: bir yazı tipi dosyası, kullanmadığınız onlarca alfabenin karakterlerini taşıyabilir. Yalnızca Latin ve Türkçe karakterleri içeren bir alt küme, dosyayı kat kat küçültür.
İkinci madde de sık atlanan bir israftır — sitenizde yalnızca normal ve kalın kullanıyorsanız, ince ve yarı kalın ağırlıkları yüklemenin anlamı yoktur.
Yükleme Davranışı
Yazı tipi yüklenirken metnin nasıl görüneceği ayrı bir karardır:
- Görünmez metin: Yazı tipi gelene kadar boş — kötü deneyim.
- Yedek yazı tipiyle göster: Metin hemen görünür, sonra değişir.
- İsteğe bağlı: Yavaşsa hiç kullanma.
İkinci seçenek çoğu site için doğru dengedir: içerik hemen okunabilir olur, yazı tipi geldiğinde yerine geçer.
Görsel kayma yaşanmaması için yedek yazı tipinin boyut olarak yakın seçilmesi yardımcı olur. Aksi hâlde metin geçiş anında zıplar ve bu, sayfa deneyimi ölçümlerinde de olumsuz sayılır.
Diğer Dış Kaynaklar
Yazı tipi tek örnek değildir. Sayfanızda tipik olarak bulunanlar:
| Kaynak | Yerelleştirilebilir mi? |
|---|---|
| Yazı tipleri | Evet, kolayca |
| Simge setleri | Evet, kullanılanları çıkararak |
| JavaScript kütüphaneleri | Evet |
| Analitik betikleri | Kısmen |
| Gömülü video ve harita | Hayır, ama geciktirilebilir |
Son satır için pratik bir çözüm vardır: gömülü içeriği sayfa açılışında değil, kullanıcı tıkladığında yükleyin. Yer tutucu bir görsel gösterip, tıklamayla gerçek içeriği getirmek hem hızlı hem gizlilik açısından temizdir.
İkinci satırda da benzer bir kazanç vardır — sitenizde on iki simge kullanıyorsanız, binlerce simge içeren bir seti tamamen yüklemenin gereği yoktur.
Etkiyi Ölçmek
Değişikliğin işe yarayıp yaramadığını görmek için:
- Kaç farklı alan adına istek yapılıyor? Sayıyı azaltmayı hedefleyin.
- Toplam istek sayısı ne?
- İlk anlamlı içerik ne zaman görünüyor?
- Görsel kayma yaşanıyor mu?
Birinci madde en doğrudan göstergedir ve tarayıcının geliştirici araçlarında kolayca sayılabilir. Kendi barındırma yapınızda bu kaynakları tek çatı altında toplamak, hosting hizmeti tarafında ek bir maliyet getirmez ama ölçülebilir bir hız kazancı sağlar.
Sonuç
Dış kaynak kullanımının eski gerekçesi artık geçersiz: modern tarayıcılar önbelleği site bazında ayırdığı için, paylaşılan adresten çekmenin hiçbir avantajı kalmadı. Bugün bir yazı tipini dışarıdan çekmek net bir maliyettir — hem hız hem gizlilik açısından. Yerelde barındırırken en büyük kazanç karakter alt kümesi kullanmaktır; bir yazı tipi dosyası kullanmadığınız onlarca alfabeyi taşıyabilir. Gömülü video ve haritaları ise sayfa açılışında değil, kullanıcı tıkladığında yükleyin.
Sıkça Sorulan Sorular (SSS)
Ortak adresten çekmek önbellek avantajı sağlamıyor mu?
Artık sağlamıyor. Tarayıcılar gizlilik nedeniyle önbelleği site bazında ayırdı — başka bir sitede indirilmiş dosya sizin sitenizde yeniden indirilir. Bu değişiklik dış kaynak kullanımının temel gerekçesini ortadan kaldırdı.
Dış kaynak gizlilik metnimi ilgilendirir mi?
İlgilendirir. Ziyaretçinin tarayıcısı o sunucuya bağlandığında IP adresi, hangi sayfadan geldiği ve tarayıcı bilgileri karşı tarafa gider. Bu bir üçüncü taraf veri paylaşımıdır ve gizlilik metninizdeki listede yer almalıdır.
Yazı tipi dosyalarını nasıl küçültürüm?
Üç yolla: yalnızca kullandığınız ağırlıkları indirin, modern dosya biçimini tercih edin ve karakter alt kümesi oluşturun. Sonuncusu en büyük kazancı verir — kullanmadığınız alfabeleri çıkarmak dosyayı kat kat küçültür.
Metin yüklenirken zıplıyor, nasıl önlerim?
Yedek yazı tipini boyut olarak asıl yazı tipine yakın seçin ve yükleme davranışını metni hemen gösterecek şekilde ayarlayın. Metnin görünmez kalmasını bekleyen davranış daha kötü bir deneyimdir; asıl çözüm geçişteki boyut farkını azaltmaktır.