Site hızı

Farsça yazı tipleri ve site hızı

Farsça bir yazı tipi Latin muadilinden ağırdır, ama en büyük tasarruf dosyayı hafifletmekten gelmez; gerekmeyen dosyaları hiç göndermemekten gelir. Bu site stil sayfasında beş ağırlık yazıyor ve yalnızca üç yazı tipi dosyası gönderiyor, toplam 74,6 KB.

  • Ders 8 / 10
  • Orta
  • Ücretsiz, kayıt yok

Her ağırlık, alt küme alınmadan önce ve sonra

bu sitenin gerçekten gönderdiği üç ağırlık, 8 Eylül 2026'da ölçüldü
  • olağan ağırlık, gövde metni için 41,7 KB24,7 KB

    neredeyse her sayfanın ihtiyaç duyduğu tek ağırlık

  • kalın ağırlık, başlıklar için 41,8 KB24,9 KB

    600 ağırlığı da bundan gelir ve kendi dosyası yoktur

  • en ağır ağırlık, ana başlık için 42,0 KB25,0 KB

    varlığı sahte bir kalın üretilmesini engeller

tam dosyaalt küme dosyası

Bu şekil yalnızca gönderilen üç ağırlığı gösterir. Stil sayfasında yazılı diğer iki ağırlığın hiç dosyası yoktur ve tarayıcı onları bu üçünden seçer; yani gerçek tasarruf bu şeklin gösterdiğinden büyüktür.

Son kontrol: Bu dersteki bilgiler ve araç adları bu tarihte kaynaklarıyla yeniden doğrulanır.

Farsça bir yazı tipi neden daha pahalıya gelir

Latin bir yazı tipinin harf başına tek şekli vardır. Farsça bir yazı tipinin harf başına birkaç şekli vardır, çünkü bir harf kelimenin başında, ortasında, sonunda ve tek başına farklı yazılır; üstüne birleşik biçimler de eklenir. Sonuç, çok daha fazla glif taşıyan bir dosyadır ve ağırlığını yukarı çeken de budur.

Bu sitenin kendi dosyalarından gerçek sayı: ana yazı tipi olağan ağırlıkta 726 glif ve 652 kod noktası taşıyor ve 41,7 KB. Alt küme sürümü 599 glif ve 527 kod noktası taşıyor ve 24,7 KB.

Alt küme almak, bu sitenin asla ihtiyaç duymayacağı parçaları yazı tipinden çıkarmak demektir. Doğru olan budur ve yapmalısınız, ama zanaati bu sayfanın konusu değil: bir Farsça yazı tipinin harfleri dağılmasın diye neyi koruması gerektiği Farsça tipografi dersinde ayrıntısıyla anlatılıyor ve burada tekrarlamıyoruz.

Burada ele aldığımız şey daha az sorulan başka bir soru: dosyanız hafifledikten sonra o dosyaların kaçını gerçekten göndermeniz gerekiyor? Bu sitede o sorunun yanıtı, alt küme almanın kazandırdığından fazlasını kazandırdı.

Farsça yazı tipleri ve site hızı: gerçekte kaç ağırlık gerekir

Gerçekte kaç ağırlığa ihtiyacınız var?

Çoğu Farsça sitenin bayt kaybettiği yer burasıdır ve çözüm bir ayar değil: CSS'in kendi içinde, neredeyse kimsenin kullanmadığı bir kuraldır.

Tarayıcı, dosyanızın olmadığı bir ağırlıktaki metne ulaştığında o metni yazı tipsiz bırakmaz ve bir yazı tipi uydurmaz; elinizdeki en yakın ağırlığı seçer. Kural CSS standardına yazılmıştır ve arama yönü bellidir: beş yüzün altındaki bir ağırlık için önce daha düşük ağırlıklar, sonra daha yüksekler denetlenir; beş yüzün üstündeki bir ağırlık için önce yüksekler, sonra düşükler.

Şimdi bu site. Ana stil sayfasında beş ağırlık yazılı ve bunları kendiniz sayabilirsiniz:

grep -ohE 'font-weight:[[:space:]]*[0-9]{3}' style.css | tr -d ' ' | cut -d: -f2 | sort -un

Çıktısı beş sayı: 400, 500, 600, 700 ve 800. Ama bu sitenin gerçekten sunduğu HTML'de yalnızca üç font-face bloğu var: 400, 700 ve 800. Ağırlık 500, 400'e; ağırlık 600, 700'e çözülüyor, çünkü yukarıdaki kural böyle diyor ve sayfada farkı kimse görmüyor.

Tasarrufu hesaplayın. Gönderilen üç dosya 24,7, 24,9 ve 25,0 KB; toplam 74,6 KB. Aynı üç ağırlık tam hâlleriyle 41,7, 41,8 ve 42,0 KB. Beş ağırlığın hepsi alt küme alınmadan tam hâlleriyle gönderilseydi 208,6 KB olacaktı. İki karar birlikte yazı tipi ağırlığının üçte ikisinden fazlasını kaldırdı ve ikincisi, yani iki ağırlığı hiç göndermemek, tek başına yaklaşık 50 KB etti: alt küme almanın tek bir dosyada kazandırdığından fazla.

Aynı kurala bağlı bir şey daha: 700 ve 800'ün ikisinin de dosyası olduğu için tarayıcı hiçbir zaman sahte bir kalın üretmek zorunda kalmaz. Sahte kalın, Farsça yazıda Latin'dekinden kötü görünür ve Farsça tipografi dersi nedenini anlatır.

Ve kendi tamamlanmamış toparlamamızdan küçük bir itiraf: bu sitenin yazı tipi klasöründe, kodda hiçbir şeyin atıfta bulunmadığı, 41,5 KB yer kaplayan altıncı bir ağırlık duruyor. Ziyaretçiye hiç gönderilmiyor, yani hıza mal olmuyor, ama yine de silinmeyi hak ediyor.

font-display: neden swap değil optional seçtik

Yazı tipi dosyası gelene kadar tarayıcının metinle ne yapacağına karar vermesi gerekir ve font-display o kararı yazar. Neredeyse her eğitim swap önerir. Biz optional seçtik ve nedenini yazıyoruz, çünkü burası yaygın tavsiyenin Farsça için daha kötü çalıştığı yerlerden biri.

swap ile tarayıcı metni hemen bir yedek yazı tipiyle çizer ve gerçek yazı tipi gelir gelmez değiştirir. Metin hiçbir zaman görünmez olmaz; bu seçeneğin kazancı budur. Bedeli tam da o değiştirme anıdır: harf genişlikleri değişir, satırlar yeniden bölünür ve bütün sayfa sarsılır. O sarsıntı, Core Web Vitals dersinde ölçülen düzen kaymasıdır.

optional ile tarayıcı yazı tipine kısa bir pencere verir. Zamanında gelirse sayfa baştan onunla çizilir; gelmezse o ziyaretin tamamında yedek kalır ve hiç değiştirme olmaz. Yazı tipinden kaynaklanan düzen kayması kesin olarak sıfırlanır.

Bu seçimin Farsçada neden daha önemli olduğu: bir Farsça yazı tipiyle sistem yedeği arasındaki genişlik farkı, Latin'deki aynı farktan büyüktür. Yedekte altı satır süren bir paragraf gerçek yazı tipinde beş satır sürebilir ve o tek satırlık fark, sayfada altındaki her şeyi kaydırır.

Ve şimdi ödediğimiz bedel, ki açıkça söylenmeli: optional ile yavaş bağlantıdaki ilk kez gelen bir ziyaretçi o ziyaretin tamamını yedekle okuyup seçtiğimiz yazı tipini hiç görmeyebilir. Bizim için takas değdi, çünkü ikinci ziyaretinde yazı tipi önbellekten geliyor ve o andan sonra hep doğru. Marka yazı tipinizin tam olarak o ilk ziyarette görünmesi sizin için hayatiyse seçiminiz farklı olur ve bu da savunulabilir.

swap ve optional iki farklı takas

swap

  • metin hemen yedekle çizilir ve hiç görünmez olmaz
  • gerçek yazı tipi ne zaman gelirse geçer, geç bile olsa
  • o değiştirme anında sayfa düzeni sarsılır

optional

  • yazı tipine kısa bir pencere verilir, sonrasında hiç geçmez
  • yazı tipinden kaynaklanan düzen kayması kesin olarak sıfırlanır
  • yavaş bağlantılı bir ziyaretçi yazı tipinizi hiç görmeyebilir

Hiçbiri yanlış değil. Biz optional'ı seçtik çünkü düzen kaymasını kesin olarak sıfırlıyor; bedeli, bazı ziyaretçilerin ilk ziyaretlerinde yazı tipimizi hiç görmemesi.

Yazı tipini daha erken başlatın: preload ve Early Hints

Tarayıcı CSS'i okuyana kadar bir yazı tipine ihtiyacı olduğunu bilmez ve HTML gelene kadar CSS'i yoktur. Yani yazı tipi indirmesi doğal olarak geç başlar ve bu bölümdeki her şey onu daha erken başlatmakla ilgilidir.

İlk adım preload: başlıkta, tarayıcıya bu dosyayı şimdi başlat diyen tek bir satır. Burada en sık ihmal edilen kural, yalnızca ilk görünümün yazı tiplerini ön yüklemektir. Beş ağırlığın hepsini ön yüklerseniz tarayıcı beş eşzamanlı indirme başlatır ve sayfanın ana görseline gitmesi gereken bant genişliği, sayfanın dibinde gereken bir yazı tipine gider. Bu sitenin üç yazı tipi var ve yalnızca ikisini ön yüklüyor: gövde metni için olağan ağırlık ve ana başlık için en ağır ağırlık.

İkinci adım daha az görülür ve etkisi gerçektir. Sunucu aynı ön yüklemeyi bir yanıt başlığı olarak da gönderebilir ve bazı içerik dağıtım ağları bunu, HTML'in kendisi hazır olmadan önce, 103 koduyla ön bir yanıt olarak tarayıcıya iletir. Yani sunucu sayfayı kurmakla geçirdiği süre boyunca tarayıcı yazı tipini indiriyor olabilir.

Bu sitede çalışıyor ve dışarıdan görülüyor: ana sayfaya yapılan bir istek önce aynı iki yazı tipini taşıyan bir 103 yanıtı, sonra sayfanın kendisiyle 200 yanıtını döndürüyor. Kendi sitenizde denemek için başlıkları bir komut satırı aracıyla alın ve 103 ile başlayan bir satır arayın; tarayıcı bu yanıtı geliştirici araçlarında göstermez.

Ve bunu dekoratif bir ayardan ayıran tek koşul: 103 yalnızca sayfayı kurmak gerçekten zaman aldığında işe yarar. Önbellekten gelen ve yirmi milisaniyede yanıt veren bir sayfada kazanılacak bir öncelik kalmamıştır.

Yazı tipi nereden başlar ve nasıl öne geçer

  1. 1

    103 ön yanıtı

    HTML hazır olmadan tarayıcı yazı tipi adresini alır

  2. 2

    başlıktaki preload satırı

    yalnızca ilk görünümün iki yazı tipi, beş ağırlığın hepsi değil

  3. 3

    CSS'teki font-face bloğu

    tarayıcı hangi ağırlıkların var olduğunu burada öğrenir

  4. 4

    metnin çizilmesi

    geldiyse gerçek yazı tipiyle, yoksa yedek diziyle

İlk adım yalnızca kurulması zaman alan bir sayfada anlam taşır. Önbellekten gelip yirmi milisaniyede yanıt veren bir sayfanın kazanacağı bir öncelik yoktur.

Zıplamayan bir yedek dizi

Her ziyaretçi ilk anı bir yedek yazı tipiyle görür ve optional seçtiyseniz bazıları ziyaretin tamamını onunla görür. Yani bu dizi dekoratif bir ayrıntı değil, gerçek deneyimin bir parçasıdır ve bir şablondan kopyalanmak yerine seçilmelidir.

Bu sitenin kullandığı dizi şu sırayla gider: özel yazı tipi, sonra yaygın bir açık kaynak Farsça yazı tipi, sonra sistemin varsayılan yazı tipi, sonra Windows'ta bulunduğu bilinen iki yüz ve son olarak sans-serif. Mantığı basit: her basamak var olma olasılığı daha yüksek bir şeye doğru gider ve son basamak her zaman var olan bir şeydir.

Farsça bir dizi seçerken unutulmaması gereken iki şey var. Birincisi, yalnızca Latin taşıyan bir yazı tipi bu dizide yalnızca işe yaramaz değil, zararlıdır: tarayıcı Farsça harfler için bir sonraki basamağa geçer ama rakamlar ve Latin karakterler için onu alabilir ve metniniz iki farklı yazı tipiyle yazılmış olur. İkincisi, Tahoma Windows'ta Farsça harfleri taşır ve çoğu Farsça dizide hâlâ görünmesinin nedeni budur; güzel değildir ama vardır ve var olmak son basamakların tam da amacıdır.

Ve daha az yapılan, yapmaya değer bir şey: diziyi gerçekten test edin. Tarayıcınızın geliştirici araçlarında gerçek yazı tipinin adını kuraldan çıkarın ve sayfaya bakın. Hâlâ okunabiliyorsa optional kararı kolaylaşır; kırık bir sayfaya benziyorsa font-display'inizi değil dizinizi değiştirin.

Ve önbellek dersine bağlanan son parça: bir sitedeki bütün dosyalar arasında yazı tipi dosyası uzun bir önbellek için en iyi adaydır, çünkü hiç değişmez. Bu sitede yazı tipleri bir yıllık ömürle gönderiliyor; yani buraya bir kez gelmiş bir ziyaretçi bir dahaki sefere yazı tipi için sıfır bayt öder. Bu tek ayar, ikinci ziyaretten itibaren yukarıdaki her şeyi konusuz bırakır.

Yazı tipi sayfasıyayımlamadan önce

Bunları yapın

  • stil sayfasında gerçekten hangi ağırlıkları yazdığınızı sayın
  • yalnızca tarayıcının diğerlerinden çözemeyeceği ağırlıklar için dosya gönderin
  • yalnızca ilk görünümün yazı tiplerini ön yükleyin
  • yazı tiplerini uzun önbellek ömrüyle gönderin; hiç değişmezler
  • sayfaya bir kez gerçek yazı tipi olmadan bakın ve okunduğunu doğrulayın

Bunları yapmayın

  • sahip olduğunuz her ağırlığı ön yüklemek
  • Farsça yedek diziye yalnızca Latin taşıyan bir yazı tipi koymak
  • woff2 ile birlikte daha eski formatlar göndermek
  • bugün sayfada görünen karakterlere göre alt küme almak

Yapay zekayla hızlı yol

Bir yazı tipini hafifletmenin alışılmış yolu, dosyayı çevrimiçi bir hizmete yükleyip çıktıyı almaktır. İşe yarar ve iki sorunu vardır: neyin çıkarılacağı kararı sizin değildir ve bir dahaki sefere yeniden yapmak sıfırdan başlar. Hızlı yolun iki adımı var ve ilk adımı neredeyse herkesin atladığı adımdır: dosyaları hafifletmeden önce hangi dosyaların gerektiğini belirleyin. Modelin burada iyi bir rolü var ve o rol karar vermek değil; stil sayfanızdaki ağırlık listesiyle elinizdeki dosya listesini karşılaştırır ve hangi dosyaları tarayıcının kendisinin kapattığını söyler. O karşılaştırma, bu sitede yaklaşık 50 KB kazandıran şeyin ta kendisidir.

  1. Stil sayfasında yazdığınız ağırlıkları sayın. İkinci bölümdeki komut tam olarak bunu yapar ve çıktısı kısa bir sayı listesidir.
  2. O listeyi, elinizdeki yazı tipi dosyalarının listesiyle birlikte modele verin ve hangi ağırlıkların düşürülebileceğini ve her birinin hangi kalan ağırlığa çözüleceğini sorun.
  3. Yalnızca ayakta kalan ağırlıkların alt kümesini alın. Bunun standart aracı fontTools paketindeki pyftsubset'tir ve varsayılan kipinde Farsça yazının bağlı olduğu dizgi özelliklerini korur.
  4. Çıktıyı sayıyla değil gözünüzle kontrol edin. Yeni yazı tipiyle bir Farsça paragrafa, bir başlığa, birkaç rakama ve bir Latin kelimeye bakın. Bir harf bir sonrakinden ayrılmışsa alt küme bozuktur ve dosya boyutu bu konuda hiçbir şey söylemez.

Kopyalamaya hazır şablon

Sitemin gönderdiği yazı tipi dosyası sayısını, görünümünü değiştirmeden azaltmak istiyorum.

Stil dosyasında yazılı ağırlıklar:
{ağırlık sayma komutunun çıktısını buraya yapıştırın}

Şu anda elimdeki yazı tipi dosyaları, boyutlarıyla:
{dosya listesini buraya yapıştırın}

Kurallar:
1. Tahminle değil, CSS standardındaki yazı tipi eşleme algoritmasıyla çalış. Dosyasını düşürdüğümüz her ağırlık için tarayıcının hangi kalan ağırlığı seçeceğini ve nedenini söyle.
2. Bir ağırlığı düşürmek tarayıcının sahte bir kalın üretmesine yol açacaksa onu düşürme ve bunu söyle.
3. Bir ağırlığı yalnızca stil sayfasında bir kez kullanıldığı için düşürme; ölçüt, en yakın kalan ağırlığın ne kadar farklı olduğudur.
4. Tasarrufu yalnızca sana verdiğim dosya boyutlarından hesapla ve yeni sayılar uydurma.
5. Hız ya da sıralama konusunda hiçbir şey vaat etme.

Çıktıyı üç bölümde ver: kalan dosyalar, giden dosyalar ve her birinin neye çözüldüğü, öncesi ve sonrasıyla toplam boyut.

Çıktıya güvenmeden önce: Model yazı tipi eşleme algoritmasını bilir ve sizin yazı tipinizi görmedi; dolayısıyla kontrol etmek size kalan iki şey var. Birincisi, yazı tipi dosyanız adının iddia ettiği ağırlık olmayabilir; bir dosya adı hiçbir şey garanti etmez ve model dosya adını okuyor. İkincisi ve daha önemlisi, sonuca bakmanız gerekir: bir ağırlığı düşürdükten sonra o ağırlığın kullanıldığı bir sayfayı açın ve gözünüzle karşılaştırın. 600 ile 700 arasındaki fark büyük bir başlıkta görünür, küçük bir etikette görünmez ve bunu ancak bakmak çözer.

Bu işte yapay zeka

Yazı tipi işinde yapay zekâ bir işi gerçekten iyi yapar, bir işe ise hiç dokunmamalıdır. Kurallar üzerinde akıl yürütmekte iyidir: yazı tipi eşleme algoritması CSS standardına yazılmıştır ve bir model onu listeniz üzerinde çalıştırıp hangi ağırlığın hangisine çözüldüğünü söyleyebilir. Yapmaması gereken şey, yazı tipi dosyasının kendisini üretmek ya da yeniden kurmaktır. Tutumumuz: model listeye dokunsun, dosyaya değil.

Gerçekten işe yarayan araçlar

  • Claude Kurallar üzerine o akıl yürütmeye uygundur: ağırlık listesini alır, eşleme algoritmasını üzerinde çalıştırır ve kural koyarsanız kurallara uyar. İran, Anthropic'in desteklenen ülkeler listesinde değil; dolayısıyla resmi kayıt da yok, İran kartı da kabul edilmiyor.
  • Gemini Sayfanın kendisine bakmak için işe yarar: bir sayfanın iki yazı tipiyle çekilmiş iki ekran görüntüsünü verip düzenin nerede kaydığını sorun. Bu yanıt, yedek dizinizin yeterince yakın olup olmadığını çözer. Google'ın kendi sayfası, Gemini web uygulamasının 230'dan fazla ülke ve bölgede çalıştığını söylüyor ve İran o listede yok.
  • ChatGPT Aynı liste işi ve bir alt küme aracının bayraklarını açıklamak için yeterli. İran'dan erişim konusunda bir iddiada bulunmuyoruz, çünkü OpenAI'nin desteklenen ülkeler sayfası, o alan adının geri kalanı gibi, bu sunucuya 403 döndürüyor.

Nerede geri teper

İki risk var ve ikincisi özellikle Farsça yazıya ait. Birincisi uydurulmuş bayraklar: model yazı tipi araçlarının komut örüntüsünü görmüştür ve var olmayan ya da sizin sürümünüzde başka anlama gelen bir bayrak yazabilir. Tehlike burada başka yerlerden yüksektir, çünkü bozuk bir yazı tipi dosyası hata olarak görünmez; dosya kurulur, hatta daha küçüktür ve bir şeyin yerinde olmadığını ancak metne bakmak söyler. İkinci risk bunun en kötü hâlidir: model size boyut kazanmak için dizgi özelliklerini soymanızı söylerse, o talimat Latin metinde zararsızdır ve Farsça harfleri birbirinden koparır. Her alt küme çıktısına dosya boyutuyla değil gerçek bir Farsça paragrafla bakın. Ve kesinlikle yapmamanız gereken üçüncü bir şey: modelden kendisinin bir yazı tipi üretmesini ya da mevcut bir ağırlıktan yeni bir ağırlık türetmesini istemeyin; ortaya çıkan şey kimsenin test etmediği ve lisansı belirsiz bir yazı tipidir.

Kaynaklar: MDN: font-display Anthropic: supported countries Google: where Gemini Apps are available

Bu tavsiyenin sınırı

Bu ders bir yazı tipinin ağırlığı ve yüklenmesiyle ilgilidir, onu seçmekle değil; markanız için hangi Farsça yazı tipinin doğru olduğu ve bir Farsça yazı tipini iyi yapan şeyin ne olduğu Farsça tipografi dersinin işidir. Üç sınırı daha var. Birincisi, buradaki sayılar tek bir yazı tipi ailesine aittir ve sizinkinde farklı olacaktır; özellikle de orijinalin ne kadar gereksiz karakter taşıdığına bağlı olan alt küme oranı. İkincisi, optional seçmek bizim seçimimizdir ve görsel kimliği yazı tipinin tam olarak o ilk ziyarette görünmesine bağlı bir site için yanıt farklıdır. Üçüncüsü, Farsça bir sitede değişken yazı tipleri konusunda doğrudan deneyimimiz yok; teoride birkaç ağırlığı tek dosyaya sığdırırlar, ama bu sitede denemediğimiz için boyutları ya da Farsçadaki davranışları hakkında bir iddiada bulunmuyoruz.

Kendi işimizden

Bu işte bize herhangi bir ayardan çok yardımı dokunan şey, CSS'in kendi içindeki bir kuraldı ve onu bir eğitimden değil bir ölçümden anladık. Bu sitenin stil sayfası beş ağırlık yazıyor ve bir süre beş dosyanın hepsini gönderiyorduk. Sonra ağırlıkları sayıp dosyalarla karşılaştırdık ve tarayıcının 500 ağırlığı için 400'e, 600 için 700'e gittiğini gördük; çünkü yazı tipi eşleme algoritması böyle diyor. İki dosyayı sildik ve yan yana karşılaştırmada kendimiz dahil hiç kimse sayfada bir fark görmedi. O iki dosya yaklaşık 50 KB'ydi; alt küme almanın tek bir dosyada kazandırdığından fazla. Bizde kalan ders şu: dosyaları hafifletmeden önce, kaçının gerçekten gerektiğini sayın.

Gerçek devam soruları

Yazı tipini kendi sunucumdan mı yoksa dış bir hizmetten mi sunmalıyım?

Kendi sunucunuzdan. Dış hizmet için eski gerekçe, ziyaretçinin o yazı tipini başka bir siteden önbelleğinde bulundurabileceğiydi; bu gerekçe artık geçerli değil, çünkü tarayıcılar önbelleği site başına ayırıyor. Dış hizmet artık başka bir alan adına fazladan bir bağlantı demek ve İranlı bir ziyaretçi için fazladan bir arıza noktası demek.

woff2 dışında bir formata ihtiyacım var mı?

Hayır ve yanında daha eski formatlar göndermek düpedüz kayıptır. Bugün gerçekten kullanılan her tarayıcı woff2'yi anlar ve o aynı zamanda en çok sıkışan formattır. Sitenizin eski kodunda arka arkaya sıralanmış birkaç format varsa, onları silmek güvenli bir toparlamadır.

Sistem yazı tipini kullanıp hiç özel yazı tipi göndermemeli miyim?

Hız için bu mümkün olan en iyi yanıttır ve sıfır bayta mal olur, ama Farsçada bedeli Latin'dekinden yüksektir. Varsayılan yazı tipi Farsçada cihazlar arasında epey farklılaşır; sayfanız Android, Windows ve iPhone'da üç ayrı biçim alır. Görsel kimlik sizin için önemli değilse ve hız ilk öncelikse doğru seçimdir; değilse üç ağırlıkta tek bir alt küme yazı tipi dengeli bir takastır.