[{"data":1,"prerenderedAt":2702},["ShallowReactive",2],{"article-alternates":3,"article-\u002Fde\u002Ftech\u002Fheadless-e-commerce-migration-roadmap-risk-management":11},{"i18nKey":4,"paths":5},"tech-006-2026-07",{"de":6,"es":7,"fr":8,"it":9,"ru":10},"\u002Fde\u002Ftech\u002Fheadless-e-commerce-migration-roadmap-risk-management","\u002Fes\u002Ftech\u002Fmigracion-a-comercio-headless-hoja-de-ruta-gestion-riesgos","\u002Ffr\u002Ftech\u002Froadmap-migration-headless-gestion-risques","\u002Fit\u002Ftech\u002Fheadless-e-commerce-migration-roadmap-e-risk-management","\u002Fru\u002Ftech\u002Fheadless-migracion-hoja-ruta-y-gestion-riesgos",{"_path":6,"_dir":12,"_draft":13,"_partial":13,"_locale":14,"title":15,"description":16,"publishedAt":17,"modifiedAt":17,"category":18,"i18nKey":4,"tags":19,"readingTime":25,"author":26,"body":27,"_type":2696,"_id":2697,"_source":2698,"_file":2699,"_stem":2700,"_extension":2701},"tech",false,"","Headless E-Commerce: Migration Roadmap und Risikomanagement","Headless-Migration mit Phasen-Rollout unter SEO-Schutz. ATC-Abandonment-Analyse, Performance-Testszenarios und Risiko-Minimierung.","2026-07-16","headless",[20,21,22,23,24],"headless-commerce","migration-strategy","seo-preservation","performance-testing","risk-management",9,"Roibase",{"type":28,"children":29,"toc":2689},"root",[30,38,45,58,80,361,374,399,409,419,425,438,446,482,1432,1437,1486,1492,1497,1505,1981,1999,2041,2046,2052,2057,2352,2362,2589,2594,2600,2605,2613,2626,2634,2655,2671,2683],{"type":31,"tag":32,"props":33,"children":34},"element","p",{},[35],{"type":36,"value":37},"text","Headless-E-Commerce-Migration ist 2026 keine Ja-oder-Nein-Frage mehr. Die Frage lautet: \"Wie migrieren wir, ohne dass die Site abstürzt, SEO 40% verliert oder der Checkout-Abandonment von 18% auf 32% springt?\" Frameworks wie Shopify Hydrogen, Remix und Next.js Commerce sind ausgereift und haben das technische Risiko gesenkt – aber das operative Risiko bleibt hoch. Eine E-Commerce-Site von monolithisch zu headless zu migrieren ist nicht wie eine Datenmigration, sondern wie eine Operation am schlagenden Herzen. Dieser Artikel behandelt Phasen-Rollout-Strategie, SEO-Schutzmaßnahmen und Methoden zur Verhinderung von Cart-Abandonment-Spitzen.",{"type":31,"tag":39,"props":40,"children":42},"h2",{"id":41},"phasen-rollout-strategie-canary-deployment-über-pfade",[43],{"type":36,"value":44},"Phasen-Rollout-Strategie: Canary-Deployment über Pfade",{"type":31,"tag":32,"props":46,"children":47},{},[48,50,56],{"type":36,"value":49},"Kein Big-Bang-Migration. Die gesamte Site wechselt nicht gleichzeitig zum Headless-Frontend, weil ein fehlgeschlagener Fehler bei zu hohem Rollback-Kosten führt. Unsere bevorzugte Architektur: ",{"type":31,"tag":51,"props":52,"children":53},"strong",{},[54],{"type":36,"value":55},"URL-Pfad-basiertes Routing",{"type":36,"value":57}," mit progressivem Rollout.",{"type":31,"tag":32,"props":59,"children":60},{},[61,63,70,72,78],{"type":36,"value":62},"Die erste Phase wählt einen Traffic-Pfad mit niedriger Dichte und wenigen SKUs aus, z.B. ",{"type":31,"tag":64,"props":65,"children":67},"code",{"className":66},[],[68],{"type":36,"value":69},"\u002Fkategorie\u002Fneu-eingegangen",{"type":36,"value":71}," (50–100 Produkte). Im CDN (Cloudflare, Fastly) wird eine Routing-Regel konfiguriert: ",{"type":31,"tag":64,"props":73,"children":75},{"className":74},[],[76],{"type":36,"value":77},"\u002Fkategorie\u002Fneu-eingegangen\u002F*",{"type":36,"value":79}," Traffic geht zum Headless-Origin, der Rest zur Legacy-Shopify-Liquid.",{"type":31,"tag":81,"props":82,"children":86},"pre",{"className":83,"code":84,"language":85,"meta":14,"style":14},"language-javascript shiki shiki-themes github-dark","\u002F\u002F Cloudflare Workers – Pfad-Routing\naddEventListener('fetch', event => {\n  const url = new URL(event.request.url);\n  \n  if (url.pathname.startsWith('\u002Fkategorie\u002Fneu-eingegangen')) {\n    return event.respondWith(fetch(event.request, {\n      backend: 'headless-origin' \u002F\u002F Hydrogen App auf Cloudflare Pages\n    }));\n  }\n  \n  return event.respondWith(fetch(event.request, {\n    backend: 'legacy-shopify'\n  }));\n});\n","javascript",[87],{"type":31,"tag":64,"props":88,"children":89},{"__ignoreMap":14},[90,102,146,181,190,223,256,275,284,292,300,329,343,352],{"type":31,"tag":91,"props":92,"children":95},"span",{"class":93,"line":94},"line",1,[96],{"type":31,"tag":91,"props":97,"children":99},{"style":98},"--shiki-default:#6A737D",[100],{"type":36,"value":101},"\u002F\u002F Cloudflare Workers – Pfad-Routing\n",{"type":31,"tag":91,"props":103,"children":105},{"class":93,"line":104},2,[106,112,118,124,129,135,141],{"type":31,"tag":91,"props":107,"children":109},{"style":108},"--shiki-default:#B392F0",[110],{"type":36,"value":111},"addEventListener",{"type":31,"tag":91,"props":113,"children":115},{"style":114},"--shiki-default:#E1E4E8",[116],{"type":36,"value":117},"(",{"type":31,"tag":91,"props":119,"children":121},{"style":120},"--shiki-default:#9ECBFF",[122],{"type":36,"value":123},"'fetch'",{"type":31,"tag":91,"props":125,"children":126},{"style":114},[127],{"type":36,"value":128},", ",{"type":31,"tag":91,"props":130,"children":132},{"style":131},"--shiki-default:#FFAB70",[133],{"type":36,"value":134},"event",{"type":31,"tag":91,"props":136,"children":138},{"style":137},"--shiki-default:#F97583",[139],{"type":36,"value":140}," =>",{"type":31,"tag":91,"props":142,"children":143},{"style":114},[144],{"type":36,"value":145}," {\n",{"type":31,"tag":91,"props":147,"children":149},{"class":93,"line":148},3,[150,155,161,166,171,176],{"type":31,"tag":91,"props":151,"children":152},{"style":137},[153],{"type":36,"value":154},"  const",{"type":31,"tag":91,"props":156,"children":158},{"style":157},"--shiki-default:#79B8FF",[159],{"type":36,"value":160}," url",{"type":31,"tag":91,"props":162,"children":163},{"style":137},[164],{"type":36,"value":165}," =",{"type":31,"tag":91,"props":167,"children":168},{"style":137},[169],{"type":36,"value":170}," new",{"type":31,"tag":91,"props":172,"children":173},{"style":108},[174],{"type":36,"value":175}," URL",{"type":31,"tag":91,"props":177,"children":178},{"style":114},[179],{"type":36,"value":180},"(event.request.url);\n",{"type":31,"tag":91,"props":182,"children":184},{"class":93,"line":183},4,[185],{"type":31,"tag":91,"props":186,"children":187},{"style":114},[188],{"type":36,"value":189},"  \n",{"type":31,"tag":91,"props":191,"children":193},{"class":93,"line":192},5,[194,199,204,209,213,218],{"type":31,"tag":91,"props":195,"children":196},{"style":137},[197],{"type":36,"value":198},"  if",{"type":31,"tag":91,"props":200,"children":201},{"style":114},[202],{"type":36,"value":203}," (url.pathname.",{"type":31,"tag":91,"props":205,"children":206},{"style":108},[207],{"type":36,"value":208},"startsWith",{"type":31,"tag":91,"props":210,"children":211},{"style":114},[212],{"type":36,"value":117},{"type":31,"tag":91,"props":214,"children":215},{"style":120},[216],{"type":36,"value":217},"'\u002Fkategorie\u002Fneu-eingegangen'",{"type":31,"tag":91,"props":219,"children":220},{"style":114},[221],{"type":36,"value":222},")) {\n",{"type":31,"tag":91,"props":224,"children":226},{"class":93,"line":225},6,[227,232,237,242,246,251],{"type":31,"tag":91,"props":228,"children":229},{"style":137},[230],{"type":36,"value":231},"    return",{"type":31,"tag":91,"props":233,"children":234},{"style":114},[235],{"type":36,"value":236}," event.",{"type":31,"tag":91,"props":238,"children":239},{"style":108},[240],{"type":36,"value":241},"respondWith",{"type":31,"tag":91,"props":243,"children":244},{"style":114},[245],{"type":36,"value":117},{"type":31,"tag":91,"props":247,"children":248},{"style":108},[249],{"type":36,"value":250},"fetch",{"type":31,"tag":91,"props":252,"children":253},{"style":114},[254],{"type":36,"value":255},"(event.request, {\n",{"type":31,"tag":91,"props":257,"children":259},{"class":93,"line":258},7,[260,265,270],{"type":31,"tag":91,"props":261,"children":262},{"style":114},[263],{"type":36,"value":264},"      backend: ",{"type":31,"tag":91,"props":266,"children":267},{"style":120},[268],{"type":36,"value":269},"'headless-origin'",{"type":31,"tag":91,"props":271,"children":272},{"style":98},[273],{"type":36,"value":274}," \u002F\u002F Hydrogen App auf Cloudflare Pages\n",{"type":31,"tag":91,"props":276,"children":278},{"class":93,"line":277},8,[279],{"type":31,"tag":91,"props":280,"children":281},{"style":114},[282],{"type":36,"value":283},"    }));\n",{"type":31,"tag":91,"props":285,"children":286},{"class":93,"line":25},[287],{"type":31,"tag":91,"props":288,"children":289},{"style":114},[290],{"type":36,"value":291},"  }\n",{"type":31,"tag":91,"props":293,"children":295},{"class":93,"line":294},10,[296],{"type":31,"tag":91,"props":297,"children":298},{"style":114},[299],{"type":36,"value":189},{"type":31,"tag":91,"props":301,"children":303},{"class":93,"line":302},11,[304,309,313,317,321,325],{"type":31,"tag":91,"props":305,"children":306},{"style":137},[307],{"type":36,"value":308},"  return",{"type":31,"tag":91,"props":310,"children":311},{"style":114},[312],{"type":36,"value":236},{"type":31,"tag":91,"props":314,"children":315},{"style":108},[316],{"type":36,"value":241},{"type":31,"tag":91,"props":318,"children":319},{"style":114},[320],{"type":36,"value":117},{"type":31,"tag":91,"props":322,"children":323},{"style":108},[324],{"type":36,"value":250},{"type":31,"tag":91,"props":326,"children":327},{"style":114},[328],{"type":36,"value":255},{"type":31,"tag":91,"props":330,"children":332},{"class":93,"line":331},12,[333,338],{"type":31,"tag":91,"props":334,"children":335},{"style":114},[336],{"type":36,"value":337},"    backend: ",{"type":31,"tag":91,"props":339,"children":340},{"style":120},[341],{"type":36,"value":342},"'legacy-shopify'\n",{"type":31,"tag":91,"props":344,"children":346},{"class":93,"line":345},13,[347],{"type":31,"tag":91,"props":348,"children":349},{"style":114},[350],{"type":36,"value":351},"  }));\n",{"type":31,"tag":91,"props":353,"children":355},{"class":93,"line":354},14,[356],{"type":31,"tag":91,"props":357,"children":358},{"style":114},[359],{"type":36,"value":360},"});\n",{"type":31,"tag":32,"props":362,"children":363},{},[364,366,372],{"type":36,"value":365},"Mit dieser Struktur werden über 2–3 Wochen Core Web Vitals, Conversion Rate und ATC-Funnel-Metriken überwacht. LCP-Ziel \u003C2.5s, CLS \u003C0.1, ATC→Checkout-Conversion sollte ±2% zur Legacy-Site abweichen. Wenn die Cart-Abandonment-Rate in der Kategorie ",{"type":31,"tag":64,"props":367,"children":369},{"className":368},[],[370],{"type":36,"value":371},"neu-eingegangen",{"type":36,"value":373}," von 18% auf 24% steigt, liegt ein Performance-Problem in der Headless-Render-Logik vor – beispielsweise Client-seitige Hydration mit TBT (Total Blocking Time) über 800ms.",{"type":31,"tag":32,"props":375,"children":376},{},[377,382,384,390,391,397],{"type":31,"tag":51,"props":378,"children":379},{},[380],{"type":36,"value":381},"Phase zwei:",{"type":36,"value":383}," Haupt-Kategorien (",{"type":31,"tag":64,"props":385,"children":387},{"className":386},[],[388],{"type":36,"value":389},"\u002Fkategorie\u002Fmaenner",{"type":36,"value":128},{"type":31,"tag":64,"props":392,"children":394},{"className":393},[],[395],{"type":36,"value":396},"\u002Fkategorie\u002Ffrauen",{"type":36,"value":398},"). Hier ist der Traffic 10-mal höher, SKU-Zahl über 2000. Die Hydration-Strategie ändert sich: Partial Hydration (ähnlich Astro Islands) oder Progressive Enhancement (HTML-First-Render, Interaktivität lazy-loaded).",{"type":31,"tag":32,"props":400,"children":401},{},[402,407],{"type":31,"tag":51,"props":403,"children":404},{},[405],{"type":36,"value":406},"Phase drei:",{"type":36,"value":408}," Product Detail Pages (PDP). Wenn 60% des SEO-Traffics von PDP kommt, wird Parity-Test für Title\u002FMeta\u002FStructured Data durchgeführt (siehe nächster Abschnitt).",{"type":31,"tag":32,"props":410,"children":411},{},[412,417],{"type":31,"tag":51,"props":413,"children":414},{},[415],{"type":36,"value":416},"Letzte Phase:",{"type":36,"value":418}," Homepage und Checkout. Der Checkout wird zuletzt zu Headless migriert, weil Zahlungsintegrationen (iyzico, PayTR) und 3D-Secure-Flows in nativem Shopify battle-tested sind, im Headless-Setup aber neu. Selbst mit Shopify Checkout API kann ein Frontend-Rendering-Fehler zu Bestellungsverlusten führen.",{"type":31,"tag":39,"props":420,"children":422},{"id":421},"seo-schutz-parity-test-für-titlemetastructured-data",[423],{"type":36,"value":424},"SEO-Schutz: Parity-Test für Title\u002FMeta\u002FStructured Data",{"type":31,"tag":32,"props":426,"children":427},{},[428,430,436],{"type":36,"value":429},"Bei Headless-Migration entsteht der größte SEO-Verlust, weil Google die neue Render-Version 4–6 Wochen zum Neuindexieren benötigt. In dieser Zeit führen unterschiedliche Title\u002FMeta\u002FStructured Data zu CTR-Einbußen – beispielsweise wenn der dynamische Produktpreis im ",{"type":31,"tag":64,"props":431,"children":433},{"className":432},[],[434],{"type":36,"value":435},"og:price",{"type":36,"value":437},"-Tag nicht aktualisiert wird.",{"type":31,"tag":32,"props":439,"children":440},{},[441],{"type":31,"tag":51,"props":442,"children":443},{},[444],{"type":36,"value":445},"Parity-Test-Prozess:",{"type":31,"tag":447,"props":448,"children":449},"ol",{},[450,456,461],{"type":31,"tag":451,"props":452,"children":453},"li",{},[454],{"type":36,"value":455},"Top-500-URLs aus Google Search Console (organische Landingpages) extrahieren",{"type":31,"tag":451,"props":457,"children":458},{},[459],{"type":36,"value":460},"Gleiche URLs im Headless-Frontend rendern, HTML-Snapshot erstellen",{"type":31,"tag":451,"props":462,"children":463},{},[464,466,472,474,480],{"type":36,"value":465},"Mit Diff-Tool vergleichen (",{"type":31,"tag":64,"props":467,"children":469},{"className":468},[],[470],{"type":36,"value":471},"htmldiff",{"type":36,"value":473},", benutzerdefiniertes Script mit ",{"type":31,"tag":64,"props":475,"children":477},{"className":476},[],[478],{"type":36,"value":479},"cheerio",{"type":36,"value":481},"):",{"type":31,"tag":81,"props":483,"children":485},{"className":83,"code":484,"language":85,"meta":14,"style":14},"\u002F\u002F headless-seo-parity.js\nimport fetch from 'node-fetch';\nimport * as cheerio from 'cheerio';\n\nasync function compareSEO(url) {\n  const [legacyHTML, headlessHTML] = await Promise.all([\n    fetch(`https:\u002F\u002Flegacy.example.com${url}`).then(r => r.text()),\n    fetch(`https:\u002F\u002Fheadless.example.com${url}`).then(r => r.text())\n  ]);\n  \n  const legacy$ = cheerio.load(legacyHTML);\n  const headless$ = cheerio.load(headlessHTML);\n  \n  const diffs = {\n    title: legacy$('title').text() !== headless$('title').text(),\n    metaDesc: legacy$('meta[name=\"description\"]').attr('content') !== \n              headless$('meta[name=\"description\"]').attr('content'),\n    canonical: legacy$('link[rel=\"canonical\"]').attr('href') !== \n               headless$('link[rel=\"canonical\"]').attr('href'),\n    jsonLD: legacy$('script[type=\"application\u002Fld+json\"]').html() !== \n            headless$('script[type=\"application\u002Fld+json\"]').html()\n  };\n  \n  return { url, diffs };\n}\n\n\u002F\u002F Ausführen für top 500 URLs\nconst results = await Promise.all(topUrls.map(compareSEO));\nconst failures = results.filter(r => Object.values(r.diffs).some(d => d));\nconsole.log(`${failures.length} URLs mit SEO-Meta-Unstimmigkeiten`);\n",[486],{"type":31,"tag":64,"props":487,"children":488},{"__ignoreMap":14},[489,497,525,560,569,601,662,725,782,790,797,828,857,864,884,950,1004,1042,1093,1130,1173,1203,1212,1220,1233,1242,1250,1259,1308,1385],{"type":31,"tag":91,"props":490,"children":491},{"class":93,"line":94},[492],{"type":31,"tag":91,"props":493,"children":494},{"style":98},[495],{"type":36,"value":496},"\u002F\u002F headless-seo-parity.js\n",{"type":31,"tag":91,"props":498,"children":499},{"class":93,"line":104},[500,505,510,515,520],{"type":31,"tag":91,"props":501,"children":502},{"style":137},[503],{"type":36,"value":504},"import",{"type":31,"tag":91,"props":506,"children":507},{"style":114},[508],{"type":36,"value":509}," fetch ",{"type":31,"tag":91,"props":511,"children":512},{"style":137},[513],{"type":36,"value":514},"from",{"type":31,"tag":91,"props":516,"children":517},{"style":120},[518],{"type":36,"value":519}," 'node-fetch'",{"type":31,"tag":91,"props":521,"children":522},{"style":114},[523],{"type":36,"value":524},";\n",{"type":31,"tag":91,"props":526,"children":527},{"class":93,"line":148},[528,532,537,542,547,551,556],{"type":31,"tag":91,"props":529,"children":530},{"style":137},[531],{"type":36,"value":504},{"type":31,"tag":91,"props":533,"children":534},{"style":157},[535],{"type":36,"value":536}," *",{"type":31,"tag":91,"props":538,"children":539},{"style":137},[540],{"type":36,"value":541}," as",{"type":31,"tag":91,"props":543,"children":544},{"style":114},[545],{"type":36,"value":546}," cheerio ",{"type":31,"tag":91,"props":548,"children":549},{"style":137},[550],{"type":36,"value":514},{"type":31,"tag":91,"props":552,"children":553},{"style":120},[554],{"type":36,"value":555}," 'cheerio'",{"type":31,"tag":91,"props":557,"children":558},{"style":114},[559],{"type":36,"value":524},{"type":31,"tag":91,"props":561,"children":562},{"class":93,"line":183},[563],{"type":31,"tag":91,"props":564,"children":566},{"emptyLinePlaceholder":565},true,[567],{"type":36,"value":568},"\n",{"type":31,"tag":91,"props":570,"children":571},{"class":93,"line":192},[572,577,582,587,591,596],{"type":31,"tag":91,"props":573,"children":574},{"style":137},[575],{"type":36,"value":576},"async",{"type":31,"tag":91,"props":578,"children":579},{"style":137},[580],{"type":36,"value":581}," function",{"type":31,"tag":91,"props":583,"children":584},{"style":108},[585],{"type":36,"value":586}," compareSEO",{"type":31,"tag":91,"props":588,"children":589},{"style":114},[590],{"type":36,"value":117},{"type":31,"tag":91,"props":592,"children":593},{"style":131},[594],{"type":36,"value":595},"url",{"type":31,"tag":91,"props":597,"children":598},{"style":114},[599],{"type":36,"value":600},") {\n",{"type":31,"tag":91,"props":602,"children":603},{"class":93,"line":225},[604,608,613,618,622,627,632,637,642,647,652,657],{"type":31,"tag":91,"props":605,"children":606},{"style":137},[607],{"type":36,"value":154},{"type":31,"tag":91,"props":609,"children":610},{"style":114},[611],{"type":36,"value":612}," [",{"type":31,"tag":91,"props":614,"children":615},{"style":157},[616],{"type":36,"value":617},"legacyHTML",{"type":31,"tag":91,"props":619,"children":620},{"style":114},[621],{"type":36,"value":128},{"type":31,"tag":91,"props":623,"children":624},{"style":157},[625],{"type":36,"value":626},"headlessHTML",{"type":31,"tag":91,"props":628,"children":629},{"style":114},[630],{"type":36,"value":631},"] ",{"type":31,"tag":91,"props":633,"children":634},{"style":137},[635],{"type":36,"value":636},"=",{"type":31,"tag":91,"props":638,"children":639},{"style":137},[640],{"type":36,"value":641}," await",{"type":31,"tag":91,"props":643,"children":644},{"style":157},[645],{"type":36,"value":646}," Promise",{"type":31,"tag":91,"props":648,"children":649},{"style":114},[650],{"type":36,"value":651},".",{"type":31,"tag":91,"props":653,"children":654},{"style":108},[655],{"type":36,"value":656},"all",{"type":31,"tag":91,"props":658,"children":659},{"style":114},[660],{"type":36,"value":661},"([\n",{"type":31,"tag":91,"props":663,"children":664},{"class":93,"line":258},[665,670,674,679,683,688,693,698,702,707,711,716,720],{"type":31,"tag":91,"props":666,"children":667},{"style":108},[668],{"type":36,"value":669},"    fetch",{"type":31,"tag":91,"props":671,"children":672},{"style":114},[673],{"type":36,"value":117},{"type":31,"tag":91,"props":675,"children":676},{"style":120},[677],{"type":36,"value":678},"`https:\u002F\u002Flegacy.example.com${",{"type":31,"tag":91,"props":680,"children":681},{"style":114},[682],{"type":36,"value":595},{"type":31,"tag":91,"props":684,"children":685},{"style":120},[686],{"type":36,"value":687},"}`",{"type":31,"tag":91,"props":689,"children":690},{"style":114},[691],{"type":36,"value":692},").",{"type":31,"tag":91,"props":694,"children":695},{"style":108},[696],{"type":36,"value":697},"then",{"type":31,"tag":91,"props":699,"children":700},{"style":114},[701],{"type":36,"value":117},{"type":31,"tag":91,"props":703,"children":704},{"style":131},[705],{"type":36,"value":706},"r",{"type":31,"tag":91,"props":708,"children":709},{"style":137},[710],{"type":36,"value":140},{"type":31,"tag":91,"props":712,"children":713},{"style":114},[714],{"type":36,"value":715}," r.",{"type":31,"tag":91,"props":717,"children":718},{"style":108},[719],{"type":36,"value":36},{"type":31,"tag":91,"props":721,"children":722},{"style":114},[723],{"type":36,"value":724},"()),\n",{"type":31,"tag":91,"props":726,"children":727},{"class":93,"line":277},[728,732,736,741,745,749,753,757,761,765,769,773,777],{"type":31,"tag":91,"props":729,"children":730},{"style":108},[731],{"type":36,"value":669},{"type":31,"tag":91,"props":733,"children":734},{"style":114},[735],{"type":36,"value":117},{"type":31,"tag":91,"props":737,"children":738},{"style":120},[739],{"type":36,"value":740},"`https:\u002F\u002Fheadless.example.com${",{"type":31,"tag":91,"props":742,"children":743},{"style":114},[744],{"type":36,"value":595},{"type":31,"tag":91,"props":746,"children":747},{"style":120},[748],{"type":36,"value":687},{"type":31,"tag":91,"props":750,"children":751},{"style":114},[752],{"type":36,"value":692},{"type":31,"tag":91,"props":754,"children":755},{"style":108},[756],{"type":36,"value":697},{"type":31,"tag":91,"props":758,"children":759},{"style":114},[760],{"type":36,"value":117},{"type":31,"tag":91,"props":762,"children":763},{"style":131},[764],{"type":36,"value":706},{"type":31,"tag":91,"props":766,"children":767},{"style":137},[768],{"type":36,"value":140},{"type":31,"tag":91,"props":770,"children":771},{"style":114},[772],{"type":36,"value":715},{"type":31,"tag":91,"props":774,"children":775},{"style":108},[776],{"type":36,"value":36},{"type":31,"tag":91,"props":778,"children":779},{"style":114},[780],{"type":36,"value":781},"())\n",{"type":31,"tag":91,"props":783,"children":784},{"class":93,"line":25},[785],{"type":31,"tag":91,"props":786,"children":787},{"style":114},[788],{"type":36,"value":789},"  ]);\n",{"type":31,"tag":91,"props":791,"children":792},{"class":93,"line":294},[793],{"type":31,"tag":91,"props":794,"children":795},{"style":114},[796],{"type":36,"value":189},{"type":31,"tag":91,"props":798,"children":799},{"class":93,"line":302},[800,804,809,813,818,823],{"type":31,"tag":91,"props":801,"children":802},{"style":137},[803],{"type":36,"value":154},{"type":31,"tag":91,"props":805,"children":806},{"style":157},[807],{"type":36,"value":808}," legacy$",{"type":31,"tag":91,"props":810,"children":811},{"style":137},[812],{"type":36,"value":165},{"type":31,"tag":91,"props":814,"children":815},{"style":114},[816],{"type":36,"value":817}," cheerio.",{"type":31,"tag":91,"props":819,"children":820},{"style":108},[821],{"type":36,"value":822},"load",{"type":31,"tag":91,"props":824,"children":825},{"style":114},[826],{"type":36,"value":827},"(legacyHTML);\n",{"type":31,"tag":91,"props":829,"children":830},{"class":93,"line":331},[831,835,840,844,848,852],{"type":31,"tag":91,"props":832,"children":833},{"style":137},[834],{"type":36,"value":154},{"type":31,"tag":91,"props":836,"children":837},{"style":157},[838],{"type":36,"value":839}," headless$",{"type":31,"tag":91,"props":841,"children":842},{"style":137},[843],{"type":36,"value":165},{"type":31,"tag":91,"props":845,"children":846},{"style":114},[847],{"type":36,"value":817},{"type":31,"tag":91,"props":849,"children":850},{"style":108},[851],{"type":36,"value":822},{"type":31,"tag":91,"props":853,"children":854},{"style":114},[855],{"type":36,"value":856},"(headlessHTML);\n",{"type":31,"tag":91,"props":858,"children":859},{"class":93,"line":345},[860],{"type":31,"tag":91,"props":861,"children":862},{"style":114},[863],{"type":36,"value":189},{"type":31,"tag":91,"props":865,"children":866},{"class":93,"line":354},[867,871,876,880],{"type":31,"tag":91,"props":868,"children":869},{"style":137},[870],{"type":36,"value":154},{"type":31,"tag":91,"props":872,"children":873},{"style":157},[874],{"type":36,"value":875}," diffs",{"type":31,"tag":91,"props":877,"children":878},{"style":137},[879],{"type":36,"value":165},{"type":31,"tag":91,"props":881,"children":882},{"style":114},[883],{"type":36,"value":145},{"type":31,"tag":91,"props":885,"children":887},{"class":93,"line":886},15,[888,893,898,902,907,911,915,920,925,929,933,937,941,945],{"type":31,"tag":91,"props":889,"children":890},{"style":114},[891],{"type":36,"value":892},"    title: ",{"type":31,"tag":91,"props":894,"children":895},{"style":108},[896],{"type":36,"value":897},"legacy$",{"type":31,"tag":91,"props":899,"children":900},{"style":114},[901],{"type":36,"value":117},{"type":31,"tag":91,"props":903,"children":904},{"style":120},[905],{"type":36,"value":906},"'title'",{"type":31,"tag":91,"props":908,"children":909},{"style":114},[910],{"type":36,"value":692},{"type":31,"tag":91,"props":912,"children":913},{"style":108},[914],{"type":36,"value":36},{"type":31,"tag":91,"props":916,"children":917},{"style":114},[918],{"type":36,"value":919},"() ",{"type":31,"tag":91,"props":921,"children":922},{"style":137},[923],{"type":36,"value":924},"!==",{"type":31,"tag":91,"props":926,"children":927},{"style":108},[928],{"type":36,"value":839},{"type":31,"tag":91,"props":930,"children":931},{"style":114},[932],{"type":36,"value":117},{"type":31,"tag":91,"props":934,"children":935},{"style":120},[936],{"type":36,"value":906},{"type":31,"tag":91,"props":938,"children":939},{"style":114},[940],{"type":36,"value":692},{"type":31,"tag":91,"props":942,"children":943},{"style":108},[944],{"type":36,"value":36},{"type":31,"tag":91,"props":946,"children":947},{"style":114},[948],{"type":36,"value":949},"(),\n",{"type":31,"tag":91,"props":951,"children":953},{"class":93,"line":952},16,[954,959,963,967,972,976,981,985,990,995,999],{"type":31,"tag":91,"props":955,"children":956},{"style":114},[957],{"type":36,"value":958},"    metaDesc: ",{"type":31,"tag":91,"props":960,"children":961},{"style":108},[962],{"type":36,"value":897},{"type":31,"tag":91,"props":964,"children":965},{"style":114},[966],{"type":36,"value":117},{"type":31,"tag":91,"props":968,"children":969},{"style":120},[970],{"type":36,"value":971},"'meta[name=\"description\"]'",{"type":31,"tag":91,"props":973,"children":974},{"style":114},[975],{"type":36,"value":692},{"type":31,"tag":91,"props":977,"children":978},{"style":108},[979],{"type":36,"value":980},"attr",{"type":31,"tag":91,"props":982,"children":983},{"style":114},[984],{"type":36,"value":117},{"type":31,"tag":91,"props":986,"children":987},{"style":120},[988],{"type":36,"value":989},"'content'",{"type":31,"tag":91,"props":991,"children":992},{"style":114},[993],{"type":36,"value":994},") ",{"type":31,"tag":91,"props":996,"children":997},{"style":137},[998],{"type":36,"value":924},{"type":31,"tag":91,"props":1000,"children":1001},{"style":114},[1002],{"type":36,"value":1003}," \n",{"type":31,"tag":91,"props":1005,"children":1007},{"class":93,"line":1006},17,[1008,1013,1017,1021,1025,1029,1033,1037],{"type":31,"tag":91,"props":1009,"children":1010},{"style":108},[1011],{"type":36,"value":1012},"              headless$",{"type":31,"tag":91,"props":1014,"children":1015},{"style":114},[1016],{"type":36,"value":117},{"type":31,"tag":91,"props":1018,"children":1019},{"style":120},[1020],{"type":36,"value":971},{"type":31,"tag":91,"props":1022,"children":1023},{"style":114},[1024],{"type":36,"value":692},{"type":31,"tag":91,"props":1026,"children":1027},{"style":108},[1028],{"type":36,"value":980},{"type":31,"tag":91,"props":1030,"children":1031},{"style":114},[1032],{"type":36,"value":117},{"type":31,"tag":91,"props":1034,"children":1035},{"style":120},[1036],{"type":36,"value":989},{"type":31,"tag":91,"props":1038,"children":1039},{"style":114},[1040],{"type":36,"value":1041},"),\n",{"type":31,"tag":91,"props":1043,"children":1045},{"class":93,"line":1044},18,[1046,1051,1055,1059,1064,1068,1072,1076,1081,1085,1089],{"type":31,"tag":91,"props":1047,"children":1048},{"style":114},[1049],{"type":36,"value":1050},"    canonical: ",{"type":31,"tag":91,"props":1052,"children":1053},{"style":108},[1054],{"type":36,"value":897},{"type":31,"tag":91,"props":1056,"children":1057},{"style":114},[1058],{"type":36,"value":117},{"type":31,"tag":91,"props":1060,"children":1061},{"style":120},[1062],{"type":36,"value":1063},"'link[rel=\"canonical\"]'",{"type":31,"tag":91,"props":1065,"children":1066},{"style":114},[1067],{"type":36,"value":692},{"type":31,"tag":91,"props":1069,"children":1070},{"style":108},[1071],{"type":36,"value":980},{"type":31,"tag":91,"props":1073,"children":1074},{"style":114},[1075],{"type":36,"value":117},{"type":31,"tag":91,"props":1077,"children":1078},{"style":120},[1079],{"type":36,"value":1080},"'href'",{"type":31,"tag":91,"props":1082,"children":1083},{"style":114},[1084],{"type":36,"value":994},{"type":31,"tag":91,"props":1086,"children":1087},{"style":137},[1088],{"type":36,"value":924},{"type":31,"tag":91,"props":1090,"children":1091},{"style":114},[1092],{"type":36,"value":1003},{"type":31,"tag":91,"props":1094,"children":1096},{"class":93,"line":1095},19,[1097,1102,1106,1110,1114,1118,1122,1126],{"type":31,"tag":91,"props":1098,"children":1099},{"style":108},[1100],{"type":36,"value":1101},"               headless$",{"type":31,"tag":91,"props":1103,"children":1104},{"style":114},[1105],{"type":36,"value":117},{"type":31,"tag":91,"props":1107,"children":1108},{"style":120},[1109],{"type":36,"value":1063},{"type":31,"tag":91,"props":1111,"children":1112},{"style":114},[1113],{"type":36,"value":692},{"type":31,"tag":91,"props":1115,"children":1116},{"style":108},[1117],{"type":36,"value":980},{"type":31,"tag":91,"props":1119,"children":1120},{"style":114},[1121],{"type":36,"value":117},{"type":31,"tag":91,"props":1123,"children":1124},{"style":120},[1125],{"type":36,"value":1080},{"type":31,"tag":91,"props":1127,"children":1128},{"style":114},[1129],{"type":36,"value":1041},{"type":31,"tag":91,"props":1131,"children":1133},{"class":93,"line":1132},20,[1134,1139,1143,1147,1152,1156,1161,1165,1169],{"type":31,"tag":91,"props":1135,"children":1136},{"style":114},[1137],{"type":36,"value":1138},"    jsonLD: ",{"type":31,"tag":91,"props":1140,"children":1141},{"style":108},[1142],{"type":36,"value":897},{"type":31,"tag":91,"props":1144,"children":1145},{"style":114},[1146],{"type":36,"value":117},{"type":31,"tag":91,"props":1148,"children":1149},{"style":120},[1150],{"type":36,"value":1151},"'script[type=\"application\u002Fld+json\"]'",{"type":31,"tag":91,"props":1153,"children":1154},{"style":114},[1155],{"type":36,"value":692},{"type":31,"tag":91,"props":1157,"children":1158},{"style":108},[1159],{"type":36,"value":1160},"html",{"type":31,"tag":91,"props":1162,"children":1163},{"style":114},[1164],{"type":36,"value":919},{"type":31,"tag":91,"props":1166,"children":1167},{"style":137},[1168],{"type":36,"value":924},{"type":31,"tag":91,"props":1170,"children":1171},{"style":114},[1172],{"type":36,"value":1003},{"type":31,"tag":91,"props":1174,"children":1176},{"class":93,"line":1175},21,[1177,1182,1186,1190,1194,1198],{"type":31,"tag":91,"props":1178,"children":1179},{"style":108},[1180],{"type":36,"value":1181},"            headless$",{"type":31,"tag":91,"props":1183,"children":1184},{"style":114},[1185],{"type":36,"value":117},{"type":31,"tag":91,"props":1187,"children":1188},{"style":120},[1189],{"type":36,"value":1151},{"type":31,"tag":91,"props":1191,"children":1192},{"style":114},[1193],{"type":36,"value":692},{"type":31,"tag":91,"props":1195,"children":1196},{"style":108},[1197],{"type":36,"value":1160},{"type":31,"tag":91,"props":1199,"children":1200},{"style":114},[1201],{"type":36,"value":1202},"()\n",{"type":31,"tag":91,"props":1204,"children":1206},{"class":93,"line":1205},22,[1207],{"type":31,"tag":91,"props":1208,"children":1209},{"style":114},[1210],{"type":36,"value":1211},"  };\n",{"type":31,"tag":91,"props":1213,"children":1215},{"class":93,"line":1214},23,[1216],{"type":31,"tag":91,"props":1217,"children":1218},{"style":114},[1219],{"type":36,"value":189},{"type":31,"tag":91,"props":1221,"children":1223},{"class":93,"line":1222},24,[1224,1228],{"type":31,"tag":91,"props":1225,"children":1226},{"style":137},[1227],{"type":36,"value":308},{"type":31,"tag":91,"props":1229,"children":1230},{"style":114},[1231],{"type":36,"value":1232}," { url, diffs };\n",{"type":31,"tag":91,"props":1234,"children":1236},{"class":93,"line":1235},25,[1237],{"type":31,"tag":91,"props":1238,"children":1239},{"style":114},[1240],{"type":36,"value":1241},"}\n",{"type":31,"tag":91,"props":1243,"children":1245},{"class":93,"line":1244},26,[1246],{"type":31,"tag":91,"props":1247,"children":1248},{"emptyLinePlaceholder":565},[1249],{"type":36,"value":568},{"type":31,"tag":91,"props":1251,"children":1253},{"class":93,"line":1252},27,[1254],{"type":31,"tag":91,"props":1255,"children":1256},{"style":98},[1257],{"type":36,"value":1258},"\u002F\u002F Ausführen für top 500 URLs\n",{"type":31,"tag":91,"props":1260,"children":1262},{"class":93,"line":1261},28,[1263,1268,1273,1277,1281,1285,1289,1293,1298,1303],{"type":31,"tag":91,"props":1264,"children":1265},{"style":137},[1266],{"type":36,"value":1267},"const",{"type":31,"tag":91,"props":1269,"children":1270},{"style":157},[1271],{"type":36,"value":1272}," results",{"type":31,"tag":91,"props":1274,"children":1275},{"style":137},[1276],{"type":36,"value":165},{"type":31,"tag":91,"props":1278,"children":1279},{"style":137},[1280],{"type":36,"value":641},{"type":31,"tag":91,"props":1282,"children":1283},{"style":157},[1284],{"type":36,"value":646},{"type":31,"tag":91,"props":1286,"children":1287},{"style":114},[1288],{"type":36,"value":651},{"type":31,"tag":91,"props":1290,"children":1291},{"style":108},[1292],{"type":36,"value":656},{"type":31,"tag":91,"props":1294,"children":1295},{"style":114},[1296],{"type":36,"value":1297},"(topUrls.",{"type":31,"tag":91,"props":1299,"children":1300},{"style":108},[1301],{"type":36,"value":1302},"map",{"type":31,"tag":91,"props":1304,"children":1305},{"style":114},[1306],{"type":36,"value":1307},"(compareSEO));\n",{"type":31,"tag":91,"props":1309,"children":1311},{"class":93,"line":1310},29,[1312,1316,1321,1325,1330,1335,1339,1343,1347,1352,1357,1362,1367,1371,1376,1380],{"type":31,"tag":91,"props":1313,"children":1314},{"style":137},[1315],{"type":36,"value":1267},{"type":31,"tag":91,"props":1317,"children":1318},{"style":157},[1319],{"type":36,"value":1320}," failures",{"type":31,"tag":91,"props":1322,"children":1323},{"style":137},[1324],{"type":36,"value":165},{"type":31,"tag":91,"props":1326,"children":1327},{"style":114},[1328],{"type":36,"value":1329}," results.",{"type":31,"tag":91,"props":1331,"children":1332},{"style":108},[1333],{"type":36,"value":1334},"filter",{"type":31,"tag":91,"props":1336,"children":1337},{"style":114},[1338],{"type":36,"value":117},{"type":31,"tag":91,"props":1340,"children":1341},{"style":131},[1342],{"type":36,"value":706},{"type":31,"tag":91,"props":1344,"children":1345},{"style":137},[1346],{"type":36,"value":140},{"type":31,"tag":91,"props":1348,"children":1349},{"style":114},[1350],{"type":36,"value":1351}," Object.",{"type":31,"tag":91,"props":1353,"children":1354},{"style":108},[1355],{"type":36,"value":1356},"values",{"type":31,"tag":91,"props":1358,"children":1359},{"style":114},[1360],{"type":36,"value":1361},"(r.diffs).",{"type":31,"tag":91,"props":1363,"children":1364},{"style":108},[1365],{"type":36,"value":1366},"some",{"type":31,"tag":91,"props":1368,"children":1369},{"style":114},[1370],{"type":36,"value":117},{"type":31,"tag":91,"props":1372,"children":1373},{"style":131},[1374],{"type":36,"value":1375},"d",{"type":31,"tag":91,"props":1377,"children":1378},{"style":137},[1379],{"type":36,"value":140},{"type":31,"tag":91,"props":1381,"children":1382},{"style":114},[1383],{"type":36,"value":1384}," d));\n",{"type":31,"tag":91,"props":1386,"children":1388},{"class":93,"line":1387},30,[1389,1394,1399,1403,1408,1413,1417,1422,1427],{"type":31,"tag":91,"props":1390,"children":1391},{"style":114},[1392],{"type":36,"value":1393},"console.",{"type":31,"tag":91,"props":1395,"children":1396},{"style":108},[1397],{"type":36,"value":1398},"log",{"type":31,"tag":91,"props":1400,"children":1401},{"style":114},[1402],{"type":36,"value":117},{"type":31,"tag":91,"props":1404,"children":1405},{"style":120},[1406],{"type":36,"value":1407},"`${",{"type":31,"tag":91,"props":1409,"children":1410},{"style":114},[1411],{"type":36,"value":1412},"failures",{"type":31,"tag":91,"props":1414,"children":1415},{"style":120},[1416],{"type":36,"value":651},{"type":31,"tag":91,"props":1418,"children":1419},{"style":157},[1420],{"type":36,"value":1421},"length",{"type":31,"tag":91,"props":1423,"children":1424},{"style":120},[1425],{"type":36,"value":1426},"} URLs mit SEO-Meta-Unstimmigkeiten`",{"type":31,"tag":91,"props":1428,"children":1429},{"style":114},[1430],{"type":36,"value":1431},");\n",{"type":31,"tag":32,"props":1433,"children":1434},{},[1435],{"type":36,"value":1436},"Wenn >5% der URLs Unterschiede aufweisen, Migration stoppen. Beispiel: Dynamische Meta Descriptions aus Shopify-Metafields fehlen in Headless-GraphQL-Queries – das kann 500 Seiten zu 12–18% organischem Traffic-Verlust führen (Search Console 2025 Daten).",{"type":31,"tag":32,"props":1438,"children":1439},{},[1440,1445,1447,1453,1455,1461,1463,1469,1471,1477,1479,1485],{"type":31,"tag":51,"props":1441,"children":1442},{},[1443],{"type":36,"value":1444},"Canonical-URL-Test:",{"type":36,"value":1446}," Im Headless-Setup wird oft statt ",{"type":31,"tag":64,"props":1448,"children":1450},{"className":1449},[],[1451],{"type":36,"value":1452},"\u002Fproducts\u002F{handle}",{"type":36,"value":1454}," der Pfad ",{"type":31,"tag":64,"props":1456,"children":1458},{"className":1457},[],[1459],{"type":36,"value":1460},"\u002Fp\u002F{id}",{"type":36,"value":1462}," bevorzugt (Routing-Performance). Hier ist 301-Redirect + Canonical-Tag kombiniert erforderlich. Test: ",{"type":31,"tag":64,"props":1464,"children":1466},{"className":1465},[],[1467],{"type":36,"value":1468},"curl -I https:\u002F\u002Fheadless.example.com\u002Fold-path",{"type":36,"value":1470}," → ",{"type":31,"tag":64,"props":1472,"children":1474},{"className":1473},[],[1475],{"type":36,"value":1476},"301 → \u002Fnew-path",{"type":36,"value":1478}," und ",{"type":31,"tag":64,"props":1480,"children":1482},{"className":1481},[],[1483],{"type":36,"value":1484},"\u003Clink rel=\"canonical\" href=\"\u002Fnew-path\">",{"type":36,"value":651},{"type":31,"tag":39,"props":1487,"children":1489},{"id":1488},"add-to-cart-abandonment-analyse",[1490],{"type":36,"value":1491},"Add-to-Cart-Abandonment-Analyse",{"type":31,"tag":32,"props":1493,"children":1494},{},[1495],{"type":36,"value":1496},"Nach Headless-Migration tritt häufig auf: Nutzer klickt \"In den Warenkorb\", aber nichts geschieht oder der Loading-Spinner dreht sich 3 Sekunden und gibt Timeout. Ursache: Shopify Storefront API Rate-Limit (Standard 50 Requests\u002FSekunde, Burst 100).",{"type":31,"tag":32,"props":1498,"children":1499},{},[1500],{"type":31,"tag":51,"props":1501,"children":1502},{},[1503],{"type":36,"value":1504},"Monitoring-Setup:",{"type":31,"tag":81,"props":1506,"children":1508},{"className":83,"code":1507,"language":85,"meta":14,"style":14},"\u002F\u002F ATC-Event-Tracking – Headless-App\nasync function addToCart(variantId, quantity) {\n  const startTime = performance.now();\n  \n  try {\n    const response = await fetch('\u002Fapi\u002Fcart\u002Fadd', {\n      method: 'POST',\n      body: JSON.stringify({ variantId, quantity })\n    });\n    \n    const duration = performance.now() - startTime;\n    \n    \u002F\u002F RUM-Beacon\n    navigator.sendBeacon('\u002Fanalytics\u002Fatc', JSON.stringify({\n      success: response.ok,\n      duration,\n      variantId,\n      timestamp: Date.now()\n    }));\n    \n    if (!response.ok) {\n      \u002F\u002F Fallback-UI bei Fehler\n      showErrorToast('Warenkorb-Aktualisierung fehlgeschlagen, bitte erneut versuchen');\n    }\n  } catch (err) {\n    \u002F\u002F Netzwerk-Timeout – kritisch\n    reportError('ATC_TIMEOUT', { variantId, error: err.message });\n  }\n}\n",[1509],{"type":31,"tag":64,"props":1510,"children":1511},{"__ignoreMap":14},[1512,1520,1558,1589,1596,1608,1648,1666,1693,1701,1709,1747,1754,1762,1805,1813,1821,1829,1845,1852,1859,1882,1890,1911,1919,1937,1945,1967,1974],{"type":31,"tag":91,"props":1513,"children":1514},{"class":93,"line":94},[1515],{"type":31,"tag":91,"props":1516,"children":1517},{"style":98},[1518],{"type":36,"value":1519},"\u002F\u002F ATC-Event-Tracking – Headless-App\n",{"type":31,"tag":91,"props":1521,"children":1522},{"class":93,"line":104},[1523,1527,1531,1536,1540,1545,1549,1554],{"type":31,"tag":91,"props":1524,"children":1525},{"style":137},[1526],{"type":36,"value":576},{"type":31,"tag":91,"props":1528,"children":1529},{"style":137},[1530],{"type":36,"value":581},{"type":31,"tag":91,"props":1532,"children":1533},{"style":108},[1534],{"type":36,"value":1535}," addToCart",{"type":31,"tag":91,"props":1537,"children":1538},{"style":114},[1539],{"type":36,"value":117},{"type":31,"tag":91,"props":1541,"children":1542},{"style":131},[1543],{"type":36,"value":1544},"variantId",{"type":31,"tag":91,"props":1546,"children":1547},{"style":114},[1548],{"type":36,"value":128},{"type":31,"tag":91,"props":1550,"children":1551},{"style":131},[1552],{"type":36,"value":1553},"quantity",{"type":31,"tag":91,"props":1555,"children":1556},{"style":114},[1557],{"type":36,"value":600},{"type":31,"tag":91,"props":1559,"children":1560},{"class":93,"line":148},[1561,1565,1570,1574,1579,1584],{"type":31,"tag":91,"props":1562,"children":1563},{"style":137},[1564],{"type":36,"value":154},{"type":31,"tag":91,"props":1566,"children":1567},{"style":157},[1568],{"type":36,"value":1569}," startTime",{"type":31,"tag":91,"props":1571,"children":1572},{"style":137},[1573],{"type":36,"value":165},{"type":31,"tag":91,"props":1575,"children":1576},{"style":114},[1577],{"type":36,"value":1578}," performance.",{"type":31,"tag":91,"props":1580,"children":1581},{"style":108},[1582],{"type":36,"value":1583},"now",{"type":31,"tag":91,"props":1585,"children":1586},{"style":114},[1587],{"type":36,"value":1588},"();\n",{"type":31,"tag":91,"props":1590,"children":1591},{"class":93,"line":183},[1592],{"type":31,"tag":91,"props":1593,"children":1594},{"style":114},[1595],{"type":36,"value":189},{"type":31,"tag":91,"props":1597,"children":1598},{"class":93,"line":192},[1599,1604],{"type":31,"tag":91,"props":1600,"children":1601},{"style":137},[1602],{"type":36,"value":1603},"  try",{"type":31,"tag":91,"props":1605,"children":1606},{"style":114},[1607],{"type":36,"value":145},{"type":31,"tag":91,"props":1609,"children":1610},{"class":93,"line":225},[1611,1616,1621,1625,1629,1634,1638,1643],{"type":31,"tag":91,"props":1612,"children":1613},{"style":137},[1614],{"type":36,"value":1615},"    const",{"type":31,"tag":91,"props":1617,"children":1618},{"style":157},[1619],{"type":36,"value":1620}," response",{"type":31,"tag":91,"props":1622,"children":1623},{"style":137},[1624],{"type":36,"value":165},{"type":31,"tag":91,"props":1626,"children":1627},{"style":137},[1628],{"type":36,"value":641},{"type":31,"tag":91,"props":1630,"children":1631},{"style":108},[1632],{"type":36,"value":1633}," fetch",{"type":31,"tag":91,"props":1635,"children":1636},{"style":114},[1637],{"type":36,"value":117},{"type":31,"tag":91,"props":1639,"children":1640},{"style":120},[1641],{"type":36,"value":1642},"'\u002Fapi\u002Fcart\u002Fadd'",{"type":31,"tag":91,"props":1644,"children":1645},{"style":114},[1646],{"type":36,"value":1647},", {\n",{"type":31,"tag":91,"props":1649,"children":1650},{"class":93,"line":258},[1651,1656,1661],{"type":31,"tag":91,"props":1652,"children":1653},{"style":114},[1654],{"type":36,"value":1655},"      method: ",{"type":31,"tag":91,"props":1657,"children":1658},{"style":120},[1659],{"type":36,"value":1660},"'POST'",{"type":31,"tag":91,"props":1662,"children":1663},{"style":114},[1664],{"type":36,"value":1665},",\n",{"type":31,"tag":91,"props":1667,"children":1668},{"class":93,"line":277},[1669,1674,1679,1683,1688],{"type":31,"tag":91,"props":1670,"children":1671},{"style":114},[1672],{"type":36,"value":1673},"      body: ",{"type":31,"tag":91,"props":1675,"children":1676},{"style":157},[1677],{"type":36,"value":1678},"JSON",{"type":31,"tag":91,"props":1680,"children":1681},{"style":114},[1682],{"type":36,"value":651},{"type":31,"tag":91,"props":1684,"children":1685},{"style":108},[1686],{"type":36,"value":1687},"stringify",{"type":31,"tag":91,"props":1689,"children":1690},{"style":114},[1691],{"type":36,"value":1692},"({ variantId, quantity })\n",{"type":31,"tag":91,"props":1694,"children":1695},{"class":93,"line":25},[1696],{"type":31,"tag":91,"props":1697,"children":1698},{"style":114},[1699],{"type":36,"value":1700},"    });\n",{"type":31,"tag":91,"props":1702,"children":1703},{"class":93,"line":294},[1704],{"type":31,"tag":91,"props":1705,"children":1706},{"style":114},[1707],{"type":36,"value":1708},"    \n",{"type":31,"tag":91,"props":1710,"children":1711},{"class":93,"line":302},[1712,1716,1721,1725,1729,1733,1737,1742],{"type":31,"tag":91,"props":1713,"children":1714},{"style":137},[1715],{"type":36,"value":1615},{"type":31,"tag":91,"props":1717,"children":1718},{"style":157},[1719],{"type":36,"value":1720}," duration",{"type":31,"tag":91,"props":1722,"children":1723},{"style":137},[1724],{"type":36,"value":165},{"type":31,"tag":91,"props":1726,"children":1727},{"style":114},[1728],{"type":36,"value":1578},{"type":31,"tag":91,"props":1730,"children":1731},{"style":108},[1732],{"type":36,"value":1583},{"type":31,"tag":91,"props":1734,"children":1735},{"style":114},[1736],{"type":36,"value":919},{"type":31,"tag":91,"props":1738,"children":1739},{"style":137},[1740],{"type":36,"value":1741},"-",{"type":31,"tag":91,"props":1743,"children":1744},{"style":114},[1745],{"type":36,"value":1746}," startTime;\n",{"type":31,"tag":91,"props":1748,"children":1749},{"class":93,"line":331},[1750],{"type":31,"tag":91,"props":1751,"children":1752},{"style":114},[1753],{"type":36,"value":1708},{"type":31,"tag":91,"props":1755,"children":1756},{"class":93,"line":345},[1757],{"type":31,"tag":91,"props":1758,"children":1759},{"style":98},[1760],{"type":36,"value":1761},"    \u002F\u002F RUM-Beacon\n",{"type":31,"tag":91,"props":1763,"children":1764},{"class":93,"line":354},[1765,1770,1775,1779,1784,1788,1792,1796,1800],{"type":31,"tag":91,"props":1766,"children":1767},{"style":114},[1768],{"type":36,"value":1769},"    navigator.",{"type":31,"tag":91,"props":1771,"children":1772},{"style":108},[1773],{"type":36,"value":1774},"sendBeacon",{"type":31,"tag":91,"props":1776,"children":1777},{"style":114},[1778],{"type":36,"value":117},{"type":31,"tag":91,"props":1780,"children":1781},{"style":120},[1782],{"type":36,"value":1783},"'\u002Fanalytics\u002Fatc'",{"type":31,"tag":91,"props":1785,"children":1786},{"style":114},[1787],{"type":36,"value":128},{"type":31,"tag":91,"props":1789,"children":1790},{"style":157},[1791],{"type":36,"value":1678},{"type":31,"tag":91,"props":1793,"children":1794},{"style":114},[1795],{"type":36,"value":651},{"type":31,"tag":91,"props":1797,"children":1798},{"style":108},[1799],{"type":36,"value":1687},{"type":31,"tag":91,"props":1801,"children":1802},{"style":114},[1803],{"type":36,"value":1804},"({\n",{"type":31,"tag":91,"props":1806,"children":1807},{"class":93,"line":886},[1808],{"type":31,"tag":91,"props":1809,"children":1810},{"style":114},[1811],{"type":36,"value":1812},"      success: response.ok,\n",{"type":31,"tag":91,"props":1814,"children":1815},{"class":93,"line":952},[1816],{"type":31,"tag":91,"props":1817,"children":1818},{"style":114},[1819],{"type":36,"value":1820},"      duration,\n",{"type":31,"tag":91,"props":1822,"children":1823},{"class":93,"line":1006},[1824],{"type":31,"tag":91,"props":1825,"children":1826},{"style":114},[1827],{"type":36,"value":1828},"      variantId,\n",{"type":31,"tag":91,"props":1830,"children":1831},{"class":93,"line":1044},[1832,1837,1841],{"type":31,"tag":91,"props":1833,"children":1834},{"style":114},[1835],{"type":36,"value":1836},"      timestamp: Date.",{"type":31,"tag":91,"props":1838,"children":1839},{"style":108},[1840],{"type":36,"value":1583},{"type":31,"tag":91,"props":1842,"children":1843},{"style":114},[1844],{"type":36,"value":1202},{"type":31,"tag":91,"props":1846,"children":1847},{"class":93,"line":1095},[1848],{"type":31,"tag":91,"props":1849,"children":1850},{"style":114},[1851],{"type":36,"value":283},{"type":31,"tag":91,"props":1853,"children":1854},{"class":93,"line":1132},[1855],{"type":31,"tag":91,"props":1856,"children":1857},{"style":114},[1858],{"type":36,"value":1708},{"type":31,"tag":91,"props":1860,"children":1861},{"class":93,"line":1175},[1862,1867,1872,1877],{"type":31,"tag":91,"props":1863,"children":1864},{"style":137},[1865],{"type":36,"value":1866},"    if",{"type":31,"tag":91,"props":1868,"children":1869},{"style":114},[1870],{"type":36,"value":1871}," (",{"type":31,"tag":91,"props":1873,"children":1874},{"style":137},[1875],{"type":36,"value":1876},"!",{"type":31,"tag":91,"props":1878,"children":1879},{"style":114},[1880],{"type":36,"value":1881},"response.ok) {\n",{"type":31,"tag":91,"props":1883,"children":1884},{"class":93,"line":1205},[1885],{"type":31,"tag":91,"props":1886,"children":1887},{"style":98},[1888],{"type":36,"value":1889},"      \u002F\u002F Fallback-UI bei Fehler\n",{"type":31,"tag":91,"props":1891,"children":1892},{"class":93,"line":1214},[1893,1898,1902,1907],{"type":31,"tag":91,"props":1894,"children":1895},{"style":108},[1896],{"type":36,"value":1897},"      showErrorToast",{"type":31,"tag":91,"props":1899,"children":1900},{"style":114},[1901],{"type":36,"value":117},{"type":31,"tag":91,"props":1903,"children":1904},{"style":120},[1905],{"type":36,"value":1906},"'Warenkorb-Aktualisierung fehlgeschlagen, bitte erneut versuchen'",{"type":31,"tag":91,"props":1908,"children":1909},{"style":114},[1910],{"type":36,"value":1431},{"type":31,"tag":91,"props":1912,"children":1913},{"class":93,"line":1222},[1914],{"type":31,"tag":91,"props":1915,"children":1916},{"style":114},[1917],{"type":36,"value":1918},"    }\n",{"type":31,"tag":91,"props":1920,"children":1921},{"class":93,"line":1235},[1922,1927,1932],{"type":31,"tag":91,"props":1923,"children":1924},{"style":114},[1925],{"type":36,"value":1926},"  } ",{"type":31,"tag":91,"props":1928,"children":1929},{"style":137},[1930],{"type":36,"value":1931},"catch",{"type":31,"tag":91,"props":1933,"children":1934},{"style":114},[1935],{"type":36,"value":1936}," (err) {\n",{"type":31,"tag":91,"props":1938,"children":1939},{"class":93,"line":1244},[1940],{"type":31,"tag":91,"props":1941,"children":1942},{"style":98},[1943],{"type":36,"value":1944},"    \u002F\u002F Netzwerk-Timeout – kritisch\n",{"type":31,"tag":91,"props":1946,"children":1947},{"class":93,"line":1252},[1948,1953,1957,1962],{"type":31,"tag":91,"props":1949,"children":1950},{"style":108},[1951],{"type":36,"value":1952},"    reportError",{"type":31,"tag":91,"props":1954,"children":1955},{"style":114},[1956],{"type":36,"value":117},{"type":31,"tag":91,"props":1958,"children":1959},{"style":120},[1960],{"type":36,"value":1961},"'ATC_TIMEOUT'",{"type":31,"tag":91,"props":1963,"children":1964},{"style":114},[1965],{"type":36,"value":1966},", { variantId, error: err.message });\n",{"type":31,"tag":91,"props":1968,"children":1969},{"class":93,"line":1261},[1970],{"type":31,"tag":91,"props":1971,"children":1972},{"style":114},[1973],{"type":36,"value":291},{"type":31,"tag":91,"props":1975,"children":1976},{"class":93,"line":1310},[1977],{"type":31,"tag":91,"props":1978,"children":1979},{"style":114},[1980],{"type":36,"value":1241},{"type":31,"tag":32,"props":1982,"children":1983},{},[1984,1989,1991,1997],{"type":31,"tag":51,"props":1985,"children":1986},{},[1987],{"type":36,"value":1988},"Analyse:",{"type":36,"value":1990}," Im Grafana\u002FDatadog-Dashboard wird ",{"type":31,"tag":64,"props":1992,"children":1994},{"className":1993},[],[1995],{"type":36,"value":1996},"atc_duration_p95",{"type":36,"value":1998}," überwacht – wenn >2000ms, Problem vorhanden. Mögliche Ursachen:",{"type":31,"tag":2000,"props":2001,"children":2002},"ul",{},[2003,2013,2031],{"type":31,"tag":451,"props":2004,"children":2005},{},[2006,2011],{"type":31,"tag":51,"props":2007,"children":2008},{},[2009],{"type":36,"value":2010},"API-Latenz:",{"type":36,"value":2012}," Shopify Storefront API Response >800ms. Lösung: Cart-State Client-seitig cachen (optimistic UI update, Background Sync).",{"type":31,"tag":451,"props":2014,"children":2015},{},[2016,2021,2023,2029],{"type":31,"tag":51,"props":2017,"children":2018},{},[2019],{"type":36,"value":2020},"Hydration-Verzögerung:",{"type":36,"value":2022}," React-Hydration nicht abgeschlossen, bevor Button geklickt wird – Event Handler nicht attached. Lösung: SSR + Progressive Enhancement, Button mit ",{"type":31,"tag":64,"props":2024,"children":2026},{"className":2025},[],[2027],{"type":36,"value":2028},"onLoad",{"type":36,"value":2030}," sofort interaktiv machen.",{"type":31,"tag":451,"props":2032,"children":2033},{},[2034,2039],{"type":31,"tag":51,"props":2035,"children":2036},{},[2037],{"type":36,"value":2038},"Netzwerk-Queue:",{"type":36,"value":2040}," 3G-Nutzer mit großem Bundle (>500kb), JS-Parsing blockiert. Lösung: Code Splitting, Critical CSS inline.",{"type":31,"tag":32,"props":2042,"children":2043},{},[2044],{"type":36,"value":2045},"Bei einer Migration sank die ATC-Success-Rate von 96% auf 89%. RUM-Analyse zeigte: Mobile-Nutzer brauchten 4,2 Sekunden Hydration, weil die Hydrogen-App 780kb JavaScript lud. Nach Lazy Load + Route-basiertem Splitting (210kb) stieg die Rate wieder auf 95%.",{"type":31,"tag":39,"props":2047,"children":2049},{"id":2048},"risikominderung-feature-flags-und-instant-rollback",[2050],{"type":36,"value":2051},"Risikominderung: Feature Flags und Instant Rollback",{"type":31,"tag":32,"props":2053,"children":2054},{},[2055],{"type":36,"value":2056},"Ohne Feature-Flag-System kann keine Headless-Migration vorangehen. Mit LaunchDarkly, Statsig oder Custom-Redis-Lösung wird für jede Nutzergruppe der Headless-Render kontrolliert.",{"type":31,"tag":81,"props":2058,"children":2060},{"className":83,"code":2059,"language":85,"meta":14,"style":14},"\u002F\u002F Feature-Flag-Check – Edge-Middleware\nexport async function middleware(request) {\n  const userId = request.cookies.get('user_id');\n  const country = request.geo.country;\n  \n  const headlessEnabled = await checkFlag('headless-rollout', {\n    userId,\n    country,\n    trafficPercentage: 10 \u002F\u002F Erste 10% Traffic\n  });\n  \n  if (headlessEnabled) {\n    return NextResponse.rewrite('\u002Fheadless-app');\n  }\n  \n  return NextResponse.rewrite('\u002Flegacy-shopify');\n}\n",[2061],{"type":31,"tag":64,"props":2062,"children":2063},{"__ignoreMap":14},[2064,2072,2107,2146,2167,2174,2212,2220,2228,2246,2254,2261,2273,2303,2310,2317,2345],{"type":31,"tag":91,"props":2065,"children":2066},{"class":93,"line":94},[2067],{"type":31,"tag":91,"props":2068,"children":2069},{"style":98},[2070],{"type":36,"value":2071},"\u002F\u002F Feature-Flag-Check – Edge-Middleware\n",{"type":31,"tag":91,"props":2073,"children":2074},{"class":93,"line":104},[2075,2080,2085,2089,2094,2098,2103],{"type":31,"tag":91,"props":2076,"children":2077},{"style":137},[2078],{"type":36,"value":2079},"export",{"type":31,"tag":91,"props":2081,"children":2082},{"style":137},[2083],{"type":36,"value":2084}," async",{"type":31,"tag":91,"props":2086,"children":2087},{"style":137},[2088],{"type":36,"value":581},{"type":31,"tag":91,"props":2090,"children":2091},{"style":108},[2092],{"type":36,"value":2093}," middleware",{"type":31,"tag":91,"props":2095,"children":2096},{"style":114},[2097],{"type":36,"value":117},{"type":31,"tag":91,"props":2099,"children":2100},{"style":131},[2101],{"type":36,"value":2102},"request",{"type":31,"tag":91,"props":2104,"children":2105},{"style":114},[2106],{"type":36,"value":600},{"type":31,"tag":91,"props":2108,"children":2109},{"class":93,"line":148},[2110,2114,2119,2123,2128,2133,2137,2142],{"type":31,"tag":91,"props":2111,"children":2112},{"style":137},[2113],{"type":36,"value":154},{"type":31,"tag":91,"props":2115,"children":2116},{"style":157},[2117],{"type":36,"value":2118}," userId",{"type":31,"tag":91,"props":2120,"children":2121},{"style":137},[2122],{"type":36,"value":165},{"type":31,"tag":91,"props":2124,"children":2125},{"style":114},[2126],{"type":36,"value":2127}," request.cookies.",{"type":31,"tag":91,"props":2129,"children":2130},{"style":108},[2131],{"type":36,"value":2132},"get",{"type":31,"tag":91,"props":2134,"children":2135},{"style":114},[2136],{"type":36,"value":117},{"type":31,"tag":91,"props":2138,"children":2139},{"style":120},[2140],{"type":36,"value":2141},"'user_id'",{"type":31,"tag":91,"props":2143,"children":2144},{"style":114},[2145],{"type":36,"value":1431},{"type":31,"tag":91,"props":2147,"children":2148},{"class":93,"line":183},[2149,2153,2158,2162],{"type":31,"tag":91,"props":2150,"children":2151},{"style":137},[2152],{"type":36,"value":154},{"type":31,"tag":91,"props":2154,"children":2155},{"style":157},[2156],{"type":36,"value":2157}," country",{"type":31,"tag":91,"props":2159,"children":2160},{"style":137},[2161],{"type":36,"value":165},{"type":31,"tag":91,"props":2163,"children":2164},{"style":114},[2165],{"type":36,"value":2166}," request.geo.country;\n",{"type":31,"tag":91,"props":2168,"children":2169},{"class":93,"line":192},[2170],{"type":31,"tag":91,"props":2171,"children":2172},{"style":114},[2173],{"type":36,"value":189},{"type":31,"tag":91,"props":2175,"children":2176},{"class":93,"line":225},[2177,2181,2186,2190,2194,2199,2203,2208],{"type":31,"tag":91,"props":2178,"children":2179},{"style":137},[2180],{"type":36,"value":154},{"type":31,"tag":91,"props":2182,"children":2183},{"style":157},[2184],{"type":36,"value":2185}," headlessEnabled",{"type":31,"tag":91,"props":2187,"children":2188},{"style":137},[2189],{"type":36,"value":165},{"type":31,"tag":91,"props":2191,"children":2192},{"style":137},[2193],{"type":36,"value":641},{"type":31,"tag":91,"props":2195,"children":2196},{"style":108},[2197],{"type":36,"value":2198}," checkFlag",{"type":31,"tag":91,"props":2200,"children":2201},{"style":114},[2202],{"type":36,"value":117},{"type":31,"tag":91,"props":2204,"children":2205},{"style":120},[2206],{"type":36,"value":2207},"'headless-rollout'",{"type":31,"tag":91,"props":2209,"children":2210},{"style":114},[2211],{"type":36,"value":1647},{"type":31,"tag":91,"props":2213,"children":2214},{"class":93,"line":258},[2215],{"type":31,"tag":91,"props":2216,"children":2217},{"style":114},[2218],{"type":36,"value":2219},"    userId,\n",{"type":31,"tag":91,"props":2221,"children":2222},{"class":93,"line":277},[2223],{"type":31,"tag":91,"props":2224,"children":2225},{"style":114},[2226],{"type":36,"value":2227},"    country,\n",{"type":31,"tag":91,"props":2229,"children":2230},{"class":93,"line":25},[2231,2236,2241],{"type":31,"tag":91,"props":2232,"children":2233},{"style":114},[2234],{"type":36,"value":2235},"    trafficPercentage: ",{"type":31,"tag":91,"props":2237,"children":2238},{"style":157},[2239],{"type":36,"value":2240},"10",{"type":31,"tag":91,"props":2242,"children":2243},{"style":98},[2244],{"type":36,"value":2245}," \u002F\u002F Erste 10% Traffic\n",{"type":31,"tag":91,"props":2247,"children":2248},{"class":93,"line":294},[2249],{"type":31,"tag":91,"props":2250,"children":2251},{"style":114},[2252],{"type":36,"value":2253},"  });\n",{"type":31,"tag":91,"props":2255,"children":2256},{"class":93,"line":302},[2257],{"type":31,"tag":91,"props":2258,"children":2259},{"style":114},[2260],{"type":36,"value":189},{"type":31,"tag":91,"props":2262,"children":2263},{"class":93,"line":331},[2264,2268],{"type":31,"tag":91,"props":2265,"children":2266},{"style":137},[2267],{"type":36,"value":198},{"type":31,"tag":91,"props":2269,"children":2270},{"style":114},[2271],{"type":36,"value":2272}," (headlessEnabled) {\n",{"type":31,"tag":91,"props":2274,"children":2275},{"class":93,"line":345},[2276,2280,2285,2290,2294,2299],{"type":31,"tag":91,"props":2277,"children":2278},{"style":137},[2279],{"type":36,"value":231},{"type":31,"tag":91,"props":2281,"children":2282},{"style":114},[2283],{"type":36,"value":2284}," NextResponse.",{"type":31,"tag":91,"props":2286,"children":2287},{"style":108},[2288],{"type":36,"value":2289},"rewrite",{"type":31,"tag":91,"props":2291,"children":2292},{"style":114},[2293],{"type":36,"value":117},{"type":31,"tag":91,"props":2295,"children":2296},{"style":120},[2297],{"type":36,"value":2298},"'\u002Fheadless-app'",{"type":31,"tag":91,"props":2300,"children":2301},{"style":114},[2302],{"type":36,"value":1431},{"type":31,"tag":91,"props":2304,"children":2305},{"class":93,"line":354},[2306],{"type":31,"tag":91,"props":2307,"children":2308},{"style":114},[2309],{"type":36,"value":291},{"type":31,"tag":91,"props":2311,"children":2312},{"class":93,"line":886},[2313],{"type":31,"tag":91,"props":2314,"children":2315},{"style":114},[2316],{"type":36,"value":189},{"type":31,"tag":91,"props":2318,"children":2319},{"class":93,"line":952},[2320,2324,2328,2332,2336,2341],{"type":31,"tag":91,"props":2321,"children":2322},{"style":137},[2323],{"type":36,"value":308},{"type":31,"tag":91,"props":2325,"children":2326},{"style":114},[2327],{"type":36,"value":2284},{"type":31,"tag":91,"props":2329,"children":2330},{"style":108},[2331],{"type":36,"value":2289},{"type":31,"tag":91,"props":2333,"children":2334},{"style":114},[2335],{"type":36,"value":117},{"type":31,"tag":91,"props":2337,"children":2338},{"style":120},[2339],{"type":36,"value":2340},"'\u002Flegacy-shopify'",{"type":31,"tag":91,"props":2342,"children":2343},{"style":114},[2344],{"type":36,"value":1431},{"type":31,"tag":91,"props":2346,"children":2347},{"class":93,"line":1006},[2348],{"type":31,"tag":91,"props":2349,"children":2350},{"style":114},[2351],{"type":36,"value":1241},{"type":31,"tag":32,"props":2353,"children":2354},{},[2355,2360],{"type":31,"tag":51,"props":2356,"children":2357},{},[2358],{"type":36,"value":2359},"Instant-Rollback-Strategie:",{"type":36,"value":2361}," Wenn ATC-Error-Rate in 5-Minuten-Fenster 3% überschreitet, automatischer Rollback ausgelöst (PagerDuty-Alert + Flag-Toggle).",{"type":31,"tag":81,"props":2363,"children":2367},{"className":2364,"code":2365,"language":2366,"meta":14,"style":14},"language-yaml shiki shiki-themes github-dark","# rollback-policy.yaml\nthresholds:\n  atc_error_rate: 3.0  # percent\n  lcp_p75: 3500        # milliseconds\n  revenue_drop: 5.0    # percent vs last week same hour\n\nactions:\n  - type: flag_override\n    target: headless-rollout\n    value: false\n  - type: alert\n    channel: slack-ops\n    message: \"Headless-Rollback ausgelöst: ATC-Fehler-Spike\"\n","yaml",[2368],{"type":31,"tag":64,"props":2369,"children":2370},{"__ignoreMap":14},[2371,2379,2393,2416,2438,2460,2467,2479,2501,2518,2535,2555,2572],{"type":31,"tag":91,"props":2372,"children":2373},{"class":93,"line":94},[2374],{"type":31,"tag":91,"props":2375,"children":2376},{"style":98},[2377],{"type":36,"value":2378},"# rollback-policy.yaml\n",{"type":31,"tag":91,"props":2380,"children":2381},{"class":93,"line":104},[2382,2388],{"type":31,"tag":91,"props":2383,"children":2385},{"style":2384},"--shiki-default:#85E89D",[2386],{"type":36,"value":2387},"thresholds",{"type":31,"tag":91,"props":2389,"children":2390},{"style":114},[2391],{"type":36,"value":2392},":\n",{"type":31,"tag":91,"props":2394,"children":2395},{"class":93,"line":148},[2396,2401,2406,2411],{"type":31,"tag":91,"props":2397,"children":2398},{"style":2384},[2399],{"type":36,"value":2400},"  atc_error_rate",{"type":31,"tag":91,"props":2402,"children":2403},{"style":114},[2404],{"type":36,"value":2405},": ",{"type":31,"tag":91,"props":2407,"children":2408},{"style":157},[2409],{"type":36,"value":2410},"3.0",{"type":31,"tag":91,"props":2412,"children":2413},{"style":98},[2414],{"type":36,"value":2415},"  # percent\n",{"type":31,"tag":91,"props":2417,"children":2418},{"class":93,"line":183},[2419,2424,2428,2433],{"type":31,"tag":91,"props":2420,"children":2421},{"style":2384},[2422],{"type":36,"value":2423},"  lcp_p75",{"type":31,"tag":91,"props":2425,"children":2426},{"style":114},[2427],{"type":36,"value":2405},{"type":31,"tag":91,"props":2429,"children":2430},{"style":157},[2431],{"type":36,"value":2432},"3500",{"type":31,"tag":91,"props":2434,"children":2435},{"style":98},[2436],{"type":36,"value":2437},"        # milliseconds\n",{"type":31,"tag":91,"props":2439,"children":2440},{"class":93,"line":192},[2441,2446,2450,2455],{"type":31,"tag":91,"props":2442,"children":2443},{"style":2384},[2444],{"type":36,"value":2445},"  revenue_drop",{"type":31,"tag":91,"props":2447,"children":2448},{"style":114},[2449],{"type":36,"value":2405},{"type":31,"tag":91,"props":2451,"children":2452},{"style":157},[2453],{"type":36,"value":2454},"5.0",{"type":31,"tag":91,"props":2456,"children":2457},{"style":98},[2458],{"type":36,"value":2459},"    # percent vs last week same hour\n",{"type":31,"tag":91,"props":2461,"children":2462},{"class":93,"line":225},[2463],{"type":31,"tag":91,"props":2464,"children":2465},{"emptyLinePlaceholder":565},[2466],{"type":36,"value":568},{"type":31,"tag":91,"props":2468,"children":2469},{"class":93,"line":258},[2470,2475],{"type":31,"tag":91,"props":2471,"children":2472},{"style":2384},[2473],{"type":36,"value":2474},"actions",{"type":31,"tag":91,"props":2476,"children":2477},{"style":114},[2478],{"type":36,"value":2392},{"type":31,"tag":91,"props":2480,"children":2481},{"class":93,"line":277},[2482,2487,2492,2496],{"type":31,"tag":91,"props":2483,"children":2484},{"style":114},[2485],{"type":36,"value":2486},"  - ",{"type":31,"tag":91,"props":2488,"children":2489},{"style":2384},[2490],{"type":36,"value":2491},"type",{"type":31,"tag":91,"props":2493,"children":2494},{"style":114},[2495],{"type":36,"value":2405},{"type":31,"tag":91,"props":2497,"children":2498},{"style":120},[2499],{"type":36,"value":2500},"flag_override\n",{"type":31,"tag":91,"props":2502,"children":2503},{"class":93,"line":25},[2504,2509,2513],{"type":31,"tag":91,"props":2505,"children":2506},{"style":2384},[2507],{"type":36,"value":2508},"    target",{"type":31,"tag":91,"props":2510,"children":2511},{"style":114},[2512],{"type":36,"value":2405},{"type":31,"tag":91,"props":2514,"children":2515},{"style":120},[2516],{"type":36,"value":2517},"headless-rollout\n",{"type":31,"tag":91,"props":2519,"children":2520},{"class":93,"line":294},[2521,2526,2530],{"type":31,"tag":91,"props":2522,"children":2523},{"style":2384},[2524],{"type":36,"value":2525},"    value",{"type":31,"tag":91,"props":2527,"children":2528},{"style":114},[2529],{"type":36,"value":2405},{"type":31,"tag":91,"props":2531,"children":2532},{"style":157},[2533],{"type":36,"value":2534},"false\n",{"type":31,"tag":91,"props":2536,"children":2537},{"class":93,"line":302},[2538,2542,2546,2550],{"type":31,"tag":91,"props":2539,"children":2540},{"style":114},[2541],{"type":36,"value":2486},{"type":31,"tag":91,"props":2543,"children":2544},{"style":2384},[2545],{"type":36,"value":2491},{"type":31,"tag":91,"props":2547,"children":2548},{"style":114},[2549],{"type":36,"value":2405},{"type":31,"tag":91,"props":2551,"children":2552},{"style":120},[2553],{"type":36,"value":2554},"alert\n",{"type":31,"tag":91,"props":2556,"children":2557},{"class":93,"line":331},[2558,2563,2567],{"type":31,"tag":91,"props":2559,"children":2560},{"style":2384},[2561],{"type":36,"value":2562},"    channel",{"type":31,"tag":91,"props":2564,"children":2565},{"style":114},[2566],{"type":36,"value":2405},{"type":31,"tag":91,"props":2568,"children":2569},{"style":120},[2570],{"type":36,"value":2571},"slack-ops\n",{"type":31,"tag":91,"props":2573,"children":2574},{"class":93,"line":345},[2575,2580,2584],{"type":31,"tag":91,"props":2576,"children":2577},{"style":2384},[2578],{"type":36,"value":2579},"    message",{"type":31,"tag":91,"props":2581,"children":2582},{"style":114},[2583],{"type":36,"value":2405},{"type":31,"tag":91,"props":2585,"children":2586},{"style":120},[2587],{"type":36,"value":2588},"\"Headless-Rollback ausgelöst: ATC-Fehler-Spike\"\n",{"type":31,"tag":32,"props":2590,"children":2591},{},[2592],{"type":36,"value":2593},"Mit dieser Struktur dauert die Migration 8 Wochen, aber der Revenue-Verlust bleibt \u003C2%. Die eigentliche Headless-Gewinne (LCP 4.8s → 1.9s, Conversion +12%) realisieren sich erst nach kompletter Migration – aber während des Prozesses entsteht keine \"Krise\".",{"type":31,"tag":39,"props":2595,"children":2597},{"id":2596},"performance-migration-test-szenarien",[2598],{"type":36,"value":2599},"Performance-Migration: Test-Szenarien",{"type":31,"tag":32,"props":2601,"children":2602},{},[2603],{"type":36,"value":2604},"Beim Headless-Wechsel wird nicht nur \"ist die neue Site schneller\" getestet, sondern auch \"werden alte User-Behavior nach der Migration gestört\". Synthetic-Test + Real User Monitoring kombiniert:",{"type":31,"tag":32,"props":2606,"children":2607},{},[2608],{"type":31,"tag":51,"props":2609,"children":2610},{},[2611],{"type":36,"value":2612},"Synthetic:",{"type":31,"tag":2000,"props":2614,"children":2615},{},[2616,2621],{"type":31,"tag":451,"props":2617,"children":2618},{},[2619],{"type":36,"value":2620},"Lighthouse CI Pipeline – bei jedem Deploy LCP\u002FTBT\u002FCLS für PDP, PLP, Homepage prüfen",{"type":31,"tag":451,"props":2622,"children":2623},{},[2624],{"type":36,"value":2625},"WebPageTest-Skript-Test: \"Kategorienseite öffnen, 3. Produkt klicken, in Warenkorb, zur Checkout\" aus 10 Geographien (Istanbul, Berlin, New York)",{"type":31,"tag":32,"props":2627,"children":2628},{},[2629],{"type":31,"tag":51,"props":2630,"children":2631},{},[2632],{"type":36,"value":2633},"RUM:",{"type":31,"tag":2000,"props":2635,"children":2636},{},[2637,2650],{"type":31,"tag":451,"props":2638,"children":2639},{},[2640,2642,2648],{"type":36,"value":2641},"Pro Page View wird ",{"type":31,"tag":64,"props":2643,"children":2645},{"className":2644},[],[2646],{"type":36,"value":2647},"performance.getEntriesByType('navigation')",{"type":36,"value":2649}," erfasst, zu BigQuery gestreamt",{"type":31,"tag":451,"props":2651,"children":2652},{},[2653],{"type":36,"value":2654},"Cohort-Vergleich: letzte 10K Nutzer mit altem Frontend vs. erste 10K mit neuem Frontend → median Session Duration, Pages per Session, Bounce Rate",{"type":31,"tag":32,"props":2656,"children":2657},{},[2658,2660,2669],{"type":36,"value":2659},"Die ",{"type":31,"tag":2661,"props":2662,"children":2666},"a",{"href":2663,"rel":2664},"https:\u002F\u002Fwww.roibase.com.tr\u002Fde\u002Fheadless",[2665],"nofollow",[2667],{"type":36,"value":2668},"Headless Commerce",{"type":36,"value":2670}," Infrastruktur mit Nuxt 3 + Cloudflare Pages ist optimal, weil Edge-SSR-Latenz \u003C50ms bleibt und Phasen-Rollout durch Workers-Routing nativ unterstützt wird.",{"type":31,"tag":32,"props":2672,"children":2673},{},[2674,2676,2681],{"type":36,"value":2675},"Das kritischste Element im Headless-Migration-Roadmap ist die ",{"type":31,"tag":51,"props":2677,"children":2678},{},[2679],{"type":36,"value":2680},"Fähigkeit zum Rollback",{"type":36,"value":2682},". Jede Phase wird unabhängig deployed, Flag-kontrolliert und metrik-gesteuert. SEO-Preservation-Test muss automatisiert sein – manuelle QA kann 500 URLs nicht überprüfen, und Google-Ranking-Verlust wird erst nach 6 Wochen erkannt (Rollback dann zu spät). ATC-Abandonment-Analyse muss Echtzeit sein, nicht 24-Stunden-verzögert. Mit dieser Disziplin wird Headless-Migration vom Risiko zu einem messbaren Optimierungsprozess.",{"type":31,"tag":2684,"props":2685,"children":2686},"style",{},[2687],{"type":36,"value":2688},"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":148,"depth":148,"links":2690},[2691,2692,2693,2694,2695],{"id":41,"depth":104,"text":44},{"id":421,"depth":104,"text":424},{"id":1488,"depth":104,"text":1491},{"id":2048,"depth":104,"text":2051},{"id":2596,"depth":104,"text":2599},"markdown","content:de:tech:headless-e-commerce-migration-roadmap-risk-management.md","content","de\u002Ftech\u002Fheadless-e-commerce-migration-roadmap-risk-management.md","de\u002Ftech\u002Fheadless-e-commerce-migration-roadmap-risk-management","md",1785967489803]