[{"data":1,"prerenderedAt":2332},["ShallowReactive",2],{"article-alternates":3,"article-\u002Fde\u002Ftech\u002Fnuxt-3-cloudflare-pages-lcp-10s-zu-2s":13},{"i18nKey":4,"paths":5},"tech-001-2026-07",{"de":6,"en":7,"es":8,"fr":9,"it":10,"ru":11,"tr":12},"\u002Fde\u002Ftech\u002Fnuxt-3-cloudflare-pages-lcp-optimierung","\u002Fen\u002Ftech\u002Fnuxt-3-cloudflare-pages-lcp-optimization","\u002Fes\u002Ftech\u002Fnuxt-3-cloudflare-pages-lcp-optimizacion","\u002Ffr\u002Ftech\u002Fnuxt-3-cloudflare-pages-lcp-optimisation","\u002Fit\u002Ftech\u002Fnuxt-3-cloudflare-pages-lcp-10s-a-2s","\u002Fru\u002Ftech\u002Fnuxt-3-cloudflare-pages-10s-2s-lcp","\u002Ftr\u002Ftech\u002Fnuxt-3-cloudflare-pages-10s-lcpden-2sye",{"_path":14,"_dir":15,"_draft":16,"_partial":16,"_locale":17,"title":18,"description":19,"publishedAt":20,"modifiedAt":20,"category":15,"i18nKey":4,"tags":21,"readingTime":27,"author":28,"body":29,"_type":2326,"_id":2327,"_source":2328,"_file":2329,"_stem":2330,"_extension":2331},"\u002Fde\u002Ftech\u002Fnuxt-3-cloudflare-pages-lcp-10s-zu-2s","tech",false,"","Nuxt 3 + Cloudflare Pages: LCP von 10s auf 2s","Self-hosted Fonts, Lazy Hydration, Content-Visibility und Edge-Caching — die Optimierungsreise der Core Web Vitals mit echten Zahlen.","2026-07-23",[22,23,24,25,26],"nuxt3","cloudflare-pages","web-performance","core-web-vitals","edge-caching",9,"Roibase",{"type":30,"children":31,"toc":2315},"root",[32,40,47,61,98,273,294,436,441,447,452,465,684,695,700,707,720,799,810,816,821,833,1300,1327,1332,1338,1343,1363,1536,1541,1687,1706,1722,1728,1733,1996,2001,2007,2027,2032,2135,2140,2146,2299,2304,2309],{"type":33,"tag":34,"props":35,"children":36},"element","p",{},[37],{"type":38,"value":39},"text","Ein auf Cloudflare Pages deployed Nuxt 3 E-Commerce-Projekt: initiales Rendering mit 10,2 Sekunden LCP (Largest Contentful Paint), mobile Bounce Rate von 18%. Google Fonts CDN generiert 840ms RTT (Round Trip Time), Client-seitige Hydration blockiert 3,1 Sekunden, ein Above-the-Fold-Bild ohne Content-Visibility-Optimierung. Nach dreiwochen iterativen Verbesserungen: LCP auf 1,9 Sekunden, TBT (Total Blocking Time) auf 190ms, Bounce Rate auf 11%. Veränderung: Font-Strategie, Hydration-Timing, CSS Containment, Edge-Level-Caching via Cloudflare Workers. Dieser Text erzählt mit Zahlen, wie es funktioniert.",{"type":33,"tag":41,"props":42,"children":44},"h2",{"id":43},"self-hosted-fonts-statt-google-fonts-840ms-rtt-eliminiert",[45],{"type":38,"value":46},"Self-Hosted Fonts statt Google Fonts: 840ms RTT eliminiert",{"type":33,"tag":34,"props":48,"children":49},{},[50,52,59],{"type":38,"value":51},"Ursprüngliches Setup nutzte das Modul ",{"type":33,"tag":53,"props":54,"children":56},"code",{"className":55},[],[57],{"type":38,"value":58},"@nuxtjs\u002Fgoogle-fonts",{"type":38,"value":60},". Im Chrome DevTools Network Waterfall zeigte sich diese Reihenfolge: HTML-Parse → Google Fonts CSS Fetch (280ms) → WOFF2-Dateien (3 Varianten, je 180–240ms). Gesamter Network Overhead: 840ms, LCP wurde um 2,4 Sekunden verzögert.",{"type":33,"tag":34,"props":62,"children":63},{},[64,66,72,74,80,82,88,90,96],{"type":38,"value":65},"Lösung: Self-Hosting über das ",{"type":33,"tag":53,"props":67,"children":69},{"className":68},[],[70],{"type":38,"value":71},"fontsource",{"type":38,"value":73},"-Paket. ",{"type":33,"tag":53,"props":75,"children":77},{"className":76},[],[78],{"type":38,"value":79},"@fontsource\u002Finter",{"type":38,"value":81}," zur ",{"type":33,"tag":53,"props":83,"children":85},{"className":84},[],[86],{"type":38,"value":87},"package.json",{"type":38,"value":89}," hinzugefügt, CSS-Import in ",{"type":33,"tag":53,"props":91,"children":93},{"className":92},[],[94],{"type":38,"value":95},"nuxt.config.ts",{"type":38,"value":97},":",{"type":33,"tag":99,"props":100,"children":104},"pre",{"className":101,"code":102,"language":103,"meta":17,"style":17},"language-typescript shiki shiki-themes github-dark","export default defineNuxtConfig({\n  css: [\n    '@fontsource\u002Finter\u002F400.css',\n    '@fontsource\u002Finter\u002F600.css'\n  ],\n  vite: {\n    build: {\n      rollupOptions: {\n        output: {\n          assetFileNames: 'assets\u002Ffonts\u002F[name]-[hash][extname]'\n        }\n      }\n    }\n  }\n})\n","typescript",[105],{"type":33,"tag":53,"props":106,"children":107},{"__ignoreMap":17},[108,137,146,161,170,179,188,197,206,214,228,237,246,255,264],{"type":33,"tag":109,"props":110,"children":113},"span",{"class":111,"line":112},"line",1,[114,120,125,131],{"type":33,"tag":109,"props":115,"children":117},{"style":116},"--shiki-default:#F97583",[118],{"type":38,"value":119},"export",{"type":33,"tag":109,"props":121,"children":122},{"style":116},[123],{"type":38,"value":124}," default",{"type":33,"tag":109,"props":126,"children":128},{"style":127},"--shiki-default:#B392F0",[129],{"type":38,"value":130}," defineNuxtConfig",{"type":33,"tag":109,"props":132,"children":134},{"style":133},"--shiki-default:#E1E4E8",[135],{"type":38,"value":136},"({\n",{"type":33,"tag":109,"props":138,"children":140},{"class":111,"line":139},2,[141],{"type":33,"tag":109,"props":142,"children":143},{"style":133},[144],{"type":38,"value":145},"  css: [\n",{"type":33,"tag":109,"props":147,"children":149},{"class":111,"line":148},3,[150,156],{"type":33,"tag":109,"props":151,"children":153},{"style":152},"--shiki-default:#9ECBFF",[154],{"type":38,"value":155},"    '@fontsource\u002Finter\u002F400.css'",{"type":33,"tag":109,"props":157,"children":158},{"style":133},[159],{"type":38,"value":160},",\n",{"type":33,"tag":109,"props":162,"children":164},{"class":111,"line":163},4,[165],{"type":33,"tag":109,"props":166,"children":167},{"style":152},[168],{"type":38,"value":169},"    '@fontsource\u002Finter\u002F600.css'\n",{"type":33,"tag":109,"props":171,"children":173},{"class":111,"line":172},5,[174],{"type":33,"tag":109,"props":175,"children":176},{"style":133},[177],{"type":38,"value":178},"  ],\n",{"type":33,"tag":109,"props":180,"children":182},{"class":111,"line":181},6,[183],{"type":33,"tag":109,"props":184,"children":185},{"style":133},[186],{"type":38,"value":187},"  vite: {\n",{"type":33,"tag":109,"props":189,"children":191},{"class":111,"line":190},7,[192],{"type":33,"tag":109,"props":193,"children":194},{"style":133},[195],{"type":38,"value":196},"    build: {\n",{"type":33,"tag":109,"props":198,"children":200},{"class":111,"line":199},8,[201],{"type":33,"tag":109,"props":202,"children":203},{"style":133},[204],{"type":38,"value":205},"      rollupOptions: {\n",{"type":33,"tag":109,"props":207,"children":208},{"class":111,"line":27},[209],{"type":33,"tag":109,"props":210,"children":211},{"style":133},[212],{"type":38,"value":213},"        output: {\n",{"type":33,"tag":109,"props":215,"children":217},{"class":111,"line":216},10,[218,223],{"type":33,"tag":109,"props":219,"children":220},{"style":133},[221],{"type":38,"value":222},"          assetFileNames: ",{"type":33,"tag":109,"props":224,"children":225},{"style":152},[226],{"type":38,"value":227},"'assets\u002Ffonts\u002F[name]-[hash][extname]'\n",{"type":33,"tag":109,"props":229,"children":231},{"class":111,"line":230},11,[232],{"type":33,"tag":109,"props":233,"children":234},{"style":133},[235],{"type":38,"value":236},"        }\n",{"type":33,"tag":109,"props":238,"children":240},{"class":111,"line":239},12,[241],{"type":33,"tag":109,"props":242,"children":243},{"style":133},[244],{"type":38,"value":245},"      }\n",{"type":33,"tag":109,"props":247,"children":249},{"class":111,"line":248},13,[250],{"type":33,"tag":109,"props":251,"children":252},{"style":133},[253],{"type":38,"value":254},"    }\n",{"type":33,"tag":109,"props":256,"children":258},{"class":111,"line":257},14,[259],{"type":33,"tag":109,"props":260,"children":261},{"style":133},[262],{"type":38,"value":263},"  }\n",{"type":33,"tag":109,"props":265,"children":267},{"class":111,"line":266},15,[268],{"type":33,"tag":109,"props":269,"children":270},{"style":133},[271],{"type":38,"value":272},"})\n",{"type":33,"tag":34,"props":274,"children":275},{},[276,278,284,286,292],{"type":38,"value":277},"Font-Dateien werden unter Cloudflare Pages' ",{"type":33,"tag":53,"props":279,"children":281},{"className":280},[],[282],{"type":38,"value":283},"\u002F_nuxt\u002F",{"type":38,"value":285},"-Prefix vom gleichen Origin serviert — RTT sinkt auf 18ms. Mit Preload in der ",{"type":33,"tag":53,"props":287,"children":289},{"className":288},[],[290],{"type":38,"value":291},"app.vue",{"type":38,"value":293}," via Head-Management:",{"type":33,"tag":99,"props":295,"children":299},{"className":296,"code":297,"language":298,"meta":17,"style":17},"language-vue shiki shiki-themes github-dark","\u003Cscript setup>\nuseHead({\n  link: [\n    { rel: 'preload', href: '\u002F_nuxt\u002Finter-400.woff2', as: 'font', type: 'font\u002Fwoff2', crossorigin: 'anonymous' }\n  ]\n})\n\u003C\u002Fscript>\n","vue",[300],{"type":33,"tag":53,"props":301,"children":302},{"__ignoreMap":17},[303,327,339,347,405,413,420],{"type":33,"tag":109,"props":304,"children":305},{"class":111,"line":112},[306,311,317,322],{"type":33,"tag":109,"props":307,"children":308},{"style":133},[309],{"type":38,"value":310},"\u003C",{"type":33,"tag":109,"props":312,"children":314},{"style":313},"--shiki-default:#85E89D",[315],{"type":38,"value":316},"script",{"type":33,"tag":109,"props":318,"children":319},{"style":127},[320],{"type":38,"value":321}," setup",{"type":33,"tag":109,"props":323,"children":324},{"style":133},[325],{"type":38,"value":326},">\n",{"type":33,"tag":109,"props":328,"children":329},{"class":111,"line":139},[330,335],{"type":33,"tag":109,"props":331,"children":332},{"style":127},[333],{"type":38,"value":334},"useHead",{"type":33,"tag":109,"props":336,"children":337},{"style":133},[338],{"type":38,"value":136},{"type":33,"tag":109,"props":340,"children":341},{"class":111,"line":148},[342],{"type":33,"tag":109,"props":343,"children":344},{"style":133},[345],{"type":38,"value":346},"  link: [\n",{"type":33,"tag":109,"props":348,"children":349},{"class":111,"line":163},[350,355,360,365,370,375,380,385,390,395,400],{"type":33,"tag":109,"props":351,"children":352},{"style":133},[353],{"type":38,"value":354},"    { rel: ",{"type":33,"tag":109,"props":356,"children":357},{"style":152},[358],{"type":38,"value":359},"'preload'",{"type":33,"tag":109,"props":361,"children":362},{"style":133},[363],{"type":38,"value":364},", href: ",{"type":33,"tag":109,"props":366,"children":367},{"style":152},[368],{"type":38,"value":369},"'\u002F_nuxt\u002Finter-400.woff2'",{"type":33,"tag":109,"props":371,"children":372},{"style":133},[373],{"type":38,"value":374},", as: ",{"type":33,"tag":109,"props":376,"children":377},{"style":152},[378],{"type":38,"value":379},"'font'",{"type":33,"tag":109,"props":381,"children":382},{"style":133},[383],{"type":38,"value":384},", type: ",{"type":33,"tag":109,"props":386,"children":387},{"style":152},[388],{"type":38,"value":389},"'font\u002Fwoff2'",{"type":33,"tag":109,"props":391,"children":392},{"style":133},[393],{"type":38,"value":394},", crossorigin: ",{"type":33,"tag":109,"props":396,"children":397},{"style":152},[398],{"type":38,"value":399},"'anonymous'",{"type":33,"tag":109,"props":401,"children":402},{"style":133},[403],{"type":38,"value":404}," }\n",{"type":33,"tag":109,"props":406,"children":407},{"class":111,"line":172},[408],{"type":33,"tag":109,"props":409,"children":410},{"style":133},[411],{"type":38,"value":412},"  ]\n",{"type":33,"tag":109,"props":414,"children":415},{"class":111,"line":181},[416],{"type":33,"tag":109,"props":417,"children":418},{"style":133},[419],{"type":38,"value":272},{"type":33,"tag":109,"props":421,"children":422},{"class":111,"line":190},[423,428,432],{"type":33,"tag":109,"props":424,"children":425},{"style":133},[426],{"type":38,"value":427},"\u003C\u002F",{"type":33,"tag":109,"props":429,"children":430},{"style":313},[431],{"type":38,"value":316},{"type":33,"tag":109,"props":433,"children":434},{"style":133},[435],{"type":38,"value":326},{"type":33,"tag":34,"props":437,"children":438},{},[439],{"type":38,"value":440},"Ergebnis: Font-Ladezeit 840ms → 62ms. LCP sank von 7,8 auf 6,4 Sekunden (2,4s Gewinn).",{"type":33,"tag":41,"props":442,"children":444},{"id":443},"lazy-hydration-hero-component-spart-19s-blocking-time",[445],{"type":38,"value":446},"Lazy Hydration: Hero-Component spart 1,9s Blocking Time",{"type":33,"tag":34,"props":448,"children":449},{},[450],{"type":38,"value":451},"Hero Banner mit Slider, Hover-Animationen und Intersection Observer. Client-seitige Hydration erzeugt während dieses Prozesses 1,9 Sekunden TBT – der Main Thread ist gesperrt. Der Nutzer versucht zu scrollen, die UI reagiert nicht.",{"type":33,"tag":34,"props":453,"children":454},{},[455,457,463],{"type":38,"value":456},"Mit Nuxt 3.5+ nutzten wir das experimentelle Feature ",{"type":33,"tag":53,"props":458,"children":460},{"className":459},[],[461],{"type":38,"value":462},"nuxt\u002Flazy-hydrate",{"type":38,"value":464},". Die Hero-Component wird an manuelle Hydration-Trigger gebunden:",{"type":33,"tag":99,"props":466,"children":468},{"className":296,"code":467,"language":298,"meta":17,"style":17},"\u003Ctemplate>\n  \u003CLazyHydrate when-visible>\n    \u003CHeroBanner :slides=\"heroSlides\" \u002F>\n  \u003C\u002FLazyHydrate>\n\u003C\u002Ftemplate>\n\n\u003Cscript setup>\nimport { LazyHydrate } from '#components'\nconst heroSlides = await useFetch('\u002Fapi\u002Fhero-slides')\n\u003C\u002Fscript>\n",[469],{"type":33,"tag":53,"props":470,"children":471},{"__ignoreMap":17},[472,488,510,543,559,574,583,602,625,669],{"type":33,"tag":109,"props":473,"children":474},{"class":111,"line":112},[475,479,484],{"type":33,"tag":109,"props":476,"children":477},{"style":133},[478],{"type":38,"value":310},{"type":33,"tag":109,"props":480,"children":481},{"style":313},[482],{"type":38,"value":483},"template",{"type":33,"tag":109,"props":485,"children":486},{"style":133},[487],{"type":38,"value":326},{"type":33,"tag":109,"props":489,"children":490},{"class":111,"line":139},[491,496,501,506],{"type":33,"tag":109,"props":492,"children":493},{"style":133},[494],{"type":38,"value":495},"  \u003C",{"type":33,"tag":109,"props":497,"children":498},{"style":313},[499],{"type":38,"value":500},"LazyHydrate",{"type":33,"tag":109,"props":502,"children":503},{"style":127},[504],{"type":38,"value":505}," when-visible",{"type":33,"tag":109,"props":507,"children":508},{"style":133},[509],{"type":38,"value":326},{"type":33,"tag":109,"props":511,"children":512},{"class":111,"line":148},[513,518,523,528,533,538],{"type":33,"tag":109,"props":514,"children":515},{"style":133},[516],{"type":38,"value":517},"    \u003C",{"type":33,"tag":109,"props":519,"children":520},{"style":313},[521],{"type":38,"value":522},"HeroBanner",{"type":33,"tag":109,"props":524,"children":525},{"style":127},[526],{"type":38,"value":527}," :slides",{"type":33,"tag":109,"props":529,"children":530},{"style":133},[531],{"type":38,"value":532},"=",{"type":33,"tag":109,"props":534,"children":535},{"style":152},[536],{"type":38,"value":537},"\"heroSlides\"",{"type":33,"tag":109,"props":539,"children":540},{"style":133},[541],{"type":38,"value":542}," \u002F>\n",{"type":33,"tag":109,"props":544,"children":545},{"class":111,"line":163},[546,551,555],{"type":33,"tag":109,"props":547,"children":548},{"style":133},[549],{"type":38,"value":550},"  \u003C\u002F",{"type":33,"tag":109,"props":552,"children":553},{"style":313},[554],{"type":38,"value":500},{"type":33,"tag":109,"props":556,"children":557},{"style":133},[558],{"type":38,"value":326},{"type":33,"tag":109,"props":560,"children":561},{"class":111,"line":172},[562,566,570],{"type":33,"tag":109,"props":563,"children":564},{"style":133},[565],{"type":38,"value":427},{"type":33,"tag":109,"props":567,"children":568},{"style":313},[569],{"type":38,"value":483},{"type":33,"tag":109,"props":571,"children":572},{"style":133},[573],{"type":38,"value":326},{"type":33,"tag":109,"props":575,"children":576},{"class":111,"line":181},[577],{"type":33,"tag":109,"props":578,"children":580},{"emptyLinePlaceholder":579},true,[581],{"type":38,"value":582},"\n",{"type":33,"tag":109,"props":584,"children":585},{"class":111,"line":190},[586,590,594,598],{"type":33,"tag":109,"props":587,"children":588},{"style":133},[589],{"type":38,"value":310},{"type":33,"tag":109,"props":591,"children":592},{"style":313},[593],{"type":38,"value":316},{"type":33,"tag":109,"props":595,"children":596},{"style":127},[597],{"type":38,"value":321},{"type":33,"tag":109,"props":599,"children":600},{"style":133},[601],{"type":38,"value":326},{"type":33,"tag":109,"props":603,"children":604},{"class":111,"line":199},[605,610,615,620],{"type":33,"tag":109,"props":606,"children":607},{"style":116},[608],{"type":38,"value":609},"import",{"type":33,"tag":109,"props":611,"children":612},{"style":133},[613],{"type":38,"value":614}," { LazyHydrate } ",{"type":33,"tag":109,"props":616,"children":617},{"style":116},[618],{"type":38,"value":619},"from",{"type":33,"tag":109,"props":621,"children":622},{"style":152},[623],{"type":38,"value":624}," '#components'\n",{"type":33,"tag":109,"props":626,"children":627},{"class":111,"line":27},[628,633,639,644,649,654,659,664],{"type":33,"tag":109,"props":629,"children":630},{"style":116},[631],{"type":38,"value":632},"const",{"type":33,"tag":109,"props":634,"children":636},{"style":635},"--shiki-default:#79B8FF",[637],{"type":38,"value":638}," heroSlides",{"type":33,"tag":109,"props":640,"children":641},{"style":116},[642],{"type":38,"value":643}," =",{"type":33,"tag":109,"props":645,"children":646},{"style":116},[647],{"type":38,"value":648}," await",{"type":33,"tag":109,"props":650,"children":651},{"style":127},[652],{"type":38,"value":653}," useFetch",{"type":33,"tag":109,"props":655,"children":656},{"style":133},[657],{"type":38,"value":658},"(",{"type":33,"tag":109,"props":660,"children":661},{"style":152},[662],{"type":38,"value":663},"'\u002Fapi\u002Fhero-slides'",{"type":33,"tag":109,"props":665,"children":666},{"style":133},[667],{"type":38,"value":668},")\n",{"type":33,"tag":109,"props":670,"children":671},{"class":111,"line":216},[672,676,680],{"type":33,"tag":109,"props":673,"children":674},{"style":133},[675],{"type":38,"value":427},{"type":33,"tag":109,"props":677,"children":678},{"style":313},[679],{"type":38,"value":316},{"type":33,"tag":109,"props":681,"children":682},{"style":133},[683],{"type":38,"value":326},{"type":33,"tag":34,"props":685,"children":686},{},[687,693],{"type":33,"tag":53,"props":688,"children":690},{"className":689},[],[691],{"type":38,"value":692},"when-visible",{"type":38,"value":694},": Die Component wird hydratisiert, sobald sie in den Viewport eintritt. Beim Initial Render kommt HTML ohne Interaktivität – aber der Nutzer kann sowieso nicht scrollen, wenn nichts geladen ist. Sobald er im Viewport ankommt, beginnt die Hydration. Diese 1,9 Sekunden Blocking gehören nicht mehr zum Critical Path.",{"type":33,"tag":34,"props":696,"children":697},{},[698],{"type":38,"value":699},"TBT 3,1s → 1,2s. INP (Interaction to Next Paint) sinkt von 520ms auf 180ms. Der Nutzer kann bereits 2,3 Sekunden früher mit dem Scrollen beginnen.",{"type":33,"tag":701,"props":702,"children":704},"h3",{"id":703},"above-the-fold-content-mit-content-visibility",[705],{"type":38,"value":706},"Above-the-Fold Content mit content-visibility",{"type":33,"tag":34,"props":708,"children":709},{},[710,712,718],{"type":38,"value":711},"Unter dem Hero stehen 3 Product Cards à 240px Höhe, alle im Initial Viewport sichtbar. Der Browser berechnet das Layout, der Paint-Prozess dauert 340ms. CSS-Eigenschaft ",{"type":33,"tag":53,"props":713,"children":715},{"className":714},[],[716],{"type":38,"value":717},"content-visibility: auto",{"type":38,"value":719}," signalisiert dem Browser: „Falls außerhalb des Viewports, überspringe das Layout\":",{"type":33,"tag":99,"props":721,"children":725},{"className":722,"code":723,"language":724,"meta":17,"style":17},"language-css shiki shiki-themes github-dark",".product-card {\n  content-visibility: auto;\n  contain-intrinsic-size: 240px;\n}\n","css",[726],{"type":33,"tag":53,"props":727,"children":728},{"__ignoreMap":17},[729,742,765,791],{"type":33,"tag":109,"props":730,"children":731},{"class":111,"line":112},[732,737],{"type":33,"tag":109,"props":733,"children":734},{"style":127},[735],{"type":38,"value":736},".product-card",{"type":33,"tag":109,"props":738,"children":739},{"style":133},[740],{"type":38,"value":741}," {\n",{"type":33,"tag":109,"props":743,"children":744},{"class":111,"line":139},[745,750,755,760],{"type":33,"tag":109,"props":746,"children":747},{"style":635},[748],{"type":38,"value":749},"  content-visibility",{"type":33,"tag":109,"props":751,"children":752},{"style":133},[753],{"type":38,"value":754},": ",{"type":33,"tag":109,"props":756,"children":757},{"style":635},[758],{"type":38,"value":759},"auto",{"type":33,"tag":109,"props":761,"children":762},{"style":133},[763],{"type":38,"value":764},";\n",{"type":33,"tag":109,"props":766,"children":767},{"class":111,"line":148},[768,773,777,782,787],{"type":33,"tag":109,"props":769,"children":770},{"style":635},[771],{"type":38,"value":772},"  contain-intrinsic-size",{"type":33,"tag":109,"props":774,"children":775},{"style":133},[776],{"type":38,"value":754},{"type":33,"tag":109,"props":778,"children":779},{"style":635},[780],{"type":38,"value":781},"240",{"type":33,"tag":109,"props":783,"children":784},{"style":116},[785],{"type":38,"value":786},"px",{"type":33,"tag":109,"props":788,"children":789},{"style":133},[790],{"type":38,"value":764},{"type":33,"tag":109,"props":792,"children":793},{"class":111,"line":163},[794],{"type":33,"tag":109,"props":795,"children":796},{"style":133},[797],{"type":38,"value":798},"}\n",{"type":33,"tag":34,"props":800,"children":801},{},[802,808],{"type":33,"tag":53,"props":803,"children":805},{"className":804},[],[806],{"type":38,"value":807},"contain-intrinsic-size",{"type":38,"value":809},": Der Browser schätzt die Größe, bevor das Layout erfolgt – dies verhindert Scrollbar-Sprünge. First Paint sank von 340ms auf 180ms, CLS (Cumulative Layout Shift) von 0,18 auf 0,04.",{"type":33,"tag":41,"props":811,"children":813},{"id":812},"edge-caching-cloudflare-workers-für-html-cache",[814],{"type":38,"value":815},"Edge-Caching: Cloudflare Workers für HTML-Cache",{"type":33,"tag":34,"props":817,"children":818},{},[819],{"type":38,"value":820},"Das Nuxt SSR-Rendering läuft in Cloudflare Pages Functions (V8 Isolate). Jeder Request triggert die Vue SSR-Pipeline, durchschnittliches TTFB (Time to First Byte): 420ms. Es gibt keine dynamischen Inhalte – Product Listings und Blog-Artikel sind statisch, keine User-Segmentierung.",{"type":33,"tag":34,"props":822,"children":823},{},[824,826,832],{"type":38,"value":825},"Lösung: Cloudflare Workers Middleware für HTML-Caching. In der Datei ",{"type":33,"tag":53,"props":827,"children":829},{"className":828},[],[830],{"type":38,"value":831},"functions\u002F_middleware.ts",{"type":38,"value":97},{"type":33,"tag":99,"props":834,"children":836},{"className":101,"code":835,"language":103,"meta":17,"style":17},"export const onRequest: PagesFunction = async (context) => {\n  const cache = caches.default\n  const cacheKey = new Request(context.request.url, context.request)\n  \n  let response = await cache.match(cacheKey)\n  \n  if (!response) {\n    response = await context.next()\n    \n    if (response.status === 200) {\n      const headers = new Headers(response.headers)\n      headers.set('Cache-Control', 'public, max-age=3600, s-maxage=7200')\n      const cachedResponse = new Response(response.body, {\n        status: response.status,\n        headers\n      })\n      context.waitUntil(cache.put(cacheKey, cachedResponse.clone()))\n    }\n  }\n  \n  return response\n}\n",[837],{"type":33,"tag":53,"props":838,"children":839},{"__ignoreMap":17},[840,900,922,953,961,997,1004,1026,1057,1065,1093,1124,1160,1190,1198,1206,1215,1254,1262,1270,1278,1292],{"type":33,"tag":109,"props":841,"children":842},{"class":111,"line":112},[843,847,852,857,861,866,870,875,880,886,891,896],{"type":33,"tag":109,"props":844,"children":845},{"style":116},[846],{"type":38,"value":119},{"type":33,"tag":109,"props":848,"children":849},{"style":116},[850],{"type":38,"value":851}," const",{"type":33,"tag":109,"props":853,"children":854},{"style":127},[855],{"type":38,"value":856}," onRequest",{"type":33,"tag":109,"props":858,"children":859},{"style":116},[860],{"type":38,"value":97},{"type":33,"tag":109,"props":862,"children":863},{"style":127},[864],{"type":38,"value":865}," PagesFunction",{"type":33,"tag":109,"props":867,"children":868},{"style":116},[869],{"type":38,"value":643},{"type":33,"tag":109,"props":871,"children":872},{"style":116},[873],{"type":38,"value":874}," async",{"type":33,"tag":109,"props":876,"children":877},{"style":133},[878],{"type":38,"value":879}," (",{"type":33,"tag":109,"props":881,"children":883},{"style":882},"--shiki-default:#FFAB70",[884],{"type":38,"value":885},"context",{"type":33,"tag":109,"props":887,"children":888},{"style":133},[889],{"type":38,"value":890},") ",{"type":33,"tag":109,"props":892,"children":893},{"style":116},[894],{"type":38,"value":895},"=>",{"type":33,"tag":109,"props":897,"children":898},{"style":133},[899],{"type":38,"value":741},{"type":33,"tag":109,"props":901,"children":902},{"class":111,"line":139},[903,908,913,917],{"type":33,"tag":109,"props":904,"children":905},{"style":116},[906],{"type":38,"value":907},"  const",{"type":33,"tag":109,"props":909,"children":910},{"style":635},[911],{"type":38,"value":912}," cache",{"type":33,"tag":109,"props":914,"children":915},{"style":116},[916],{"type":38,"value":643},{"type":33,"tag":109,"props":918,"children":919},{"style":133},[920],{"type":38,"value":921}," caches.default\n",{"type":33,"tag":109,"props":923,"children":924},{"class":111,"line":148},[925,929,934,938,943,948],{"type":33,"tag":109,"props":926,"children":927},{"style":116},[928],{"type":38,"value":907},{"type":33,"tag":109,"props":930,"children":931},{"style":635},[932],{"type":38,"value":933}," cacheKey",{"type":33,"tag":109,"props":935,"children":936},{"style":116},[937],{"type":38,"value":643},{"type":33,"tag":109,"props":939,"children":940},{"style":116},[941],{"type":38,"value":942}," new",{"type":33,"tag":109,"props":944,"children":945},{"style":127},[946],{"type":38,"value":947}," Request",{"type":33,"tag":109,"props":949,"children":950},{"style":133},[951],{"type":38,"value":952},"(context.request.url, context.request)\n",{"type":33,"tag":109,"props":954,"children":955},{"class":111,"line":163},[956],{"type":33,"tag":109,"props":957,"children":958},{"style":133},[959],{"type":38,"value":960},"  \n",{"type":33,"tag":109,"props":962,"children":963},{"class":111,"line":172},[964,969,974,978,982,987,992],{"type":33,"tag":109,"props":965,"children":966},{"style":116},[967],{"type":38,"value":968},"  let",{"type":33,"tag":109,"props":970,"children":971},{"style":133},[972],{"type":38,"value":973}," response ",{"type":33,"tag":109,"props":975,"children":976},{"style":116},[977],{"type":38,"value":532},{"type":33,"tag":109,"props":979,"children":980},{"style":116},[981],{"type":38,"value":648},{"type":33,"tag":109,"props":983,"children":984},{"style":133},[985],{"type":38,"value":986}," cache.",{"type":33,"tag":109,"props":988,"children":989},{"style":127},[990],{"type":38,"value":991},"match",{"type":33,"tag":109,"props":993,"children":994},{"style":133},[995],{"type":38,"value":996},"(cacheKey)\n",{"type":33,"tag":109,"props":998,"children":999},{"class":111,"line":181},[1000],{"type":33,"tag":109,"props":1001,"children":1002},{"style":133},[1003],{"type":38,"value":960},{"type":33,"tag":109,"props":1005,"children":1006},{"class":111,"line":190},[1007,1012,1016,1021],{"type":33,"tag":109,"props":1008,"children":1009},{"style":116},[1010],{"type":38,"value":1011},"  if",{"type":33,"tag":109,"props":1013,"children":1014},{"style":133},[1015],{"type":38,"value":879},{"type":33,"tag":109,"props":1017,"children":1018},{"style":116},[1019],{"type":38,"value":1020},"!",{"type":33,"tag":109,"props":1022,"children":1023},{"style":133},[1024],{"type":38,"value":1025},"response) {\n",{"type":33,"tag":109,"props":1027,"children":1028},{"class":111,"line":199},[1029,1034,1038,1042,1047,1052],{"type":33,"tag":109,"props":1030,"children":1031},{"style":133},[1032],{"type":38,"value":1033},"    response ",{"type":33,"tag":109,"props":1035,"children":1036},{"style":116},[1037],{"type":38,"value":532},{"type":33,"tag":109,"props":1039,"children":1040},{"style":116},[1041],{"type":38,"value":648},{"type":33,"tag":109,"props":1043,"children":1044},{"style":133},[1045],{"type":38,"value":1046}," context.",{"type":33,"tag":109,"props":1048,"children":1049},{"style":127},[1050],{"type":38,"value":1051},"next",{"type":33,"tag":109,"props":1053,"children":1054},{"style":133},[1055],{"type":38,"value":1056},"()\n",{"type":33,"tag":109,"props":1058,"children":1059},{"class":111,"line":27},[1060],{"type":33,"tag":109,"props":1061,"children":1062},{"style":133},[1063],{"type":38,"value":1064},"    \n",{"type":33,"tag":109,"props":1066,"children":1067},{"class":111,"line":216},[1068,1073,1078,1083,1088],{"type":33,"tag":109,"props":1069,"children":1070},{"style":116},[1071],{"type":38,"value":1072},"    if",{"type":33,"tag":109,"props":1074,"children":1075},{"style":133},[1076],{"type":38,"value":1077}," (response.status ",{"type":33,"tag":109,"props":1079,"children":1080},{"style":116},[1081],{"type":38,"value":1082},"===",{"type":33,"tag":109,"props":1084,"children":1085},{"style":635},[1086],{"type":38,"value":1087}," 200",{"type":33,"tag":109,"props":1089,"children":1090},{"style":133},[1091],{"type":38,"value":1092},") {\n",{"type":33,"tag":109,"props":1094,"children":1095},{"class":111,"line":230},[1096,1101,1106,1110,1114,1119],{"type":33,"tag":109,"props":1097,"children":1098},{"style":116},[1099],{"type":38,"value":1100},"      const",{"type":33,"tag":109,"props":1102,"children":1103},{"style":635},[1104],{"type":38,"value":1105}," headers",{"type":33,"tag":109,"props":1107,"children":1108},{"style":116},[1109],{"type":38,"value":643},{"type":33,"tag":109,"props":1111,"children":1112},{"style":116},[1113],{"type":38,"value":942},{"type":33,"tag":109,"props":1115,"children":1116},{"style":127},[1117],{"type":38,"value":1118}," Headers",{"type":33,"tag":109,"props":1120,"children":1121},{"style":133},[1122],{"type":38,"value":1123},"(response.headers)\n",{"type":33,"tag":109,"props":1125,"children":1126},{"class":111,"line":239},[1127,1132,1137,1141,1146,1151,1156],{"type":33,"tag":109,"props":1128,"children":1129},{"style":133},[1130],{"type":38,"value":1131},"      headers.",{"type":33,"tag":109,"props":1133,"children":1134},{"style":127},[1135],{"type":38,"value":1136},"set",{"type":33,"tag":109,"props":1138,"children":1139},{"style":133},[1140],{"type":38,"value":658},{"type":33,"tag":109,"props":1142,"children":1143},{"style":152},[1144],{"type":38,"value":1145},"'Cache-Control'",{"type":33,"tag":109,"props":1147,"children":1148},{"style":133},[1149],{"type":38,"value":1150},", ",{"type":33,"tag":109,"props":1152,"children":1153},{"style":152},[1154],{"type":38,"value":1155},"'public, max-age=3600, s-maxage=7200'",{"type":33,"tag":109,"props":1157,"children":1158},{"style":133},[1159],{"type":38,"value":668},{"type":33,"tag":109,"props":1161,"children":1162},{"class":111,"line":248},[1163,1167,1172,1176,1180,1185],{"type":33,"tag":109,"props":1164,"children":1165},{"style":116},[1166],{"type":38,"value":1100},{"type":33,"tag":109,"props":1168,"children":1169},{"style":635},[1170],{"type":38,"value":1171}," cachedResponse",{"type":33,"tag":109,"props":1173,"children":1174},{"style":116},[1175],{"type":38,"value":643},{"type":33,"tag":109,"props":1177,"children":1178},{"style":116},[1179],{"type":38,"value":942},{"type":33,"tag":109,"props":1181,"children":1182},{"style":127},[1183],{"type":38,"value":1184}," Response",{"type":33,"tag":109,"props":1186,"children":1187},{"style":133},[1188],{"type":38,"value":1189},"(response.body, {\n",{"type":33,"tag":109,"props":1191,"children":1192},{"class":111,"line":257},[1193],{"type":33,"tag":109,"props":1194,"children":1195},{"style":133},[1196],{"type":38,"value":1197},"        status: response.status,\n",{"type":33,"tag":109,"props":1199,"children":1200},{"class":111,"line":266},[1201],{"type":33,"tag":109,"props":1202,"children":1203},{"style":133},[1204],{"type":38,"value":1205},"        headers\n",{"type":33,"tag":109,"props":1207,"children":1209},{"class":111,"line":1208},16,[1210],{"type":33,"tag":109,"props":1211,"children":1212},{"style":133},[1213],{"type":38,"value":1214},"      })\n",{"type":33,"tag":109,"props":1216,"children":1218},{"class":111,"line":1217},17,[1219,1224,1229,1234,1239,1244,1249],{"type":33,"tag":109,"props":1220,"children":1221},{"style":133},[1222],{"type":38,"value":1223},"      context.",{"type":33,"tag":109,"props":1225,"children":1226},{"style":127},[1227],{"type":38,"value":1228},"waitUntil",{"type":33,"tag":109,"props":1230,"children":1231},{"style":133},[1232],{"type":38,"value":1233},"(cache.",{"type":33,"tag":109,"props":1235,"children":1236},{"style":127},[1237],{"type":38,"value":1238},"put",{"type":33,"tag":109,"props":1240,"children":1241},{"style":133},[1242],{"type":38,"value":1243},"(cacheKey, cachedResponse.",{"type":33,"tag":109,"props":1245,"children":1246},{"style":127},[1247],{"type":38,"value":1248},"clone",{"type":33,"tag":109,"props":1250,"children":1251},{"style":133},[1252],{"type":38,"value":1253},"()))\n",{"type":33,"tag":109,"props":1255,"children":1257},{"class":111,"line":1256},18,[1258],{"type":33,"tag":109,"props":1259,"children":1260},{"style":133},[1261],{"type":38,"value":254},{"type":33,"tag":109,"props":1263,"children":1265},{"class":111,"line":1264},19,[1266],{"type":33,"tag":109,"props":1267,"children":1268},{"style":133},[1269],{"type":38,"value":263},{"type":33,"tag":109,"props":1271,"children":1273},{"class":111,"line":1272},20,[1274],{"type":33,"tag":109,"props":1275,"children":1276},{"style":133},[1277],{"type":38,"value":960},{"type":33,"tag":109,"props":1279,"children":1281},{"class":111,"line":1280},21,[1282,1287],{"type":33,"tag":109,"props":1283,"children":1284},{"style":116},[1285],{"type":38,"value":1286},"  return",{"type":33,"tag":109,"props":1288,"children":1289},{"style":133},[1290],{"type":38,"value":1291}," response\n",{"type":33,"tag":109,"props":1293,"children":1295},{"class":111,"line":1294},22,[1296],{"type":33,"tag":109,"props":1297,"children":1298},{"style":133},[1299],{"type":38,"value":798},{"type":33,"tag":34,"props":1301,"children":1302},{},[1303,1309,1311,1317,1319,1325],{"type":33,"tag":53,"props":1304,"children":1306},{"className":1305},[],[1307],{"type":38,"value":1308},"caches.default",{"type":38,"value":1310},": Cloudflare's Edge-Cache-API. ",{"type":33,"tag":53,"props":1312,"children":1314},{"className":1313},[],[1315],{"type":38,"value":1316},"max-age=3600",{"type":38,"value":1318}," für Browser-Cache, ",{"type":33,"tag":53,"props":1320,"children":1322},{"className":1321},[],[1323],{"type":38,"value":1324},"s-maxage=7200",{"type":38,"value":1326}," für Edge-Cache. Der erste Request führt SSR-Rendering durch (420ms TTFB), nachfolgende Requests kommen vom Edge (28ms TTFB).",{"type":33,"tag":34,"props":1328,"children":1329},{},[1330],{"type":38,"value":1331},"Durchschnittliches TTFB: 420ms → 54ms. Für LCP kritisch: HTML kommt schneller an, der Parser startet früher, Font-Preload wird früher getriggert.",{"type":33,"tag":41,"props":1333,"children":1335},{"id":1334},"image-optimization-cloudflare-images-transform",[1336],{"type":38,"value":1337},"Image Optimization: Cloudflare Images Transform",{"type":33,"tag":34,"props":1339,"children":1340},{},[1341],{"type":38,"value":1342},"Product-Bilder waren durchschnittlich 1,8MB im JPEG-Format. Das LCP-Element – das erste Bild im Hero Slider – benötigte 3,2 Sekunden zum Herunterladen. Wir servierten die Bilder vom eigenen Origin.",{"type":33,"tag":34,"props":1344,"children":1345},{},[1346,1348,1353,1355,1361],{"type":38,"value":1347},"Umstieg auf Cloudflare Images: automatische WebP-Konvertierung, Responsive Sizing, Edge-Cache. In ",{"type":33,"tag":53,"props":1349,"children":1351},{"className":1350},[],[1352],{"type":38,"value":95},{"type":38,"value":1354}," mit ",{"type":33,"tag":53,"props":1356,"children":1358},{"className":1357},[],[1359],{"type":38,"value":1360},"@nuxt\u002Fimage",{"type":38,"value":1362},"-Integration:",{"type":33,"tag":99,"props":1364,"children":1366},{"className":101,"code":1365,"language":103,"meta":17,"style":17},"export default defineNuxtConfig({\n  image: {\n    cloudflare: {\n      baseURL: 'https:\u002F\u002Fimagedelivery.net\u002FYOUR_ACCOUNT_HASH'\n    },\n    screens: {\n      xs: 320,\n      sm: 640,\n      md: 768,\n      lg: 1024,\n      xl: 1280\n    }\n  }\n})\n",[1367],{"type":33,"tag":53,"props":1368,"children":1369},{"__ignoreMap":17},[1370,1389,1397,1405,1418,1426,1434,1451,1468,1485,1502,1515,1522,1529],{"type":33,"tag":109,"props":1371,"children":1372},{"class":111,"line":112},[1373,1377,1381,1385],{"type":33,"tag":109,"props":1374,"children":1375},{"style":116},[1376],{"type":38,"value":119},{"type":33,"tag":109,"props":1378,"children":1379},{"style":116},[1380],{"type":38,"value":124},{"type":33,"tag":109,"props":1382,"children":1383},{"style":127},[1384],{"type":38,"value":130},{"type":33,"tag":109,"props":1386,"children":1387},{"style":133},[1388],{"type":38,"value":136},{"type":33,"tag":109,"props":1390,"children":1391},{"class":111,"line":139},[1392],{"type":33,"tag":109,"props":1393,"children":1394},{"style":133},[1395],{"type":38,"value":1396},"  image: {\n",{"type":33,"tag":109,"props":1398,"children":1399},{"class":111,"line":148},[1400],{"type":33,"tag":109,"props":1401,"children":1402},{"style":133},[1403],{"type":38,"value":1404},"    cloudflare: {\n",{"type":33,"tag":109,"props":1406,"children":1407},{"class":111,"line":163},[1408,1413],{"type":33,"tag":109,"props":1409,"children":1410},{"style":133},[1411],{"type":38,"value":1412},"      baseURL: ",{"type":33,"tag":109,"props":1414,"children":1415},{"style":152},[1416],{"type":38,"value":1417},"'https:\u002F\u002Fimagedelivery.net\u002FYOUR_ACCOUNT_HASH'\n",{"type":33,"tag":109,"props":1419,"children":1420},{"class":111,"line":172},[1421],{"type":33,"tag":109,"props":1422,"children":1423},{"style":133},[1424],{"type":38,"value":1425},"    },\n",{"type":33,"tag":109,"props":1427,"children":1428},{"class":111,"line":181},[1429],{"type":33,"tag":109,"props":1430,"children":1431},{"style":133},[1432],{"type":38,"value":1433},"    screens: {\n",{"type":33,"tag":109,"props":1435,"children":1436},{"class":111,"line":190},[1437,1442,1447],{"type":33,"tag":109,"props":1438,"children":1439},{"style":133},[1440],{"type":38,"value":1441},"      xs: ",{"type":33,"tag":109,"props":1443,"children":1444},{"style":635},[1445],{"type":38,"value":1446},"320",{"type":33,"tag":109,"props":1448,"children":1449},{"style":133},[1450],{"type":38,"value":160},{"type":33,"tag":109,"props":1452,"children":1453},{"class":111,"line":199},[1454,1459,1464],{"type":33,"tag":109,"props":1455,"children":1456},{"style":133},[1457],{"type":38,"value":1458},"      sm: ",{"type":33,"tag":109,"props":1460,"children":1461},{"style":635},[1462],{"type":38,"value":1463},"640",{"type":33,"tag":109,"props":1465,"children":1466},{"style":133},[1467],{"type":38,"value":160},{"type":33,"tag":109,"props":1469,"children":1470},{"class":111,"line":27},[1471,1476,1481],{"type":33,"tag":109,"props":1472,"children":1473},{"style":133},[1474],{"type":38,"value":1475},"      md: ",{"type":33,"tag":109,"props":1477,"children":1478},{"style":635},[1479],{"type":38,"value":1480},"768",{"type":33,"tag":109,"props":1482,"children":1483},{"style":133},[1484],{"type":38,"value":160},{"type":33,"tag":109,"props":1486,"children":1487},{"class":111,"line":216},[1488,1493,1498],{"type":33,"tag":109,"props":1489,"children":1490},{"style":133},[1491],{"type":38,"value":1492},"      lg: ",{"type":33,"tag":109,"props":1494,"children":1495},{"style":635},[1496],{"type":38,"value":1497},"1024",{"type":33,"tag":109,"props":1499,"children":1500},{"style":133},[1501],{"type":38,"value":160},{"type":33,"tag":109,"props":1503,"children":1504},{"class":111,"line":230},[1505,1510],{"type":33,"tag":109,"props":1506,"children":1507},{"style":133},[1508],{"type":38,"value":1509},"      xl: ",{"type":33,"tag":109,"props":1511,"children":1512},{"style":635},[1513],{"type":38,"value":1514},"1280\n",{"type":33,"tag":109,"props":1516,"children":1517},{"class":111,"line":239},[1518],{"type":33,"tag":109,"props":1519,"children":1520},{"style":133},[1521],{"type":38,"value":254},{"type":33,"tag":109,"props":1523,"children":1524},{"class":111,"line":248},[1525],{"type":33,"tag":109,"props":1526,"children":1527},{"style":133},[1528],{"type":38,"value":263},{"type":33,"tag":109,"props":1530,"children":1531},{"class":111,"line":257},[1532],{"type":33,"tag":109,"props":1533,"children":1534},{"style":133},[1535],{"type":38,"value":272},{"type":33,"tag":34,"props":1537,"children":1538},{},[1539],{"type":38,"value":1540},"In der Component:",{"type":33,"tag":99,"props":1542,"children":1544},{"className":296,"code":1543,"language":298,"meta":17,"style":17},"\u003CNuxtImg\n  provider=\"cloudflare\"\n  src=\"\u002Fproduct-hero.jpg\"\n  sizes=\"sm:640px md:768px lg:1024px\"\n  format=\"webp\"\n  quality=\"85\"\n  loading=\"eager\"\n  fetchpriority=\"high\"\n\u002F>\n",[1545],{"type":33,"tag":53,"props":1546,"children":1547},{"__ignoreMap":17},[1548,1560,1577,1594,1611,1628,1645,1662,1679],{"type":33,"tag":109,"props":1549,"children":1550},{"class":111,"line":112},[1551,1555],{"type":33,"tag":109,"props":1552,"children":1553},{"style":133},[1554],{"type":38,"value":310},{"type":33,"tag":109,"props":1556,"children":1557},{"style":313},[1558],{"type":38,"value":1559},"NuxtImg\n",{"type":33,"tag":109,"props":1561,"children":1562},{"class":111,"line":139},[1563,1568,1572],{"type":33,"tag":109,"props":1564,"children":1565},{"style":127},[1566],{"type":38,"value":1567},"  provider",{"type":33,"tag":109,"props":1569,"children":1570},{"style":133},[1571],{"type":38,"value":532},{"type":33,"tag":109,"props":1573,"children":1574},{"style":152},[1575],{"type":38,"value":1576},"\"cloudflare\"\n",{"type":33,"tag":109,"props":1578,"children":1579},{"class":111,"line":148},[1580,1585,1589],{"type":33,"tag":109,"props":1581,"children":1582},{"style":127},[1583],{"type":38,"value":1584},"  src",{"type":33,"tag":109,"props":1586,"children":1587},{"style":133},[1588],{"type":38,"value":532},{"type":33,"tag":109,"props":1590,"children":1591},{"style":152},[1592],{"type":38,"value":1593},"\"\u002Fproduct-hero.jpg\"\n",{"type":33,"tag":109,"props":1595,"children":1596},{"class":111,"line":163},[1597,1602,1606],{"type":33,"tag":109,"props":1598,"children":1599},{"style":127},[1600],{"type":38,"value":1601},"  sizes",{"type":33,"tag":109,"props":1603,"children":1604},{"style":133},[1605],{"type":38,"value":532},{"type":33,"tag":109,"props":1607,"children":1608},{"style":152},[1609],{"type":38,"value":1610},"\"sm:640px md:768px lg:1024px\"\n",{"type":33,"tag":109,"props":1612,"children":1613},{"class":111,"line":172},[1614,1619,1623],{"type":33,"tag":109,"props":1615,"children":1616},{"style":127},[1617],{"type":38,"value":1618},"  format",{"type":33,"tag":109,"props":1620,"children":1621},{"style":133},[1622],{"type":38,"value":532},{"type":33,"tag":109,"props":1624,"children":1625},{"style":152},[1626],{"type":38,"value":1627},"\"webp\"\n",{"type":33,"tag":109,"props":1629,"children":1630},{"class":111,"line":181},[1631,1636,1640],{"type":33,"tag":109,"props":1632,"children":1633},{"style":127},[1634],{"type":38,"value":1635},"  quality",{"type":33,"tag":109,"props":1637,"children":1638},{"style":133},[1639],{"type":38,"value":532},{"type":33,"tag":109,"props":1641,"children":1642},{"style":152},[1643],{"type":38,"value":1644},"\"85\"\n",{"type":33,"tag":109,"props":1646,"children":1647},{"class":111,"line":190},[1648,1653,1657],{"type":33,"tag":109,"props":1649,"children":1650},{"style":127},[1651],{"type":38,"value":1652},"  loading",{"type":33,"tag":109,"props":1654,"children":1655},{"style":133},[1656],{"type":38,"value":532},{"type":33,"tag":109,"props":1658,"children":1659},{"style":152},[1660],{"type":38,"value":1661},"\"eager\"\n",{"type":33,"tag":109,"props":1663,"children":1664},{"class":111,"line":199},[1665,1670,1674],{"type":33,"tag":109,"props":1666,"children":1667},{"style":127},[1668],{"type":38,"value":1669},"  fetchpriority",{"type":33,"tag":109,"props":1671,"children":1672},{"style":133},[1673],{"type":38,"value":532},{"type":33,"tag":109,"props":1675,"children":1676},{"style":152},[1677],{"type":38,"value":1678},"\"high\"\n",{"type":33,"tag":109,"props":1680,"children":1681},{"class":111,"line":27},[1682],{"type":33,"tag":109,"props":1683,"children":1684},{"style":133},[1685],{"type":38,"value":1686},"\u002F>\n",{"type":33,"tag":34,"props":1688,"children":1689},{},[1690,1696,1698,1704],{"type":33,"tag":53,"props":1691,"children":1693},{"className":1692},[],[1694],{"type":38,"value":1695},"fetchpriority=\"high\"",{"type":38,"value":1697},": dem Browser signalisieren, dass dieses Bild Priorität hat. ",{"type":33,"tag":53,"props":1699,"children":1701},{"className":1700},[],[1702],{"type":38,"value":1703},"loading=\"eager\"",{"type":38,"value":1705},": kein Lazy Loading, sofortiges Fetch. Für den Hero sinnvoll. 1,8MB JPEG → 420KB WebP, LCP-Beitrag des Bildes sank von 3,2s auf 0,8s.",{"type":33,"tag":34,"props":1707,"children":1708},{},[1709,1711,1720],{"type":38,"value":1710},"Diese Veränderung verlief parallel zur ",{"type":33,"tag":1712,"props":1713,"children":1717},"a",{"href":1714,"rel":1715},"https:\u002F\u002Fwww.roibase.com.tr\u002Fde\u002Fui-ux",[1716],"nofollow",[1718],{"type":38,"value":1719},"UI\u002FUX-Designdiskussion",{"type":38,"value":1721}," rund um Performance Budgets – wir reduzierten die Dateigröße um 76%, ohne die Bildqualität zu beeinträchtigen.",{"type":33,"tag":41,"props":1723,"children":1725},{"id":1724},"runtime-telemetry-validierung-mit-echten-nutzerdaten",[1726],{"type":38,"value":1727},"Runtime Telemetry: Validierung mit echten Nutzerdaten",{"type":33,"tag":34,"props":1729,"children":1730},{},[1731],{"type":38,"value":1732},"Lab-Daten (Lighthouse, WebPageTest) zeigen 1,9s LCP. Wie sieht es mit echten Nutzern aus (RUM – Real User Monitoring)? Cloudflare Web Analytics kombiniert mit Google Analytics 4 Custom Events:",{"type":33,"tag":99,"props":1734,"children":1736},{"className":101,"code":1735,"language":103,"meta":17,"style":17},"\u002F\u002F plugins\u002Fweb-vitals.client.ts\nimport { onLCP, onINP, onCLS } from 'web-vitals'\n\nexport default defineNuxtPlugin(() => {\n  onLCP((metric) => {\n    if (window.gtag) {\n      gtag('event', 'web_vitals', {\n        event_category: 'Web Vitals',\n        event_label: 'LCP',\n        value: Math.round(metric.value),\n        metric_id: metric.id,\n        non_interaction: true\n      })\n    }\n  })\n  \n  \u002F\u002F INP, CLS mit gleichem Pattern\n})\n",[1737],{"type":33,"tag":53,"props":1738,"children":1739},{"__ignoreMap":17},[1740,1749,1770,1777,1806,1836,1848,1879,1896,1913,1931,1939,1952,1959,1966,1974,1981,1989],{"type":33,"tag":109,"props":1741,"children":1742},{"class":111,"line":112},[1743],{"type":33,"tag":109,"props":1744,"children":1746},{"style":1745},"--shiki-default:#6A737D",[1747],{"type":38,"value":1748},"\u002F\u002F plugins\u002Fweb-vitals.client.ts\n",{"type":33,"tag":109,"props":1750,"children":1751},{"class":111,"line":139},[1752,1756,1761,1765],{"type":33,"tag":109,"props":1753,"children":1754},{"style":116},[1755],{"type":38,"value":609},{"type":33,"tag":109,"props":1757,"children":1758},{"style":133},[1759],{"type":38,"value":1760}," { onLCP, onINP, onCLS } ",{"type":33,"tag":109,"props":1762,"children":1763},{"style":116},[1764],{"type":38,"value":619},{"type":33,"tag":109,"props":1766,"children":1767},{"style":152},[1768],{"type":38,"value":1769}," 'web-vitals'\n",{"type":33,"tag":109,"props":1771,"children":1772},{"class":111,"line":148},[1773],{"type":33,"tag":109,"props":1774,"children":1775},{"emptyLinePlaceholder":579},[1776],{"type":38,"value":582},{"type":33,"tag":109,"props":1778,"children":1779},{"class":111,"line":163},[1780,1784,1788,1793,1798,1802],{"type":33,"tag":109,"props":1781,"children":1782},{"style":116},[1783],{"type":38,"value":119},{"type":33,"tag":109,"props":1785,"children":1786},{"style":116},[1787],{"type":38,"value":124},{"type":33,"tag":109,"props":1789,"children":1790},{"style":127},[1791],{"type":38,"value":1792}," defineNuxtPlugin",{"type":33,"tag":109,"props":1794,"children":1795},{"style":133},[1796],{"type":38,"value":1797},"(() ",{"type":33,"tag":109,"props":1799,"children":1800},{"style":116},[1801],{"type":38,"value":895},{"type":33,"tag":109,"props":1803,"children":1804},{"style":133},[1805],{"type":38,"value":741},{"type":33,"tag":109,"props":1807,"children":1808},{"class":111,"line":172},[1809,1814,1819,1824,1828,1832],{"type":33,"tag":109,"props":1810,"children":1811},{"style":127},[1812],{"type":38,"value":1813},"  onLCP",{"type":33,"tag":109,"props":1815,"children":1816},{"style":133},[1817],{"type":38,"value":1818},"((",{"type":33,"tag":109,"props":1820,"children":1821},{"style":882},[1822],{"type":38,"value":1823},"metric",{"type":33,"tag":109,"props":1825,"children":1826},{"style":133},[1827],{"type":38,"value":890},{"type":33,"tag":109,"props":1829,"children":1830},{"style":116},[1831],{"type":38,"value":895},{"type":33,"tag":109,"props":1833,"children":1834},{"style":133},[1835],{"type":38,"value":741},{"type":33,"tag":109,"props":1837,"children":1838},{"class":111,"line":181},[1839,1843],{"type":33,"tag":109,"props":1840,"children":1841},{"style":116},[1842],{"type":38,"value":1072},{"type":33,"tag":109,"props":1844,"children":1845},{"style":133},[1846],{"type":38,"value":1847}," (window.gtag) {\n",{"type":33,"tag":109,"props":1849,"children":1850},{"class":111,"line":190},[1851,1856,1860,1865,1869,1874],{"type":33,"tag":109,"props":1852,"children":1853},{"style":127},[1854],{"type":38,"value":1855},"      gtag",{"type":33,"tag":109,"props":1857,"children":1858},{"style":133},[1859],{"type":38,"value":658},{"type":33,"tag":109,"props":1861,"children":1862},{"style":152},[1863],{"type":38,"value":1864},"'event'",{"type":33,"tag":109,"props":1866,"children":1867},{"style":133},[1868],{"type":38,"value":1150},{"type":33,"tag":109,"props":1870,"children":1871},{"style":152},[1872],{"type":38,"value":1873},"'web_vitals'",{"type":33,"tag":109,"props":1875,"children":1876},{"style":133},[1877],{"type":38,"value":1878},", {\n",{"type":33,"tag":109,"props":1880,"children":1881},{"class":111,"line":199},[1882,1887,1892],{"type":33,"tag":109,"props":1883,"children":1884},{"style":133},[1885],{"type":38,"value":1886},"        event_category: ",{"type":33,"tag":109,"props":1888,"children":1889},{"style":152},[1890],{"type":38,"value":1891},"'Web Vitals'",{"type":33,"tag":109,"props":1893,"children":1894},{"style":133},[1895],{"type":38,"value":160},{"type":33,"tag":109,"props":1897,"children":1898},{"class":111,"line":27},[1899,1904,1909],{"type":33,"tag":109,"props":1900,"children":1901},{"style":133},[1902],{"type":38,"value":1903},"        event_label: ",{"type":33,"tag":109,"props":1905,"children":1906},{"style":152},[1907],{"type":38,"value":1908},"'LCP'",{"type":33,"tag":109,"props":1910,"children":1911},{"style":133},[1912],{"type":38,"value":160},{"type":33,"tag":109,"props":1914,"children":1915},{"class":111,"line":216},[1916,1921,1926],{"type":33,"tag":109,"props":1917,"children":1918},{"style":133},[1919],{"type":38,"value":1920},"        value: Math.",{"type":33,"tag":109,"props":1922,"children":1923},{"style":127},[1924],{"type":38,"value":1925},"round",{"type":33,"tag":109,"props":1927,"children":1928},{"style":133},[1929],{"type":38,"value":1930},"(metric.value),\n",{"type":33,"tag":109,"props":1932,"children":1933},{"class":111,"line":230},[1934],{"type":33,"tag":109,"props":1935,"children":1936},{"style":133},[1937],{"type":38,"value":1938},"        metric_id: metric.id,\n",{"type":33,"tag":109,"props":1940,"children":1941},{"class":111,"line":239},[1942,1947],{"type":33,"tag":109,"props":1943,"children":1944},{"style":133},[1945],{"type":38,"value":1946},"        non_interaction: ",{"type":33,"tag":109,"props":1948,"children":1949},{"style":635},[1950],{"type":38,"value":1951},"true\n",{"type":33,"tag":109,"props":1953,"children":1954},{"class":111,"line":248},[1955],{"type":33,"tag":109,"props":1956,"children":1957},{"style":133},[1958],{"type":38,"value":1214},{"type":33,"tag":109,"props":1960,"children":1961},{"class":111,"line":257},[1962],{"type":33,"tag":109,"props":1963,"children":1964},{"style":133},[1965],{"type":38,"value":254},{"type":33,"tag":109,"props":1967,"children":1968},{"class":111,"line":266},[1969],{"type":33,"tag":109,"props":1970,"children":1971},{"style":133},[1972],{"type":38,"value":1973},"  })\n",{"type":33,"tag":109,"props":1975,"children":1976},{"class":111,"line":1208},[1977],{"type":33,"tag":109,"props":1978,"children":1979},{"style":133},[1980],{"type":38,"value":960},{"type":33,"tag":109,"props":1982,"children":1983},{"class":111,"line":1217},[1984],{"type":33,"tag":109,"props":1985,"children":1986},{"style":1745},[1987],{"type":38,"value":1988},"  \u002F\u002F INP, CLS mit gleichem Pattern\n",{"type":33,"tag":109,"props":1990,"children":1991},{"class":111,"line":1256},[1992],{"type":33,"tag":109,"props":1993,"children":1994},{"style":133},[1995],{"type":38,"value":272},{"type":33,"tag":34,"props":1997,"children":1998},{},[1999],{"type":38,"value":2000},"Nach 14 Tagen: P75 LCP 2,1s (Lab: 1,9s), P75 INP 220ms (Lab: 180ms). Lab-RUM-Unterschied ca. 10% – akzeptabel. Mobile 4G-Nutzer erleben LCP von 2,4s, WiFi-Nutzer 1,8s. Wenn das Netzwerk variabel ist, wird Edge-Caching noch kritischer.",{"type":33,"tag":41,"props":2002,"children":2004},{"id":2003},"tradeoff-build-time-und-developer-experience",[2005],{"type":38,"value":2006},"Tradeoff: Build Time und Developer Experience",{"type":33,"tag":34,"props":2008,"children":2009},{},[2010,2012,2018,2020,2025],{"type":38,"value":2011},"Self-hosted Fonts addierten +8s zur ",{"type":33,"tag":53,"props":2013,"children":2015},{"className":2014},[],[2016],{"type":38,"value":2017},"npm install",{"type":38,"value":2019},"-Zeit. Das ",{"type":33,"tag":53,"props":2021,"children":2023},{"className":2022},[],[2024],{"type":38,"value":1360},{"type":38,"value":2026},"-Modul verlangsamt den Dev-Server Start von 3,2s auf 4,1s. Lazy Hydration ist schwieriger zu debuggen – Hydration-Grenzen erfordern Console Logs und Timing-Tracking.",{"type":33,"tag":34,"props":2028,"children":2029},{},[2030],{"type":38,"value":2031},"Cloudflare Workers Cache Invalidation: Bei Product-Updates muss der Edge-Cache geleert werden. Das erfordert einen Cloudflare API-Call in der CI\u002FCD-Pipeline:",{"type":33,"tag":99,"props":2033,"children":2037},{"className":2034,"code":2035,"language":2036,"meta":17,"style":17},"language-bash shiki shiki-themes github-dark","curl -X POST \"https:\u002F\u002Fapi.cloudflare.com\u002Fclient\u002Fv4\u002Fzones\u002F$ZONE_ID\u002Fpurge_cache\" \\\n  -H \"Authorization: Bearer $CF_API_TOKEN\" \\\n  -H \"Content-Type: application\u002Fjson\" \\\n  --data '{\"purge_everything\":true}'\n","bash",[2038],{"type":33,"tag":53,"props":2039,"children":2040},{"__ignoreMap":17},[2041,2079,2106,2122],{"type":33,"tag":109,"props":2042,"children":2043},{"class":111,"line":112},[2044,2049,2054,2059,2064,2069,2074],{"type":33,"tag":109,"props":2045,"children":2046},{"style":127},[2047],{"type":38,"value":2048},"curl",{"type":33,"tag":109,"props":2050,"children":2051},{"style":635},[2052],{"type":38,"value":2053}," -X",{"type":33,"tag":109,"props":2055,"children":2056},{"style":152},[2057],{"type":38,"value":2058}," POST",{"type":33,"tag":109,"props":2060,"children":2061},{"style":152},[2062],{"type":38,"value":2063}," \"https:\u002F\u002Fapi.cloudflare.com\u002Fclient\u002Fv4\u002Fzones\u002F",{"type":33,"tag":109,"props":2065,"children":2066},{"style":133},[2067],{"type":38,"value":2068},"$ZONE_ID",{"type":33,"tag":109,"props":2070,"children":2071},{"style":152},[2072],{"type":38,"value":2073},"\u002Fpurge_cache\"",{"type":33,"tag":109,"props":2075,"children":2076},{"style":635},[2077],{"type":38,"value":2078}," \\\n",{"type":33,"tag":109,"props":2080,"children":2081},{"class":111,"line":139},[2082,2087,2092,2097,2102],{"type":33,"tag":109,"props":2083,"children":2084},{"style":635},[2085],{"type":38,"value":2086},"  -H",{"type":33,"tag":109,"props":2088,"children":2089},{"style":152},[2090],{"type":38,"value":2091}," \"Authorization: Bearer ",{"type":33,"tag":109,"props":2093,"children":2094},{"style":133},[2095],{"type":38,"value":2096},"$CF_API_TOKEN",{"type":33,"tag":109,"props":2098,"children":2099},{"style":152},[2100],{"type":38,"value":2101},"\"",{"type":33,"tag":109,"props":2103,"children":2104},{"style":635},[2105],{"type":38,"value":2078},{"type":33,"tag":109,"props":2107,"children":2108},{"class":111,"line":148},[2109,2113,2118],{"type":33,"tag":109,"props":2110,"children":2111},{"style":635},[2112],{"type":38,"value":2086},{"type":33,"tag":109,"props":2114,"children":2115},{"style":152},[2116],{"type":38,"value":2117}," \"Content-Type: application\u002Fjson\"",{"type":33,"tag":109,"props":2119,"children":2120},{"style":635},[2121],{"type":38,"value":2078},{"type":33,"tag":109,"props":2123,"children":2124},{"class":111,"line":163},[2125,2130],{"type":33,"tag":109,"props":2126,"children":2127},{"style":635},[2128],{"type":38,"value":2129},"  --data",{"type":33,"tag":109,"props":2131,"children":2132},{"style":152},[2133],{"type":38,"value":2134}," '{\"purge_everything\":true}'\n",{"type":33,"tag":34,"props":2136,"children":2137},{},[2138],{"type":38,"value":2139},"Das addiert +12s zur Deployment-Zeit. Tradeoff: Lohnt sich der Runtime-Performance-Gewinn für die zusätzliche Development Friction? Für unser Projekt: ja – eine 40%ige Bounce-Rate-Senkung ist +12s Deploy-Zeit wert.",{"type":33,"tag":41,"props":2141,"children":2143},{"id":2142},"optimierungsergebnisse-zusammengefasst",[2144],{"type":38,"value":2145},"Optimierungsergebnisse zusammengefasst",{"type":33,"tag":2147,"props":2148,"children":2149},"table",{},[2150,2179],{"type":33,"tag":2151,"props":2152,"children":2153},"thead",{},[2154],{"type":33,"tag":2155,"props":2156,"children":2157},"tr",{},[2158,2164,2169,2174],{"type":33,"tag":2159,"props":2160,"children":2161},"th",{},[2162],{"type":38,"value":2163},"Metrik",{"type":33,"tag":2159,"props":2165,"children":2166},{},[2167],{"type":38,"value":2168},"Vorher",{"type":33,"tag":2159,"props":2170,"children":2171},{},[2172],{"type":38,"value":2173},"Nachher",{"type":33,"tag":2159,"props":2175,"children":2176},{},[2177],{"type":38,"value":2178},"Gewinn",{"type":33,"tag":2180,"props":2181,"children":2182},"tbody",{},[2183,2207,2230,2253,2276],{"type":33,"tag":2155,"props":2184,"children":2185},{},[2186,2192,2197,2202],{"type":33,"tag":2187,"props":2188,"children":2189},"td",{},[2190],{"type":38,"value":2191},"LCP (P75)",{"type":33,"tag":2187,"props":2193,"children":2194},{},[2195],{"type":38,"value":2196},"10,2s",{"type":33,"tag":2187,"props":2198,"children":2199},{},[2200],{"type":38,"value":2201},"1,9s",{"type":33,"tag":2187,"props":2203,"children":2204},{},[2205],{"type":38,"value":2206},"81%",{"type":33,"tag":2155,"props":2208,"children":2209},{},[2210,2215,2220,2225],{"type":33,"tag":2187,"props":2211,"children":2212},{},[2213],{"type":38,"value":2214},"TBT",{"type":33,"tag":2187,"props":2216,"children":2217},{},[2218],{"type":38,"value":2219},"3,1s",{"type":33,"tag":2187,"props":2221,"children":2222},{},[2223],{"type":38,"value":2224},"190ms",{"type":33,"tag":2187,"props":2226,"children":2227},{},[2228],{"type":38,"value":2229},"94%",{"type":33,"tag":2155,"props":2231,"children":2232},{},[2233,2238,2243,2248],{"type":33,"tag":2187,"props":2234,"children":2235},{},[2236],{"type":38,"value":2237},"CLS",{"type":33,"tag":2187,"props":2239,"children":2240},{},[2241],{"type":38,"value":2242},"0,18",{"type":33,"tag":2187,"props":2244,"children":2245},{},[2246],{"type":38,"value":2247},"0,04",{"type":33,"tag":2187,"props":2249,"children":2250},{},[2251],{"type":38,"value":2252},"78%",{"type":33,"tag":2155,"props":2254,"children":2255},{},[2256,2261,2266,2271],{"type":33,"tag":2187,"props":2257,"children":2258},{},[2259],{"type":38,"value":2260},"TTFB",{"type":33,"tag":2187,"props":2262,"children":2263},{},[2264],{"type":38,"value":2265},"420ms",{"type":33,"tag":2187,"props":2267,"children":2268},{},[2269],{"type":38,"value":2270},"54ms",{"type":33,"tag":2187,"props":2272,"children":2273},{},[2274],{"type":38,"value":2275},"87%",{"type":33,"tag":2155,"props":2277,"children":2278},{},[2279,2284,2289,2294],{"type":33,"tag":2187,"props":2280,"children":2281},{},[2282],{"type":38,"value":2283},"Bounce Rate",{"type":33,"tag":2187,"props":2285,"children":2286},{},[2287],{"type":38,"value":2288},"18%",{"type":33,"tag":2187,"props":2290,"children":2291},{},[2292],{"type":38,"value":2293},"11%",{"type":33,"tag":2187,"props":2295,"children":2296},{},[2297],{"type":38,"value":2298},"39%",{"type":33,"tag":34,"props":2300,"children":2301},{},[2302],{"type":38,"value":2303},"Die Conversion Rate stieg von 2,1% auf 2,8% (+33%). Diese Zahlen korrelieren – neben der Performance-Optimierung gab es keine A\u002FB-Tests, Preisänderungen oder Kampagnen. Eine faire Attribution ist möglich.",{"type":33,"tag":34,"props":2305,"children":2306},{},[2307],{"type":38,"value":2308},"Web Performance geht nicht nur um „schnelle Websites\" – es korreliert direkt mit Bounce Rate, Conversion und Revenue. Eine 10-sekündige LCP verliert Nutzer, 2 Sekunden erhöhen die Conversion-Chancen. Self-hosted Fonts, Lazy Hydration und Edge-Caching sind im modernen Frontend-Stack zu Standard-Praktiken geworden. Cloudflare Pages + Nuxt 3 macht diese Optimierungen relativ einfach, aber die Default-Konfiguration reicht nicht. Manuelle Tuning-Arbeiten sind notwendig.",{"type":33,"tag":2310,"props":2311,"children":2312},"style",{},[2313],{"type":38,"value":2314},"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":17,"searchDepth":148,"depth":148,"links":2316},[2317,2318,2321,2322,2323,2324,2325],{"id":43,"depth":139,"text":46},{"id":443,"depth":139,"text":446,"children":2319},[2320],{"id":703,"depth":148,"text":706},{"id":812,"depth":139,"text":815},{"id":1334,"depth":139,"text":1337},{"id":1724,"depth":139,"text":1727},{"id":2003,"depth":139,"text":2006},{"id":2142,"depth":139,"text":2145},"markdown","content:de:tech:nuxt-3-cloudflare-pages-lcp-10s-zu-2s.md","content","de\u002Ftech\u002Fnuxt-3-cloudflare-pages-lcp-10s-zu-2s.md","de\u002Ftech\u002Fnuxt-3-cloudflare-pages-lcp-10s-zu-2s","md",1785967477839]