{"id":32868,"date":"2025-10-26T21:01:41","date_gmt":"2025-10-26T18:01:41","guid":{"rendered":"https:\/\/fatihsoysal.com\/blog\/astro-sitelerinde-istek-sayisini-azaltma-agir-web-siteleri-icin-bir-kilavuz\/"},"modified":"2025-10-26T21:01:41","modified_gmt":"2025-10-26T18:01:41","slug":"astro-sitelerinde-istek-sayisini-azaltma-agir-web-siteleri-icin-bir-kilavuz","status":"publish","type":"post","link":"https:\/\/fatihsoysal.com\/blog\/astro-sitelerinde-istek-sayisini-azaltma-agir-web-siteleri-icin-bir-kilavuz\/","title":{"rendered":"Astro Sitelerinde \u0130stek Say\u0131s\u0131n\u0131 Azaltma: A\u011f\u0131r Web Siteleri \u0130\u00e7in Bir K\u0131lavuz"},"content":{"rendered":"<p><body><\/p>\n<p>A\u011f\u0131r Astro sitelerinizdeki istek say\u0131s\u0131n\u0131 nas\u0131l azaltaca\u011f\u0131n\u0131z\u0131 \u00f6\u011frenin. Bu kapsaml\u0131 k\u0131lavuz, web sitenizin performans\u0131n\u0131 art\u0131rmak, y\u00fckleme s\u00fcrelerini k\u0131saltmak ve kullan\u0131c\u0131 deneyimini \u00f6nemli \u00f6l\u00e7\u00fcde iyile\u015ftirmek i\u00e7in pratik stratejiler ve ileri d\u00fczey teknikler sunar.<\/p>\n<p>G\u00fcn\u00fcm\u00fcz dijital d\u00fcnyas\u0131nda, h\u0131zl\u0131 y\u00fcklenen web siteleri bir l\u00fcks de\u011fil, bir zorunluluk haline geldi. Kullan\u0131c\u0131lar, an\u0131nda bilgiye eri\u015fim beklerken, arama motorlar\u0131 da h\u0131zl\u0131 siteleri \u00f6d\u00fcllendiriyor. \u0130\u015fte tam da bu noktada, Astro gibi statik site jenerat\u00f6rleri, performansa odaklanm\u0131\u015f mimarileriyle \u00f6ne \u00e7\u0131kar. Ancak, her ne kadar Astro varsay\u0131lan olarak h\u0131zl\u0131 olsa da, a\u011f\u0131r i\u00e7erik bar\u0131nd\u0131ran veya yanl\u0131\u015f optimize edilmi\u015f b\u00fcy\u00fck web sitelerinde, &#8220;istek say\u0131s\u0131&#8221; kavram\u0131 ciddi bir performans darbo\u011faz\u0131 olu\u015fturabilir. Peki, bu istek say\u0131lar\u0131 tam olarak nedir ve neden bir sorun te\u015fkil eder?<\/p>\n<p>Web sitenizdeki her bir \u00f6\u011fe\u2014bir resim, bir stil dosyas\u0131 (CSS), bir JavaScript beti\u011fi, bir font dosyas\u0131 veya hatta bir k\u00fc\u00e7\u00fck ikon\u2014taray\u0131c\u0131n\u0131z taraf\u0131ndan sunucudan ayr\u0131 bir &#8220;istek&#8221; olarak talep edilir. Taray\u0131c\u0131, bir sayfay\u0131 y\u00fcklerken bu isteklerin her birini yapar, sunucu yan\u0131t verir ve taray\u0131c\u0131 bu yan\u0131tlar\u0131 i\u015fleyerek sayfay\u0131 ekranda g\u00f6r\u00fcnt\u00fcler. Bir sayfan\u0131n tamamlanabilmesi i\u00e7in yap\u0131lan toplam istek say\u0131s\u0131 ne kadar fazlaysa, taray\u0131c\u0131n\u0131n o kadar \u00e7ok &#8220;i\u015f&#8221; yapmas\u0131 gerekir. Bu durum, \u00f6zellikle mobil cihazlarda veya yava\u015f internet ba\u011flant\u0131lar\u0131nda kullan\u0131c\u0131 deneyimini do\u011frudan olumsuz etkileyen \u00f6nemli bir gecikmeye yol a\u00e7ar. Y\u00fcksek istek say\u0131lar\u0131, sayfa y\u00fckleme s\u00fcrelerini uzat\u0131r, bu da kullan\u0131c\u0131lar\u0131n sab\u0131rs\u0131zlanmas\u0131na ve sitenizi terk etmesine neden olabilir. Yap\u0131lan ara\u015ft\u0131rmalar, y\u00fckleme s\u00fcresindeki her saniyelik art\u0131\u015f\u0131n d\u00f6n\u00fc\u015f\u00fcm oranlar\u0131nda d\u00fc\u015f\u00fc\u015fe yol a\u00e7t\u0131\u011f\u0131n\u0131 g\u00f6stermektedir. Ayr\u0131ca, arama motorlar\u0131, \u00f6zellikle Google, site h\u0131z\u0131n\u0131 bir s\u0131ralama fakt\u00f6r\u00fc olarak kullan\u0131r. Bu da demektir ki, yava\u015f y\u00fcklenen bir Astro sitesi, arama motoru sonu\u00e7lar\u0131nda daha d\u00fc\u015f\u00fck s\u0131ralamalarda yer alabilir, bu da organik trafi\u011finizi olumsuz etkiler. Y\u00fcksek istek say\u0131s\u0131 ayr\u0131ca, \u00f6zellikle bant geni\u015fli\u011finin k\u0131s\u0131tl\u0131 oldu\u011fu durumlar i\u00e7in, sunucu maliyetlerini de art\u0131rabilir. K\u0131sacas\u0131, daha fazla istek, daha fazla veri transferi ve dolay\u0131s\u0131yla daha fazla maliyet demektir.<\/p>\n<p>Astro&#8217;nun statik site jenerat\u00f6r\u00fc olarak temel amac\u0131, \u00f6nceden olu\u015fturulmu\u015f (pre-rendered) HTML sayfalar\u0131 sunarak h\u0131zl\u0131 ve g\u00fcvenli web siteleri olu\u015fturmakt\u0131r. Bu sayede sunucu taraf\u0131nda \u00e7al\u0131\u015fma zaman\u0131 (runtime) y\u00fck\u00fc minimize edilir. Ancak, bu yap\u0131, sitenizin i\u00e7erik a\u011f\u0131rl\u0131\u011f\u0131n\u0131 sihirli bir \u015fekilde ortadan kald\u0131rmaz. \u00d6rne\u011fin, y\u00fcksek \u00e7\u00f6z\u00fcn\u00fcrl\u00fckl\u00fc g\u00f6rseller, birden fazla harici font, b\u00fcy\u00fck CSS ve JavaScript dosyalar\u0131 veya harici API&#8217;lerden gelen veriler, Astro sitenizde dahi istek say\u0131s\u0131n\u0131 ve dolay\u0131s\u0131yla sayfa boyutunu art\u0131rabilir. Bir kullan\u0131c\u0131n\u0131n taray\u0131c\u0131s\u0131na ula\u015fan her pikselin arkas\u0131nda, potansiyel olarak optimize edilebilecek bir kaynak, bir istek vard\u0131r. Bu kaynaklar\u0131n her biri, sitenizin genel performans\u0131 \u00fczerinde k\u00fcm\u00fclatif bir etkiye sahiptir. Bu nedenle, Astro&#8217;nun temel avantajlar\u0131ndan tam olarak yararlanmak ve ger\u00e7ekten y\u0131ld\u0131r\u0131m h\u0131z\u0131nda bir web sitesi sunmak i\u00e7in istek say\u0131s\u0131n\u0131 bilin\u00e7li bir \u015fekilde y\u00f6netmek ve azaltmak kritik \u00f6neme sahiptir. \u015eimdi, bu sorunu \u00e7\u00f6zmek i\u00e7in hangi ad\u0131mlar\u0131 atabilece\u011fimize odaklanal\u0131m.<\/p>\n<h2>Astro Sitelerinde \u0130stek Say\u0131s\u0131n\u0131 Azaltmaya Nereden Ba\u015flamal\u0131y\u0131z? Temel Stratejiler<\/h2>\n<p>Astro sitelerinizdeki istek say\u0131s\u0131n\u0131 azaltma yolculu\u011funa \u00e7\u0131karken, ilk olarak en b\u00fcy\u00fck etkiyi yaratacak alanlara odaklanmak ak\u0131ll\u0131ca olacakt\u0131r. Genellikle, g\u00f6rseller, CSS, JavaScript ve fontlar, bir web sayfas\u0131ndaki istek say\u0131s\u0131n\u0131n ve veri transferinin \u00f6nemli bir b\u00f6l\u00fcm\u00fcn\u00fc olu\u015fturur. Bu bile\u015fenleri optimize ederek, dikkate de\u011fer performans iyile\u015ftirmeleri sa\u011flayabilirsiniz. \u0130\u015fte Astro sitelerinde istek say\u0131s\u0131n\u0131 azaltmak i\u00e7in uygulayabilece\u011finiz temel stratejiler:<\/p>\n<h3>G\u00f6r\u00fcnt\u00fc Optimizasyonu ile Performans\u0131 Nas\u0131l Art\u0131rabiliriz?<\/h3>\n<p>G\u00f6rseller, genellikle bir web sitesinin en a\u011f\u0131r \u00f6\u011feleridir ve bu nedenle istek say\u0131s\u0131n\u0131 azaltma \u00e7abalar\u0131n\u0131zda en \u00f6nemli hedeflerden biridir. Do\u011fru optimizasyon, hem y\u00fckleme s\u00fcrelerini k\u0131salt\u0131r hem de bant geni\u015fli\u011fi kullan\u0131m\u0131n\u0131 azalt\u0131r.<\/p>\n<ul>\n<li><strong>Do\u011fru Format Se\u00e7imi:<\/strong> Modern formatlar olan WebP ve AVIF, eski formatlara (JPEG, PNG) g\u00f6re \u00e7ok daha iyi s\u0131k\u0131\u015ft\u0131rma oranlar\u0131 sunar. Astro, bu t\u00fcr formatlar\u0131 <a href=\"https:\/\/docs.astro.build\/tr\/guides\/images\/\">Astro Image bile\u015feni<\/a> arac\u0131l\u0131\u011f\u0131yla kolayca kullanman\u0131za olanak tan\u0131r.\n<pre><code>\n<!-- Astro Image bile\u015feni ile modern formatlar\u0131 kullanma -->\n<!-- <code>format<\/code> \u00f6zelli\u011fi ile WebP veya AVIF belirtebilirsiniz -->\n<!-- Ayr\u0131ca, <code><Image src={image} ... \/><\/code> \u015feklinde de kullanabilirsiniz -->\n<img fetchpriority=\"high\" decoding=\"async\" src=\"\/assets\/hero-image.webp\" alt=\"A\u00e7\u0131klay\u0131c\u0131 Metin\" width=\"800\" height=\"600\" \/>\n        <\/pre>\n<p><\/code><br \/>\n        Bu yakla\u015f\u0131m, taray\u0131c\u0131n\u0131n en uygun format\u0131 se\u00e7mesine olanak tan\u0131r.\n    <\/li>\n<li><strong>Responsive G\u00f6rseller (<code>srcset<\/code>, <code>sizes<\/code>):<\/strong> Her cihaz i\u00e7in tek bir b\u00fcy\u00fck g\u00f6rsel sunmak yerine, <code>srcset<\/code> ve <code>sizes<\/code> niteliklerini kullanarak farkl\u0131 ekran boyutlar\u0131na uygun birden fazla g\u00f6rsel kayna\u011f\u0131 sa\u011flay\u0131n. Bu, taray\u0131c\u0131n\u0131n yaln\u0131zca ihtiya\u00e7 duydu\u011fu boyutta g\u00f6rseli indirmesini sa\u011flar ve gereksiz veri transferini \u00f6nler. Astro Image bile\u015feni bunu sizin i\u00e7in otomatik olarak halleder.\n<pre><code>\n<!-- Responsive g\u00f6rsel \u00f6rne\u011fi -->\n<img decoding=\"async\"\n  src=\"\/assets\/default-image.jpg\"\n  srcset=\"\/assets\/image-small.jpg 480w, \/assets\/image-medium.jpg 800w, \/assets\/image-large.jpg 1200w\"\n  sizes=\"(max-width: 600px) 480px, (max-width: 1000px) 800px, 1200px\"\n  alt=\"Responsive G\u00f6rsel\"\n\/>\n        <\/pre>\n<p><\/code>\n    <\/li>\n<li><strong>Lazy Loading (Tembel Y\u00fckleme):<\/strong> G\u00f6rsellerin yaln\u0131zca g\u00f6r\u00fcn\u00fcm alan\u0131na (viewport) girdiklerinde y\u00fcklenmesini sa\u011flamak i\u00e7in <code>loading=\"lazy\"<\/code> niteli\u011fini kullan\u0131n. Bu, ba\u015flang\u0131\u00e7taki sayfa y\u00fckleme s\u00fcresini \u00f6nemli \u00f6l\u00e7\u00fcde azalt\u0131r, \u00e7\u00fcnk\u00fc taray\u0131c\u0131 hemen g\u00f6r\u00fcn\u00fcr olmayan g\u00f6rseller i\u00e7in istek g\u00f6ndermez.\n<pre><code>\n<img decoding=\"async\" src=\"\/assets\/yeni-makale-resmi.webp\" alt=\"Yeni Makale\" loading=\"lazy\" \/>\n        <\/pre>\n<p><\/code>\n    <\/li>\n<li><strong>CDN Kullan\u0131m\u0131:<\/strong> Bir \u0130\u00e7erik Da\u011f\u0131t\u0131m A\u011f\u0131 (CDN), g\u00f6rsellerinizi (ve di\u011fer statik varl\u0131klar\u0131n\u0131z\u0131) d\u00fcnyan\u0131n farkl\u0131 co\u011frafi konumlar\u0131nda bulunan sunucularda \u00f6nbelle\u011fe alarak, kullan\u0131c\u0131lara en yak\u0131n sunucudan hizmet verilmesini sa\u011flar. Bu, gecikmeyi azalt\u0131r ve y\u00fckleme s\u00fcrelerini h\u0131zland\u0131r\u0131r. Cloudinary, Imgix gibi servisler ayn\u0131 zamanda an\u0131nda g\u00f6rsel optimizasyon hizmetleri de sunar.<\/li>\n<\/ul>\n<h3>CSS ve JavaScript Optimizasyonu ile \u0130stemci Taraf\u0131 Y\u00fck\u00fcn\u00fc Nas\u0131l Azaltabiliriz?<\/h3>\n<p>CSS ve JavaScript dosyalar\u0131 da istek say\u0131s\u0131n\u0131 ve sayfa boyutunu art\u0131ran \u00f6nemli fakt\u00f6rlerdir. Bu dosyalar\u0131 optimize etmek, sitenizin daha h\u0131zl\u0131 tepki vermesini sa\u011flar.<\/p>\n<ul>\n<li><strong>Minification ve S\u0131k\u0131\u015ft\u0131rma:<\/strong> Astro, varsay\u0131lan olarak \u00fcretim derlemelerinde (production builds) CSS ve JavaScript dosyalar\u0131n\u0131z\u0131 k\u00fc\u00e7\u00fclt\u00fcr (minify). Bu i\u015flem, gereksiz bo\u015fluklar\u0131, yorumlar\u0131 ve sat\u0131r sonlar\u0131n\u0131 kald\u0131rarak dosya boyutunu azalt\u0131r. Ayr\u0131ca, sunucu seviyesinde Gzip veya Brotli s\u0131k\u0131\u015ft\u0131rmas\u0131n\u0131 etkinle\u015ftirmek, transfer edilen veri miktar\u0131n\u0131 daha da d\u00fc\u015f\u00fcr\u00fcr.<\/li>\n<li><strong>Kritik CSS (Critical CSS):<\/strong> Sayfan\u0131n ilk g\u00f6r\u00fcn\u00fcm alan\u0131 i\u00e7in gerekli olan CSS'i do\u011frudan HTML i\u00e7ine (inline) g\u00f6merek, taray\u0131c\u0131n\u0131n ayr\u0131 bir CSS dosyas\u0131 indirme iste\u011fini beklemek zorunda kalmas\u0131n\u0131 \u00f6nleyebilirsiniz. Bu, \"render-blocking\" CSS'i ortadan kald\u0131rarak alg\u0131lanan y\u00fckleme h\u0131z\u0131n\u0131 art\u0131r\u0131r. Astro'da CSS mod\u00fclleri veya scoped CSS kullanarak bu t\u00fcr optimizasyonlar\u0131 daha kolay yapabilirsiniz.<\/li>\n<li><strong>Tree Shaking ve Kod B\u00f6l\u00fcmleme (Code Splitting):<\/strong> Astro, modern bundler'lar (\u00f6rne\u011fin Vite) ile entegre \u00e7al\u0131\u015ft\u0131\u011f\u0131 i\u00e7in, kullan\u0131lmayan kodlar\u0131 (\"tree shaking\") otomatik olarak kald\u0131r\u0131r ve JavaScript'inizi daha k\u00fc\u00e7\u00fck, talep \u00fczerine y\u00fcklenebilen par\u00e7alara (\"code splitting\") b\u00f6ler. Bu sayede, taray\u0131c\u0131 sadece o anda ihtiya\u00e7 duydu\u011fu kodu indirir, bu da istek say\u0131s\u0131n\u0131 ve dosya boyutunu azalt\u0131r.<\/li>\n<li><strong>Gereksiz K\u00fct\u00fcphanelerin Kald\u0131r\u0131lmas\u0131:<\/strong> Kullanmad\u0131\u011f\u0131n\u0131z JavaScript k\u00fct\u00fcphanelerini veya CSS \u00e7er\u00e7evelerini projenizden kald\u0131r\u0131n. Her eklenen k\u00fct\u00fcphane, potansiyel olarak yeni bir istek ve ek veri y\u00fck\u00fc demektir. Projenizin ba\u011f\u0131ml\u0131l\u0131klar\u0131n\u0131 d\u00fczenli olarak g\u00f6zden ge\u00e7irin.<\/li>\n<\/ul>\n<h3>Font Optimizasyonu ile Metin Y\u00fcklemesini Nas\u0131l H\u0131zland\u0131rabiliriz?<\/h3>\n<p>Web fontlar\u0131, estetik a\u00e7\u0131dan \u00f6nemli olsa da, genellikle birden fazla istek ve \u00f6nemli bir veri y\u00fck\u00fc olu\u015ftururlar.<\/p>\n<ul>\n<li><strong><code>font-display: swap<\/code> Kullan\u0131m\u0131:<\/strong> Bu CSS \u00f6zelli\u011fi, web fontlar\u0131 y\u00fcklenirken bir yedek fontun hemen g\u00f6sterilmesini sa\u011flar. Font y\u00fcklendi\u011finde, yedek fontun yerini al\u0131r. Bu, \"Flash of Unstyled Text\" (FOUT) sorununu \u00e7\u00f6zerek kullan\u0131c\u0131 deneyimini iyile\u015ftirir ve metin i\u00e7eri\u011finin daha h\u0131zl\u0131 g\u00f6r\u00fcnmesini sa\u011flar, taray\u0131c\u0131n\u0131n font dosyas\u0131n\u0131n y\u00fcklenmesini beklemesini engeller.\n<pre><code>\n@font-face {\n  font-family: 'Open Sans';\n  src: url('\/fonts\/OpenSans-Regular.woff2') format('woff2');\n  font-weight: 400;\n  font-display: swap; \/* Kritik \u00f6zellik *\/\n}\n        <\/pre>\n<p><\/code>\n    <\/li>\n<li><strong>Self-hosting ve Alt K\u00fcmeleme (Subsetting):<\/strong> Fontlar\u0131 kendi sunucunuzda bar\u0131nd\u0131rmak (Google Fonts gibi harici kaynaklar yerine), DNS lookup ve ek HTTP isteklerini azaltabilir. Ayr\u0131ca, yaln\u0131zca sitenizde kulland\u0131\u011f\u0131n\u0131z karakterleri i\u00e7eren font alt k\u00fcmeleri olu\u015fturmak, dosya boyutunu \u00f6nemli \u00f6l\u00e7\u00fcde d\u00fc\u015f\u00fcr\u00fcr.<\/li>\n<li><strong><code>preload<\/code> Kullan\u0131m\u0131:<\/strong> En kritik font dosyalar\u0131n\u0131z\u0131 taray\u0131c\u0131ya m\u00fcmk\u00fcn olan en k\u0131sa s\u00fcrede indirmesi i\u00e7in <code><link rel=\"preload\"><\/code> etiketini kullan\u0131n. Bu, taray\u0131c\u0131n\u0131n bu kaynaklar\u0131 daha erken ke\u015ffetmesini ve \u00f6nceliklendirmesini sa\u011flar.\n<pre><code>\n<link rel=\"preload\" href=\"\/fonts\/OpenSans-Regular.woff2\" as=\"font\" type=\"font\/woff2\" crossorigin>\n        <\/pre>\n<p><\/code>\n    <\/li>\n<\/ul>\n<div class=\"interactive-tip\">Uzman \u0130pucu: Bu temel stratejilerin uygulanmas\u0131, \u00e7o\u011fu Astro sitesi i\u00e7in y\u00fckleme s\u00fcrelerinde %30-50 oran\u0131nda bir iyile\u015fme sa\u011flayabilir. Unutmay\u0131n, her k\u00fc\u00e7\u00fck optimizasyon k\u00fcm\u00fclatif bir etki yarat\u0131r!<\/div>\n<h2>Statik Astro Yap\u0131s\u0131nda Dinamik \u0130\u00e7erik ve API \u0130stekleri Nas\u0131l Y\u00f6netilir?<\/h2>\n<p>Astro, \u00f6z\u00fcnde statik bir site jenerat\u00f6r\u00fc olmas\u0131na ra\u011fmen, modern web sitelerinin dinamik i\u00e7erik ihtiya\u00e7lar\u0131n\u0131 g\u00f6z ard\u0131 etmez. Blog g\u00f6nderileri, \u00fcr\u00fcn listeleri veya portf\u00f6y \u00f6\u011feleri gibi i\u00e7erikler genellikle bir CMS'den, bir veritaban\u0131ndan veya harici bir API'den gelir. Bu dinamik verilerin statik bir siteye entegrasyonu, do\u011fru yakla\u015f\u0131mla istek say\u0131s\u0131n\u0131 art\u0131rmadan y\u00fcksek performans sunabilir. Astro'nun g\u00fcc\u00fc, bu t\u00fcr dinamik verileri derleme zaman\u0131nda (build time) \u00e7ekip, tamamen statik HTML'ye d\u00f6n\u00fc\u015ft\u00fcrmesinden gelir. Bu sayede, son kullan\u0131c\u0131, sunucuya hi\u00e7bir API iste\u011fi g\u00f6ndermeden do\u011frudan \u00f6nbelle\u011fe al\u0131nm\u0131\u015f, h\u0131zl\u0131 bir sayfa al\u0131r.<\/p>\n<p>Dinamik i\u00e7erik y\u00f6netiminde anahtar, veriyi m\u00fcmk\u00fcn oldu\u011funca derleme a\u015famas\u0131nda elde etmektir. Astro'nun <code>getStaticPaths<\/code> ve <code><Astro.fetch \/><\/code> (veya do\u011frudan <code>fetch<\/code> API) gibi \u00f6zellikleri bu konuda devreye girer. \u00d6rne\u011fin, bir blog sitesi in\u015fa ediyorsan\u0131z ve g\u00f6nderileriniz bir headless CMS'ten geliyorsa, Astro'yu kullanarak t\u00fcm blog g\u00f6nderilerini derleme zaman\u0131nda \u00e7ekebilir ve her bir g\u00f6nderi i\u00e7in ayr\u0131 bir statik sayfa olu\u015fturabilirsiniz. Bu, her sayfa y\u00fcklendi\u011finde ayr\u0131 ayr\u0131 API istekleri yapma ihtiyac\u0131n\u0131 ortadan kald\u0131r\u0131r. Kullan\u0131c\u0131 sitenize eri\u015fti\u011finde, t\u00fcm i\u00e7erik zaten HTML'ye g\u00f6m\u00fcl\u00fc oldu\u011fundan, taray\u0131c\u0131n\u0131n yaln\u0131zca bu HTML'i ayr\u0131\u015ft\u0131rmas\u0131 ve ilgili statik varl\u0131klar\u0131 (resimler, CSS) indirmesi yeterli olur.<\/p>\n<pre><code>\n---\n\/\/ src\/pages\/blog\/[slug].astro\nexport async function getStaticPaths() {\n  const posts = await fetch('https:\/\/api.example.com\/posts').then(res => res.json());\n\n  return posts.map(post => ({\n    params: { slug: post.slug },\n    props: { post },\n  }));\n}\n\nconst { post } = Astro.props;\n---\n<h1>{post.title}<\/h1<\n<p>{post.content}<\/p>\n<\/pre>\n<p><\/code><\/p>\n<p>Yukar\u0131daki \u00f6rnekte, <code>getStaticPaths<\/code> fonksiyonu, derleme s\u0131ras\u0131nda t\u00fcm blog g\u00f6nderilerini harici bir API'den \u00e7eker. Her g\u00f6nderi i\u00e7in bir yol (path) ve ilgili veriyi (props) d\u00f6nd\u00fcr\u00fcr. Astro, bu bilgilerle her blog g\u00f6nderisi i\u00e7in ayr\u0131 bir statik HTML sayfas\u0131 olu\u015fturur. B\u00f6ylece, kullan\u0131c\u0131lar <code>\/blog\/ilk-makale<\/code> adresine gittiklerinde, herhangi bir client-side API iste\u011fi olmaks\u0131z\u0131n, tamamen statik ve \u00f6nbelle\u011fe al\u0131nabilir bir sayfa g\u00f6r\u00fcrler.<\/p>\n<p>Ancak, her dinamik i\u00e7eri\u011fin derleme zaman\u0131nda \u00e7ekilmesi m\u00fcmk\u00fcn veya pratik olmayabilir. \u00d6rne\u011fin, ger\u00e7ek zamanl\u0131 veriler (borsa fiyatlar\u0131, anl\u0131k sohbet mesajlar\u0131) veya kullan\u0131c\u0131ya \u00f6zel i\u00e7erikler (al\u0131\u015fveri\u015f sepeti, profil bilgileri) client-side'da dinamik olarak y\u00fcklenmelidir. Bu gibi durumlarda, Astro'nun k\u0131smi hidrasyon (partial hydration) ve \"Astro Islands\" mimarisi devreye girer. Astro Islands, sitenizin yaln\u0131zca etkile\u015fimli olmas\u0131 gereken k\u00fc\u00e7\u00fck, izole JavaScript \"adalar\u0131n\u0131\" client-side'da hidrate etmesini sa\u011flar. Geri kalan HTML statik kal\u0131r ve JavaScript y\u00fcklenmesi i\u00e7in herhangi bir istek olu\u015fturmaz. Bu yakla\u015f\u0131m, sadece gerekti\u011fi kadar JavaScript'i taray\u0131c\u0131ya g\u00f6ndererek genel JavaScript y\u00fck\u00fcn\u00fc ve dolay\u0131s\u0131yla ilgili istek say\u0131s\u0131n\u0131 minimumda tutar. \u00d6rne\u011fin, bir yorum formu veya bir arama \u00e7ubu\u011fu gibi etkile\u015fimli bir bile\u015fen, <code>client:load<\/code> veya <code>client:idle<\/code> direktifleriyle i\u015faretlenerek sadece o bile\u015fenin JavaScript'i y\u00fcklenir ve \u00e7al\u0131\u015ft\u0131r\u0131l\u0131r.<\/p>\n<p><strong>Vaka Analizi: Bir E-ticaret Sitesinde \u00dcr\u00fcn Detaylar\u0131<\/strong><\/p>\n<p>B\u00fcy\u00fck bir e-ticaret sitesi, binlerce \u00fcr\u00fcn sayfas\u0131n\u0131 Astro ile in\u015fa etmeye karar verdi. Geleneksel yakla\u015f\u0131mlar, her \u00fcr\u00fcn sayfas\u0131 y\u00fcklendi\u011finde \u00fcr\u00fcn detaylar\u0131n\u0131 bir API'den \u00e7ekmeyi gerektirecekti, bu da on binlerce API iste\u011fi ve yava\u015f y\u00fckleme s\u00fcreleri anlam\u0131na geliyordu. \u00c7\u00f6z\u00fcm olarak, Astro'nun <code>getStaticPaths<\/code> \u00f6zelli\u011fi kullan\u0131ld\u0131. T\u00fcm \u00fcr\u00fcn verileri (isim, a\u00e7\u0131klama, fiyat, g\u00f6rseller) derleme zaman\u0131nda e-ticaret platformunun API'sinden \u00e7ekildi. Her \u00fcr\u00fcn i\u00e7in optimize edilmi\u015f bir HTML sayfas\u0131 olu\u015fturuldu. Sonu\u00e7: Kullan\u0131c\u0131lar, \u00fcr\u00fcn sayfalar\u0131na an\u0131nda eri\u015febildi, sayfa y\u00fckleme s\u00fcreleri ortalama 2 saniyeden 300 ms'ye d\u00fc\u015ft\u00fc ve sunucuya olan API istekleri tamamen ortadan kalkt\u0131 (sadece derleme s\u0131ras\u0131nda yap\u0131ld\u0131). Bu, hem kullan\u0131c\u0131 deneyimini iyile\u015ftirdi hem de API maliyetlerini d\u00fc\u015f\u00fcrd\u00fc. Ek olarak, \u00fcr\u00fcn galerisi gibi etkile\u015fimli k\u0131s\u0131mlar Astro Islands ile <code>client:visible<\/code> olarak i\u015faretlenerek, sadece ekran g\u00f6r\u00fcnd\u00fc\u011f\u00fcnde JavaScript'in y\u00fcklenmesi sa\u011fland\u0131.<\/p>\n<p>Son olarak, statik i\u00e7eri\u011fin h\u0131zl\u0131 sunumu i\u00e7in CDN'ler (Content Delivery Networks) ve taray\u0131c\u0131 \u00f6nbellekleme stratejileri hayati \u00f6neme sahiptir. Astro siteleri tamamen statik oldu\u011fundan, CDN'ler arac\u0131l\u0131\u011f\u0131yla kolayca da\u011f\u0131t\u0131labilir ve kullan\u0131c\u0131lara en yak\u0131n konumdan, \u0131\u015f\u0131k h\u0131z\u0131nda sunulabilirler. Taray\u0131c\u0131 \u00f6nbellekleme ba\u015fl\u0131klar\u0131 (Cache-Control) do\u011fru ayarland\u0131\u011f\u0131nda, kullan\u0131c\u0131lar sitenizi tekrar ziyaret ettiklerinde bir\u00e7ok kayna\u011f\u0131 yeniden indirmek yerine yerel \u00f6nbelleklerinden \u00e7ekerler, bu da istek say\u0131s\u0131n\u0131 s\u0131f\u0131ra indirger.<\/p>\n<h2>Astro'da Geli\u015fmi\u015f Optimizasyon Teknikleri: HTTP\/2 ve \u00d6tesi<\/h2>\n<p>Temel optimizasyon stratejilerini uygulad\u0131ktan sonra, Astro sitenizin performans\u0131n\u0131 daha da ileri ta\u015f\u0131mak i\u00e7in baz\u0131 geli\u015fmi\u015f tekniklere odaklanabiliriz. Bu teknikler, genellikle a\u011f protokollerinin inceliklerini ve taray\u0131c\u0131n\u0131n kaynak y\u00fckleme mekanizmalar\u0131n\u0131 derinlemesine anlamay\u0131 gerektirir. \u0130stek say\u0131s\u0131n\u0131 do\u011frudan azaltmasalar bile, her bir iste\u011fin daha verimli i\u015flenmesini sa\u011flayarak genel y\u00fckleme s\u00fcresini dramatik bir \u015fekilde iyile\u015ftirebilirler.<\/p>\n<h3>HTTP\/2 ve HTTP\/3 ile \u0130stek Y\u00f6netimini \u0130yile\u015ftirmek M\u00fcmk\u00fcn m\u00fcd\u00fcr?<\/h3>\n<p>Geleneksel HTTP\/1.1 protokol\u00fcnde, her yeni istek genellikle ayr\u0131 bir TCP ba\u011flant\u0131s\u0131 gerektirir ve taray\u0131c\u0131 ayn\u0131 anda s\u0131n\u0131rl\u0131 say\u0131da paralel istek yapabilir (genellikle 6-8). Bu durum, \u00e7ok say\u0131da k\u00fc\u00e7\u00fck dosya (CSS, JS, resimler) i\u00e7in ciddi bir darbo\u011faz olu\u015fturur ve \"head-of-line blocking\" denilen bir duruma yol a\u00e7ar, yani bir iste\u011fin tamamlanmas\u0131, di\u011ferlerinin beklemek zorunda kalmas\u0131 anlam\u0131na gelir. \u0130\u015fte bu noktada HTTP\/2 ve HTTP\/3 devreye girer.<\/p>\n<ul>\n<li><strong>HTTP\/2: Multiplexing<\/strong><br \/>\n        HTTP\/2, tek bir TCP ba\u011flant\u0131s\u0131 \u00fczerinden birden fazla iste\u011fin ve yan\u0131t\u0131n e\u015f zamanl\u0131 olarak g\u00f6nderilmesine olanak tan\u0131yan bir \"multiplexing\" \u00f6zelli\u011fi sunar. Bu, taray\u0131c\u0131n\u0131n ayn\u0131 anda y\u00fczlerce iste\u011fi y\u00f6netebilece\u011fi anlam\u0131na gelir. Sonu\u00e7 olarak, sitenizdeki \u00e7ok say\u0131da k\u00fc\u00e7\u00fck dosya i\u00e7in istek say\u0131s\u0131n\u0131 fiziksel olarak azaltmasak bile, bu isteklerin i\u015flem s\u00fcresi \u00f6nemli \u00f6l\u00e7\u00fcde k\u0131sal\u0131r. Astro siteleri statik olduklar\u0131 i\u00e7in genellikle bir CDN veya modern bir web sunucusu (Nginx, Apache) \u00fczerinden sunulur ve bu sunucular\u0131n \u00e7o\u011fu zaten HTTP\/2 deste\u011fi sunar. Bu, sitenizin otomatik olarak bu avantajdan faydalanaca\u011f\u0131 anlam\u0131na gelir.<\/li>\n<li><strong>HTTP\/3: QUIC Protokol\u00fc<\/strong><br \/>\n        HTTP\/3, TCP yerine UDP tabanl\u0131 yeni bir a\u011f protokol\u00fc olan QUIC'i kullan\u0131r. QUIC, TCP'nin \"head-of-line blocking\" sorununu tamamen ortadan kald\u0131r\u0131r ve ba\u011flant\u0131 kurma (handshake) s\u00fcrelerini k\u0131salt\u0131r. \u00d6zellikle mobil a\u011flarda veya g\u00fcvenilir olmayan ba\u011flant\u0131larda HTTP\/3, daha stabil ve h\u0131zl\u0131 bir deneyim sunar. HTTP\/3 deste\u011fi hala yayg\u0131nla\u015fma a\u015famas\u0131nda olsa da, Cloudflare gibi CDN'ler bu teknolojiyi zaten sunmaktad\u0131r. Astro sitenizi HTTP\/3 destekli bir CDN \u00fczerinden yay\u0131nlamak, gelece\u011fe y\u00f6nelik \u00f6nemli bir performans optimizasyonudur.<\/li>\n<\/ul>\n<div class=\"interactive-tip\">Uzman \u0130pucu: Astro sitenizi modern bir CDN (Cloudflare, Vercel, Netlify) \u00fczerinden yay\u0131nlayarak HTTP\/2 ve HTTP\/3 gibi a\u011f protokol\u00fc optimizasyonlar\u0131ndan otomatik olarak faydalan\u0131rs\u0131n\u0131z. Bu, manuel yap\u0131land\u0131rma gerektirmeden performansta b\u00fcy\u00fck bir s\u0131\u00e7rama sa\u011flar.<\/div>\n<h3>Kaynak \u00d6n Y\u00fckleme ve \u00d6n Ba\u011flant\u0131 ile Kritik \u0130stekleri H\u0131zland\u0131rmak<\/h3>\n<p>Taray\u0131c\u0131lar\u0131n kaynaklar\u0131 daha verimli bir \u015fekilde indirmesine yard\u0131mc\u0131 olmak i\u00e7in <code><link><\/code> etiketinin <code>rel<\/code> \u00f6zniteli\u011fi ile \u00e7e\u015fitli \u00f6n y\u00fckleme ve \u00f6n ba\u011flant\u0131 ipu\u00e7lar\u0131 sa\u011flayabiliriz. Bu ipu\u00e7lar\u0131, taray\u0131c\u0131ya belirli kaynaklar\u0131n gelecekte ihtiya\u00e7 duyulaca\u011f\u0131n\u0131 veya belirli bir domaine erken ba\u011flan\u0131lmas\u0131 gerekti\u011fini bildirir.<\/p>\n<ul>\n<li><strong><code><link rel=\"preload\"><\/code>:<\/strong> Bu etiket, taray\u0131c\u0131ya belirli bir kayna\u011f\u0131n (font, kritik CSS, JavaScript) \u015fu anki sayfa i\u00e7in y\u00fcksek \u00f6ncelikli olarak ihtiya\u00e7 duyulaca\u011f\u0131n\u0131 ve m\u00fcmk\u00fcn olan en k\u0131sa s\u00fcrede indirilmesi gerekti\u011fini s\u00f6yler. \u00d6rne\u011fin, bir web fontu veya sayfa y\u00fcklemesi i\u00e7in kritik olan bir JavaScript dosyas\u0131 preload edilebilir. Bu, taray\u0131c\u0131n\u0131n DOM veya CSSOM olu\u015fturulana kadar beklemesini engeller.\n<pre><code>\n<!-- Kritik bir fontu \u00f6n y\u00fckleme -->\n<link rel=\"preload\" href=\"\/fonts\/MyFont.woff2\" as=\"font\" type=\"font\/woff2\" crossorigin>\n\n<!-- Kritik bir JavaScript dosyas\u0131n\u0131 \u00f6n y\u00fckleme -->\n<link rel=\"preload\" href=\"\/src\/components\/CriticalComponent.js\" as=\"script\">\n        <\/pre>\n<p><\/code>\n    <\/li>\n<li><strong><code><link rel=\"preconnect\"><\/code>:<\/strong> Taray\u0131c\u0131ya, belirtilen bir etki alan\u0131na (domain) m\u00fcmk\u00fcn olan en erken zamanda bir ba\u011flant\u0131 kurmas\u0131n\u0131 s\u00f6yler. Bu, \u00f6zellikle bir CDN'den veya harici bir API'den kaynak \u00e7ekerken DNS \u00e7\u00f6z\u00fcmleme, TCP handshake ve TLS negotiation gibi gecikme s\u00fcrelerini azalt\u0131r.\n<pre><code>\n<!-- Harici bir CDN'ye \u00f6n ba\u011flant\u0131 -->\n<link rel=\"preconnect\" href=\"https:\/\/cdn.example.com\">\n\n<!-- Harici bir font sa\u011flay\u0131c\u0131s\u0131na \u00f6n ba\u011flant\u0131 -->\n<link rel=\"preconnect\" href=\"https:\/\/fonts.gstatic.com\" crossorigin>\n        <\/pre>\n<p><\/code>\n    <\/li>\n<li><strong><code><link rel=\"dns-prefetch\"><\/code>:<\/strong> <code>preconnect<\/code>'e benzer, ancak yaln\u0131zca DNS \u00e7\u00f6z\u00fcmlemesini \u00f6nceden yapar. Daha az agresif bir se\u00e7enektir ve <code>preconnect<\/code> desteklemeyen taray\u0131c\u0131lar i\u00e7in bir geri d\u00f6n\u00fc\u015f (fallback) olarak kullan\u0131labilir. Genellikle kritik olmayan, ancak yine de erken \u00e7\u00f6z\u00fcmlenmesi faydal\u0131 olabilecek etki alanlar\u0131 i\u00e7in kullan\u0131l\u0131r.\n<pre><code>\n<!-- Harici bir analiz servisi i\u00e7in DNS \u00f6n y\u00fckleme -->\n<link rel=\"dns-prefetch\" href=\"https:\/\/www.google-analytics.com\">\n        <\/pre>\n<p><\/code>\n    <\/li>\n<\/ul>\n<h3>Veri S\u0131k\u0131\u015ft\u0131rma (Gzip, Brotli) ile Bant Geni\u015fli\u011fini Etkili Kullanmak<\/h3>\n<p>HTTP s\u0131k\u0131\u015ft\u0131rma, sunucunun web varl\u0131klar\u0131n\u0131 (HTML, CSS, JavaScript) taray\u0131c\u0131ya g\u00f6ndermeden \u00f6nce s\u0131k\u0131\u015ft\u0131rmas\u0131n\u0131, taray\u0131c\u0131n\u0131n da bu dosyalar\u0131 indirip a\u00e7mas\u0131n\u0131 ifade eder. Bu, transfer edilen veri miktar\u0131n\u0131 \u00f6nemli \u00f6l\u00e7\u00fcde azalt\u0131r, bu da daha h\u0131zl\u0131 indirme s\u00fcreleri ve daha az istek s\u00fcresi anlam\u0131na gelir.<\/p>\n<ul>\n<li><strong>Gzip:<\/strong> Uzun y\u0131llard\u0131r kullan\u0131lan standart bir s\u0131k\u0131\u015ft\u0131rma algoritmas\u0131d\u0131r ve modern taray\u0131c\u0131lar\u0131n tamam\u0131 taraf\u0131ndan desteklenir. \u00c7o\u011fu web sunucusu (Nginx, Apache) ve CDN, Gzip s\u0131k\u0131\u015ft\u0131rmas\u0131n\u0131 otomatik olarak yap\u0131land\u0131racak \u015fekilde ayarlanabilir.<\/li>\n<li><strong>Brotli:<\/strong> Google taraf\u0131ndan geli\u015ftirilen daha yeni bir s\u0131k\u0131\u015ft\u0131rma algoritmas\u0131d\u0131r ve Gzip'e g\u00f6re genellikle %15-25 daha iyi s\u0131k\u0131\u015ft\u0131rma oranlar\u0131 sunar. \u00d6zellikle metin tabanl\u0131 varl\u0131klar i\u00e7in daha etkilidir. Modern taray\u0131c\u0131lar ve CDN'ler Brotli'yi giderek daha fazla desteklemektedir. Astro sitenizi bir CDN (Cloudflare, Vercel) \u00fczerinden yay\u0131nl\u0131yorsan\u0131z, Brotli s\u0131k\u0131\u015ft\u0131rmas\u0131 genellikle otomatik olarak devreye girer.<\/li>\n<\/ul>\n<p>Bu ileri d\u00fczey optimizasyon teknikleri, Astro sitenizin sadece h\u0131zl\u0131 y\u00fcklenmesini de\u011fil, ayn\u0131 zamanda her bir a\u011f iste\u011finin en verimli \u015fekilde i\u015flenmesini sa\u011flayarak, kullan\u0131c\u0131lar\u0131n\u0131za ak\u0131c\u0131 ve kesintisiz bir deneyim sunar.<\/p>\n<h2>Astro Bile\u015fenlerinde Ak\u0131ll\u0131 Y\u00fckleme ve Kod B\u00f6l\u00fcmleme Nas\u0131l Yap\u0131l\u0131r?<\/h2>\n<p>Astro'nun \"Ada Mimarisi\" (Astro Islands), sitenizdeki istek say\u0131s\u0131n\u0131 \u00f6zellikle JavaScript s\u00f6z konusu oldu\u011funda devrim niteli\u011finde azaltman\u0131n anahtar\u0131d\u0131r. Bu mimari, varsay\u0131lan olarak s\u0131f\u0131r JavaScript g\u00f6nderme felsefesiyle \u00e7al\u0131\u015f\u0131r ve sadece ger\u00e7ekten etkile\u015fimli olmas\u0131 gereken bile\u015fenlerin (bu k\u00fc\u00e7\u00fck \"adalar\u0131n\") istemci taraf\u0131nda hidrate edilmesini sa\u011flar. Bu yakla\u015f\u0131m, gereksiz JavaScript y\u00fcklemesini \u00f6nleyerek sayfa a\u011f\u0131rl\u0131\u011f\u0131n\u0131 ve dolay\u0131s\u0131yla ilgili istek say\u0131s\u0131n\u0131 \u00f6nemli \u00f6l\u00e7\u00fcde azalt\u0131r.<\/p>\n<h3>Astro Islands'\u0131n Derinlemesine \u0130ncelenmesi ve \u0130stek Say\u0131s\u0131na Etkisi<\/h3>\n<p>Astro'da, bir bile\u015fen yaln\u0131zca HTML olarak render edilir ve taray\u0131c\u0131ya g\u00f6nderilir. Bu, bile\u015fenin JavaScript'inin istemci taraf\u0131nda y\u00fcklenmedi\u011fi veya \u00e7al\u0131\u015fmad\u0131\u011f\u0131 anlam\u0131na gelir. Bir bile\u015feni etkile\u015fimli hale getirmek istedi\u011finizde (\u00f6rne\u011fin, bir saya\u00e7, bir karusel veya bir form do\u011frulama), Astro'nun <code>client:<\/code> direktiflerini kullan\u0131rs\u0131n\u0131z. Bu direktifler, Astro'ya bir bile\u015fenin JavaScript'ini ne zaman ve nas\u0131l y\u00fcklemesi gerekti\u011fini bildirir:<\/p>\n<ul>\n<li><strong><code>client:load<\/code><\/strong>: Bile\u015fenin JavaScript'ini sayfa y\u00fcklenir y\u00fcklenmez, m\u00fcmk\u00fcn olan en erken zamanda y\u00fckler ve hidrate eder. Sayfan\u0131n en kritik etkile\u015fimli bile\u015fenleri i\u00e7in kullan\u0131l\u0131r. Bu, bir miktar erken istek olu\u015fturabilir, ancak kritik oldu\u011fu i\u00e7in kabul edilebilir.<\/li>\n<li><strong><code>client:idle<\/code><\/strong>: Bile\u015fenin JavaScript'ini taray\u0131c\u0131 ana i\u015f par\u00e7ac\u0131\u011f\u0131 bo\u015fta kald\u0131\u011f\u0131nda (yani sayfa y\u00fcklendikten ve ana g\u00f6revler tamamland\u0131ktan sonra) y\u00fckler ve hidrate eder. Kritik olmayan, ancak yine de erken ihtiya\u00e7 duyulabilecek etkile\u015fimler i\u00e7in idealdir.<\/li>\n<li><strong><code>client:visible<\/code><\/strong>: Bile\u015fenin JavaScript'ini yaln\u0131zca bile\u015fen taray\u0131c\u0131n\u0131n g\u00f6r\u00fcn\u00fcm alan\u0131na girdi\u011finde y\u00fckler ve hidrate eder. Bu, \u00f6zellikle sayfan\u0131n alt k\u0131s\u0131mlar\u0131nda yer alan veya scroll edildik\u00e7e g\u00f6r\u00fcn\u00fcr hale gelen bile\u015fenler i\u00e7in \u00e7ok etkilidir. \u00d6rne\u011fin, bir yorum b\u00f6l\u00fcm\u00fc veya bir harita bile\u015feni i\u00e7in harikad\u0131r. Bu direktif, ba\u015flang\u0131\u00e7taki istek say\u0131s\u0131n\u0131 ve JavaScript y\u00fck\u00fcn\u00fc \u00f6nemli \u00f6l\u00e7\u00fcde azalt\u0131r.<\/li>\n<li><strong><code>client:media={query}<\/code><\/strong>: Belirli bir medya sorgusu e\u015fle\u015fti\u011finde bile\u015feni y\u00fckler ve hidrate eder. \u00d6rne\u011fin, yaln\u0131zca mobil cihazlarda g\u00f6r\u00fcnen bir men\u00fc bile\u015fenini yaln\u0131zca mobil ekran boyutlar\u0131nda y\u00fckleyebilirsiniz.\n<pre><code>\n<!-- Sadece mobil cihazlarda y\u00fcklenen bir men\u00fc bile\u015feni -->\n<MobileNav client:media=\"(max-width: 768px)\" \/>\n        <\/pre>\n<p><\/code>\n    <\/li>\n<\/ul>\n<p>Bu direktifler, Astro'nun JavaScript kod b\u00f6lme (code splitting) \u00f6zelli\u011fini de tetikler. Her <code>client:<\/code> direktifiyle i\u015faretlenmi\u015f bile\u015fen, kendi JavaScript paketine (bundle) b\u00f6l\u00fcn\u00fcr. Bu, taray\u0131c\u0131n\u0131n yaln\u0131zca o anda ihtiya\u00e7 duydu\u011fu k\u00fc\u00e7\u00fck JavaScript par\u00e7alar\u0131n\u0131 indirmesini sa\u011flar ve t\u00fcm uygulaman\u0131n JavaScript'ini tek bir b\u00fcy\u00fck dosya olarak indirme gereklili\u011fini ortadan kald\u0131r\u0131r. Dolay\u0131s\u0131yla, kullan\u0131c\u0131 sadece etkile\u015fimde bulunaca\u011f\u0131 bile\u015fenin JS iste\u011fini yapar.<\/p>\n<h3>Dinamik \u0130\u00e7e Aktarma (<code>import()<\/code>) ve Kullan\u0131lmayan JavaScript'i Erteleme<\/h3>\n<p>Astro Islands mimarisi d\u0131\u015f\u0131nda, JavaScript'te dinamik i\u00e7e aktarma (<code>import()<\/code>) \u00f6zelli\u011fini kullanarak da kod b\u00f6lme ve erteleme yapabilirsiniz. Bu teknik, belirli bir JavaScript mod\u00fcl\u00fcn\u00fc yaln\u0131zca ihtiya\u00e7 duyuldu\u011funda (\u00f6rne\u011fin, bir d\u00fc\u011fmeye t\u0131kland\u0131\u011f\u0131nda veya bir kullan\u0131c\u0131 belirli bir etkile\u015fimi tetikledi\u011finde) y\u00fcklemenizi sa\u011flar. Bu, \u00f6zellikle b\u00fcy\u00fck k\u00fct\u00fcphaneler veya az kullan\u0131lan \u00f6zellikler i\u00e7in faydal\u0131d\u0131r.<\/p>\n<pre><code>\n<!-- src\/components\/DynamicMap.astro -->\n<div id=\"map-container\"><\/div>\n\n<script>\n  const mapContainer = document.getElementById('map-container');\n\n  \/\/ Harita bile\u015fenini yaln\u0131zca kullan\u0131c\u0131 scroll etti\u011finde y\u00fckle\n  const observer = new IntersectionObserver((entries) => {\n    entries.forEach(entry => {\n      if (entry.isIntersecting) {\n        import('..\/utils\/loadMap.js')\n          .then(({ initMap }) => initMap(mapContainer))\n          .catch(err => console.error('Harita y\u00fcklenirken hata olu\u015ftu:', err));\n        observer.disconnect(); \/\/ G\u00f6zlemlemeyi durdur\n      }\n    });\n  });\n\n  observer.observe(mapContainer);\n<\/script>\n<\/pre>\n<p><\/code><\/p>\n<p>Yukar\u0131daki \u00f6rnekte, <code>loadMap.js<\/code> mod\u00fcl\u00fc yaln\u0131zca <code>#map-container<\/code> div'i g\u00f6r\u00fcn\u00fcm alan\u0131na girdi\u011finde dinamik olarak i\u00e7e aktar\u0131l\u0131r. Bu, harita API'si ve ilgili t\u00fcm JavaScript'in, kullan\u0131c\u0131 haritay\u0131 g\u00f6rmedi\u011fi s\u00fcrece hi\u00e7 indirilmeyece\u011fi anlam\u0131na gelir. Bu teknik, ba\u015flang\u0131\u00e7taki JavaScript y\u00fck\u00fcn\u00fc ve dolay\u0131s\u0131yla taray\u0131c\u0131n\u0131n yapmas\u0131 gereken istek say\u0131s\u0131n\u0131 \u00f6nemli \u00f6l\u00e7\u00fcde azalt\u0131r. Sadece kritik kaynaklar\u0131 y\u00fckleyerek, sitenizin genel h\u0131z\u0131n\u0131 ve yan\u0131t verebilirli\u011fini art\u0131rm\u0131\u015f olursunuz.<\/p>\n<p><strong>Vaka Analizi: Etkile\u015fimli Bir Harita Bile\u015feninin Sadece G\u00f6r\u00fcn\u00fcr Oldu\u011funda Y\u00fcklenmesi<\/strong><\/p>\n<p>Bir etkinlik rehberi sitesi, her etkinlik sayfas\u0131nda bir konum haritas\u0131 g\u00f6steriyordu. Ancak, harita bile\u015feni (Google Maps API ve ilgili JavaScript) olduk\u00e7a a\u011f\u0131rd\u0131 ve \u00e7o\u011fu kullan\u0131c\u0131n\u0131n sayfay\u0131 kayd\u0131rmadan \u00f6nce g\u00f6rmedi\u011fi alt k\u0131s\u0131mda yer al\u0131yordu. Geleneksel yakla\u015f\u0131mla, her sayfa y\u00fcklendi\u011finde harita JavaScript'i i\u00e7in birden fazla istek yap\u0131l\u0131yordu. \u00c7\u00f6z\u00fcm olarak, Astro'nun <code>client:visible<\/code> direktifi kullan\u0131ld\u0131. Harita bile\u015feni \u015fu \u015fekilde i\u015faretlendi:<\/p>\n<pre><code>\n<!-- Harita bile\u015feni -->\n<MapComponent client:visible \/>\n<\/pre>\n<p><\/code><\/p>\n<p>Bu basit de\u011fi\u015fiklikle, harita JavaScript'i ve API istekleri, yaln\u0131zca kullan\u0131c\u0131n\u0131n haritay\u0131 i\u00e7eren b\u00f6l\u00fcm\u00fcne kayd\u0131rd\u0131\u011f\u0131nda yap\u0131ld\u0131. Sonu\u00e7: Sayfan\u0131n ba\u015flang\u0131\u00e7 y\u00fckleme s\u00fcresi %40 oran\u0131nda azald\u0131 ve ilk boyama zaman\u0131 (First Contentful Paint) \u00f6nemli \u00f6l\u00e7\u00fcde iyile\u015fti. Bu, Astro Islands'\u0131n ve ak\u0131ll\u0131 y\u00fckleme stratejilerinin istek say\u0131s\u0131n\u0131 azaltmadaki ve kullan\u0131c\u0131 deneyimini iyile\u015ftirmedeki g\u00fcc\u00fcn\u00fc a\u00e7\u0131k\u00e7a g\u00f6stermektedir.<\/p>\n<h2>Ger\u00e7ek D\u00fcnya Senaryolar\u0131: Astro'da \u0130stek Azaltma Vaka Analizleri<\/h2>\n<p>Teorik bilgiyi uygulamaya d\u00f6kmek, performans optimizasyonunun en tatmin edici k\u0131sm\u0131d\u0131r. \u0130\u015fte Astro sitelerinde istek say\u0131s\u0131n\u0131 azaltmaya y\u00f6nelik ger\u00e7ek d\u00fcnya vaka analizleri, farkl\u0131 senaryolarda nas\u0131l somut sonu\u00e7lar elde edilebilece\u011fini g\u00f6steriyor.<\/p>\n<h3>Vaka 1: B\u00fcy\u00fck Bir Blog Sitesinde G\u00f6rsel ve Varl\u0131k Optimizasyonu<\/h3>\n<p><strong>Problem:<\/strong> Bir teknoloji blog sitesi, y\u00fczlerce makale ve her makalede ortalama 5-10 y\u00fcksek \u00e7\u00f6z\u00fcn\u00fcrl\u00fckl\u00fc g\u00f6rsel bar\u0131nd\u0131r\u0131yordu. Sitenin Lighthouse skoru d\u00fc\u015f\u00fckt\u00fc, ortalama 60-70 aras\u0131nda seyrediyordu ve mobil y\u00fckleme s\u00fcreleri 5 saniyenin \u00fczerindeydi. Yap\u0131lan analizde, her sayfada ortalama 50-60 HTTP iste\u011fi oldu\u011fu, bunlar\u0131n \u00e7o\u011funlu\u011funun g\u00f6rseller, fontlar ve gereksiz JavaScript k\u00fct\u00fcphanelerinden kaynakland\u0131\u011f\u0131 tespit edildi.<\/p>\n<p><strong>Uygulanan \u00c7\u00f6z\u00fcmler:<\/strong><\/p>\n<ol>\n<li><strong>G\u00f6rsel Optimizasyonu:<\/strong> T\u00fcm g\u00f6rseller Astro Image bile\u015feni kullan\u0131larak WebP format\u0131na d\u00f6n\u00fc\u015ft\u00fcr\u00fcld\u00fc ve <code>srcset<\/code>, <code>sizes<\/code> nitelikleriyle responsive hale getirildi. Ayr\u0131ca, <code>loading=\"lazy\"<\/code> varsay\u0131lan olarak t\u00fcm makale g\u00f6rsellerine uyguland\u0131.\n<pre><code>\n<!-- Eski: <img decoding=\"async\" src=\"path\/to\/image.jpg\" alt=\"...\" \/> -->\n<!-- Yeni: -->\n<Image src={imageImport} alt=\"Makale G\u00f6rseli\" width={800} height={450} loading=\"lazy\" quality={80} \/>\n        <\/pre>\n<p><\/code><br \/>\n        Bu sayede, taray\u0131c\u0131 sadece g\u00f6r\u00fcn\u00fcr olan ve do\u011fru boyuttaki g\u00f6rselleri indirdi.\n    <\/li>\n<li><strong>CDN Entegrasyonu:<\/strong> Sitenin t\u00fcm statik varl\u0131klar\u0131 (g\u00f6rseller, CSS, JS) bir CDN (Cloudflare) \u00fczerinden sunulmaya ba\u015fland\u0131. Bu, hem g\u00f6rsellerin daha h\u0131zl\u0131 y\u00fcklenmesini sa\u011flad\u0131 hem de HTTP\/2 ve Brotli s\u0131k\u0131\u015ft\u0131rmas\u0131ndan otomatik olarak faydalan\u0131ld\u0131.<\/li>\n<li><strong>Font Optimizasyonu:<\/strong> Google Fonts yerine, siteye \u00f6zel kullan\u0131lan fontlar alt k\u00fcmelere ayr\u0131ld\u0131 ve self-host edildi. <code>font-display: swap<\/code> kullan\u0131ld\u0131 ve kritik font dosyalar\u0131 <code><link rel=\"preload\"><\/code> ile \u00f6n y\u00fcklendi.<\/li>\n<li><strong>Gereksiz JavaScript Temizli\u011fi:<\/strong> Kullan\u0131lmayan sosyal medya widget'lar\u0131 ve eski analiz kodlar\u0131 kald\u0131r\u0131ld\u0131. Etkile\u015fimli yorum formlar\u0131 gibi bile\u015fenler <code>client:visible<\/code> direktifiyle i\u015faretlenerek, sadece g\u00f6r\u00fcn\u00fcm alan\u0131na girdiklerinde y\u00fcklendi.<\/li>\n<\/ol>\n<p><strong>Sonu\u00e7:<\/strong> Bu optimizasyonlar sonucunda, blog sayfas\u0131ndaki ortalama HTTP istek say\u0131s\u0131 50-60'tan 10-15'e d\u00fc\u015ft\u00fc. Sayfa y\u00fckleme s\u00fcreleri mobil cihazlarda 1.5-2 saniyeye indi. Lighthouse skoru 90-95 aral\u0131\u011f\u0131na y\u00fckseldi. Kullan\u0131c\u0131 deneyimi \u00f6nemli \u00f6l\u00e7\u00fcde iyile\u015firken, blogun SEO performans\u0131 da olumlu etkilendi.<\/p>\n<h3>Vaka 2: Online Portf\u00f6y Sitesinde Mikro Optimizasyonlarla H\u0131z Kazan\u0131m\u0131<\/h3>\n<p><strong>Problem:<\/strong> Bir tasar\u0131mc\u0131n\u0131n online portf\u00f6y sitesi, g\u00f6rsel a\u011f\u0131rl\u0131kl\u0131 olmas\u0131na ra\u011fmen ba\u015flang\u0131\u00e7ta \u00e7ok b\u00fcy\u00fck bir istek say\u0131s\u0131 problemine sahip de\u011fildi (ortalama 25-30 istek). Ancak, tasar\u0131mc\u0131 daha da h\u0131zl\u0131 bir deneyim aray\u0131\u015f\u0131ndayd\u0131 ve Lighthouse skoru hala 80'lerdeydi. \u00d6zellikle ilk anlaml\u0131 boyama (First Meaningful Paint) s\u00fcresi uzundu.<\/p>\n<p><strong>Uygulanan \u00c7\u00f6z\u00fcmler:<\/strong><\/p>\n<ol>\n<li><strong>Kritik CSS \u0130nlining:<\/strong> Sayfan\u0131n ilk g\u00f6r\u00fcn\u00fcm alan\u0131 (above-the-fold content) i\u00e7in gerekli olan t\u00fcm CSS, k\u00fc\u00e7\u00fck bir <code><br \/>\n<style><\/code> etiketi i\u00e7inde do\u011frudan HTML'ye g\u00f6m\u00fcld\u00fc. Geri kalan CSS ayr\u0131 bir dosyada y\u00fcklendi. Bu, taray\u0131c\u0131n\u0131n harici CSS dosyas\u0131n\u0131 indirmesini bekleme ihtiyac\u0131n\u0131 ortadan kald\u0131rd\u0131.<\/li>\n<li><strong>\u0130kon Fontlar\u0131 Yerine SVG:<\/strong> Geleneksel ikon fontlar\u0131 (Font Awesome gibi) yerine, kullan\u0131lan ikonlar do\u011frudan SVG olarak sayfalara yerle\u015ftirildi veya k\u00fc\u00e7\u00fck bir SVG sprite dosyas\u0131 olu\u015fturularak tek bir istekte y\u00fcklendi. Bu, hem font isteklerini ortadan kald\u0131rd\u0131 hem de ikonlar\u0131n daha net g\u00f6r\u00fcnmesini sa\u011flad\u0131.\n<pre><code>\n<!-- SVG ikon \u00f6rne\u011fi -->\n<svg width=\"24\" height=\"24\" viewBox=\"0 0 24 24\" fill=\"currentColor\">\n  <path d=\"...\" \/>\n<\/svg>\n        <\/pre>\n<p><\/code>\n    <\/li>\n<li><strong>Google Analytics Beti\u011fi Erteleme:<\/strong> Google Analytics beti\u011fi <code>async<\/code> veya <code>defer<\/code> nitelikleriyle y\u00fcklense de, sayfan\u0131n sonuna yerle\u015ftirilerek ve m\u00fcmk\u00fcnse <code>requestIdleCallback<\/code> veya Intersection Observer ile tetiklenerek daha da erteleme yap\u0131ld\u0131. Bu, sayfa y\u00fckleme s\u0131ras\u0131nda kritik kaynaklar\u0131n \u00f6nceliklendirilmesini sa\u011flad\u0131.<\/li>\n<li><strong>K\u00fc\u00e7\u00fck G\u00f6rseller i\u00e7in Data URI:<\/strong> \u00c7ok k\u00fc\u00e7\u00fck, dekoratif g\u00f6rseller (\u00f6rne\u011fin arka plan desenleri, k\u00fc\u00e7\u00fck ikonlar) i\u00e7in Data URI kullan\u0131ld\u0131. Bu, bu k\u00fc\u00e7\u00fck g\u00f6rseller i\u00e7in ayr\u0131 HTTP isteklerini tamamen ortadan kald\u0131rd\u0131, ancak bu y\u00f6ntemin b\u00fcy\u00fck g\u00f6rseller i\u00e7in uygun olmad\u0131\u011f\u0131 unutulmamal\u0131d\u0131r.\n<pre><code>\n<!-- K\u00fc\u00e7\u00fck bir arka plan g\u00f6rseli i\u00e7in Data URI -->\n<div style=\"background-image: url('data:image\/svg+xml;base64,PHN2ZyB...');\"><\/div>\n        <\/pre>\n<p><\/code>\n    <\/li>\n<\/ol>\n<p><strong>Sonu\u00e7:<\/strong> Mikro optimizasyonlar sayesinde, portf\u00f6y sitesinin istek say\u0131s\u0131 25'ten 15'e d\u00fc\u015ft\u00fc. En \u00f6nemlisi, ilk anlaml\u0131 boyama s\u00fcresi 1 saniyenin alt\u0131na indi ve Lighthouse skoru 95+ seviyelerine \u00e7\u0131kt\u0131. Bu vaka, b\u00fcy\u00fck problemleri \u00e7\u00f6zmenin yan\u0131 s\u0131ra, k\u00fc\u00e7\u00fck detaylara dikkat etmenin de genel performans\u0131 nas\u0131l etkileyebilece\u011fini g\u00f6sterdi.<\/p>\n<p>Bu vaka analizleri, Astro'nun statik do\u011fas\u0131n\u0131n sundu\u011fu avantajlar\u0131, dikkatli optimizasyon stratejileriyle nas\u0131l birle\u015ftirilebilece\u011fini ve web sitelerinin kullan\u0131c\u0131lar i\u00e7in ne kadar h\u0131zl\u0131 ve verimli hale getirilebilece\u011fini ortaya koymaktad\u0131r. Her site farkl\u0131 olsa da, bu \u00f6rnekler, istek say\u0131s\u0131n\u0131 azaltma yolculu\u011funda size ilham verecektir.<\/p>\n<h2>Sonu\u00e7: Daha H\u0131zl\u0131 ve Verimli Bir Astro Sitesi \u0130\u00e7in Yol Haritas\u0131<\/h2>\n<p>A\u011f\u0131r web sitelerindeki istek say\u0131s\u0131n\u0131 azaltmak, Astro sitelerinizin potansiyelini tam olarak ortaya \u00e7\u0131karman\u0131n kritik bir ad\u0131m\u0131d\u0131r. Bu kapsaml\u0131 k\u0131lavuz boyunca, performans\u0131 olumsuz etkileyen temel fakt\u00f6rlerden ba\u015flayarak, g\u00f6rsellerden fontlara, CSS ve JavaScript optimizasyonlar\u0131ndan ileri d\u00fczey a\u011f protokol\u00fc tekniklerine ve Astro Islands gibi mimari \u00e7\u00f6z\u00fcmlere kadar bir\u00e7ok stratejiyi inceledik. Amac\u0131m\u0131z, web sitenizin sadece h\u0131zl\u0131 y\u00fcklenmesini sa\u011flamak de\u011fil, ayn\u0131 zamanda her bir kullan\u0131c\u0131n\u0131n kesintisiz ve keyifli bir deneyim ya\u015famas\u0131n\u0131 garantilemekti.<\/p>\n<p>\u00d6zetle, istek say\u0131s\u0131n\u0131 azaltma yolculu\u011funuzda \u015funlara odaklanmal\u0131s\u0131n\u0131z:<\/p>\n<ul>\n<li><strong>G\u00f6rsel Optimizasyonu:<\/strong> WebP\/AVIF formatlar\u0131, responsive g\u00f6rseller ve lazy loading ile gereksiz g\u00f6rsel isteklerini ortadan kald\u0131r\u0131n.<\/li>\n<li><strong>CSS ve JavaScript Optimizasyonu:<\/strong> Minifikasyon, kritik CSS inlining, tree shaking ve ak\u0131ll\u0131 kod b\u00f6lme ile istemci taraf\u0131 y\u00fck\u00fcn\u00fc azalt\u0131n.<\/li>\n<li><strong>Font Y\u00f6netimi:<\/strong> <code>font-display: swap<\/code>, self-hosting ve <code>preload<\/code> ile font y\u00fcklemesini h\u0131zland\u0131r\u0131n ve istekleri optimize edin.<\/li>\n<li><strong>Dinamik \u0130\u00e7erik i\u00e7in Derleme Zaman\u0131 Veri \u00c7ekimi:<\/strong> Astro'nun <code>getStaticPaths<\/code> gibi \u00f6zelliklerini kullanarak API isteklerini derleme zaman\u0131na ta\u015f\u0131y\u0131n.<\/li>\n<li><strong>Astro Islands ve Ak\u0131ll\u0131 Hidrasyon:<\/strong> <code>client:<\/code> direktifleriyle sadece ger\u00e7ekten etkile\u015fimli olmas\u0131 gereken bile\u015fenlerin JavaScript'ini y\u00fckleyerek istek say\u0131s\u0131n\u0131 minimuma indirin.<\/li>\n<li><strong>A\u011f Protokollerinden Yararlan\u0131n:<\/strong> HTTP\/2 ve HTTP\/3 destekli CDN'ler kullanarak her bir iste\u011fin daha verimli i\u015flenmesini sa\u011flay\u0131n.<\/li>\n<li><strong>Kaynak \u00d6n Y\u00fckleme:<\/strong> <code>preload<\/code>, <code>preconnect<\/code> ve <code>dns-prefetch<\/code> ile taray\u0131c\u0131ya kaynaklar hakk\u0131nda erken ipu\u00e7lar\u0131 verin.<\/li>\n<\/ul>\n<p>Unutmay\u0131n, performans optimizasyonu s\u00fcrekli bir s\u00fcre\u00e7tir. Sitenizi d\u00fczenli olarak PageSpeed Insights, Lighthouse gibi ara\u00e7larla analiz etmek, dar bo\u011fazlar\u0131 tespit etmek ve yeni optimizasyon f\u0131rsatlar\u0131n\u0131 ke\u015ffetmek i\u00e7in \u00f6nemlidir. Astro'nun sa\u011flad\u0131\u011f\u0131 g\u00fc\u00e7l\u00fc temel \u00fczerine in\u015fa edece\u011finiz bu stratejilerle, kullan\u0131c\u0131lar\u0131n\u0131za sadece statik de\u011fil, ayn\u0131 zamanda \"s\u00fcper h\u0131zl\u0131\" bir web deneyimi sunabilirsiniz. Performans odakl\u0131 yakla\u015f\u0131m\u0131n\u0131z, hem kullan\u0131c\u0131 memnuniyetini art\u0131racak hem de arama motoru s\u0131ralamalar\u0131n\u0131z \u00fczerinde olumlu bir etki yaratacakt\u0131r.<\/p>\n<h3>S\u0131k\u00e7a Sorulan Sorular<\/h3>\n<p>A\u015fa\u011f\u0131da, Astro sitelerinde istek say\u0131s\u0131n\u0131 azaltma konusunda s\u0131k\u00e7a kar\u015f\u0131la\u015f\u0131lan baz\u0131 sorular\u0131 ve cevaplar\u0131n\u0131 bulabilirsiniz.<\/p>\n<dl>\n<dt>Astro'da istek azaltma i\u00e7in hangi \u00f6ncelikli ad\u0131m\u0131 atmal\u0131y\u0131m?<\/dt>\n<dd>En b\u00fcy\u00fck ve en kolay kazan\u0131m genellikle g\u00f6rsel optimizasyonundan gelir. T\u00fcm g\u00f6rsellerinizi WebP\/AVIF format\u0131na d\u00f6n\u00fc\u015ft\u00fcrmek, responsive nitelikler eklemek ve <code>loading=\"lazy\"<\/code> kullanmak, ba\u015flang\u0131\u00e7ta atman\u0131z gereken en \u00f6nemli ad\u0131md\u0131r. Bu, genellikle istek say\u0131s\u0131n\u0131 ve sayfa boyutunu en \u00e7ok etkileyen fakt\u00f6rd\u00fcr.<\/dd>\n<dt>CDN kullanmak her zaman \u015fart m\u0131d\u0131r?<\/dt>\n<dd>B\u00fcy\u00fck veya uluslararas\u0131 bir kitleye hitap eden web siteleri i\u00e7in CDN (\u0130\u00e7erik Da\u011f\u0131t\u0131m A\u011f\u0131) kullanmak neredeyse bir zorunluluktur. K\u00fc\u00e7\u00fck, yerel veya ki\u015fisel siteler i\u00e7in do\u011frudan bir web sunucusundan hizmet vermek yeterli olabilir. Ancak, CDN'ler HTTP\/2, Brotli s\u0131k\u0131\u015ft\u0131rma ve geli\u015fmi\u015f \u00f6nbellekleme gibi otomatik optimizasyonlar sunarak genellikle her site i\u00e7in ciddi performans avantajlar\u0131 sa\u011flar.<\/dd>\n<dt>\u0130stek say\u0131s\u0131n\u0131 azalt\u0131rken kullan\u0131c\u0131 deneyimi nas\u0131l etkilenir?<\/dt>\n<dd>\u0130stek say\u0131s\u0131n\u0131 azaltma genellikle kullan\u0131c\u0131 deneyimini do\u011frudan olumlu etkiler. Daha az istek, daha h\u0131zl\u0131 y\u00fckleme s\u00fcreleri, daha ak\u0131c\u0131 sayfa ge\u00e7i\u015fleri ve daha az bant geni\u015fli\u011fi t\u00fcketimi demektir. Bu da \u00f6zellikle mobil cihazlarda veya yava\u015f internet ba\u011flant\u0131lar\u0131nda daha iyi bir kullan\u0131c\u0131 deneyimi sunar. Ancak, kritik olmayan baz\u0131 varl\u0131klar\u0131n (\u00f6rne\u011fin fontlar) ge\u00e7 y\u00fcklenmesi bazen \"flash of unstyled content\" (FOUC) veya \"flash of unstyled text\" (FOUT) gibi g\u00f6rsel de\u011fi\u015fimlere yol a\u00e7abilir. Bu durumlar\u0131 <code>font-display: swap<\/code> veya kritik CSS gibi tekniklerle y\u00f6netmek \u00f6nemlidir.<\/dd>\n<dt>Astro Islands'\u0131n performans \u00fczerindeki as\u0131l etkisi nedir?<\/dt>\n<dd>Astro Islands, JavaScript y\u00fck\u00fcn\u00fc ve dolay\u0131s\u0131yla ilgili JavaScript isteklerini dramatik bir \u015fekilde azaltarak performans\u0131 art\u0131r\u0131r. Varsay\u0131lan olarak Astro, sayfalar\u0131n\u0131za s\u0131f\u0131r JavaScript g\u00f6nderir. Sadece etkile\u015fimli olmas\u0131 gereken bile\u015fenlerin JavaScript'ini (k\u00fc\u00e7\u00fck \"adalar\" halinde) y\u00fckler. Bu, t\u00fcm sitenin JavaScript'ini indirmek yerine sadece belirli etkile\u015fimli par\u00e7alar\u0131n JavaScript'ini indirerek hem sayfa boyutunu hem de taray\u0131c\u0131n\u0131n i\u015f y\u00fck\u00fcn\u00fc \u00f6nemli \u00f6l\u00e7\u00fcde azalt\u0131r.<\/dd>\n<dt>K\u00fc\u00e7\u00fck bir site i\u00e7in bu optimizasyonlar ne kadar \u00f6nemlidir?<\/dt>\n<dd>K\u00fc\u00e7\u00fck siteler genellikle daha az kaynak ve istek i\u00e7erdi\u011finden, b\u00fcy\u00fck sitelerdeki kadar belirgin performans sorunlar\u0131 ya\u015famazlar. Ancak, bu optimizasyonlar\u0131 uygulamak her zaman iyi bir pratiktir. K\u00fc\u00e7\u00fck bir site bile mobil cihazlarda veya yava\u015f a\u011flarda yava\u015flayabilir. Ayr\u0131ca, iyi optimize edilmi\u015f bir k\u00fc\u00e7\u00fck site, gelecekte b\u00fcy\u00fcd\u00fc\u011f\u00fcnde kar\u015f\u0131la\u015fabilece\u011fi performans sorunlar\u0131na kar\u015f\u0131 ba\u015ftan sa\u011flam bir temel olu\u015fturur ve arama motoru s\u0131ralamalar\u0131na da olumlu katk\u0131 sa\u011flar.<\/dd>\n<\/dl>\n<p><\/body><\/p>\n","protected":false},"excerpt":{"rendered":"A\u011f\u0131r Astro sitelerinizdeki istek say\u0131s\u0131n\u0131 nas\u0131l azaltaca\u011f\u0131n\u0131z\u0131 \u00f6\u011frenin. Bu kapsaml\u0131 k\u0131lavuz, web sitenizin performans\u0131n\u0131 art\u0131rmak, y\u00fckleme s\u00fcrelerini k\u0131saltmak&hellip;","protected":false},"author":1,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"csco_page_header_type":"","csco_page_load_nextpost":"","csco_page_subscribe_form":"","csco_page_contact_form":"","footnotes":""},"categories":[1],"tags":[],"class_list":{"0":"post-32868","1":"post","2":"type-post","3":"status-publish","4":"format-standard","6":"category-genel","7":"cs-entry","8":"cs-video-wrap"},"yoast_head":"<!-- This site is optimized with the Yoast SEO Premium plugin v20.5 (Yoast SEO v25.3.1) - https:\/\/yoast.com\/wordpress\/plugins\/seo\/ -->\n<title>Astro Sitelerinde \u0130stek Say\u0131s\u0131n\u0131 Azaltma: A\u011f\u0131r Web Siteleri \u0130\u00e7in Bir K\u0131lavuz<\/title>\n<meta name=\"description\" content=\"A\u011f\u0131r Astro sitelerinizdeki istek say\u0131s\u0131n\u0131 nas\u0131l azaltaca\u011f\u0131n\u0131z\u0131 \u00f6\u011frenin. Bu kapsaml\u0131 k\u0131lavuz, web sitenizin performans\u0131n\u0131 art\u0131rmak, y\u00fckleme s\u00fcrelerini k\u0131saltmak ve kullan\u0131c\u0131 deneyimini \u00f6nemli \u00f6l\u00e7\u00fcde iyile\u015ftirmek i\u00e7in pratik stratejiler ve ileri d\u00fczey teknikler sunar.\" \/>\n<meta name=\"robots\" content=\"index, follow, max-snippet:-1, max-image-preview:large, max-video-preview:-1\" \/>\n<link rel=\"canonical\" href=\"https:\/\/fatihsoysal.com\/blog\/astro-sitelerinde-istek-sayisini-azaltma-agir-web-siteleri-icin-bir-kilavuz\/\" \/>\n<meta property=\"og:locale\" content=\"tr_TR\" \/>\n<meta property=\"og:type\" content=\"article\" \/>\n<meta property=\"og:title\" content=\"Astro Sitelerinde \u0130stek Say\u0131s\u0131n\u0131 Azaltma: A\u011f\u0131r Web Siteleri \u0130\u00e7in Bir K\u0131lavuz\" \/>\n<meta property=\"og:description\" content=\"A\u011f\u0131r Astro sitelerinizdeki istek say\u0131s\u0131n\u0131 nas\u0131l azaltaca\u011f\u0131n\u0131z\u0131 \u00f6\u011frenin. Bu kapsaml\u0131 k\u0131lavuz, web sitenizin performans\u0131n\u0131 art\u0131rmak, y\u00fckleme s\u00fcrelerini k\u0131saltmak ve kullan\u0131c\u0131 deneyimini \u00f6nemli \u00f6l\u00e7\u00fcde iyile\u015ftirmek i\u00e7in pratik stratejiler ve ileri d\u00fczey teknikler sunar.\" \/>\n<meta property=\"og:url\" content=\"https:\/\/fatihsoysal.com\/blog\/astro-sitelerinde-istek-sayisini-azaltma-agir-web-siteleri-icin-bir-kilavuz\/\" \/>\n<meta property=\"og:site_name\" content=\"Kodlar\u0131n Gizemli D\u00fcnyas\u0131\" \/>\n<meta property=\"article:published_time\" content=\"2025-10-26T18:01:41+00:00\" \/>\n<meta name=\"author\" content=\"Fatih Soysal\" \/>\n<meta name=\"twitter:card\" content=\"summary_large_image\" \/>\n<meta name=\"twitter:label1\" content=\"Yazan:\" \/>\n\t<meta name=\"twitter:data1\" content=\"Fatih Soysal\" \/>\n\t<meta name=\"twitter:label2\" content=\"Tahmini okuma s\u00fcresi\" \/>\n\t<meta name=\"twitter:data2\" content=\"9 dakika\" \/>\n<script type=\"application\/ld+json\" class=\"yoast-schema-graph\">{\"@context\":\"https:\/\/schema.org\",\"@graph\":[{\"@type\":\"Article\",\"@id\":\"https:\/\/fatihsoysal.com\/blog\/astro-sitelerinde-istek-sayisini-azaltma-agir-web-siteleri-icin-bir-kilavuz\/#article\",\"isPartOf\":{\"@id\":\"https:\/\/fatihsoysal.com\/blog\/astro-sitelerinde-istek-sayisini-azaltma-agir-web-siteleri-icin-bir-kilavuz\/\"},\"author\":{\"name\":\"Fatih Soysal\",\"@id\":\"https:\/\/fatihsoysal.com\/blog\/#\/schema\/person\/002a254750921dcfd568a99e48240dd1\"},\"headline\":\"Astro Sitelerinde \u0130stek Say\u0131s\u0131n\u0131 Azaltma: A\u011f\u0131r Web Siteleri \u0130\u00e7in Bir K\u0131lavuz\",\"datePublished\":\"2025-10-26T18:01:41+00:00\",\"mainEntityOfPage\":{\"@id\":\"https:\/\/fatihsoysal.com\/blog\/astro-sitelerinde-istek-sayisini-azaltma-agir-web-siteleri-icin-bir-kilavuz\/\"},\"wordCount\":5690,\"commentCount\":0,\"publisher\":{\"@id\":\"https:\/\/fatihsoysal.com\/blog\/#\/schema\/person\/002a254750921dcfd568a99e48240dd1\"},\"inLanguage\":\"tr\",\"potentialAction\":[{\"@type\":\"CommentAction\",\"name\":\"Comment\",\"target\":[\"https:\/\/fatihsoysal.com\/blog\/astro-sitelerinde-istek-sayisini-azaltma-agir-web-siteleri-icin-bir-kilavuz\/#respond\"]}],\"copyrightYear\":\"2025\",\"copyrightHolder\":{\"@id\":\"https:\/\/fatihsoysal.com\/blog\/#organization\"}},{\"@type\":\"WebPage\",\"@id\":\"https:\/\/fatihsoysal.com\/blog\/astro-sitelerinde-istek-sayisini-azaltma-agir-web-siteleri-icin-bir-kilavuz\/\",\"url\":\"https:\/\/fatihsoysal.com\/blog\/astro-sitelerinde-istek-sayisini-azaltma-agir-web-siteleri-icin-bir-kilavuz\/\",\"name\":\"Astro Sitelerinde \u0130stek Say\u0131s\u0131n\u0131 Azaltma: A\u011f\u0131r Web Siteleri \u0130\u00e7in Bir K\u0131lavuz\",\"isPartOf\":{\"@id\":\"https:\/\/fatihsoysal.com\/blog\/#website\"},\"datePublished\":\"2025-10-26T18:01:41+00:00\",\"description\":\"A\u011f\u0131r Astro sitelerinizdeki istek say\u0131s\u0131n\u0131 nas\u0131l azaltaca\u011f\u0131n\u0131z\u0131 \u00f6\u011frenin. Bu kapsaml\u0131 k\u0131lavuz, web sitenizin performans\u0131n\u0131 art\u0131rmak, y\u00fckleme s\u00fcrelerini k\u0131saltmak ve kullan\u0131c\u0131 deneyimini \u00f6nemli \u00f6l\u00e7\u00fcde iyile\u015ftirmek i\u00e7in pratik stratejiler ve ileri d\u00fczey teknikler sunar.\",\"breadcrumb\":{\"@id\":\"https:\/\/fatihsoysal.com\/blog\/astro-sitelerinde-istek-sayisini-azaltma-agir-web-siteleri-icin-bir-kilavuz\/#breadcrumb\"},\"inLanguage\":\"tr\",\"potentialAction\":[{\"@type\":\"ReadAction\",\"target\":[\"https:\/\/fatihsoysal.com\/blog\/astro-sitelerinde-istek-sayisini-azaltma-agir-web-siteleri-icin-bir-kilavuz\/\"]}]},{\"@type\":\"BreadcrumbList\",\"@id\":\"https:\/\/fatihsoysal.com\/blog\/astro-sitelerinde-istek-sayisini-azaltma-agir-web-siteleri-icin-bir-kilavuz\/#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"Anasayfa\",\"item\":\"https:\/\/fatihsoysal.com\/blog\/\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"Astro Sitelerinde \u0130stek Say\u0131s\u0131n\u0131 Azaltma: A\u011f\u0131r Web Siteleri \u0130\u00e7in Bir K\u0131lavuz\"}]},{\"@type\":\"WebSite\",\"@id\":\"https:\/\/fatihsoysal.com\/blog\/#website\",\"url\":\"https:\/\/fatihsoysal.com\/blog\/\",\"name\":\"Fatihsoysal.com\",\"description\":\"Blog - Yaz\u0131l\u0131m D\u00fcnyas\u0131 Tecr\u00fcbelerim\",\"publisher\":{\"@id\":\"https:\/\/fatihsoysal.com\/blog\/#\/schema\/person\/002a254750921dcfd568a99e48240dd1\"},\"potentialAction\":[{\"@type\":\"SearchAction\",\"target\":{\"@type\":\"EntryPoint\",\"urlTemplate\":\"https:\/\/fatihsoysal.com\/blog\/?s={search_term_string}\"},\"query-input\":{\"@type\":\"PropertyValueSpecification\",\"valueRequired\":true,\"valueName\":\"search_term_string\"}}],\"inLanguage\":\"tr\"},{\"@type\":[\"Person\",\"Organization\"],\"@id\":\"https:\/\/fatihsoysal.com\/blog\/#\/schema\/person\/002a254750921dcfd568a99e48240dd1\",\"name\":\"Fatih Soysal\",\"image\":{\"@type\":\"ImageObject\",\"inLanguage\":\"tr\",\"@id\":\"https:\/\/fatihsoysal.com\/blog\/#\/schema\/person\/image\/\",\"url\":\"https:\/\/fatihsoysal.com\/blog\/wp-content\/uploads\/2024\/04\/cropped-replicate-prediction-3kgg1hgjn5rgp0cf0p5tr0jw7w-1.png\",\"contentUrl\":\"https:\/\/fatihsoysal.com\/blog\/wp-content\/uploads\/2024\/04\/cropped-replicate-prediction-3kgg1hgjn5rgp0cf0p5tr0jw7w-1.png\",\"width\":512,\"height\":512,\"caption\":\"Fatih Soysal\"},\"logo\":{\"@id\":\"https:\/\/fatihsoysal.com\/blog\/#\/schema\/person\/image\/\"},\"description\":\"Kullan\u0131m ve kodlama m\u00fckemmeliyetini odak alan uygulamalar olu\u015fturma deneyimine sahip, profesyonel olarak 15+ y\u0131l \u00fczeri deneyime sahip bir yaz\u0131l\u0131m m\u00fchendisi.\",\"url\":\"https:\/\/fatihsoysal.com\/blog\/author\/fatihsoysal\/\"}]}<\/script>\n<!-- \/ Yoast SEO Premium plugin. -->","yoast_head_json":{"title":"Astro Sitelerinde \u0130stek Say\u0131s\u0131n\u0131 Azaltma: A\u011f\u0131r Web Siteleri \u0130\u00e7in Bir K\u0131lavuz","description":"A\u011f\u0131r Astro sitelerinizdeki istek say\u0131s\u0131n\u0131 nas\u0131l azaltaca\u011f\u0131n\u0131z\u0131 \u00f6\u011frenin. Bu kapsaml\u0131 k\u0131lavuz, web sitenizin performans\u0131n\u0131 art\u0131rmak, y\u00fckleme s\u00fcrelerini k\u0131saltmak ve kullan\u0131c\u0131 deneyimini \u00f6nemli \u00f6l\u00e7\u00fcde iyile\u015ftirmek i\u00e7in pratik stratejiler ve ileri d\u00fczey teknikler sunar.","robots":{"index":"index","follow":"follow","max-snippet":"max-snippet:-1","max-image-preview":"max-image-preview:large","max-video-preview":"max-video-preview:-1"},"canonical":"https:\/\/fatihsoysal.com\/blog\/astro-sitelerinde-istek-sayisini-azaltma-agir-web-siteleri-icin-bir-kilavuz\/","og_locale":"tr_TR","og_type":"article","og_title":"Astro Sitelerinde \u0130stek Say\u0131s\u0131n\u0131 Azaltma: A\u011f\u0131r Web Siteleri \u0130\u00e7in Bir K\u0131lavuz","og_description":"A\u011f\u0131r Astro sitelerinizdeki istek say\u0131s\u0131n\u0131 nas\u0131l azaltaca\u011f\u0131n\u0131z\u0131 \u00f6\u011frenin. Bu kapsaml\u0131 k\u0131lavuz, web sitenizin performans\u0131n\u0131 art\u0131rmak, y\u00fckleme s\u00fcrelerini k\u0131saltmak ve kullan\u0131c\u0131 deneyimini \u00f6nemli \u00f6l\u00e7\u00fcde iyile\u015ftirmek i\u00e7in pratik stratejiler ve ileri d\u00fczey teknikler sunar.","og_url":"https:\/\/fatihsoysal.com\/blog\/astro-sitelerinde-istek-sayisini-azaltma-agir-web-siteleri-icin-bir-kilavuz\/","og_site_name":"Kodlar\u0131n Gizemli D\u00fcnyas\u0131","article_published_time":"2025-10-26T18:01:41+00:00","author":"Fatih Soysal","twitter_card":"summary_large_image","twitter_misc":{"Yazan:":"Fatih Soysal","Tahmini okuma s\u00fcresi":"9 dakika"},"schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":"Article","@id":"https:\/\/fatihsoysal.com\/blog\/astro-sitelerinde-istek-sayisini-azaltma-agir-web-siteleri-icin-bir-kilavuz\/#article","isPartOf":{"@id":"https:\/\/fatihsoysal.com\/blog\/astro-sitelerinde-istek-sayisini-azaltma-agir-web-siteleri-icin-bir-kilavuz\/"},"author":{"name":"Fatih Soysal","@id":"https:\/\/fatihsoysal.com\/blog\/#\/schema\/person\/002a254750921dcfd568a99e48240dd1"},"headline":"Astro Sitelerinde \u0130stek Say\u0131s\u0131n\u0131 Azaltma: A\u011f\u0131r Web Siteleri \u0130\u00e7in Bir K\u0131lavuz","datePublished":"2025-10-26T18:01:41+00:00","mainEntityOfPage":{"@id":"https:\/\/fatihsoysal.com\/blog\/astro-sitelerinde-istek-sayisini-azaltma-agir-web-siteleri-icin-bir-kilavuz\/"},"wordCount":5690,"commentCount":0,"publisher":{"@id":"https:\/\/fatihsoysal.com\/blog\/#\/schema\/person\/002a254750921dcfd568a99e48240dd1"},"inLanguage":"tr","potentialAction":[{"@type":"CommentAction","name":"Comment","target":["https:\/\/fatihsoysal.com\/blog\/astro-sitelerinde-istek-sayisini-azaltma-agir-web-siteleri-icin-bir-kilavuz\/#respond"]}],"copyrightYear":"2025","copyrightHolder":{"@id":"https:\/\/fatihsoysal.com\/blog\/#organization"}},{"@type":"WebPage","@id":"https:\/\/fatihsoysal.com\/blog\/astro-sitelerinde-istek-sayisini-azaltma-agir-web-siteleri-icin-bir-kilavuz\/","url":"https:\/\/fatihsoysal.com\/blog\/astro-sitelerinde-istek-sayisini-azaltma-agir-web-siteleri-icin-bir-kilavuz\/","name":"Astro Sitelerinde \u0130stek Say\u0131s\u0131n\u0131 Azaltma: A\u011f\u0131r Web Siteleri \u0130\u00e7in Bir K\u0131lavuz","isPartOf":{"@id":"https:\/\/fatihsoysal.com\/blog\/#website"},"datePublished":"2025-10-26T18:01:41+00:00","description":"A\u011f\u0131r Astro sitelerinizdeki istek say\u0131s\u0131n\u0131 nas\u0131l azaltaca\u011f\u0131n\u0131z\u0131 \u00f6\u011frenin. Bu kapsaml\u0131 k\u0131lavuz, web sitenizin performans\u0131n\u0131 art\u0131rmak, y\u00fckleme s\u00fcrelerini k\u0131saltmak ve kullan\u0131c\u0131 deneyimini \u00f6nemli \u00f6l\u00e7\u00fcde iyile\u015ftirmek i\u00e7in pratik stratejiler ve ileri d\u00fczey teknikler sunar.","breadcrumb":{"@id":"https:\/\/fatihsoysal.com\/blog\/astro-sitelerinde-istek-sayisini-azaltma-agir-web-siteleri-icin-bir-kilavuz\/#breadcrumb"},"inLanguage":"tr","potentialAction":[{"@type":"ReadAction","target":["https:\/\/fatihsoysal.com\/blog\/astro-sitelerinde-istek-sayisini-azaltma-agir-web-siteleri-icin-bir-kilavuz\/"]}]},{"@type":"BreadcrumbList","@id":"https:\/\/fatihsoysal.com\/blog\/astro-sitelerinde-istek-sayisini-azaltma-agir-web-siteleri-icin-bir-kilavuz\/#breadcrumb","itemListElement":[{"@type":"ListItem","position":1,"name":"Anasayfa","item":"https:\/\/fatihsoysal.com\/blog\/"},{"@type":"ListItem","position":2,"name":"Astro Sitelerinde \u0130stek Say\u0131s\u0131n\u0131 Azaltma: A\u011f\u0131r Web Siteleri \u0130\u00e7in Bir K\u0131lavuz"}]},{"@type":"WebSite","@id":"https:\/\/fatihsoysal.com\/blog\/#website","url":"https:\/\/fatihsoysal.com\/blog\/","name":"Fatihsoysal.com","description":"Blog - Yaz\u0131l\u0131m D\u00fcnyas\u0131 Tecr\u00fcbelerim","publisher":{"@id":"https:\/\/fatihsoysal.com\/blog\/#\/schema\/person\/002a254750921dcfd568a99e48240dd1"},"potentialAction":[{"@type":"SearchAction","target":{"@type":"EntryPoint","urlTemplate":"https:\/\/fatihsoysal.com\/blog\/?s={search_term_string}"},"query-input":{"@type":"PropertyValueSpecification","valueRequired":true,"valueName":"search_term_string"}}],"inLanguage":"tr"},{"@type":["Person","Organization"],"@id":"https:\/\/fatihsoysal.com\/blog\/#\/schema\/person\/002a254750921dcfd568a99e48240dd1","name":"Fatih Soysal","image":{"@type":"ImageObject","inLanguage":"tr","@id":"https:\/\/fatihsoysal.com\/blog\/#\/schema\/person\/image\/","url":"https:\/\/fatihsoysal.com\/blog\/wp-content\/uploads\/2024\/04\/cropped-replicate-prediction-3kgg1hgjn5rgp0cf0p5tr0jw7w-1.png","contentUrl":"https:\/\/fatihsoysal.com\/blog\/wp-content\/uploads\/2024\/04\/cropped-replicate-prediction-3kgg1hgjn5rgp0cf0p5tr0jw7w-1.png","width":512,"height":512,"caption":"Fatih Soysal"},"logo":{"@id":"https:\/\/fatihsoysal.com\/blog\/#\/schema\/person\/image\/"},"description":"Kullan\u0131m ve kodlama m\u00fckemmeliyetini odak alan uygulamalar olu\u015fturma deneyimine sahip, profesyonel olarak 15+ y\u0131l \u00fczeri deneyime sahip bir yaz\u0131l\u0131m m\u00fchendisi.","url":"https:\/\/fatihsoysal.com\/blog\/author\/fatihsoysal\/"}]}},"yoast_meta":{"yoast_wpseo_title":"","yoast_wpseo_metadesc":"","yoast_wpseo_canonical":""},"amp_enabled":true,"_links":{"self":[{"href":"https:\/\/fatihsoysal.com\/blog\/wp-json\/wp\/v2\/posts\/32868","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/fatihsoysal.com\/blog\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/fatihsoysal.com\/blog\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/fatihsoysal.com\/blog\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/fatihsoysal.com\/blog\/wp-json\/wp\/v2\/comments?post=32868"}],"version-history":[{"count":0,"href":"https:\/\/fatihsoysal.com\/blog\/wp-json\/wp\/v2\/posts\/32868\/revisions"}],"wp:attachment":[{"href":"https:\/\/fatihsoysal.com\/blog\/wp-json\/wp\/v2\/media?parent=32868"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/fatihsoysal.com\/blog\/wp-json\/wp\/v2\/categories?post=32868"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/fatihsoysal.com\/blog\/wp-json\/wp\/v2\/tags?post=32868"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}