JavaScript Erteleme Teknikleriyle 2026'nın En Hızlı Web Sitelerini Oluşturma Kılavuzu
JavaScript dosyalarının tarayıcı tarafından işlenme sırasını değiştirmek, modern web performansının temelini oluşturur ve kullanıcı deneyimini doğrudan iyileştirir. Sayfa açılış hızlarını optimize etmek isteyen geliştiriciler için oluşturma engelleyici kaynakları ertelemek, Core Web Vitals skorlarında anında artış sağlar.
- Oluşturma Engelini Kaldırma: HTML ayrıştırma işleminin JavaScript dosyaları tarafından duraklatılmasını önleyerek sayfanın görsel bütünlüğünün daha hızlı oluşmasını sağlar.
- INP Skoruna Etkisi: 2026 yılı standartlarında Interaction to Next Paint (INP) metriğini iyileştirmek için ana iş parçacığını serbest bırakır.
- Kaynak Önceliklendirme: Kritik olmayan script dosyalarının yüklenmesini erteleyerek, kullanıcının ilk etkileşime girdiği alanların öncelikli yüklenmesine olanak tanır.
- Mobil İşlemci Verimliliği: Düşük donanımlı mobil cihazlarda JavaScript yürütme maliyetini zamana yayarak pil tüketimini ve ısınmayı azaltır.
- Bant Genişliği Tasarrufu: Kullanıcının hemen ihtiyaç duymadığı kod bloklarını erteleyerek veya talep üzerine yükleyerek veri kullanımını optimize eder.
| Özellik | Normal Script | Async Script | Defer Script | Modül Script |
|---|---|---|---|---|
| HTML Ayrıştırma | Durur | Devam Eder | Devam Eder | Devam Eder |
| Script İndirme | Ayrıştırma Durunca | Arka Planda | Arka Planda | Arka Planda |
| Script Çalıştırma | İndirme Bitince | İndirme Bitince | HTML Bitince | Ertelenmiş |
| Sıra Garantisi | Evet | Hayır | Evet | Evet |
| Kullanım Amacı | Kritik Bağımlılıklar | Analitik/Reklam | Genel JS Dosyaları | Modern Uygulamalar |
Oluşturma Engelleyici JavaScript Kaynaklarını Anlamak
Tarayıcılar bir web sayfasını oluştururken HTML kodunu satır satır okur ve bir script etiketiyle karşılaştığında okuma işlemini durdurarak dosyayı indirip çalıştırır. Bu süreç, kullanıcının boş bir ekranla karşılaşma süresini uzatır ve First Contentful Paint (FCP) değerini olumsuz etkiler.
- HTML Ayrıştırma Kesintisi: Tarayıcı, script etiketi gördüğü anda DOM ağacını oluşturmayı bırakır ve scriptin tamamlanmasını bekler.
- Ağ Gecikmeleri: Büyük boyutlu JavaScript dosyalarının indirilmesi, özellikle 4G ve daha yavaş ağlarda sayfanın kilitlenmesine neden olur.
- Ana İş Paracığı (Main Thread) Blokajı: İndirilen dosyanın derlenmesi ve yürütülmesi, tarayıcının ana işlemcisini meşgul ederek kullanıcı etkileşimlerini engeller.
- Görsel İstikrar Sorunları: Yüklenen scriptler DOM yapısını değiştirebileceğinden, sayfa düzeninde ani kaymalara (CLS) yol açabilir.
Kritik Olmayan Kaynakların Tespiti
Hangi dosyaların erteleneceğini belirlemek, optimizasyon sürecinin ilk aşamasıdır ve doğru araçların kullanımını gerektirir.
- Chrome DevTools Coverage Sekmesi: Sayfa yüklemesi sırasında hangi kod bloklarının hiç kullanılmadığını (unused bytes) kırmızı ile işaretleyerek gösterir.
- Lighthouse Performans Raporu: “Eliminate render-blocking resources” uyarısı altında, açılışı geciktiren spesifik URL’leri listeler.
- WebPageTest Şelale Grafiği: JavaScript dosyalarının yüklenme sırasını ve HTML ayrıştırma sürecini ne kadar süreyle blokladığını görselleştirir.
- Webpack Bundle Analyzer: Proje derleme aşamasında hangi kütüphanelerin paket boyutunu şişirdiğini ve ertelemeye uygun olduğunu analiz eder.
Defer ve Async Niteliklerinin Teknik Farkları
JavaScript dosyalarını asenkron yüklemek için kullanılan `defer` ve `async` nitelikleri benzer görünse de, çalışma mantıkları ve kullanım senaryoları birbirinden tamamen farklıdır. Yanlış nitelik kullanımı, sitenin fonksiyonelliğini bozabilir veya beklenen hız artışını sağlamayabilir.
- Defer (Erteleme) Mekanizması: Dosya HTML ayrıştırması sırasında arka planda indirilir ancak HTML tamamen işlenip DOM hazır olana kadar çalıştırılmaz.
- Async (Asenkron) Mekanizması: Dosya arka planda indirilir ve indirme işlemi biter bitmez, HTML ayrıştırması tamamlanmamış olsa bile hemen çalıştırılır.
- Çalışma Sırası Güvencesi: `defer` kullanılan scriptler sayfadaki sıraya göre çalıştırılırken, `async` scriptler indirme hızına göre rastgele sırayla çalışır.
- DOM Bağımlılığı: Sayfa içeriğiyle etkileşime giren scriptler için `defer` zorunludur; `async` ise DOM’dan bağımsız çalışan scriptler için uygundur.
Hangi Durumda Hangisi Kullanılmalı?
Stratejik karar verme süreci, scriptin sayfa üzerindeki görevine ve diğer scriptlerle olan bağımlılık ilişkisine dayanır.
- Analitik ve Takip Kodları: Google Analytics veya Facebook Pixel gibi sayfa içeriğinden bağımsız çalışan araçlar için `async` kullanımı idealdir.
- UI Etkileşim Scriptleri: Menü açılır pencereleri, slider’lar veya form doğrulama kodları için `defer` kullanılmalıdır.
- Kütüphane Bağımlılıkları: jQuery veya React gibi diğer scriptlerin ihtiyaç duyduğu temel kütüphaneler, sıralamanın korunması için `defer` ile yüklenmelidir.
- Reklam Scriptleri: Sayfa içeriğinin yüklenmesini beklememesi gereken üçüncü taraf reklam ağları genellikle `async` ile entegre edilir.
Manuel Kodlama ile Erteleme Stratejileri
CMS veya eklenti kullanmayan özel yazılımlarda, script erteleme işlemi doğrudan HTML koduna müdahale edilerek veya dinamik script enjeksiyonu yöntemleriyle gerçekleştirilir. Bu yöntem, geliştiriciye tam kontrol sağlar ve gereksiz kod yükünden kurtarır.
- Basit Nitelik Ekleme: “ formatı, en temiz ve standart erteleme yöntemidir.
- Footer’a Taşıma Yöntemi: Script etiketlerini “ kapanış etiketinin hemen öncesine yerleştirmek, eski tarayıcılar için manuel bir erteleme simülasyonu sağlar.
- Dinamik Script Oluşturma: JavaScript kullanarak `document.createElement(‘script’)` yöntemiyle dosyaları ihtiyaç anında çağırmak, ilk yükleme süresini minimize eder.
- Preload ile Birlikte Kullanım: “ etiketiyle scripti erkenden indirmeye başlayıp, `defer` ile yürütmeyi ertelemek hibrit bir performans artışı sunar.
Koşullu Yükleme Teknikleri
Tüm JavaScript dosyalarının her sayfada yüklenmesi gerekmez; sadece kullanıcının ihtiyaç duyduğu bileşenlerin yüklenmesi 2026 performans standartlarının gereğidir.
- Intersection Observer API: Kullanıcı sayfanın belirli bir bölümüne (örneğin yorumlar veya harita) kaydırdığında ilgili scriptin yüklenmesini tetikler.
- Cihaz Türüne Göre Yükleme: `navigator.userAgent` kontrolü ile sadece masaüstü veya sadece mobil cihazlarda çalışması gereken scriptleri filtreler.
- Etkileşim Bekleme: Chat botları veya destek widget’ları gibi ağır uygulamaları, kullanıcı fareyi hareket ettirene veya tıklayana kadar yüklemeyi bekletir.
- Rota Bazlı Kod Bölme (Code Splitting): Single Page Application (SPA) yapılarında, sadece aktif olan sayfanın JavaScript kodunu sunar.
En İyi 5 JavaScript Optimizasyon Aracı (WordPress ve Genel)
Web performansını otomatize etmek ve manuel kod müdahalesi olmadan scriptleri ertelemek için kullanılan gelişmiş araçlar, karmaşık bağımlılıkları yöneterek site hızını artırır. Aşağıdaki liste, 2026 yılında en yüksek verimliliği sağlayan çözümleri içerir.
- WP Rocket: “Load JavaScript Deferred” özelliği ile tüm scriptleri otomatik olarak erteler ve “Delay JavaScript Execution” ile kullanıcı etkileşimi olana kadar scriptleri bekletir.
- Perfmatters: Gereksiz scriptleri sayfa bazlı devre dışı bırakma (Script Manager) ve hafif yapısıyla veritabanını yormadan erteleme işlemi yapar.
- Autoptimize: JavaScript dosyalarını birleştirip küçülterek (minify) ve head bölümündeki scriptleri footer’a zorlayarak render engelini kaldırır.
- Asset CleanUp: Sayfa başına hangi CSS ve JS dosyalarının yükleneceğini seçmenize olanak tanıyarak “Bloat” (şişkinlik) sorununu manuel olarak çözer.
- Flying Scripts: Kritik olmayan JavaScript dosyalarını, sayfa tamamen yüklendikten ve tarayıcı boşa çıktıktan (idle) sonra yükleyerek INP skorunu korur.
🟢Resmi Kaynak: WordPress Eklenti Dizini
Gelişmiş Teknik: Kod Bölme (Code Splitting) ve Tree Shaking
Modern JavaScript framework’leri (React, Vue, Angular) ile geliştirilen sitelerde, tek bir büyük bundle dosyası yerine kodun parçalara ayrılması, yükleme sürelerini dramatik şekilde düşürür. Bu teknik, tarayıcının sadece o an gerekli olan kodu işlemesini sağlar.
- Webpack ve Vite Konfigürasyonu: Derleme araçlarında `splitChunks` ayarlarını yaparak ortak kullanılan modülleri ve sayfaya özel kodları ayırır.
- Dinamik İçe Aktarma (Dynamic Imports): `import()` fonksiyonu kullanılarak, modüllerin sayfa açılışında değil, bir fonksiyon tetiklendiğinde yüklenmesi sağlanır.
- Tree Shaking Uygulaması: Kullanılmayan fonksiyonların ve kütüphane parçalarının üretim (production) derlemesinden tamamen çıkarılmasını sağlar.
- Vendor ve App Ayrımı: Nadiren değişen kütüphane kodları (vendor) ile sık değişen uygulama kodlarını (app) ayırarak tarayıcı önbellekleme verimliliğini artırır.
Framework Bazlı Optimizasyonlar
Next.js veya Nuxt gibi modern altyapılar, JavaScript erteleme işlemlerini sunucu tarafında (SSR) optimize ederek istemciye giden yükü azaltır.
- Next.js Script Bileşeni: `next/script` modülü ile `strategy=”lazyOnload”` veya `strategy=”afterInteractive”` gibi parametrelerle yükleme önceliği belirlenir.
- React Suspense ve Lazy: Bileşenlerin asenkron olarak yüklenmesini sağlayarak, ana içeriğin kullanıcıya daha hızlı sunulmasına olanak tanır.
- Hydration Optimizasyonu: Sayfanın etkileşimli hale gelmesi sürecinde (hydration), öncelikli olmayan bileşenlerin hidrasyonunu erteleyerek TBT (Total Blocking Time) düşürülür.
- Server Components: JavaScript’in sunucuda çalıştırılıp istemciye sadece HTML gönderilmesi, istemci tarafındaki JS yükünü sıfıra indirebilir.
JavaScript Yürütme Süresini (Execution Time) Azaltma
Dosyaları ertelemek indirme sürecini optimize eder, ancak dosya indirildikten sonraki çalışma süresi de performans için kritiktir. Ağır hesaplamalar ve verimsiz döngüler, tarayıcıyı kilitleyerek kaydırma (scroll) performansını düşürür.
- Web Workers Kullanımı: Ağır matematiksel işlemleri veya veri işlemeyi ana iş parçacığından alıp arka planda çalışan işçilere (workers) devreder.
- Debounce ve Throttle Teknikleri: Scroll veya resize gibi sık tetiklenen olaylarda fonksiyonların çalışma sıklığını sınırlayarak işlemci yükünü hafifletir.
- Sanal DOM ve Diffing: DOM manipülasyonlarını minimize etmek için sanal bir kopya üzerinde çalışıp sadece değişen kısımları gerçek DOM’a yansıtır.
- Bellek Sızıntısı (Memory Leak) Kontrolü: Kapatılan bileşenlerin veya kullanılmayan değişkenlerin bellekten temizlendiğinden emin olarak uzun süreli oturumlarda yavaşlamayı önler.
Üçüncü Taraf Scriptlerin Yönetimi
Reklamlar, sohbet widget’ları ve sosyal medya butonları genellikle performansın en büyük düşmanıdır ve kendi sunucularından yüklendikleri için kontrol edilmeleri zordur.
- DNS Prefetch ve Preconnect: Üçüncü taraf sunuculara erken bağlantı kurarak DNS çözümleme ve SSL el sıkışma sürelerini kısaltır.
- Self-Hosting (Kendi Sunucusunda Barındırma): Google Fonts veya Analytics gibi dosyaları kendi sunucunuzdan sunarak tarayıcı önbellekleme kontrolünü ele alır.
- Facade (Cephe) Deseni: YouTube videosu veya harita yerine önce sadece bir resim gösterip, kullanıcı tıkladığında gerçek ağır scripti yükler.
- Tag Manager Kontrolü: Google Tag Manager içinde scriptlerin tetiklenme önceliklerini ayarlayarak sayfa açılışını boğmalarını engeller.
Performans Testi ve Doğrulama Metrikleri
Yapılan optimizasyonların başarısını ölçmek için 2026’nın güncel web metriklerini analiz etmek ve sürekli izlemek gerekir. Sadece “hızlı hissetmek” yeterli değildir; sayısal verilerle iyileşme kanıtlanmalıdır.
- Interaction to Next Paint (INP): Kullanıcının bir butona tıkladıktan sonra görsel tepkiyi ne kadar sürede aldığını ölçer; JS erteleme doğrudan bu metriği iyileştirir.
- Total Blocking Time (TBT): FCP ile TTI arasındaki sürede ana iş parçacığının ne kadar süreyle bloklandığını gösterir.
- Largest Contentful Paint (LCP): Ana içeriğin görünür olma süresidir; JS’in ertelenmesi LCP kaynağının (örneğin ana görsel) daha hızlı yüklenmesine alan sağlar.
- Real User Monitoring (RUM): Laboratuvar verileri yerine gerçek kullanıcıların deneyimlediği hız verilerini toplayarak bölgesel ve cihaz bazlı darboğazları tespit eder.
🟢Resmi Kaynak: Verimsiz JavaScript Yüklemelerini Erteleme
💡 Analiz: 2026 yılı verilerine göre, mobil web trafiğinde JavaScript bundle boyutları ortalama 2 MB seviyesine ulaşmıştır; bu durum, JS dosyalarını ertelemeyen sitelerin orta segment mobil cihazlarda %40'a varan oranda daha yüksek hemen çıkma oranı (bounce rate) yaşamasına neden olmaktadır.
Sıkça Sorulan Sorular (SSS)
1. Defer ve Async arasındaki en temel fark nedir?
Defer, scriptleri HTML ayrıştırması bitene kadar bekletip sırayla çalıştırırken; Async, dosya iner inmez HTML’i durdurup hemen çalıştırır.
2. Tüm JavaScript dosyalarını footer’a koymak defer ile aynı mıdır?
Teknik olarak benzer bir sonuç verir ancak `defer` niteliği, scriptin HTML ayrıştırılırken paralel olarak indirilmesini sağladığı için footer yönteminden daha hızlıdır.
3. jQuery dosyasını ertelemek sitemi bozar mı?
Eğer sitenizdeki diğer inline kodlar jQuery’ye bağımlıysa ve jQuery ertelenmişse, “jQuery is not defined” hatası alırsınız; bu yüzden bağımlılıkları yönetmek gerekir.
4. CSS dosyaları da ertelenmeli midir?
Kritik olmayan CSS dosyaları ertelenebilir ancak ekranın üst kısmını (above the fold) boyayan kritik CSS ertelenirse sayfa ilk açılışta bozuk görünür (FOUC).
5. JavaScript erteleme SEO’yu etkiler mi?
Evet, olumlu yönde etkiler; Google botları sayfayı daha hızlı tarar ve Core Web Vitals skorlarınızın artması sıralama faktörü olarak avantaj sağlar.
Sonuç
JavaScript dosyalarını ertelemek, 2026 web standartlarında sadece bir tercih değil, yüksek performanslı ve kullanıcı dostu siteler için bir zorunluluktur. Doğru strateji ve araçlarla uygulanan erteleme teknikleri, hem arama motoru sıralamalarını yükseltir hem de dönüşüm oranlarını maksimize eder.
💡 Özetle
Bu rehberde, web performansını artırmak için kritik öneme sahip JavaScript erteleme (defer) ve asenkron (async) yükleme teknikleri detaylandırılmıştır. Oluşturma engelleyici kaynakların tespiti, manuel kodlama yöntemleri, en iyi WordPress eklentileri ve kod bölme (code splitting) gibi ileri düzey stratejilerle INP ve LCP skorlarının nasıl iyileştirileceği 2026 perspektifiyle anlatılmıştır.
AI-Powered Analysis by MeoMan Bot


