Özel bir web fontunu, bir kişinin kendine özgü, markalaşmış el yazısına benzetin. Bu özenle seçilmiş el yazısı (font), bir mektuba (web siteniz) karakter, güvenilirlik ve anında tanınabilen bir kimlik katar. Markanızın ses tonunu, duruşunu ve profesyonelliğini sessizce ziyaretçiye fısıldar. Ancak, mektubu okumak isteyen bir kişinin, yazarın hangi kalemi seçeceğine, mürekkebi nasıl hazırlayacağına ve hangi eğimle yazacağına karar vermesini saniyelerce beklemesi gerektiğini hayal edin. Veya daha kötüsü, mektubu alelade bir kurşun kalemle okumaya başlayıp, cümlenin ortasında yazarın aniden dolma kaleme geçmesiyle tüm satırların ve paragrafların zıplayıp kaydığını düşünün. Bu durumda, o eşsiz el yazısının kattığı tüm estetik değer, kötü bir deneyimle yerle bir olur.
İşte web font optimizasyonu, tam olarak bu sanattır: Markanızın o "güzel el yazısını", okuyucuyu hiç bekletmeden (FOIT), metnin ortasında kalem değiştirerek kargaşaya yol açmadan (FOUT) ve en önemlisi, sayfada rahatsız edici düzen kaymaları (CLS) yaratmadan sunma sanatıdır. Bu rehber, estetik ve performans arasındaki o hassas dengeyi kurmanız için nihai oyun kitabınız olacak. Sitenizin hem güzel görünmesini hem de ışık hızında hissedilmesini sağlayacak modern teknikleri, sahadan alınmış pratik örneklerle ve derinlemesine teknik açıklamalarla ele alacağız. Solviera Teknoloji olarak biz, markalaşmanın gücüne de, performansın milisaniyelerle ölçüldüğüne de inanıyoruz. Gelin, bu iki dünyayı nasıl birleştireceğinizi keşfedelim.
Temel Sorun: Web Fontları Neden Performans Düşmanıdır?
Web fontları, bir web sayfasının görsel kimliğinin temel taşlarından biridir. Ancak bu estetik katkının bir bedeli vardır. Teknik olarak web fontları, render engelleyici (render-blocking) kaynaklardır. Bu terimin ne anlama geldiğini anlamak, optimizasyon yolculuğunun ilk ve en önemli adımıdır.
Bir tarayıcı bir web sayfasını oluştururken (render ederken), HTML'i okur ve hangi kaynaklara (CSS, JavaScript, resimler, fontlar) ihtiyacı olduğunu belirler. Metni ekranda gösterebilmek için, o metnin hangi fontla görüntüleneceğini bilmek zorundadır. Eğer CSS dosyanızda "body { font-family: 'MarkaFontu', sans-serif; }" gibi bir kural varsa, tarayıcı şu acı gerçekle yüzleşir: "Bu metni gösterebilmem için önce 'MarkaFontu.woff2' dosyasını ağ üzerinden indirmem, işlemem ve uygulamaya hazır hale getirmem gerekiyor."
Bu bekleme süreci, iki temel soruna yol açar:
- Gecikme: Font dosyası, diğer tüm kaynaklar gibi, ağ üzerinden indirilmesi gereken bir dosyadır. Dosya boyutu, ağ bağlantısının hızı ve sunucunun konumu gibi faktörlere bağlı olarak bu indirme işlemi yüzlerce milisaniye, hatta yavaş bağlantılarda saniyeler sürebilir. Bu süre boyunca, tarayıcı metni render etmeyi "bloke eder" ve bekler.
- Düzen Belirsizliği: Tarayıcı, font dosyası tamamen indirilip işlenene kadar metnin ne kadar yer kaplayacağını kesin olarak bilemez. Her fontun kendine özgü metrikleri vardır: harf genişlikleri (örneğin 'i' harfi ile 'm' harfinin kapladığı alan), harfler arası boşluklar ve satır yüksekliği gibi. Bu belirsizlik, sayfa düzeninde istikrarsızlıklara yol açar.
Bu iki temel problem, kullanıcıların doğrudan deneyimlediği ve Google's Core Web Vitals metriklerini doğrudan etkileyen iki kötü senaryoyu doğurur: FOIT ve FOUT.
Sorunları Tanıyalım: FOIT vs. FOUT ve CLS Bağlantısı
Tarayıcılar, özel bir fontun yüklenmesini beklerken ne yapacaklarına dair farklı stratejiler izlerler. Bu stratejiler, kullanıcı deneyimini doğrudan etkileyen FOIT ve FOUT olgularını yaratır.
1. FOIT (Flash of Invisible Text - Görünmez Metin Parıltısı)
Bu, en kötü kullanıcı deneyimlerinden biridir. Bu senaryoda tarayıcı, özel font dosyası indirilene kadar metni tamamen görünmez kılar. Kullanıcı, siteye girer ve başlıkların, paragrafların olması gereken yerlerde rahatsız edici boşluklar görür. İçeriği okuyamaz, neye tıklayacağını bilemez. Eğer font dosyası 3 saniyede yüklenirse, kullanıcı 3 saniye boyunca boş bir sayfaya bakar.
Hikayeleştirilmiş Senaryo: Haber Sitesi Örneği
Bir haber sitesine son dakika gelişmesini okumak için giren bir kullanıcı düşünün. Sayfa yüklenir, resimler belirir ama başlık ve haber metni ortada yoktur. Kullanıcı, metnin nerede olduğunu anlamaya çalışırken 1-2 saniye boyunca boş beyaz alanlara bakar. Sabırsızlanır ve belki de siteyi terk eder. İşte bu, FOIT'in yarattığı hayal kırıklığıdır.
Geçmişte birçok tarayıcının varsayılan davranışı buydu. Neyse ki modern tarayıcılar, bu kötü deneyimi önlemek için genellikle farklı bir yaklaşım benimser, ancak bu da bizi başka bir soruna götürür.
2. FOUT (Flash of Unstyled Text - Stilsiz Metin Parıltısı)
Bu senaryoda tarayıcı daha akıllıca davranır. Özel fontun yüklenmesini beklerken metni gizlemek yerine, geçici bir çözüm üretir: Metni, kullanıcının sisteminde yüklü olan standart bir yedek fontla (fallback font) gösterir. Bu genellikle Arial, Helvetica veya Times New Roman gibi bir sistem fontudur. Özel font dosyası indirilip hazır olduğunda ise, yedek fontu anında özel fontla değiştirir (swap).
FOUT, FOIT'e göre kesin bir iyileştirmedir. Çünkü kullanıcı, en azından içeriği hemen okumaya başlayabilir. Sayfa boş görünmez, işlevseldir. Ancak FOUT, "görünmez metin" sorununu çözerken, web performansının en büyük kabuslarından birine kapı aralar: CLS (Cumulative Layout Shift).
CLS Bağlantısı: Metin Neden Zıplar?
FOUT sırasında yaşanan o "değiş tokuş" anı, genellikle görsel bir sarsıntıya neden olur. Neden? Çünkü yedek font (örneğin Arial) ile indirilip yerine geçen özel fontunuzun (örneğin 'Poppins') metrikleri birbirinden farklıdır.
- Harf Genişlikleri: 'Poppins' fontundaki "Merhaba Dünya" metni, 'Arial' fontundaki aynı metinden daha geniş veya daha dar bir alan kaplayabilir.
- Satır Yüksekliği: İki fontun varsayılan satır yükseklikleri farklı olabilir, bu da paragrafların yüksekliğinin değişmesine neden olur.
- Ağırlık (Weight): Yedek fontun normal kalınlığı, özel fontun normal kalınlığından daha ince veya daha kalın görünebilir.
Bu metrik farklılıkları nedeniyle, font değişimi gerçekleştiği anda metin blokları aniden yeniden boyutlanır. Bir başlık genişleyebilir, bir paragraf aşağıya doğru uzayabilir. Bu, altındaki diğer tüm elementlerin (resimler, butonlar, formlar) aşağı veya yana doğru itilmesine, yani kaymasına neden olur. Kullanıcı tam bir butona tıklamak üzereyken, butonun aşağı kayması ve yanlışlıkla bir reklama tıklaması, CLS'nin en somut ve sinir bozucu örneklerindendir.
Google, CLS'yi o kadar ciddiye alıyor ki, onu üç temel Core Web Vitals metriğinden biri yapmıştır. 0.1'in altındaki bir CLS skoru "iyi" kabul edilirken, 0.25'in üzeri "kötü" olarak sınıflandırılır ve sitenizin kullanıcı deneyimini ve potansiyel olarak SEO sıralamasını olumsuz etkiler. Bu konuda Google'ın kendi web.dev platformu, CLS'nin kullanıcı güvenini nasıl zedelediğine dair kapsamlı analizler sunmaktadır.
Çözüm Oyun Kitabı: Modern Font Yükleme Stratejileri
Artık sorunun "nedenlerini" ve "nasıllarını" anladığımıza göre, çözüme odaklanabiliriz. Amacımız, FOIT'ten kaçınmak, FOUT'un neden olduğu CLS'yi ise tamamen ortadan kaldırmaktır. İşte bunun için modern cephaneliğimizdeki en etkili silahlar:
1. Strateji: Kendi Evinde Barındır (Self-Hosting)
Google Fonts gibi üçüncü parti font servisleri, başlangıç için inanılmaz derecede kolaydır. Bir <link> etiketini kopyalayıp yapıştırırsınız ve biter. Ancak bu kolaylığın bir performans maliyeti vardır. Tarayıcının, fonts.googleapis.com adresinden CSS'i, ardından fonts.gstatic.com adresinden font dosyasını almak için birden fazla harici bağlantı kurması gerekir. Her bir bağlantı, kendi DNS sorgusu, TCP el sıkışması ve TLS anlaşması gibi ağ gecikmelerini beraberinde getirir. Bu, yüzlerce milisaniyelik bir ek gecikme demektir.
En İyi Pratik: Maksimum kontrol ve performans için font dosyalarını kendi sunucunuzda barındırmaktır (self-hosting). Bu sayede:
- Ağ Gecikmelerini Ortadan Kaldırırsınız: Tarayıcı, zaten sitenizin dosyaları için kurmuş olduğu bağlantıyı kullanarak fontları da indirir. Ekstra DNS sorguları ve bağlantı kurulumları gerekmez.
- Tam Kontrol Sağlarsınız: Fontların nasıl önbellekleneceği, hangi formatların sunulacağı ve preload gibi ileri düzey optimizasyonları uygulama konusunda tüm kontrol size geçer.
Nasıl Yapılır?
Google Fonts'tan bir font indirmek isterseniz, artık bunu yapmanıza izin veren birçok yardımcı araç veya doğrudan fontun kendi sayfasından indirme seçenekleri mevcuttur. İndirdiğiniz font dosyalarını projenizdeki bir /fonts klasörüne yerleştirin ve CSS'inizde @font-face kuralı ile tanımlayın:
@font-face {
font-family: 'MarkaFontu';
src: url('/fonts/marka-fontu.woff2') format('woff2');
font-weight: 400;
font-style: normal;
font-display: swap; /* Bu özelliğe birazdan detaylı gireceğiz */
}
2. Strateji: Doğru Format (WOFF2)
Geçmişte TTF, OTF, EOT, SVG ve WOFF gibi birçok font formatı vardı. Artık bu karmaşayı unutabilirsiniz. 2025 itibarıyla tek bir kazanan vardır ve bu tartışmasız WOFF2 (Web Open Font Format 2)'dir.
WOFF2, Brotli sıkıştırma algoritmasını kullanır. Bu, eski WOFF standardına göre bile %30'a varan daha iyi sıkıştırma sağlar. Daha küçük dosya boyutu, daha hızlı indirme süresi demektir. Ayrıca, günümüzde tüm modern tarayıcılar (Chrome, Firefox, Safari, Edge) tarafından tamamen desteklenmektedir.
Kural: @font-face tanımınızda sadece WOFF2 formatına yer vermeniz yeterlidir. Artık eski tarayıcılar için onlarca farklı formatta fallback sağlamak, kullanıcıların büyük çoğunluğu için gereksiz bir karmaşadır. Sadece WOFF2'ye odaklanmak, kodunuzu temiz tutar ve en iyi performansı sağlar.
3. Strateji: font-display ile Yükleme Davranışını Kontrol Etme
Bu basit CSS özelliği, font optimizasyonunun "ana kumandasıdır". Tarayıcıya, bir fontun indirilmesi sırasında ne yapması gerektiğini söyler ve FOIT/FOUT davranışını doğrudan kontrol etmenizi sağlar. @font-face bloğu içinde kullanılır ve birkaç temel değeri vardır:
- block: Tarayıcıya, font yüklenene kadar metni görünmez yapmasını söyler (kısa bir süre için, genellikle ~3 saniye). Bu, FOIT'e neden olur. Eğer font bu süre içinde yüklenmezse, yedek fonta geçer. Genellikle kaçınılması gereken bir seçenektir.
- swap: Tarayıcıya, metni hemen bir yedek fontla göstermesini ve özel font yüklendiğinde ikisini değiştirmesini söyler. Bu, FOUT'a neden olur. FOIT'i engellediği için popüler bir seçimdir, ancak CLS riskini yönetmeyi gerektirir (bir sonraki adımda bunu çözeceğiz).
- fallback: swap ile block arasında bir uzlaşmadır. Tarayıcıya, çok kısa bir süre (~100ms) metni görünmez tutmasını söyler. Eğer font bu çok kısa sürede yüklenmezse, sayfanın geri kalanı için kalıcı olarak yedek fontu kullanır. Font daha sonra yüklense bile değişim olmaz. Amacı, hızlı bağlantılarda anlık bir FOUT'u engellemektir.
- optional: En performans odaklı seçenektir. fallback gibi çok kısa bir gizleme süresi tanır. Eğer font o anda yüklenmezse, yedek fontu kullanır. Ancak optional'ın farkı, font indirme işlemini en düşük öncelikli olarak yapmasıdır. Genellikle sadece font kullanıcının tarayıcı önbelleğinde (cache) zaten mevcutsa görüntülenir. Marka kimliği için kritik olmayan, "olsa iyi olur" tarzı fontlar için idealdir.
Genel Strateji: Çoğu durum için en dengeli başlangıç noktası font-display: swap
kullanmaktır. Bu, içeriğin anında görünür olmasını sağlar. Bir sonraki adımlarda, bu stratejinin yarattığı CLS sorununu nasıl çözeceğimizi göreceğiz.
4. Strateji: Kritik Fontları Ön Yükleme (Preload)
Tarayıcı, bir fonta ihtiyacı olduğunu ancak CSS dosyasını indirip okuduktan sonra anlar. Bu, keşif sürecinde bir gecikmeye neden olur. Bu gecikmeyi ortadan kaldırmak ve süreci hızlandırmak için tarayıcıya bir ipucu verebiliriz. HTML dosyanızın <head> bölümüne ekleyeceğiniz basit bir <link> etiketiyle, tarayıcıya kritik font dosyalarını en yüksek öncelikle ve en erken zamanda indirmeye başlamasını söyleyebilirsiniz.
<head>
<link rel="preload" href="/fonts/MarkaFontu-Regular.woff2" as="font" type="font/woff2" crossorigin>
<link rel="preload" href="/fonts/MarkaFontu-Bold.woff2" as="font" type="font/woff2" crossorigin>
</head>
Bu kodun analizi:
rel="preload"
: Tarayıcıya bu kaynağı öncelikli olarak yüklemesini söyler.as="font"
: Kaynağın bir font olduğunu belirtir, bu da doğru önceliklendirmeyi sağlar.type="font/woff2"
: Kaynağın medya tipini belirtir.crossorigin
: Bu çok önemlidir! Fontlar için güvenlik politikaları gereği, fontları ön yüklerken, kendi sunucunuzda barındırsanız bile bu özelliğin eklenmesi zorunludur. Aksi takdirde tarayıcı, ön yüklenen fontu kullanmak yerine iki kez indirir, bu da performansı iyileştirmek yerine kötüleştirir. Bu detay, Mozilla Developer Network (MDN) gibi otoriter kaynaklarda da vurgulanan kritik bir noktadır.
5. Strateji: Font Alt Kümeleme (Subsetting - İleri Düzey Taktik)
Bu, optimizasyon oyununu bir üst seviyeye taşıyan uzmanlık göstergesi bir taktiktir. Bir font dosyası, sadece A'dan Z'ye harfleri değil, yüzlerce, hatta binlerce karakteri içerir: Kiril, Yunan, Vietnam alfabeleri, matematik sembolleri, dingbat'lar ve daha fazlası. Eğer siteniz sadece Türkçe ve İngilizce içerik sunuyorsa, bu karakterlerin %99'una asla ihtiyacınız olmaz, ama yine de kullanıcınıza bu fazlalıkları indirterek bant genişliğini boşa harcarsınız.
Font alt kümeleme (subsetting), bir font dosyasından, sitenizde kullanmadığınız tüm karakterleri (glifleri) temizleyerek, sadece ihtiyacınız olanları içeren çok daha küçük bir font dosyası oluşturma işlemidir. Bu işlem, bir font dosyasının boyutunu %50 ila %90 oranında azaltabilir. Bu, devasa bir kazançtır.
Örneğin, sadece "Solviera Teknoloji" metnini görüntülemek için bir fonta ihtiyacınız varsa, sadece S,o,l,v,i,e,r,a,T,e,k,n,j harflerini içeren bir alt küme oluşturabilirsiniz. Daha genel bir Türkçe site için ise, Latin alfabesi ve Türkçe'ye özgü (ş, ı, ğ, ü, ö, ç) karakterleri içeren bir alt küme yeterli olacaktır.
Kullanılabilecek Araçlar:
- Font Squirrel Webfont Generator: Bu popüler online araç, "Expert" modunda alt kümeleme seçenekleri sunar. Karakter aralıkları veya sadece belirli karakterleri seçebilirsiniz.
- Glyphhanger: Bu, komut satırı üzerinden çalışan ve sitenizi tarayarak hangi karakterlerin kullanıldığını otomatik olarak tespit edip buna göre alt kümeler oluşturan çok güçlü bir araçtır.
6. Strateji: font-display: swap Kullanırken CLS'yi Engelleme
Bu, makalemizin en ileri düzey ve en etkili bölümüdür. font-display: swap
kullanarak FOIT'i çözdük, ancak FOUT sırasında yaşanan o rahatsız edici metin zıplamasını (CLS) nasıl engelleyeceğiz?
Cevap, modern CSS'in bize sunduğu yeni @font-face tanımlayıcılarında (descriptors) yatıyor. Bu özellikler, yedek olarak kullandığımız sistem fontunun (örneğin Arial), asıl web fontumuz (örneğin Poppins) indirilene kadar onunla birebir aynı alanı kaplamasını sağlamamıza olanak tanır. Yani, "kalem değişimi" anında hiçbir metrik farkı olmaz ve dolayısıyla sıfır düzen kayması yaşanır.
Bunun için kullanacağımız araçlar: size-adjust
, ascent-override
, descent-override
, line-gap-override
.
Adım Adım Uygulama:
- Metrikleri Hesaplayın: Öncelikle yedek font (Arial) ile web fontunuzun (Poppins) metriklerini karşılaştıran bir araca ihtiyacınız var. Malte Ubl tarafından geliştirilen "Font Style Matcher" gibi online araçlar bu iş için mükemmeldir. Bu araç, Poppins'e benzemesi için Arial'e hangi override değerlerinin uygulanması gerektiğini size hesaplayıp verir.
- CSS'i Uygulayın: Araçtan aldığınız değerlerle yeni bir yerel font tanımı oluşturun.
Kod Örneği:
/* 1. Asıl web fontumuzun normal tanımı */
@font-face {
font-family: 'Poppins';
src: url('/fonts/Poppins-Regular.woff2') format('woff2');
font-weight: 400;
font-display: swap; /* Değiş tokuş yapılacak */
}
/* 2. Yedek fontumuz olan Arial'ı, Poppins gibi davranacak şekilde ayarlıyoruz */
@font-face {
font-family: 'Poppins Fallback'; /* Ona yeni bir isim veriyoruz */
src: local('Arial'); /* Kullanıcının yerel Arial fontunu kullan */
size-adjust: 107.5%; /* Arial'ın genel boyutunu %107.5 oranında büyüt */
ascent-override: 90%; /* Üst çıkıntıyı ayarla */
descent-override: 25%; /* Alt çıkıntıyı ayarla */
line-gap-override: 0%; /* Satır boşluğunu kaldır */
}
/* 3. HTML'de fontu uygularken, ayarlanmış yedeği ilk sıraya koyuyoruz */
body {
font-family: 'Poppins', 'Poppins Fallback', sans-serif;
}
Bu kodla, tarayıcı 'Poppins' yüklenene kadar Poppins Fallback'i (yani metrikleri ayarlanmış Arial'i) kullanır. Bu ayarlanmış font, 'Poppins' ile tıpatıp aynı alanı kapladığı için, 'Poppins' yüklendiğinde gerçekleşen değişim anında hiçbir piksel kayması olmaz. CLS sorunu tamamen çözülmüş olur. Bu teknik, performansı estetikle birleştirmede zirve noktasıdır.
Solviera'dan Bir Font Optimizasyonu Vaka Analizi
Teorik bilgiyi gerçek dünya sonuçlarıyla desteklemek, Solviera Teknoloji'nin temel prensibidir. Yakın zamanda kendi blogumuzda yaptığımız bir optimizasyon çalışması, bu stratejilerin gücünü net bir şekilde ortaya koymaktadır.
Platform: Solviera Teknoloji Blogu
Problem: Blog yazılarımızda marka kimliğimizi yansıtan özel bir font kullanıyorduk. font-display: swap
sayesinde içeriğimiz anında görünürdü, ancak yedek font ile özel fontumuz arasındaki metrik farkları nedeniyle, font değişimi sırasında özellikle mobil cihazlarda 0.15 gibi yüksek bir CLS skoru tespit ettik. Bu, "iyileştirme gerekli" kategorisinde bir skordu ve kullanıcılarımızdan gelen "metinlerin kaydığına" dair geri bildirimlerle de örtüşüyordu.
Uyguladığımız 2 Adımlı Çözüm:
- Agresif Font Alt Kümeleme: İlk olarak, blogumuzda kullandığımız font dosyasını analiz ettik. Sadece Türkçe ve temel Latin karakterlerine ihtiyacımız olduğunu belirledik. Orijinal font dosyasındaki tüm Kiril, Yunan ve diğer sembol gliflerini temizleyerek bir "font alt kümesi" oluşturduk. Bu basit işlem, font dosyalarımızın boyutunu ortalama %60 oranında küçülttü ve yüklenme sürelerini ciddi şekilde kısalttı.
- Hassas Metrik Ayarlama: İkinci ve en kritik adım olarak, yukarıda anlatılan
size-adjust
,ascent-override
vedescent-override
CSS tanımlayıcılarını kullandık. Yedek fontumuz olan Arial'in metriklerini, özel fontumuzla piksel piksel aynı alanı kaplayacak şekilde hassas bir biçimde ayarladık ve bunu font-family zincirimize ekledik.
Sonuçlar:
Bu iki optimizasyonun birleşik etkisi beklentilerimizin ötesindeydi. Ortalama CLS skorumuzu 0.15'ten, Google'ın "iyi" olarak tanımladığı eşiğin çok altındaki 0.01 değerine düşürdük. Metin kayması şikayetleri tamamen ortadan kalktı. Font dosyalarımız artık daha hızlı yükleniyordu ve yüklendiğinde hiçbir görsel sarsıntıya neden olmuyordu. Marka kimliğimizi korurken, kullanıcılarımıza pürüzsüz ve profesyonel bir okuma deneyimi sunmayı başardık.
Marka Kimliği ve Performans Arasındaki Mükemmel Denge
Web fontları, markalaşma için güçlü ama kontrol edilmediğinde performansı baltalayan iki ucu keskin bir kılıçtır. Bir yandan sitenize benzersiz bir karakter katarken, diğer yandan yavaşlamalara ve rahatsız edici düzen kaymalarına neden olma potansiyeli taşırlar.
Ancak bu, estetikten vazgeçmeniz gerektiği anlamına gelmez. Modern font optimizasyonu, bu kılıcın iki tarafını da keskinleştirmekle ilgilidir. self-hosting, WOFF2, font-display, preload ve subsetting gibi araçlarla fontların yüklenme sürecinin kontrolünü tamamen ele alarak, FOUT/FOIT gibi kötü kullanıcı deneyimlerini ortadan kaldırabiliriz. En önemlisi, size-adjust
gibi ileri düzey CSS teknikleriyle, marka kimliğimizin temel taşı olan tipografiyi, stabil, profesyonel ve sarsıntısız bir kullanıcı deneyiminin garantisi haline getirebiliriz.
Unutmayın, en güzel el yazısı bile, okunması zorsa ve okuyucunun gözünü yoruyorsa amacına ulaşamaz. Mükemmel bir web deneyimi, hem göze hem de hıza aynı anda hitap edendir.
Web Performansı Uzmanlığınızı Derinleştirin
Bu rehber, web performansı bulmacasının önemli bir parçasını ele alıyor. Şimdi, bir web sitesini ışık hızına çıkaran diğer tüm kritik alanlara odaklanarak bilginizi tamamlayın:
- Kritik Rendering Yolu (CRP) Optimizasyonu: Tarayıcının sayfanızı nasıl oluşturduğunu anlayın ve FCP ile LCP skorlarınızı iyileştirerek ilk açılışı hızlandırın.
- İleri Düzey Resim Optimizasyonu: Sitenizin en ağır parçaları olan resimleri WebP, AVIF gibi modern formatlar ve "lazy loading" ile optimize edin.
- Web Font Optimizasyonu: Marka kimliğinizin bir parçası olan fontların, CLS, FOUT ve FOIT gibi sorunlara yol açmasını engelleyin.
- Üçüncü Parti Script'ler ve Site Hızı: Performans katili olan dış kaynaklı kodları nasıl teşhis edeceğinizi ve yöneteceğinizi öğrenin.
- JavaScript Optimizasyonu Rehberi: INP ve TBT skorlarınızı doğrudan etkileyen verimsiz JavaScript kodlarını nasıl avlayacağınızı ve düzelteceğinizi öğrenin.
- Algılanan Performans: Sitenizi teknik olarak yavaşken bile kullanıcılarınıza nasıl "ışık hızında" hissettireceğinizin psikolojik sırlarını keşfedin.
- INP (Interaction to Next Paint) Rehberi: Sitenizin etkileşim hızını ölçen bu yeni ve kritik Core Web Vitals metriğinde nasıl ustalaşacağınızı öğrenin.
- Ana WPO Rehberi: Performans optimizasyonunun tüm yönlerini bir arada görmek ve büyük resmi anlamak için ana kılavuzumuza geri dönün.
Sıkça Sorulan Sorular
"Kötü" demek doğru olmaz, "daha az optimal" demek daha yerindedir. Google Fonts'u, URL'ye &display=swap parametresini ekleyerek ve fonts.googleapis.com ile fonts.gstatic.com adreslerine <link rel="preconnect"> ipuçları ekleyerek kesinlikle daha performanslı hale getirebilirsiniz. Ancak, kendi sunucunuzda barındırma (self-hosting), harici DNS sorgularını ve ek sunucu bağlantılarını tamamen ortadan kaldırdığı için neredeyse her zaman daha hızlı olacaktır. Self-hosting, size preload ve alt kümeleme gibi teknikler üzerinde tam kontrol sağladığı için en üst düzey performans arayanlar için altın standarttır.
Kesin bir rakam olmamakla birlikte, en iyi pratik, minimalizmi benimsemektir. Her farklı font ailesi (örneğin, başlıklar için 'Montserrat', metin için 'Lato') ve her bir ağırlık (regular, bold, light) ayrı bir font dosyasının indirilmesi anlamına gelir. Genel bir kural olarak, bir site için 1-2 font ailesi ve toplamda 3-4'ten fazla font dosyası (ağırlıklar dahil) kullanmaktan kaçınmak iyi bir hedeftir. Eğer çok sayıda ağırlığa ihtiyacınız varsa, tüm ağırlıkları tek bir dosyada barındıran "değişken fontları" (variable fonts) araştırmak, birden çok statik font dosyası yüklemekten daha performanslı olabilir.
Bu, kullanım senaryonuza bağlıdır. Eğer bir fontun sadece bir veya iki ağırlığına (örneğin, regular ve bold) ihtiyacınız varsa, iki küçük statik WOFF2 dosyası yüklemek genellikle daha performanslıdır. Ancak, bir fontun çok sayıda ağırlığını ve stilini (light, regular, medium, semibold, bold, italic vb.) kullanıyorsanız, tüm bu varyasyonları içeren tek bir değişken font dosyası yüklemek, 5-6 farklı statik font dosyası yüklemekten daha küçük bir toplam dosya boyutuna sahip olacaktır. Bu durumda değişken fontlar net bir performans kazancıdır.
Hayır, doğru yapıldığı sürece font alt kümelemenin SEO üzerinde hiçbir olumsuz etkisi yoktur. Googlebot, sayfanızdaki metni render ederken font dosyalarınızın içeriğini değil, HTML'deki metin düğümlerini okur. Tek risk, sitenizde kullandığınız bir karakteri (örneğin '€' sembolü) yanlışlıkla alt kümeden çıkarmanızdır. Bu durumda o karakter, kullanıcıya bir kutu (□) veya soru işareti olarak görünebilir. Bu nedenle alt kümeleme yaparken, sitenizde mevcut olan ve gelecekte kullanılabilecek tüm karakterleri dahil ettiğinizden emin olmanız kritik önem taşır.
2025 itibarıyla, size-adjust, ascent-override, descent-override gibi CSS @font-face tanımlayıcıları, Chrome, Edge, Firefox ve Safari gibi tüm modern ve güncel tarayıcılar tarafından desteklenmektedir. Bu, küresel kullanıcıların %90'ından fazlasını kapsar. Bu özellikler, tarayıcılar tarafından desteklenmediği nadir durumlarda basitçe göz ardı edilir. Bu, en kötü senaryoda kullanıcının küçük bir CLS yaşayacağı, ancak sitenin işlevselliğinin bozulmayacağı anlamına gelir. Bu nedenle bu tekniği kullanmak, modern web için güvenli ve oldukça etkili bir "aşamalı iyileştirme" stratejisidir.
İşletmenizi Bir Sonraki Seviyeye Taşımaya Hazır Mısınız?
Solviera'nın bütünsel teknoloji çözümleri hakkında daha fazla bilgi almak ve işletmenize özel bir analiz için proje danışmanlarımızla bugün iletişime geçin!