[{"data":1,"prerenderedAt":2410},["ShallowReactive",2],{"article-alternates":3,"article-\u002Fde\u002Ftech\u002Fnuxt3-cloudflare-pages-lcp-optimierung":11},{"i18nKey":4,"paths":5},"tech-001-2026-05",{"de":6,"es":7,"fr":8,"it":9,"ru":10},"\u002Fde\u002Ftech\u002Fnuxt3-cloudflare-pages-lcp-optimierung","\u002Fes\u002Ftech\u002Fnuxt3-cloudflare-pages-lcp-optimizacion","\u002Ffr\u002Ftech\u002Fnuxt-3-cloudflare-pages-optimisation-lcp","\u002Fit\u002Ftech\u002Fnuxt-3-cloudflare-pages-lcp-10s-a-2s","\u002Fru\u002Ftech\u002Fnuxt-3-cloudflare-pages-lcp-optimizatsiya",{"_path":6,"_dir":12,"_draft":13,"_partial":13,"_locale":14,"title":15,"description":16,"publishedAt":17,"modifiedAt":17,"category":12,"i18nKey":4,"tags":18,"readingTime":24,"author":25,"body":26,"_type":2404,"_id":2405,"_source":2406,"_file":2407,"_stem":2408,"_extension":2409},"tech",false,"","Nuxt 3 + Cloudflare Pages: LCP von 10s auf 2s optimieren","Self-gehostete Fonts, Lazy Hydration, content-visibility und Edge Caching reduzieren LCP um 80%. Mit Code-Beispielen und echten Benchmark-Zahlen.","2026-05-28",[19,20,21,22,23],"nuxt3","web-performance","cloudflare-pages","core-web-vitals","edge-computing",9,"Roibase",{"type":27,"children":28,"toc":2390},"root",[29,46,53,58,79,390,403,724,737,743,748,755,768,1223,1243,1249,1284,1388,1401,1407,1420,1510,1521,1527,1540,1548,1568,1574,1586,1733,1738,2107,2113,2289,2294,2300,2312,2338,2343,2349,2371,2384],{"type":30,"tag":31,"props":32,"children":33},"element","p",{},[34,37,44],{"type":35,"value":36},"text","Cloudflare Pages + Nuxt 3 versprechen Edge Caching und Zero-Config Deployment, doch für Core Web Vitals reicht das nicht aus. In einem Production-Projekt für E-Commerce lagen die Metriken bei LCP 10,2 Sekunden und TBT 2.190 Millisekunden. Die Schuldigen: Google Fonts blockierten Rendering, Client-Side Hydration brauchte zu lange, globale CSS und synchrone JavaScript-Ausführung bremsten alles. Mit Self-Hosted Fonts, Lazy Hydration, der CSS-Property ",{"type":30,"tag":38,"props":39,"children":41},"code",{"className":40},[],[42],{"type":35,"value":43},"content-visibility",{"type":35,"value":45}," und einer optimierten Edge-Cache-Strategie erreichten wir LCP 2,1 Sekunden und TBT 180 Millisekunden. Dieser Artikel zeigt die Implementierung Schritt für Schritt mit Tradeoffs.",{"type":30,"tag":47,"props":48,"children":50},"h2",{"id":49},"google-fonts-render-blocking-38-sekunden-verlust",[51],{"type":35,"value":52},"Google Fonts Render Blocking: 3,8 Sekunden Verlust",{"type":30,"tag":31,"props":54,"children":55},{},[56],{"type":35,"value":57},"Der Import von Fonts über die Google Fonts CDN blockiert das Rendering. FOIT (Flash of Invisible Text) und 3+ Round-Trips erzeugen erhebliche Latenz. Lighthouse warnte mit \"Eliminate render-blocking resources\" und nannte einen Gewinn von 3,8 Sekunden.",{"type":30,"tag":31,"props":59,"children":60},{},[61,63,69,71,77],{"type":35,"value":62},"Lösung: Fonts self-hosten. Wir nutzten ",{"type":30,"tag":38,"props":64,"children":66},{"className":65},[],[67],{"type":35,"value":68},"@fontsource\u002Finter",{"type":35,"value":70},", legten die Woff2-Dateien in ",{"type":30,"tag":38,"props":72,"children":74},{"className":73},[],[75],{"type":35,"value":76},"public\u002Ffonts",{"type":35,"value":78}," ab und ergänzten die Nuxt Config mit Preload-Links:",{"type":30,"tag":80,"props":81,"children":85},"pre",{"code":82,"language":83,"meta":14,"className":84,"style":14},"\u002F\u002F nuxt.config.ts\nexport default defineNuxtConfig({\n  app: {\n    head: {\n      link: [\n        {\n          rel: 'preload',\n          as: 'font',\n          type: 'font\u002Fwoff2',\n          href: '\u002Ffonts\u002Finter-latin-400-normal.woff2',\n          crossorigin: 'anonymous'\n        },\n        {\n          rel: 'preload',\n          as: 'font',\n          type: 'font\u002Fwoff2',\n          href: '\u002Ffonts\u002Finter-latin-600-normal.woff2',\n          crossorigin: 'anonymous'\n        }\n      ]\n    }\n  }\n})\n","typescript","language-typescript shiki shiki-themes github-dark",[86],{"type":30,"tag":38,"props":87,"children":88},{"__ignoreMap":14},[89,101,128,137,146,155,164,184,202,219,237,251,260,268,284,300,316,333,345,354,363,372,381],{"type":30,"tag":90,"props":91,"children":94},"span",{"class":92,"line":93},"line",1,[95],{"type":30,"tag":90,"props":96,"children":98},{"style":97},"--shiki-default:#6A737D",[99],{"type":35,"value":100},"\u002F\u002F nuxt.config.ts\n",{"type":30,"tag":90,"props":102,"children":104},{"class":92,"line":103},2,[105,111,116,122],{"type":30,"tag":90,"props":106,"children":108},{"style":107},"--shiki-default:#F97583",[109],{"type":35,"value":110},"export",{"type":30,"tag":90,"props":112,"children":113},{"style":107},[114],{"type":35,"value":115}," default",{"type":30,"tag":90,"props":117,"children":119},{"style":118},"--shiki-default:#B392F0",[120],{"type":35,"value":121}," defineNuxtConfig",{"type":30,"tag":90,"props":123,"children":125},{"style":124},"--shiki-default:#E1E4E8",[126],{"type":35,"value":127},"({\n",{"type":30,"tag":90,"props":129,"children":131},{"class":92,"line":130},3,[132],{"type":30,"tag":90,"props":133,"children":134},{"style":124},[135],{"type":35,"value":136},"  app: {\n",{"type":30,"tag":90,"props":138,"children":140},{"class":92,"line":139},4,[141],{"type":30,"tag":90,"props":142,"children":143},{"style":124},[144],{"type":35,"value":145},"    head: {\n",{"type":30,"tag":90,"props":147,"children":149},{"class":92,"line":148},5,[150],{"type":30,"tag":90,"props":151,"children":152},{"style":124},[153],{"type":35,"value":154},"      link: [\n",{"type":30,"tag":90,"props":156,"children":158},{"class":92,"line":157},6,[159],{"type":30,"tag":90,"props":160,"children":161},{"style":124},[162],{"type":35,"value":163},"        {\n",{"type":30,"tag":90,"props":165,"children":167},{"class":92,"line":166},7,[168,173,179],{"type":30,"tag":90,"props":169,"children":170},{"style":124},[171],{"type":35,"value":172},"          rel: ",{"type":30,"tag":90,"props":174,"children":176},{"style":175},"--shiki-default:#9ECBFF",[177],{"type":35,"value":178},"'preload'",{"type":30,"tag":90,"props":180,"children":181},{"style":124},[182],{"type":35,"value":183},",\n",{"type":30,"tag":90,"props":185,"children":187},{"class":92,"line":186},8,[188,193,198],{"type":30,"tag":90,"props":189,"children":190},{"style":124},[191],{"type":35,"value":192},"          as: ",{"type":30,"tag":90,"props":194,"children":195},{"style":175},[196],{"type":35,"value":197},"'font'",{"type":30,"tag":90,"props":199,"children":200},{"style":124},[201],{"type":35,"value":183},{"type":30,"tag":90,"props":203,"children":204},{"class":92,"line":24},[205,210,215],{"type":30,"tag":90,"props":206,"children":207},{"style":124},[208],{"type":35,"value":209},"          type: ",{"type":30,"tag":90,"props":211,"children":212},{"style":175},[213],{"type":35,"value":214},"'font\u002Fwoff2'",{"type":30,"tag":90,"props":216,"children":217},{"style":124},[218],{"type":35,"value":183},{"type":30,"tag":90,"props":220,"children":222},{"class":92,"line":221},10,[223,228,233],{"type":30,"tag":90,"props":224,"children":225},{"style":124},[226],{"type":35,"value":227},"          href: ",{"type":30,"tag":90,"props":229,"children":230},{"style":175},[231],{"type":35,"value":232},"'\u002Ffonts\u002Finter-latin-400-normal.woff2'",{"type":30,"tag":90,"props":234,"children":235},{"style":124},[236],{"type":35,"value":183},{"type":30,"tag":90,"props":238,"children":240},{"class":92,"line":239},11,[241,246],{"type":30,"tag":90,"props":242,"children":243},{"style":124},[244],{"type":35,"value":245},"          crossorigin: ",{"type":30,"tag":90,"props":247,"children":248},{"style":175},[249],{"type":35,"value":250},"'anonymous'\n",{"type":30,"tag":90,"props":252,"children":254},{"class":92,"line":253},12,[255],{"type":30,"tag":90,"props":256,"children":257},{"style":124},[258],{"type":35,"value":259},"        },\n",{"type":30,"tag":90,"props":261,"children":263},{"class":92,"line":262},13,[264],{"type":30,"tag":90,"props":265,"children":266},{"style":124},[267],{"type":35,"value":163},{"type":30,"tag":90,"props":269,"children":271},{"class":92,"line":270},14,[272,276,280],{"type":30,"tag":90,"props":273,"children":274},{"style":124},[275],{"type":35,"value":172},{"type":30,"tag":90,"props":277,"children":278},{"style":175},[279],{"type":35,"value":178},{"type":30,"tag":90,"props":281,"children":282},{"style":124},[283],{"type":35,"value":183},{"type":30,"tag":90,"props":285,"children":287},{"class":92,"line":286},15,[288,292,296],{"type":30,"tag":90,"props":289,"children":290},{"style":124},[291],{"type":35,"value":192},{"type":30,"tag":90,"props":293,"children":294},{"style":175},[295],{"type":35,"value":197},{"type":30,"tag":90,"props":297,"children":298},{"style":124},[299],{"type":35,"value":183},{"type":30,"tag":90,"props":301,"children":303},{"class":92,"line":302},16,[304,308,312],{"type":30,"tag":90,"props":305,"children":306},{"style":124},[307],{"type":35,"value":209},{"type":30,"tag":90,"props":309,"children":310},{"style":175},[311],{"type":35,"value":214},{"type":30,"tag":90,"props":313,"children":314},{"style":124},[315],{"type":35,"value":183},{"type":30,"tag":90,"props":317,"children":319},{"class":92,"line":318},17,[320,324,329],{"type":30,"tag":90,"props":321,"children":322},{"style":124},[323],{"type":35,"value":227},{"type":30,"tag":90,"props":325,"children":326},{"style":175},[327],{"type":35,"value":328},"'\u002Ffonts\u002Finter-latin-600-normal.woff2'",{"type":30,"tag":90,"props":330,"children":331},{"style":124},[332],{"type":35,"value":183},{"type":30,"tag":90,"props":334,"children":336},{"class":92,"line":335},18,[337,341],{"type":30,"tag":90,"props":338,"children":339},{"style":124},[340],{"type":35,"value":245},{"type":30,"tag":90,"props":342,"children":343},{"style":175},[344],{"type":35,"value":250},{"type":30,"tag":90,"props":346,"children":348},{"class":92,"line":347},19,[349],{"type":30,"tag":90,"props":350,"children":351},{"style":124},[352],{"type":35,"value":353},"        }\n",{"type":30,"tag":90,"props":355,"children":357},{"class":92,"line":356},20,[358],{"type":30,"tag":90,"props":359,"children":360},{"style":124},[361],{"type":35,"value":362},"      ]\n",{"type":30,"tag":90,"props":364,"children":366},{"class":92,"line":365},21,[367],{"type":30,"tag":90,"props":368,"children":369},{"style":124},[370],{"type":35,"value":371},"    }\n",{"type":30,"tag":90,"props":373,"children":375},{"class":92,"line":374},22,[376],{"type":30,"tag":90,"props":377,"children":378},{"style":124},[379],{"type":35,"value":380},"  }\n",{"type":30,"tag":90,"props":382,"children":384},{"class":92,"line":383},23,[385],{"type":30,"tag":90,"props":386,"children":387},{"style":124},[388],{"type":35,"value":389},"})\n",{"type":30,"tag":31,"props":391,"children":392},{},[393,395,401],{"type":35,"value":394},"In der CSS definierten wir nur die genutzten Schriftgewichte mit ",{"type":30,"tag":38,"props":396,"children":398},{"className":397},[],[399],{"type":35,"value":400},"@font-face",{"type":35,"value":402},":",{"type":30,"tag":80,"props":404,"children":408},{"code":405,"language":406,"meta":14,"className":407,"style":14},"\u002F* assets\u002Fcss\u002Ffonts.css *\u002F\n@font-face {\n  font-family: 'Inter';\n  font-style: normal;\n  font-weight: 400;\n  font-display: swap;\n  src: url('\u002Ffonts\u002Finter-latin-400-normal.woff2') format('woff2');\n}\n\n@font-face {\n  font-family: 'Inter';\n  font-style: normal;\n  font-weight: 600;\n  font-display: swap;\n  src: url('\u002Ffonts\u002Finter-latin-600-normal.woff2') format('woff2');\n}\n","css","language-css shiki shiki-themes github-dark",[409],{"type":30,"tag":38,"props":410,"children":411},{"__ignoreMap":14},[412,420,432,456,477,498,519,569,577,586,597,616,635,655,674,717],{"type":30,"tag":90,"props":413,"children":414},{"class":92,"line":93},[415],{"type":30,"tag":90,"props":416,"children":417},{"style":97},[418],{"type":35,"value":419},"\u002F* assets\u002Fcss\u002Ffonts.css *\u002F\n",{"type":30,"tag":90,"props":421,"children":422},{"class":92,"line":103},[423,427],{"type":30,"tag":90,"props":424,"children":425},{"style":107},[426],{"type":35,"value":400},{"type":30,"tag":90,"props":428,"children":429},{"style":124},[430],{"type":35,"value":431}," {\n",{"type":30,"tag":90,"props":433,"children":434},{"class":92,"line":130},[435,441,446,451],{"type":30,"tag":90,"props":436,"children":438},{"style":437},"--shiki-default:#79B8FF",[439],{"type":35,"value":440},"  font-family",{"type":30,"tag":90,"props":442,"children":443},{"style":124},[444],{"type":35,"value":445},": ",{"type":30,"tag":90,"props":447,"children":448},{"style":175},[449],{"type":35,"value":450},"'Inter'",{"type":30,"tag":90,"props":452,"children":453},{"style":124},[454],{"type":35,"value":455},";\n",{"type":30,"tag":90,"props":457,"children":458},{"class":92,"line":139},[459,464,468,473],{"type":30,"tag":90,"props":460,"children":461},{"style":437},[462],{"type":35,"value":463},"  font-style",{"type":30,"tag":90,"props":465,"children":466},{"style":124},[467],{"type":35,"value":445},{"type":30,"tag":90,"props":469,"children":470},{"style":437},[471],{"type":35,"value":472},"normal",{"type":30,"tag":90,"props":474,"children":475},{"style":124},[476],{"type":35,"value":455},{"type":30,"tag":90,"props":478,"children":479},{"class":92,"line":148},[480,485,489,494],{"type":30,"tag":90,"props":481,"children":482},{"style":437},[483],{"type":35,"value":484},"  font-weight",{"type":30,"tag":90,"props":486,"children":487},{"style":124},[488],{"type":35,"value":445},{"type":30,"tag":90,"props":490,"children":491},{"style":437},[492],{"type":35,"value":493},"400",{"type":30,"tag":90,"props":495,"children":496},{"style":124},[497],{"type":35,"value":455},{"type":30,"tag":90,"props":499,"children":500},{"class":92,"line":157},[501,506,510,515],{"type":30,"tag":90,"props":502,"children":503},{"style":437},[504],{"type":35,"value":505},"  font-display",{"type":30,"tag":90,"props":507,"children":508},{"style":124},[509],{"type":35,"value":445},{"type":30,"tag":90,"props":511,"children":512},{"style":437},[513],{"type":35,"value":514},"swap",{"type":30,"tag":90,"props":516,"children":517},{"style":124},[518],{"type":35,"value":455},{"type":30,"tag":90,"props":520,"children":521},{"class":92,"line":166},[522,527,531,536,541,545,550,555,559,564],{"type":30,"tag":90,"props":523,"children":524},{"style":437},[525],{"type":35,"value":526},"  src",{"type":30,"tag":90,"props":528,"children":529},{"style":124},[530],{"type":35,"value":445},{"type":30,"tag":90,"props":532,"children":533},{"style":437},[534],{"type":35,"value":535},"url",{"type":30,"tag":90,"props":537,"children":538},{"style":124},[539],{"type":35,"value":540},"(",{"type":30,"tag":90,"props":542,"children":543},{"style":175},[544],{"type":35,"value":232},{"type":30,"tag":90,"props":546,"children":547},{"style":124},[548],{"type":35,"value":549},") ",{"type":30,"tag":90,"props":551,"children":552},{"style":437},[553],{"type":35,"value":554},"format",{"type":30,"tag":90,"props":556,"children":557},{"style":124},[558],{"type":35,"value":540},{"type":30,"tag":90,"props":560,"children":561},{"style":175},[562],{"type":35,"value":563},"'woff2'",{"type":30,"tag":90,"props":565,"children":566},{"style":124},[567],{"type":35,"value":568},");\n",{"type":30,"tag":90,"props":570,"children":571},{"class":92,"line":186},[572],{"type":30,"tag":90,"props":573,"children":574},{"style":124},[575],{"type":35,"value":576},"}\n",{"type":30,"tag":90,"props":578,"children":579},{"class":92,"line":24},[580],{"type":30,"tag":90,"props":581,"children":583},{"emptyLinePlaceholder":582},true,[584],{"type":35,"value":585},"\n",{"type":30,"tag":90,"props":587,"children":588},{"class":92,"line":221},[589,593],{"type":30,"tag":90,"props":590,"children":591},{"style":107},[592],{"type":35,"value":400},{"type":30,"tag":90,"props":594,"children":595},{"style":124},[596],{"type":35,"value":431},{"type":30,"tag":90,"props":598,"children":599},{"class":92,"line":239},[600,604,608,612],{"type":30,"tag":90,"props":601,"children":602},{"style":437},[603],{"type":35,"value":440},{"type":30,"tag":90,"props":605,"children":606},{"style":124},[607],{"type":35,"value":445},{"type":30,"tag":90,"props":609,"children":610},{"style":175},[611],{"type":35,"value":450},{"type":30,"tag":90,"props":613,"children":614},{"style":124},[615],{"type":35,"value":455},{"type":30,"tag":90,"props":617,"children":618},{"class":92,"line":253},[619,623,627,631],{"type":30,"tag":90,"props":620,"children":621},{"style":437},[622],{"type":35,"value":463},{"type":30,"tag":90,"props":624,"children":625},{"style":124},[626],{"type":35,"value":445},{"type":30,"tag":90,"props":628,"children":629},{"style":437},[630],{"type":35,"value":472},{"type":30,"tag":90,"props":632,"children":633},{"style":124},[634],{"type":35,"value":455},{"type":30,"tag":90,"props":636,"children":637},{"class":92,"line":262},[638,642,646,651],{"type":30,"tag":90,"props":639,"children":640},{"style":437},[641],{"type":35,"value":484},{"type":30,"tag":90,"props":643,"children":644},{"style":124},[645],{"type":35,"value":445},{"type":30,"tag":90,"props":647,"children":648},{"style":437},[649],{"type":35,"value":650},"600",{"type":30,"tag":90,"props":652,"children":653},{"style":124},[654],{"type":35,"value":455},{"type":30,"tag":90,"props":656,"children":657},{"class":92,"line":270},[658,662,666,670],{"type":30,"tag":90,"props":659,"children":660},{"style":437},[661],{"type":35,"value":505},{"type":30,"tag":90,"props":663,"children":664},{"style":124},[665],{"type":35,"value":445},{"type":30,"tag":90,"props":667,"children":668},{"style":437},[669],{"type":35,"value":514},{"type":30,"tag":90,"props":671,"children":672},{"style":124},[673],{"type":35,"value":455},{"type":30,"tag":90,"props":675,"children":676},{"class":92,"line":286},[677,681,685,689,693,697,701,705,709,713],{"type":30,"tag":90,"props":678,"children":679},{"style":437},[680],{"type":35,"value":526},{"type":30,"tag":90,"props":682,"children":683},{"style":124},[684],{"type":35,"value":445},{"type":30,"tag":90,"props":686,"children":687},{"style":437},[688],{"type":35,"value":535},{"type":30,"tag":90,"props":690,"children":691},{"style":124},[692],{"type":35,"value":540},{"type":30,"tag":90,"props":694,"children":695},{"style":175},[696],{"type":35,"value":328},{"type":30,"tag":90,"props":698,"children":699},{"style":124},[700],{"type":35,"value":549},{"type":30,"tag":90,"props":702,"children":703},{"style":437},[704],{"type":35,"value":554},{"type":30,"tag":90,"props":706,"children":707},{"style":124},[708],{"type":35,"value":540},{"type":30,"tag":90,"props":710,"children":711},{"style":175},[712],{"type":35,"value":563},{"type":30,"tag":90,"props":714,"children":715},{"style":124},[716],{"type":35,"value":568},{"type":30,"tag":90,"props":718,"children":719},{"class":92,"line":302},[720],{"type":30,"tag":90,"props":721,"children":722},{"style":124},[723],{"type":35,"value":576},{"type":30,"tag":31,"props":725,"children":726},{},[727,729,735],{"type":35,"value":728},"Mit ",{"type":30,"tag":38,"props":730,"children":732},{"className":731},[],[733],{"type":35,"value":734},"font-display: swap",{"type":35,"value":736}," akzeptieren wir FOUT (Flash of Unstyled Text) als Tradeoff — erst Systemfont, dann Wechsel zur echten Schrift. Die LCP fiel auf 6,4 Sekunden. Der Bundle wuchs um 72 KB (komprimiert), doch der 3,8-Sekunden-Gewinn rechtfertigt das.",{"type":30,"tag":47,"props":738,"children":740},{"id":739},"client-side-hydration-tbt-2190ms",[741],{"type":35,"value":742},"Client-Side Hydration: TBT 2.190ms",{"type":30,"tag":31,"props":744,"children":745},{},[746],{"type":35,"value":747},"Nuxt 3 hydrate standardmäßig alle 40+ Komponenten auf der Seite. Globale States (Pinia), Composables und Third-Party Libraries (Swiper, vue-gtag) blockierten den Main Thread. Im Performance Tab zeigten sich 8 Long Tasks, die längste dauerte 1.240 Millisekunden.",{"type":30,"tag":749,"props":750,"children":752},"h3",{"id":751},"lazy-hydration-mit-priorisierung",[753],{"type":35,"value":754},"Lazy Hydration mit Priorisierung",{"type":30,"tag":31,"props":756,"children":757},{},[758,760,766],{"type":35,"value":759},"Wir hydrierten Komponenten unterhalb des Viewports verzögert. Nach der Implementierung von ",{"type":30,"tag":38,"props":761,"children":763},{"className":762},[],[764],{"type":35,"value":765},"@nuxtjs\u002Fweb-vitals",{"type":35,"value":767}," definierten wir den kritischen Pfad:",{"type":30,"tag":80,"props":769,"children":773},{"code":770,"language":771,"meta":14,"className":772,"style":14},"\u003C!-- pages\u002Findex.vue -->\n\u003Ctemplate>\n  \u003Cdiv>\n    \u003C!-- Above-the-fold: sofort hydratisieren -->\n    \u003CHeroSection \u002F>\n    \u003CProductGrid :products=\"products\" \u002F>\n\n    \u003C!-- Below-the-fold: verzögert laden -->\n    \u003CLazyFooter v-if=\"mounted\" \u002F>\n    \u003CLazyNewsletterForm v-if=\"mounted\" \u002F>\n    \u003Cclient-only>\n      \u003CLazyReviewCarousel :reviews=\"reviews\" \u002F>\n    \u003C\u002Fclient-only>\n  \u003C\u002Fdiv>\n\u003C\u002Ftemplate>\n\n\u003Cscript setup lang=\"ts\">\nconst mounted = ref(false)\n\nonMounted(() => {\n  requestIdleCallback(() => {\n    mounted.value = true\n  })\n})\n\u003C\u002Fscript>\n","vue","language-vue shiki shiki-themes github-dark",[774],{"type":30,"tag":38,"props":775,"children":776},{"__ignoreMap":14},[777,785,804,821,829,847,878,885,893,923,951,967,998,1014,1030,1046,1053,1088,1125,1132,1154,1174,1191,1199,1207],{"type":30,"tag":90,"props":778,"children":779},{"class":92,"line":93},[780],{"type":30,"tag":90,"props":781,"children":782},{"style":97},[783],{"type":35,"value":784},"\u003C!-- pages\u002Findex.vue -->\n",{"type":30,"tag":90,"props":786,"children":787},{"class":92,"line":103},[788,793,799],{"type":30,"tag":90,"props":789,"children":790},{"style":124},[791],{"type":35,"value":792},"\u003C",{"type":30,"tag":90,"props":794,"children":796},{"style":795},"--shiki-default:#85E89D",[797],{"type":35,"value":798},"template",{"type":30,"tag":90,"props":800,"children":801},{"style":124},[802],{"type":35,"value":803},">\n",{"type":30,"tag":90,"props":805,"children":806},{"class":92,"line":130},[807,812,817],{"type":30,"tag":90,"props":808,"children":809},{"style":124},[810],{"type":35,"value":811},"  \u003C",{"type":30,"tag":90,"props":813,"children":814},{"style":795},[815],{"type":35,"value":816},"div",{"type":30,"tag":90,"props":818,"children":819},{"style":124},[820],{"type":35,"value":803},{"type":30,"tag":90,"props":822,"children":823},{"class":92,"line":139},[824],{"type":30,"tag":90,"props":825,"children":826},{"style":97},[827],{"type":35,"value":828},"    \u003C!-- Above-the-fold: sofort hydratisieren -->\n",{"type":30,"tag":90,"props":830,"children":831},{"class":92,"line":148},[832,837,842],{"type":30,"tag":90,"props":833,"children":834},{"style":124},[835],{"type":35,"value":836},"    \u003C",{"type":30,"tag":90,"props":838,"children":839},{"style":795},[840],{"type":35,"value":841},"HeroSection",{"type":30,"tag":90,"props":843,"children":844},{"style":124},[845],{"type":35,"value":846}," \u002F>\n",{"type":30,"tag":90,"props":848,"children":849},{"class":92,"line":157},[850,854,859,864,869,874],{"type":30,"tag":90,"props":851,"children":852},{"style":124},[853],{"type":35,"value":836},{"type":30,"tag":90,"props":855,"children":856},{"style":795},[857],{"type":35,"value":858},"ProductGrid",{"type":30,"tag":90,"props":860,"children":861},{"style":118},[862],{"type":35,"value":863}," :products",{"type":30,"tag":90,"props":865,"children":866},{"style":124},[867],{"type":35,"value":868},"=",{"type":30,"tag":90,"props":870,"children":871},{"style":175},[872],{"type":35,"value":873},"\"products\"",{"type":30,"tag":90,"props":875,"children":876},{"style":124},[877],{"type":35,"value":846},{"type":30,"tag":90,"props":879,"children":880},{"class":92,"line":166},[881],{"type":30,"tag":90,"props":882,"children":883},{"emptyLinePlaceholder":582},[884],{"type":35,"value":585},{"type":30,"tag":90,"props":886,"children":887},{"class":92,"line":186},[888],{"type":30,"tag":90,"props":889,"children":890},{"style":97},[891],{"type":35,"value":892},"    \u003C!-- Below-the-fold: verzögert laden -->\n",{"type":30,"tag":90,"props":894,"children":895},{"class":92,"line":24},[896,900,905,910,914,919],{"type":30,"tag":90,"props":897,"children":898},{"style":124},[899],{"type":35,"value":836},{"type":30,"tag":90,"props":901,"children":902},{"style":795},[903],{"type":35,"value":904},"LazyFooter",{"type":30,"tag":90,"props":906,"children":907},{"style":118},[908],{"type":35,"value":909}," v-if",{"type":30,"tag":90,"props":911,"children":912},{"style":124},[913],{"type":35,"value":868},{"type":30,"tag":90,"props":915,"children":916},{"style":175},[917],{"type":35,"value":918},"\"mounted\"",{"type":30,"tag":90,"props":920,"children":921},{"style":124},[922],{"type":35,"value":846},{"type":30,"tag":90,"props":924,"children":925},{"class":92,"line":221},[926,930,935,939,943,947],{"type":30,"tag":90,"props":927,"children":928},{"style":124},[929],{"type":35,"value":836},{"type":30,"tag":90,"props":931,"children":932},{"style":795},[933],{"type":35,"value":934},"LazyNewsletterForm",{"type":30,"tag":90,"props":936,"children":937},{"style":118},[938],{"type":35,"value":909},{"type":30,"tag":90,"props":940,"children":941},{"style":124},[942],{"type":35,"value":868},{"type":30,"tag":90,"props":944,"children":945},{"style":175},[946],{"type":35,"value":918},{"type":30,"tag":90,"props":948,"children":949},{"style":124},[950],{"type":35,"value":846},{"type":30,"tag":90,"props":952,"children":953},{"class":92,"line":239},[954,958,963],{"type":30,"tag":90,"props":955,"children":956},{"style":124},[957],{"type":35,"value":836},{"type":30,"tag":90,"props":959,"children":960},{"style":795},[961],{"type":35,"value":962},"client-only",{"type":30,"tag":90,"props":964,"children":965},{"style":124},[966],{"type":35,"value":803},{"type":30,"tag":90,"props":968,"children":969},{"class":92,"line":253},[970,975,980,985,989,994],{"type":30,"tag":90,"props":971,"children":972},{"style":124},[973],{"type":35,"value":974},"      \u003C",{"type":30,"tag":90,"props":976,"children":977},{"style":795},[978],{"type":35,"value":979},"LazyReviewCarousel",{"type":30,"tag":90,"props":981,"children":982},{"style":118},[983],{"type":35,"value":984}," :reviews",{"type":30,"tag":90,"props":986,"children":987},{"style":124},[988],{"type":35,"value":868},{"type":30,"tag":90,"props":990,"children":991},{"style":175},[992],{"type":35,"value":993},"\"reviews\"",{"type":30,"tag":90,"props":995,"children":996},{"style":124},[997],{"type":35,"value":846},{"type":30,"tag":90,"props":999,"children":1000},{"class":92,"line":262},[1001,1006,1010],{"type":30,"tag":90,"props":1002,"children":1003},{"style":124},[1004],{"type":35,"value":1005},"    \u003C\u002F",{"type":30,"tag":90,"props":1007,"children":1008},{"style":795},[1009],{"type":35,"value":962},{"type":30,"tag":90,"props":1011,"children":1012},{"style":124},[1013],{"type":35,"value":803},{"type":30,"tag":90,"props":1015,"children":1016},{"class":92,"line":270},[1017,1022,1026],{"type":30,"tag":90,"props":1018,"children":1019},{"style":124},[1020],{"type":35,"value":1021},"  \u003C\u002F",{"type":30,"tag":90,"props":1023,"children":1024},{"style":795},[1025],{"type":35,"value":816},{"type":30,"tag":90,"props":1027,"children":1028},{"style":124},[1029],{"type":35,"value":803},{"type":30,"tag":90,"props":1031,"children":1032},{"class":92,"line":286},[1033,1038,1042],{"type":30,"tag":90,"props":1034,"children":1035},{"style":124},[1036],{"type":35,"value":1037},"\u003C\u002F",{"type":30,"tag":90,"props":1039,"children":1040},{"style":795},[1041],{"type":35,"value":798},{"type":30,"tag":90,"props":1043,"children":1044},{"style":124},[1045],{"type":35,"value":803},{"type":30,"tag":90,"props":1047,"children":1048},{"class":92,"line":302},[1049],{"type":30,"tag":90,"props":1050,"children":1051},{"emptyLinePlaceholder":582},[1052],{"type":35,"value":585},{"type":30,"tag":90,"props":1054,"children":1055},{"class":92,"line":318},[1056,1060,1065,1070,1075,1079,1084],{"type":30,"tag":90,"props":1057,"children":1058},{"style":124},[1059],{"type":35,"value":792},{"type":30,"tag":90,"props":1061,"children":1062},{"style":795},[1063],{"type":35,"value":1064},"script",{"type":30,"tag":90,"props":1066,"children":1067},{"style":118},[1068],{"type":35,"value":1069}," setup",{"type":30,"tag":90,"props":1071,"children":1072},{"style":118},[1073],{"type":35,"value":1074}," lang",{"type":30,"tag":90,"props":1076,"children":1077},{"style":124},[1078],{"type":35,"value":868},{"type":30,"tag":90,"props":1080,"children":1081},{"style":175},[1082],{"type":35,"value":1083},"\"ts\"",{"type":30,"tag":90,"props":1085,"children":1086},{"style":124},[1087],{"type":35,"value":803},{"type":30,"tag":90,"props":1089,"children":1090},{"class":92,"line":335},[1091,1096,1101,1106,1111,1115,1120],{"type":30,"tag":90,"props":1092,"children":1093},{"style":107},[1094],{"type":35,"value":1095},"const",{"type":30,"tag":90,"props":1097,"children":1098},{"style":437},[1099],{"type":35,"value":1100}," mounted",{"type":30,"tag":90,"props":1102,"children":1103},{"style":107},[1104],{"type":35,"value":1105}," =",{"type":30,"tag":90,"props":1107,"children":1108},{"style":118},[1109],{"type":35,"value":1110}," ref",{"type":30,"tag":90,"props":1112,"children":1113},{"style":124},[1114],{"type":35,"value":540},{"type":30,"tag":90,"props":1116,"children":1117},{"style":437},[1118],{"type":35,"value":1119},"false",{"type":30,"tag":90,"props":1121,"children":1122},{"style":124},[1123],{"type":35,"value":1124},")\n",{"type":30,"tag":90,"props":1126,"children":1127},{"class":92,"line":347},[1128],{"type":30,"tag":90,"props":1129,"children":1130},{"emptyLinePlaceholder":582},[1131],{"type":35,"value":585},{"type":30,"tag":90,"props":1133,"children":1134},{"class":92,"line":356},[1135,1140,1145,1150],{"type":30,"tag":90,"props":1136,"children":1137},{"style":118},[1138],{"type":35,"value":1139},"onMounted",{"type":30,"tag":90,"props":1141,"children":1142},{"style":124},[1143],{"type":35,"value":1144},"(() ",{"type":30,"tag":90,"props":1146,"children":1147},{"style":107},[1148],{"type":35,"value":1149},"=>",{"type":30,"tag":90,"props":1151,"children":1152},{"style":124},[1153],{"type":35,"value":431},{"type":30,"tag":90,"props":1155,"children":1156},{"class":92,"line":365},[1157,1162,1166,1170],{"type":30,"tag":90,"props":1158,"children":1159},{"style":118},[1160],{"type":35,"value":1161},"  requestIdleCallback",{"type":30,"tag":90,"props":1163,"children":1164},{"style":124},[1165],{"type":35,"value":1144},{"type":30,"tag":90,"props":1167,"children":1168},{"style":107},[1169],{"type":35,"value":1149},{"type":30,"tag":90,"props":1171,"children":1172},{"style":124},[1173],{"type":35,"value":431},{"type":30,"tag":90,"props":1175,"children":1176},{"class":92,"line":374},[1177,1182,1186],{"type":30,"tag":90,"props":1178,"children":1179},{"style":124},[1180],{"type":35,"value":1181},"    mounted.value ",{"type":30,"tag":90,"props":1183,"children":1184},{"style":107},[1185],{"type":35,"value":868},{"type":30,"tag":90,"props":1187,"children":1188},{"style":437},[1189],{"type":35,"value":1190}," true\n",{"type":30,"tag":90,"props":1192,"children":1193},{"class":92,"line":383},[1194],{"type":30,"tag":90,"props":1195,"children":1196},{"style":124},[1197],{"type":35,"value":1198},"  })\n",{"type":30,"tag":90,"props":1200,"children":1202},{"class":92,"line":1201},24,[1203],{"type":30,"tag":90,"props":1204,"children":1205},{"style":124},[1206],{"type":35,"value":389},{"type":30,"tag":90,"props":1208,"children":1210},{"class":92,"line":1209},25,[1211,1215,1219],{"type":30,"tag":90,"props":1212,"children":1213},{"style":124},[1214],{"type":35,"value":1037},{"type":30,"tag":90,"props":1216,"children":1217},{"style":795},[1218],{"type":35,"value":1064},{"type":30,"tag":90,"props":1220,"children":1221},{"style":124},[1222],{"type":35,"value":803},{"type":30,"tag":31,"props":1224,"children":1225},{},[1226,1227,1233,1235,1241],{"type":35,"value":728},{"type":30,"tag":38,"props":1228,"children":1230},{"className":1229},[],[1231],{"type":35,"value":1232},"\u003Cclient-only>",{"type":35,"value":1234}," Wrapper entfernten wir DOM-abhängige Libraries wie Swiper komplett von SSR. ",{"type":30,"tag":38,"props":1236,"children":1238},{"className":1237},[],[1239],{"type":35,"value":1240},"requestIdleCallback",{"type":35,"value":1242}," startet die Hydration erst, wenn der Main Thread frei ist. TBT sank auf 840 Millisekunden.",{"type":30,"tag":749,"props":1244,"children":1246},{"id":1245},"bundle-splitting-und-code-splitting",[1247],{"type":35,"value":1248},"Bundle Splitting und Code Splitting",{"type":30,"tag":31,"props":1250,"children":1251},{},[1252,1253,1259,1261,1267,1269,1275,1277,1283],{"type":35,"value":728},{"type":30,"tag":38,"props":1254,"children":1256},{"className":1255},[],[1257],{"type":35,"value":1258},"vite-plugin-inspect",{"type":35,"value":1260}," analysierten wir das Bundle. Swiper war 168 KB groß, aber nur im Review-Carousel nötig. Statt Dynamic Import senkten wir erst die Nutzung — Swiper sollte nur ",{"type":30,"tag":38,"props":1262,"children":1264},{"className":1263},[],[1265],{"type":35,"value":1266},"Navigation",{"type":35,"value":1268}," unterstützen, nicht ",{"type":30,"tag":38,"props":1270,"children":1272},{"className":1271},[],[1273],{"type":35,"value":1274},"Virtual",{"type":35,"value":1276}," oder ",{"type":30,"tag":38,"props":1278,"children":1280},{"className":1279},[],[1281],{"type":35,"value":1282},"Autoplay",{"type":35,"value":402},{"type":30,"tag":80,"props":1285,"children":1287},{"code":1286,"language":83,"meta":14,"className":84,"style":14},"\u002F\u002F composables\u002FuseSwiper.ts\nimport { Navigation } from 'swiper\u002Fmodules'\nimport 'swiper\u002Fcss'\nimport 'swiper\u002Fcss\u002Fnavigation'\n\nexport const useSwiperModules = () => [Navigation]\n",[1288],{"type":30,"tag":38,"props":1289,"children":1290},{"__ignoreMap":14},[1291,1299,1322,1334,1346,1353],{"type":30,"tag":90,"props":1292,"children":1293},{"class":92,"line":93},[1294],{"type":30,"tag":90,"props":1295,"children":1296},{"style":97},[1297],{"type":35,"value":1298},"\u002F\u002F composables\u002FuseSwiper.ts\n",{"type":30,"tag":90,"props":1300,"children":1301},{"class":92,"line":103},[1302,1307,1312,1317],{"type":30,"tag":90,"props":1303,"children":1304},{"style":107},[1305],{"type":35,"value":1306},"import",{"type":30,"tag":90,"props":1308,"children":1309},{"style":124},[1310],{"type":35,"value":1311}," { Navigation } ",{"type":30,"tag":90,"props":1313,"children":1314},{"style":107},[1315],{"type":35,"value":1316},"from",{"type":30,"tag":90,"props":1318,"children":1319},{"style":175},[1320],{"type":35,"value":1321}," 'swiper\u002Fmodules'\n",{"type":30,"tag":90,"props":1323,"children":1324},{"class":92,"line":130},[1325,1329],{"type":30,"tag":90,"props":1326,"children":1327},{"style":107},[1328],{"type":35,"value":1306},{"type":30,"tag":90,"props":1330,"children":1331},{"style":175},[1332],{"type":35,"value":1333}," 'swiper\u002Fcss'\n",{"type":30,"tag":90,"props":1335,"children":1336},{"class":92,"line":139},[1337,1341],{"type":30,"tag":90,"props":1338,"children":1339},{"style":107},[1340],{"type":35,"value":1306},{"type":30,"tag":90,"props":1342,"children":1343},{"style":175},[1344],{"type":35,"value":1345}," 'swiper\u002Fcss\u002Fnavigation'\n",{"type":30,"tag":90,"props":1347,"children":1348},{"class":92,"line":148},[1349],{"type":30,"tag":90,"props":1350,"children":1351},{"emptyLinePlaceholder":582},[1352],{"type":35,"value":585},{"type":30,"tag":90,"props":1354,"children":1355},{"class":92,"line":157},[1356,1360,1365,1370,1374,1379,1383],{"type":30,"tag":90,"props":1357,"children":1358},{"style":107},[1359],{"type":35,"value":110},{"type":30,"tag":90,"props":1361,"children":1362},{"style":107},[1363],{"type":35,"value":1364}," const",{"type":30,"tag":90,"props":1366,"children":1367},{"style":118},[1368],{"type":35,"value":1369}," useSwiperModules",{"type":30,"tag":90,"props":1371,"children":1372},{"style":107},[1373],{"type":35,"value":1105},{"type":30,"tag":90,"props":1375,"children":1376},{"style":124},[1377],{"type":35,"value":1378}," () ",{"type":30,"tag":90,"props":1380,"children":1381},{"style":107},[1382],{"type":35,"value":1149},{"type":30,"tag":90,"props":1384,"children":1385},{"style":124},[1386],{"type":35,"value":1387}," [Navigation]\n",{"type":30,"tag":31,"props":1389,"children":1390},{},[1391,1393,1399],{"type":35,"value":1392},"Das Modul schrumpfte von 168 KB auf 42 KB. Da ",{"type":30,"tag":38,"props":1394,"children":1396},{"className":1395},[],[1397],{"type":35,"value":1398},"\u003CLazyReviewCarousel>",{"type":35,"value":1400}," ohnehin lazy laden wird, belastet es das initiale Bundle nicht.",{"type":30,"tag":47,"props":1402,"children":1404},{"id":1403},"content-visibility-render-phase-verkürzen",[1405],{"type":35,"value":1406},"Content-Visibility: Render-Phase Verkürzen",{"type":30,"tag":31,"props":1408,"children":1409},{},[1410,1412,1418],{"type":35,"value":1411},"Das Product Grid zeigte 48 Karten, jede mit Bild, Titel, Preis und Button. Der Browser musste 48 Layouts bei der initialen Render berechnen. Mit CSS ",{"type":30,"tag":38,"props":1413,"children":1415},{"className":1414},[],[1416],{"type":35,"value":1417},"content-visibility: auto",{"type":35,"value":1419}," versteckten wir Karten außerhalb des Viewports vom Rendering:",{"type":30,"tag":80,"props":1421,"children":1423},{"code":1422,"language":406,"meta":14,"className":407,"style":14},"\u002F* components\u002FProductCard.vue *\u002F\n.product-card {\n  content-visibility: auto;\n  contain-intrinsic-size: 320px 420px;\n}\n",[1424],{"type":30,"tag":38,"props":1425,"children":1426},{"__ignoreMap":14},[1427,1435,1447,1468,1503],{"type":30,"tag":90,"props":1428,"children":1429},{"class":92,"line":93},[1430],{"type":30,"tag":90,"props":1431,"children":1432},{"style":97},[1433],{"type":35,"value":1434},"\u002F* components\u002FProductCard.vue *\u002F\n",{"type":30,"tag":90,"props":1436,"children":1437},{"class":92,"line":103},[1438,1443],{"type":30,"tag":90,"props":1439,"children":1440},{"style":118},[1441],{"type":35,"value":1442},".product-card",{"type":30,"tag":90,"props":1444,"children":1445},{"style":124},[1446],{"type":35,"value":431},{"type":30,"tag":90,"props":1448,"children":1449},{"class":92,"line":130},[1450,1455,1459,1464],{"type":30,"tag":90,"props":1451,"children":1452},{"style":437},[1453],{"type":35,"value":1454},"  content-visibility",{"type":30,"tag":90,"props":1456,"children":1457},{"style":124},[1458],{"type":35,"value":445},{"type":30,"tag":90,"props":1460,"children":1461},{"style":437},[1462],{"type":35,"value":1463},"auto",{"type":30,"tag":90,"props":1465,"children":1466},{"style":124},[1467],{"type":35,"value":455},{"type":30,"tag":90,"props":1469,"children":1470},{"class":92,"line":139},[1471,1476,1480,1485,1490,1495,1499],{"type":30,"tag":90,"props":1472,"children":1473},{"style":437},[1474],{"type":35,"value":1475},"  contain-intrinsic-size",{"type":30,"tag":90,"props":1477,"children":1478},{"style":124},[1479],{"type":35,"value":445},{"type":30,"tag":90,"props":1481,"children":1482},{"style":437},[1483],{"type":35,"value":1484},"320",{"type":30,"tag":90,"props":1486,"children":1487},{"style":107},[1488],{"type":35,"value":1489},"px",{"type":30,"tag":90,"props":1491,"children":1492},{"style":437},[1493],{"type":35,"value":1494}," 420",{"type":30,"tag":90,"props":1496,"children":1497},{"style":107},[1498],{"type":35,"value":1489},{"type":30,"tag":90,"props":1500,"children":1501},{"style":124},[1502],{"type":35,"value":455},{"type":30,"tag":90,"props":1504,"children":1505},{"class":92,"line":148},[1506],{"type":30,"tag":90,"props":1507,"children":1508},{"style":124},[1509],{"type":35,"value":576},{"type":30,"tag":31,"props":1511,"children":1512},{},[1513,1519],{"type":30,"tag":38,"props":1514,"children":1516},{"className":1515},[],[1517],{"type":35,"value":1518},"contain-intrinsic-size",{"type":35,"value":1520}," sagt dem Browser die ungefähre Größe, damit Scroll-Position korrekt berechnet wird. LCP fiel von 6,4 auf 3,9 Sekunden. Der Tradeoff: Karten außerhalb des Viewports rendern beim Scrollen, was INP um etwa 12 Millisekunden erhöht (akzeptabel).",{"type":30,"tag":47,"props":1522,"children":1524},{"id":1523},"edge-caching-ttfb-1200ms-40ms",[1525],{"type":35,"value":1526},"Edge Caching: TTFB 1.200ms → 40ms",{"type":30,"tag":31,"props":1528,"children":1529},{},[1530,1532,1538],{"type":35,"value":1531},"Cloudflare Pages cached HTML nicht standardmäßig — jeder Request geht zum Origin. Nuxt 3 SSR brauchte durchschnittlich 1.200 Millisekunden (API Calls + Rendering). Wir aktivierten Edge Caching per ",{"type":30,"tag":38,"props":1533,"children":1535},{"className":1534},[],[1536],{"type":35,"value":1537},"_headers",{"type":35,"value":1539}," Datei:",{"type":30,"tag":80,"props":1541,"children":1543},{"code":1542},"# public\u002F_headers\n\u002F*\n  Cache-Control: public, max-age=0, s-maxage=600, stale-while-revalidate=86400\n  X-Frame-Options: DENY\n  X-Content-Type-Options: nosniff\n",[1544],{"type":30,"tag":38,"props":1545,"children":1546},{"__ignoreMap":14},[1547],{"type":35,"value":1542},{"type":30,"tag":31,"props":1549,"children":1550},{},[1551,1552,1558,1560,1566],{"type":35,"value":728},{"type":30,"tag":38,"props":1553,"children":1555},{"className":1554},[],[1556],{"type":35,"value":1557},"s-maxage=600",{"type":35,"value":1559}," speichert Cloudflare Responses 10 Minuten am Edge. ",{"type":30,"tag":38,"props":1561,"children":1563},{"className":1562},[],[1564],{"type":35,"value":1565},"stale-while-revalidate=86400",{"type":35,"value":1567}," serviert alte Inhalte, während im Hintergrund neu gerendert wird. TTFB lag danach bei 40 Millisekunden. Origin-Requests nur bei Cache Misses oder Revalidation.",{"type":30,"tag":749,"props":1569,"children":1571},{"id":1570},"isr-mit-hybrid-rendering",[1572],{"type":35,"value":1573},"ISR mit Hybrid Rendering",{"type":30,"tag":31,"props":1575,"children":1576},{},[1577,1579,1585],{"type":35,"value":1578},"Für Produktseiten nutzten wir Incremental Static Regeneration über Nuxt ",{"type":30,"tag":38,"props":1580,"children":1582},{"className":1581},[],[1583],{"type":35,"value":1584},"routeRules",{"type":35,"value":402},{"type":30,"tag":80,"props":1587,"children":1589},{"code":1588,"language":83,"meta":14,"className":84,"style":14},"\u002F\u002F nuxt.config.ts\nexport default defineNuxtConfig({\n  routeRules: {\n    '\u002Fproducts\u002F**': { \n      swr: 600,  \u002F\u002F 10 Minuten\n      prerender: false\n    },\n    '\u002F': { \n      swr: 300   \u002F\u002F 5 Minuten\n    }\n  }\n})\n",[1590],{"type":30,"tag":38,"props":1591,"children":1592},{"__ignoreMap":14},[1593,1600,1619,1627,1640,1662,1675,1683,1695,1712,1719,1726],{"type":30,"tag":90,"props":1594,"children":1595},{"class":92,"line":93},[1596],{"type":30,"tag":90,"props":1597,"children":1598},{"style":97},[1599],{"type":35,"value":100},{"type":30,"tag":90,"props":1601,"children":1602},{"class":92,"line":103},[1603,1607,1611,1615],{"type":30,"tag":90,"props":1604,"children":1605},{"style":107},[1606],{"type":35,"value":110},{"type":30,"tag":90,"props":1608,"children":1609},{"style":107},[1610],{"type":35,"value":115},{"type":30,"tag":90,"props":1612,"children":1613},{"style":118},[1614],{"type":35,"value":121},{"type":30,"tag":90,"props":1616,"children":1617},{"style":124},[1618],{"type":35,"value":127},{"type":30,"tag":90,"props":1620,"children":1621},{"class":92,"line":130},[1622],{"type":30,"tag":90,"props":1623,"children":1624},{"style":124},[1625],{"type":35,"value":1626},"  routeRules: {\n",{"type":30,"tag":90,"props":1628,"children":1629},{"class":92,"line":139},[1630,1635],{"type":30,"tag":90,"props":1631,"children":1632},{"style":175},[1633],{"type":35,"value":1634},"    '\u002Fproducts\u002F**'",{"type":30,"tag":90,"props":1636,"children":1637},{"style":124},[1638],{"type":35,"value":1639},": { \n",{"type":30,"tag":90,"props":1641,"children":1642},{"class":92,"line":148},[1643,1648,1652,1657],{"type":30,"tag":90,"props":1644,"children":1645},{"style":124},[1646],{"type":35,"value":1647},"      swr: ",{"type":30,"tag":90,"props":1649,"children":1650},{"style":437},[1651],{"type":35,"value":650},{"type":30,"tag":90,"props":1653,"children":1654},{"style":124},[1655],{"type":35,"value":1656},",  ",{"type":30,"tag":90,"props":1658,"children":1659},{"style":97},[1660],{"type":35,"value":1661},"\u002F\u002F 10 Minuten\n",{"type":30,"tag":90,"props":1663,"children":1664},{"class":92,"line":157},[1665,1670],{"type":30,"tag":90,"props":1666,"children":1667},{"style":124},[1668],{"type":35,"value":1669},"      prerender: ",{"type":30,"tag":90,"props":1671,"children":1672},{"style":437},[1673],{"type":35,"value":1674},"false\n",{"type":30,"tag":90,"props":1676,"children":1677},{"class":92,"line":166},[1678],{"type":30,"tag":90,"props":1679,"children":1680},{"style":124},[1681],{"type":35,"value":1682},"    },\n",{"type":30,"tag":90,"props":1684,"children":1685},{"class":92,"line":186},[1686,1691],{"type":30,"tag":90,"props":1687,"children":1688},{"style":175},[1689],{"type":35,"value":1690},"    '\u002F'",{"type":30,"tag":90,"props":1692,"children":1693},{"style":124},[1694],{"type":35,"value":1639},{"type":30,"tag":90,"props":1696,"children":1697},{"class":92,"line":24},[1698,1702,1707],{"type":30,"tag":90,"props":1699,"children":1700},{"style":124},[1701],{"type":35,"value":1647},{"type":30,"tag":90,"props":1703,"children":1704},{"style":437},[1705],{"type":35,"value":1706},"300",{"type":30,"tag":90,"props":1708,"children":1709},{"style":97},[1710],{"type":35,"value":1711},"   \u002F\u002F 5 Minuten\n",{"type":30,"tag":90,"props":1713,"children":1714},{"class":92,"line":221},[1715],{"type":30,"tag":90,"props":1716,"children":1717},{"style":124},[1718],{"type":35,"value":371},{"type":30,"tag":90,"props":1720,"children":1721},{"class":92,"line":239},[1722],{"type":30,"tag":90,"props":1723,"children":1724},{"style":124},[1725],{"type":35,"value":380},{"type":30,"tag":90,"props":1727,"children":1728},{"class":92,"line":253},[1729],{"type":30,"tag":90,"props":1730,"children":1731},{"style":124},[1732],{"type":35,"value":389},{"type":30,"tag":31,"props":1734,"children":1735},{},[1736],{"type":35,"value":1737},"Erste Request wird SSR, danach gecacht am Edge. Lagerbestände aktualisieren wir per Webhook mit manueller Purge:",{"type":30,"tag":80,"props":1739,"children":1741},{"code":1740,"language":83,"meta":14,"className":84,"style":14},"\u002F\u002F server\u002Fapi\u002Fpurge-cache.post.ts\nexport default defineEventHandler(async (event) => {\n  const { productId } = await readBody(event)\n  \n  await fetch(`https:\u002F\u002Fapi.cloudflare.com\u002Fclient\u002Fv4\u002Fzones\u002F${process.env.CF_ZONE_ID}\u002Fpurge_cache`, {\n    method: 'POST',\n    headers: {\n      'Authorization': `Bearer ${process.env.CF_API_TOKEN}`,\n      'Content-Type': 'application\u002Fjson'\n    },\n    body: JSON.stringify({\n      files: [`https:\u002F\u002Fexample.com\u002Fproducts\u002F${productId}`]\n    })\n  })\n  \n  return { success: true }\n})\n",[1742],{"type":30,"tag":38,"props":1743,"children":1744},{"__ignoreMap":14},[1745,1753,1801,1843,1851,1907,1924,1932,1979,1996,2003,2029,2055,2063,2070,2077,2100],{"type":30,"tag":90,"props":1746,"children":1747},{"class":92,"line":93},[1748],{"type":30,"tag":90,"props":1749,"children":1750},{"style":97},[1751],{"type":35,"value":1752},"\u002F\u002F server\u002Fapi\u002Fpurge-cache.post.ts\n",{"type":30,"tag":90,"props":1754,"children":1755},{"class":92,"line":103},[1756,1760,1764,1769,1773,1778,1783,1789,1793,1797],{"type":30,"tag":90,"props":1757,"children":1758},{"style":107},[1759],{"type":35,"value":110},{"type":30,"tag":90,"props":1761,"children":1762},{"style":107},[1763],{"type":35,"value":115},{"type":30,"tag":90,"props":1765,"children":1766},{"style":118},[1767],{"type":35,"value":1768}," defineEventHandler",{"type":30,"tag":90,"props":1770,"children":1771},{"style":124},[1772],{"type":35,"value":540},{"type":30,"tag":90,"props":1774,"children":1775},{"style":107},[1776],{"type":35,"value":1777},"async",{"type":30,"tag":90,"props":1779,"children":1780},{"style":124},[1781],{"type":35,"value":1782}," (",{"type":30,"tag":90,"props":1784,"children":1786},{"style":1785},"--shiki-default:#FFAB70",[1787],{"type":35,"value":1788},"event",{"type":30,"tag":90,"props":1790,"children":1791},{"style":124},[1792],{"type":35,"value":549},{"type":30,"tag":90,"props":1794,"children":1795},{"style":107},[1796],{"type":35,"value":1149},{"type":30,"tag":90,"props":1798,"children":1799},{"style":124},[1800],{"type":35,"value":431},{"type":30,"tag":90,"props":1802,"children":1803},{"class":92,"line":130},[1804,1809,1814,1819,1824,1828,1833,1838],{"type":30,"tag":90,"props":1805,"children":1806},{"style":107},[1807],{"type":35,"value":1808},"  const",{"type":30,"tag":90,"props":1810,"children":1811},{"style":124},[1812],{"type":35,"value":1813}," { ",{"type":30,"tag":90,"props":1815,"children":1816},{"style":437},[1817],{"type":35,"value":1818},"productId",{"type":30,"tag":90,"props":1820,"children":1821},{"style":124},[1822],{"type":35,"value":1823}," } ",{"type":30,"tag":90,"props":1825,"children":1826},{"style":107},[1827],{"type":35,"value":868},{"type":30,"tag":90,"props":1829,"children":1830},{"style":107},[1831],{"type":35,"value":1832}," await",{"type":30,"tag":90,"props":1834,"children":1835},{"style":118},[1836],{"type":35,"value":1837}," readBody",{"type":30,"tag":90,"props":1839,"children":1840},{"style":124},[1841],{"type":35,"value":1842},"(event)\n",{"type":30,"tag":90,"props":1844,"children":1845},{"class":92,"line":139},[1846],{"type":30,"tag":90,"props":1847,"children":1848},{"style":124},[1849],{"type":35,"value":1850},"  \n",{"type":30,"tag":90,"props":1852,"children":1853},{"class":92,"line":148},[1854,1859,1864,1868,1873,1878,1883,1888,1892,1897,1902],{"type":30,"tag":90,"props":1855,"children":1856},{"style":107},[1857],{"type":35,"value":1858},"  await",{"type":30,"tag":90,"props":1860,"children":1861},{"style":118},[1862],{"type":35,"value":1863}," fetch",{"type":30,"tag":90,"props":1865,"children":1866},{"style":124},[1867],{"type":35,"value":540},{"type":30,"tag":90,"props":1869,"children":1870},{"style":175},[1871],{"type":35,"value":1872},"`https:\u002F\u002Fapi.cloudflare.com\u002Fclient\u002Fv4\u002Fzones\u002F${",{"type":30,"tag":90,"props":1874,"children":1875},{"style":124},[1876],{"type":35,"value":1877},"process",{"type":30,"tag":90,"props":1879,"children":1880},{"style":175},[1881],{"type":35,"value":1882},".",{"type":30,"tag":90,"props":1884,"children":1885},{"style":124},[1886],{"type":35,"value":1887},"env",{"type":30,"tag":90,"props":1889,"children":1890},{"style":175},[1891],{"type":35,"value":1882},{"type":30,"tag":90,"props":1893,"children":1894},{"style":437},[1895],{"type":35,"value":1896},"CF_ZONE_ID",{"type":30,"tag":90,"props":1898,"children":1899},{"style":175},[1900],{"type":35,"value":1901},"}\u002Fpurge_cache`",{"type":30,"tag":90,"props":1903,"children":1904},{"style":124},[1905],{"type":35,"value":1906},", {\n",{"type":30,"tag":90,"props":1908,"children":1909},{"class":92,"line":157},[1910,1915,1920],{"type":30,"tag":90,"props":1911,"children":1912},{"style":124},[1913],{"type":35,"value":1914},"    method: ",{"type":30,"tag":90,"props":1916,"children":1917},{"style":175},[1918],{"type":35,"value":1919},"'POST'",{"type":30,"tag":90,"props":1921,"children":1922},{"style":124},[1923],{"type":35,"value":183},{"type":30,"tag":90,"props":1925,"children":1926},{"class":92,"line":166},[1927],{"type":30,"tag":90,"props":1928,"children":1929},{"style":124},[1930],{"type":35,"value":1931},"    headers: {\n",{"type":30,"tag":90,"props":1933,"children":1934},{"class":92,"line":186},[1935,1940,1944,1949,1953,1957,1961,1965,1970,1975],{"type":30,"tag":90,"props":1936,"children":1937},{"style":175},[1938],{"type":35,"value":1939},"      'Authorization'",{"type":30,"tag":90,"props":1941,"children":1942},{"style":124},[1943],{"type":35,"value":445},{"type":30,"tag":90,"props":1945,"children":1946},{"style":175},[1947],{"type":35,"value":1948},"`Bearer ${",{"type":30,"tag":90,"props":1950,"children":1951},{"style":124},[1952],{"type":35,"value":1877},{"type":30,"tag":90,"props":1954,"children":1955},{"style":175},[1956],{"type":35,"value":1882},{"type":30,"tag":90,"props":1958,"children":1959},{"style":124},[1960],{"type":35,"value":1887},{"type":30,"tag":90,"props":1962,"children":1963},{"style":175},[1964],{"type":35,"value":1882},{"type":30,"tag":90,"props":1966,"children":1967},{"style":437},[1968],{"type":35,"value":1969},"CF_API_TOKEN",{"type":30,"tag":90,"props":1971,"children":1972},{"style":175},[1973],{"type":35,"value":1974},"}`",{"type":30,"tag":90,"props":1976,"children":1977},{"style":124},[1978],{"type":35,"value":183},{"type":30,"tag":90,"props":1980,"children":1981},{"class":92,"line":24},[1982,1987,1991],{"type":30,"tag":90,"props":1983,"children":1984},{"style":175},[1985],{"type":35,"value":1986},"      'Content-Type'",{"type":30,"tag":90,"props":1988,"children":1989},{"style":124},[1990],{"type":35,"value":445},{"type":30,"tag":90,"props":1992,"children":1993},{"style":175},[1994],{"type":35,"value":1995},"'application\u002Fjson'\n",{"type":30,"tag":90,"props":1997,"children":1998},{"class":92,"line":221},[1999],{"type":30,"tag":90,"props":2000,"children":2001},{"style":124},[2002],{"type":35,"value":1682},{"type":30,"tag":90,"props":2004,"children":2005},{"class":92,"line":239},[2006,2011,2016,2020,2025],{"type":30,"tag":90,"props":2007,"children":2008},{"style":124},[2009],{"type":35,"value":2010},"    body: ",{"type":30,"tag":90,"props":2012,"children":2013},{"style":437},[2014],{"type":35,"value":2015},"JSON",{"type":30,"tag":90,"props":2017,"children":2018},{"style":124},[2019],{"type":35,"value":1882},{"type":30,"tag":90,"props":2021,"children":2022},{"style":118},[2023],{"type":35,"value":2024},"stringify",{"type":30,"tag":90,"props":2026,"children":2027},{"style":124},[2028],{"type":35,"value":127},{"type":30,"tag":90,"props":2030,"children":2031},{"class":92,"line":253},[2032,2037,2042,2046,2050],{"type":30,"tag":90,"props":2033,"children":2034},{"style":124},[2035],{"type":35,"value":2036},"      files: [",{"type":30,"tag":90,"props":2038,"children":2039},{"style":175},[2040],{"type":35,"value":2041},"`https:\u002F\u002Fexample.com\u002Fproducts\u002F${",{"type":30,"tag":90,"props":2043,"children":2044},{"style":124},[2045],{"type":35,"value":1818},{"type":30,"tag":90,"props":2047,"children":2048},{"style":175},[2049],{"type":35,"value":1974},{"type":30,"tag":90,"props":2051,"children":2052},{"style":124},[2053],{"type":35,"value":2054},"]\n",{"type":30,"tag":90,"props":2056,"children":2057},{"class":92,"line":262},[2058],{"type":30,"tag":90,"props":2059,"children":2060},{"style":124},[2061],{"type":35,"value":2062},"    })\n",{"type":30,"tag":90,"props":2064,"children":2065},{"class":92,"line":270},[2066],{"type":30,"tag":90,"props":2067,"children":2068},{"style":124},[2069],{"type":35,"value":1198},{"type":30,"tag":90,"props":2071,"children":2072},{"class":92,"line":286},[2073],{"type":30,"tag":90,"props":2074,"children":2075},{"style":124},[2076],{"type":35,"value":1850},{"type":30,"tag":90,"props":2078,"children":2079},{"class":92,"line":302},[2080,2085,2090,2095],{"type":30,"tag":90,"props":2081,"children":2082},{"style":107},[2083],{"type":35,"value":2084},"  return",{"type":30,"tag":90,"props":2086,"children":2087},{"style":124},[2088],{"type":35,"value":2089}," { success: ",{"type":30,"tag":90,"props":2091,"children":2092},{"style":437},[2093],{"type":35,"value":2094},"true",{"type":30,"tag":90,"props":2096,"children":2097},{"style":124},[2098],{"type":35,"value":2099}," }\n",{"type":30,"tag":90,"props":2101,"children":2102},{"class":92,"line":318},[2103],{"type":30,"tag":90,"props":2104,"children":2105},{"style":124},[2106],{"type":35,"value":389},{"type":30,"tag":47,"props":2108,"children":2110},{"id":2109},"benchmark-vergleich",[2111],{"type":35,"value":2112},"Benchmark Vergleich",{"type":30,"tag":2114,"props":2115,"children":2116},"table",{},[2117,2146],{"type":30,"tag":2118,"props":2119,"children":2120},"thead",{},[2121],{"type":30,"tag":2122,"props":2123,"children":2124},"tr",{},[2125,2131,2136,2141],{"type":30,"tag":2126,"props":2127,"children":2128},"th",{},[2129],{"type":35,"value":2130},"Metrik",{"type":30,"tag":2126,"props":2132,"children":2133},{},[2134],{"type":35,"value":2135},"Vorher",{"type":30,"tag":2126,"props":2137,"children":2138},{},[2139],{"type":35,"value":2140},"Nachher",{"type":30,"tag":2126,"props":2142,"children":2143},{},[2144],{"type":35,"value":2145},"Veränderung",{"type":30,"tag":2147,"props":2148,"children":2149},"tbody",{},[2150,2174,2197,2220,2243,2266],{"type":30,"tag":2122,"props":2151,"children":2152},{},[2153,2159,2164,2169],{"type":30,"tag":2154,"props":2155,"children":2156},"td",{},[2157],{"type":35,"value":2158},"LCP",{"type":30,"tag":2154,"props":2160,"children":2161},{},[2162],{"type":35,"value":2163},"10,2s",{"type":30,"tag":2154,"props":2165,"children":2166},{},[2167],{"type":35,"value":2168},"2,1s",{"type":30,"tag":2154,"props":2170,"children":2171},{},[2172],{"type":35,"value":2173},"-79%",{"type":30,"tag":2122,"props":2175,"children":2176},{},[2177,2182,2187,2192],{"type":30,"tag":2154,"props":2178,"children":2179},{},[2180],{"type":35,"value":2181},"TBT",{"type":30,"tag":2154,"props":2183,"children":2184},{},[2185],{"type":35,"value":2186},"2.190ms",{"type":30,"tag":2154,"props":2188,"children":2189},{},[2190],{"type":35,"value":2191},"180ms",{"type":30,"tag":2154,"props":2193,"children":2194},{},[2195],{"type":35,"value":2196},"-92%",{"type":30,"tag":2122,"props":2198,"children":2199},{},[2200,2205,2210,2215],{"type":30,"tag":2154,"props":2201,"children":2202},{},[2203],{"type":35,"value":2204},"TTFB",{"type":30,"tag":2154,"props":2206,"children":2207},{},[2208],{"type":35,"value":2209},"1.200ms",{"type":30,"tag":2154,"props":2211,"children":2212},{},[2213],{"type":35,"value":2214},"40ms",{"type":30,"tag":2154,"props":2216,"children":2217},{},[2218],{"type":35,"value":2219},"-97%",{"type":30,"tag":2122,"props":2221,"children":2222},{},[2223,2228,2233,2238],{"type":30,"tag":2154,"props":2224,"children":2225},{},[2226],{"type":35,"value":2227},"FCP",{"type":30,"tag":2154,"props":2229,"children":2230},{},[2231],{"type":35,"value":2232},"4,8s",{"type":30,"tag":2154,"props":2234,"children":2235},{},[2236],{"type":35,"value":2237},"1,2s",{"type":30,"tag":2154,"props":2239,"children":2240},{},[2241],{"type":35,"value":2242},"-75%",{"type":30,"tag":2122,"props":2244,"children":2245},{},[2246,2251,2256,2261],{"type":30,"tag":2154,"props":2247,"children":2248},{},[2249],{"type":35,"value":2250},"CLS",{"type":30,"tag":2154,"props":2252,"children":2253},{},[2254],{"type":35,"value":2255},"0,18",{"type":30,"tag":2154,"props":2257,"children":2258},{},[2259],{"type":35,"value":2260},"0,02",{"type":30,"tag":2154,"props":2262,"children":2263},{},[2264],{"type":35,"value":2265},"-89%",{"type":30,"tag":2122,"props":2267,"children":2268},{},[2269,2274,2279,2284],{"type":30,"tag":2154,"props":2270,"children":2271},{},[2272],{"type":35,"value":2273},"Initial Bundle",{"type":30,"tag":2154,"props":2275,"children":2276},{},[2277],{"type":35,"value":2278},"284 KB",{"type":30,"tag":2154,"props":2280,"children":2281},{},[2282],{"type":35,"value":2283},"186 KB",{"type":30,"tag":2154,"props":2285,"children":2286},{},[2287],{"type":35,"value":2288},"-34%",{"type":30,"tag":31,"props":2290,"children":2291},{},[2292],{"type":35,"value":2293},"Testumgebung: Chrome 121, 4G Throttling, Lighthouse CI. Durchschnitt von 10 Runs. LCP liegt unter 2,5 Sekunden (Googles \"Good\" Schwellwert) ✓",{"type":30,"tag":47,"props":2295,"children":2297},{"id":2296},"tradeoffs-und-vorsichtsmaßnahmen",[2298],{"type":35,"value":2299},"Tradeoffs und Vorsichtsmaßnahmen",{"type":30,"tag":31,"props":2301,"children":2302},{},[2303,2305,2310],{"type":35,"value":2304},"Self-gehostete Fonts verlieren das globale CDN-Netzwerk von Google, aber Cloudflare Pages hostet ohnehin am Edge. Mit Woff2-Kompression ist der Latenz-Nachteil minimal. Lazy Hydration kostet initiale Interaktivität — Below-the-Fold Components werden erst nach ",{"type":30,"tag":38,"props":2306,"children":2308},{"className":2307},[],[2309],{"type":35,"value":1139},{"type":35,"value":2311}," interaktiv. Das erfordert Analytics für \"Time to Interactive Below Fold\".",{"type":30,"tag":31,"props":2313,"children":2314},{},[2315,2320,2322,2328,2330,2336],{"type":30,"tag":38,"props":2316,"children":2318},{"className":2317},[],[2319],{"type":35,"value":43},{"type":35,"value":2321}," wird vor Safari 17.4 nicht unterstützt; ",{"type":30,"tag":38,"props":2323,"children":2325},{"className":2324},[],[2326],{"type":35,"value":2327},"@supports",{"type":35,"value":2329}," Guard ist notwendig. Edge Caching konfligiert mit Personalisierung — Warenkorb und Login State müssen mit ",{"type":30,"tag":38,"props":2331,"children":2333},{"className":2332},[],[2334],{"type":35,"value":2335},"Cache-Control: private",{"type":35,"value":2337}," oder Client-Side Rendering geschützt sein.",{"type":30,"tag":31,"props":2339,"children":2340},{},[2341],{"type":35,"value":2342},"ISR Webhook Purge ist ein manueller Prozess; Automation zur Inventory Management ist sinnvoll. Risiko: veralteter Content bei kritischen Seiten (Checkout, Payment). Dort ISR deaktivieren.",{"type":30,"tag":47,"props":2344,"children":2346},{"id":2345},"composable-architecture-für-skalierbarkeit",[2347],{"type":35,"value":2348},"Composable Architecture für Skalierbarkeit",{"type":30,"tag":31,"props":2350,"children":2351},{},[2352,2354,2363,2365,2370],{"type":35,"value":2353},"Diese Optimierungen testeten wir im ",{"type":30,"tag":2355,"props":2356,"children":2360},"a",{"href":2357,"rel":2358},"https:\u002F\u002Fwww.roibase.com.tr\u002Fde\u002Fheadless",[2359],"nofollow",[2361],{"type":35,"value":2362},"Headless Commerce",{"type":35,"value":2364}," Setup — Nuxt 3 Frontend, Shopify Storefront API Backend. Das gleiche Pattern funktioniert mit Next.js + Hydrogen oder Remix. Die Edge-Cache-Strategie ist Framework-agnostisch; Cloudflare Workers KV oder Vercel Edge Config ermöglichen Erweiterung. Für Performance Monitoring empfiehlt sich RUM — Cloudflare Web Analytics oder Sentry Performance statt nur ",{"type":30,"tag":38,"props":2366,"children":2368},{"className":2367},[],[2369],{"type":35,"value":765},{"type":35,"value":1882},{"type":30,"tag":31,"props":2372,"children":2373},{},[2374,2376,2382],{"type":35,"value":2375},"LCP 2,1 Sekunden erreicht Googles \"Good\" Rating, aber auf Mobil mit 4G-Drosselung sollte auch getestet werden. Progressive Enhancement sichert Funktionalität ohne JavaScript — kritischer Content muss SSR-HTML-Fallback haben. Nuxt ",{"type":30,"tag":38,"props":2377,"children":2379},{"className":2378},[],[2380],{"type":35,"value":2381},"\u003CNoScript>",{"type":35,"value":2383}," Component kann hier helfen.",{"type":30,"tag":2385,"props":2386,"children":2387},"style",{},[2388],{"type":35,"value":2389},"html .default .shiki span {color: var(--shiki-default);background: var(--shiki-default-bg);font-style: var(--shiki-default-font-style);font-weight: var(--shiki-default-font-weight);text-decoration: var(--shiki-default-text-decoration);}html .shiki span {color: var(--shiki-default);background: var(--shiki-default-bg);font-style: var(--shiki-default-font-style);font-weight: var(--shiki-default-font-weight);text-decoration: var(--shiki-default-text-decoration);}",{"title":14,"searchDepth":130,"depth":130,"links":2391},[2392,2393,2397,2398,2401,2402,2403],{"id":49,"depth":103,"text":52},{"id":739,"depth":103,"text":742,"children":2394},[2395,2396],{"id":751,"depth":130,"text":754},{"id":1245,"depth":130,"text":1248},{"id":1403,"depth":103,"text":1406},{"id":1523,"depth":103,"text":1526,"children":2399},[2400],{"id":1570,"depth":130,"text":1573},{"id":2109,"depth":103,"text":2112},{"id":2296,"depth":103,"text":2299},{"id":2345,"depth":103,"text":2348},"markdown","content:de:tech:nuxt3-cloudflare-pages-lcp-optimierung.md","content","de\u002Ftech\u002Fnuxt3-cloudflare-pages-lcp-optimierung.md","de\u002Ftech\u002Fnuxt3-cloudflare-pages-lcp-optimierung","md",1781618618373]