[{"data":1,"prerenderedAt":-1},["ShallowReactive",2],{"post-web-sitem-neden-yavasti-nuxt-3-ile-90-hiz-artisi-saglayan-sirlarla-tanisin":3},{"data":4,"meta":282},[5],{"id":6,"documentId":7,"title":8,"slug":9,"description":10,"content":11,"date":228,"admin":229,"createdAt":230,"updatedAt":231,"publishedAt":232,"image":233},13,"c9wqfib4cxmgr24b19qi64hm","Web Sitem Neden Yavaştı? Nuxt 3 ile %90 Hız Artışı Sağlayan Sırlarla Tanışın!","web-sitem-neden-yavasti-nuxt-3-ile-90-hiz-artisi-saglayan-sirlarla-tanisin","Yavaş portfolyo sitemi Nuxt 3, Strapi & Vercel'le %90 hızlandırdım! ISR, Frankfurt region, NuxtImg sırları ve Lighthouse skorlarımı paylaşacağım. Sen de uygula! 🚀 #WebPerf",[12,18,22,28,32,35,42,45,51,54,58,61,65,69,72,78,83,86,90,93,97,105,108,112,116,119,123,128,131,147,150,154,160,166,221,224],{"type":13,"children":14},"paragraph",[15],{"text":16,"type":17},"Portfolyo sitem aleynaertin.com'u frontend developer olarak ilk deploy ettiğimde, her şey mükemmel görünüyordu. Ama Türkiye'den erişen ziyaretçilerim sayfaların yüklenmesini beklerken sıkılıp kaçıyordu. Lighthouse skorlarım berbattı: LCP 4 saniye civarı, TTFB 2-3 saniye, toplam yükleme süresi 8+ saniye. Kullanıcı deneyimi faciası! Neyse ki Nuxt 3, Strapi, Vercel üçlüsünde derinlemesine optimizasyon yaparak site hızını %90 artırdım. İşte adım adım nasıl yaptım.","text",{"type":13,"children":19},[20],{"text":21,"type":17},"",{"type":23,"level":24,"children":25},"heading",3,[26],{"text":27,"type":17},"Vercel Region'ı Frankfurt'a Taşıyarak Latency'yi Ezdim",{"type":13,"children":29},[30],{"text":31,"type":17},"Türkiye'den ABD (Washington) bölgesine ping atmak, TTFB'yi öldürüyordu – ortalama 200-300ms gecikme. Vercel'in varsayılan Edge ağı ABD odaklı olunca, CDN edge'leri uzak kalıyordu.",{"type":13,"children":33},[34],{"text":21,"type":17},{"type":13,"children":36},[37,40],{"bold":38,"text":39,"type":17},true,"Çözüm: ",{"text":41,"type":17},"Proje ayarlarından region'ı fra1 (Frankfurt) olarak değiştirdim. Bu, Türkiye'ye 50-80ms mesafede bir edge sağladı. Sonuç? TTFB anında %60 düştü.",{"type":13,"children":43},[44],{"text":21,"type":17},{"type":46,"children":47,"language":50},"code",[48],{"text":49,"type":17},"# Vercel CLI ile\nvercel --prod --region fra1\n","bash",{"type":13,"children":52},[53],{"text":21,"type":17},{"type":13,"children":55},[56],{"text":57,"type":17},"Vercel dashboard'undan da Environments > Regions sekmesinden fra1 seçtim. Artık hydration bile daha hızlı!",{"type":13,"children":59},[60],{"text":21,"type":17},{"type":23,"level":24,"children":62},[63],{"text":64,"type":17},"Hybrid Rendering ve ISR ile TTFB'yi Devrimleştirdim",{"type":13,"children":66},[67],{"text":68,"type":17},"Nuxt 3'ün nitro.routeRules özelliğiyle sayfaları ISR moduna aldım. Strapi'den (Render'da host) dinamik veri çekiyorduk ama her request'te full SSR latency'si yaşıyorduk.",{"type":13,"children":70},[71],{"text":21,"type":17},{"type":13,"children":73},[74,76],{"code":38,"text":75,"type":17},"nuxt.config.ts",{"text":77,"type":17},"'ye şu kuralları ekledim:",{"type":46,"children":79,"language":82},[80],{"text":81,"type":17},"export default defineNuxtConfig({\n  nitro: {\n    routeRules: {\n      '\u002F': { isr: 3600 }, \u002F\u002F Ana sayfa 1 saatte bir regenerate\n      '\u002Fprojeler\u002F**': { isr: true }, \u002F\u002F Proje sayfaları on-demand ISR\n      '\u002Fblog\u002F**': { isr: 3600 * 24 } \u002F\u002F Blog günlük yenilenir\n    }\n  }\n})","typescript",{"type":13,"children":84},[85],{"text":21,"type":17},{"type":13,"children":87},[88],{"text":89,"type":17},"ISR ile statik shell önceden hazırlandı, Strapi fetch'i arka planda. TTFB 2.5s'den 250ms'ye indi – devrimsel! Hybrid rendering sayesinde SEO dostu static + dinamik kaldı.",{"type":13,"children":91},[92],{"text":21,"type":17},{"type":23,"level":24,"children":94},[95],{"text":96,"type":17},"Cloudinary + NuxtImg ile LCP'yi Roketledim",{"type":13,"children":98},[99,101,103],{"text":100,"type":17},"Standart ",{"code":38,"text":102,"type":17},"\u003Cimg>",{"text":104,"type":17},"'ler LCP'yi mahvediyordu: Büyük hero görselleri fetch priority'siz yüklenmiyordu, lazy loading çakışması vardı.",{"type":13,"children":106},[107],{"text":21,"type":17},{"type":13,"children":109},[110],{"text":111,"type":17},"@nuxt\u002Fimage modülünü entegre ettim, Cloudinary provider ile:",{"type":46,"children":113,"language":82},[114],{"text":115,"type":17},"\u002F\u002F nuxt.config.ts\nexport default defineNuxtConfig({\n  image: {\n    provider: 'cloudinary',\n    cloudinary: {\n      baseURL: 'https:\u002F\u002Fres.cloudinary.com\u002Fyour-account\u002Fimage\u002Fupload\u002F'\n    }\n  }\n})",{"type":13,"children":117},[118],{"text":21,"type":17},{"type":13,"children":120},[121],{"text":122,"type":17},"Şablonlarda:",{"type":46,"children":124,"language":127},[125],{"text":126,"type":17},"\u003CNuxtImg\n  src=\"\u002Fhero.jpg\"\n  alt=\"Aleyna Ertin Portfolyo\"\n  sizes=\"100vw\"\n  :format=\"['webp', 'avif']\"\n  fetchpriority=\"high\"\n  loading=\"eager\"\n  width=\"1200\"\n  height=\"600\"\n\u002F>","plaintext",{"type":13,"children":129},[130],{"text":21,"type":17},{"type":13,"children":132},[133,135,137,139,141,143,145],{"text":134,"type":17},"LCP görseline ",{"code":38,"text":136,"type":17},"fetchpriority=\"high\"",{"text":138,"type":17}," ve ",{"code":38,"text":140,"type":17},"loading=\"eager\"",{"text":142,"type":17}," verdim (lazy çelişkisi yok artık). Küçük görsellerde ",{"code":38,"text":144,"type":17},"loading=\"lazy\"",{"text":146,"type":17},". WebP\u002FAVIF otomatik, boyutlar optimize. LCP 4s'den 0.8s'ye!",{"type":13,"children":148},[149],{"text":21,"type":17},{"type":23,"level":24,"children":151},[152],{"text":153,"type":17},"Sonuçlar? Lighthouse Patladı!",{"type":13,"children":155},[156,158],{"bold":38,"text":157,"type":17},"Öncesi",{"text":159,"type":17},": Performance 45, LCP 4.2s, TTFB 2.8s.",{"type":13,"children":161},[162,164],{"bold":38,"text":163,"type":17},"Sonrası",{"text":165,"type":17},": 95, LCP 0.9s, TTFB 300ms. %90 hız artışı!",{"type":167,"image":168,"children":219},"image",{"ext":169,"url":170,"hash":171,"mime":172,"name":173,"size":174,"width":175,"height":176,"caption":177,"formats":178,"provider":215,"createdAt":216,"updatedAt":217,"previewUrl":177,"alternativeText":173,"provider_metadata":218},".png","https:\u002F\u002Fres.cloudinary.com\u002Fdgbo8yrxg\u002Fimage\u002Fupload\u002Fv1776516950\u002Fnuxt_3_performans_iyilesme_tablosu_c8fd60e0ee.png","nuxt_3_performans_iyilesme_tablosu_c8fd60e0ee","image\u002Fpng","nuxt-3-performans-iyilesme-tablosu.png",239.32,2168,1228,null,{"large":179,"small":188,"medium":197,"thumbnail":206},{"ext":169,"url":180,"hash":181,"mime":172,"name":182,"path":177,"size":183,"width":184,"height":185,"sizeInBytes":186,"provider_metadata":187},"https:\u002F\u002Fres.cloudinary.com\u002Fdgbo8yrxg\u002Fimage\u002Fupload\u002Fv1776516951\u002Flarge_nuxt_3_performans_iyilesme_tablosu_c8fd60e0ee.png","large_nuxt_3_performans_iyilesme_tablosu_c8fd60e0ee","large_nuxt-3-performans-iyilesme-tablosu.png",304.15,1000,566,304149,{"public_id":181,"resource_type":167},{"ext":169,"url":189,"hash":190,"mime":172,"name":191,"path":177,"size":192,"width":193,"height":194,"sizeInBytes":195,"provider_metadata":196},"https:\u002F\u002Fres.cloudinary.com\u002Fdgbo8yrxg\u002Fimage\u002Fupload\u002Fv1776516951\u002Fsmall_nuxt_3_performans_iyilesme_tablosu_c8fd60e0ee.png","small_nuxt_3_performans_iyilesme_tablosu_c8fd60e0ee","small_nuxt-3-performans-iyilesme-tablosu.png",90.88,500,283,90878,{"public_id":190,"resource_type":167},{"ext":169,"url":198,"hash":199,"mime":172,"name":200,"path":177,"size":201,"width":202,"height":203,"sizeInBytes":204,"provider_metadata":205},"https:\u002F\u002Fres.cloudinary.com\u002Fdgbo8yrxg\u002Fimage\u002Fupload\u002Fv1776516951\u002Fmedium_nuxt_3_performans_iyilesme_tablosu_c8fd60e0ee.png","medium_nuxt_3_performans_iyilesme_tablosu_c8fd60e0ee","medium_nuxt-3-performans-iyilesme-tablosu.png",173.66,750,425,173662,{"public_id":199,"resource_type":167},{"ext":169,"url":207,"hash":208,"mime":172,"name":209,"path":177,"size":210,"width":211,"height":212,"sizeInBytes":213,"provider_metadata":214},"https:\u002F\u002Fres.cloudinary.com\u002Fdgbo8yrxg\u002Fimage\u002Fupload\u002Fv1776516950\u002Fthumbnail_nuxt_3_performans_iyilesme_tablosu_c8fd60e0ee.png","thumbnail_nuxt_3_performans_iyilesme_tablosu_c8fd60e0ee","thumbnail_nuxt-3-performans-iyilesme-tablosu.png",30.46,245,139,30458,{"public_id":208,"resource_type":167},"cloudinary","2026-04-18T12:55:52.304Z","2026-04-18T12:56:11.029Z",{"public_id":171,"resource_type":167},[220],{"text":21,"type":17},{"type":13,"children":222},[223],{"text":21,"type":17},{"type":13,"children":225},[226],{"text":227,"type":17},"aleynaertin.com şimdi roket! Senin sitende ne sorun var, söyle de birlikte çözelim.","2026-04-18","Aleyna Ertin","2026-04-18T12:29:45.654Z","2026-04-18T13:12:42.160Z","2026-04-18T13:12:42.329Z",{"id":234,"documentId":235,"name":236,"alternativeText":177,"caption":177,"focalPoint":177,"width":237,"height":238,"formats":239,"hash":275,"ext":241,"mime":244,"size":276,"url":277,"previewUrl":177,"provider":215,"provider_metadata":278,"createdAt":279,"updatedAt":280,"publishedAt":281},7,"eghx6a3wnbp28dib2j3cyxh4","web-sitem-neden-yavasti-nuxt-3-ile-90-hiz-artisi-saglayan-sirlarla-tanisin.jpg",1920,1358,{"large":240,"small":250,"medium":258,"thumbnail":266},{"ext":241,"url":242,"hash":243,"mime":244,"name":245,"path":177,"size":246,"width":184,"height":247,"sizeInBytes":248,"provider_metadata":249},".jpg","https:\u002F\u002Fres.cloudinary.com\u002Fdgbo8yrxg\u002Fimage\u002Fupload\u002Fv1774741341\u002Flarge_aleyna_11_30346b87e7.jpg","large_aleyna_11_30346b87e7","image\u002Fjpeg","large_aleyna-11.jpg",243.6,707,243599,{"public_id":243,"resource_type":167},{"ext":241,"url":251,"hash":252,"mime":244,"name":253,"path":177,"size":254,"width":193,"height":255,"sizeInBytes":256,"provider_metadata":257},"https:\u002F\u002Fres.cloudinary.com\u002Fdgbo8yrxg\u002Fimage\u002Fupload\u002Fv1774741341\u002Fsmall_aleyna_11_30346b87e7.jpg","small_aleyna_11_30346b87e7","small_aleyna-11.jpg",52.69,354,52688,{"public_id":252,"resource_type":167},{"ext":241,"url":259,"hash":260,"mime":244,"name":261,"path":177,"size":262,"width":202,"height":263,"sizeInBytes":264,"provider_metadata":265},"https:\u002F\u002Fres.cloudinary.com\u002Fdgbo8yrxg\u002Fimage\u002Fupload\u002Fv1774741342\u002Fmedium_aleyna_11_30346b87e7.jpg","medium_aleyna_11_30346b87e7","medium_aleyna-11.jpg",135.61,530,135607,{"public_id":260,"resource_type":167},{"ext":241,"url":267,"hash":268,"mime":244,"name":269,"path":177,"size":270,"width":271,"height":272,"sizeInBytes":273,"provider_metadata":274},"https:\u002F\u002Fres.cloudinary.com\u002Fdgbo8yrxg\u002Fimage\u002Fupload\u002Fv1774741341\u002Fthumbnail_aleyna_11_30346b87e7.jpg","thumbnail_aleyna_11_30346b87e7","thumbnail_aleyna-11.jpg",7.24,221,156,7242,{"public_id":268,"resource_type":167},"aleyna_11_30346b87e7",685.53,"https:\u002F\u002Fres.cloudinary.com\u002Fdgbo8yrxg\u002Fimage\u002Fupload\u002Fv1774741341\u002Faleyna_11_30346b87e7.jpg",{"public_id":275,"resource_type":167},"2026-03-28T23:42:24.878Z","2026-04-18T13:12:32.348Z","2026-03-28T23:42:24.879Z",{"pagination":283},{"page":284,"pageSize":285,"pageCount":284,"total":284},1,25]