[{"data":1,"prerenderedAt":291},["ShallowReactive",2],{"\u002Fblog\u002Fnuxt-ab-testing-data":3},{"post":4,"surround":280},{"id":5,"title":6,"alternates":7,"authors":8,"badge":14,"body":16,"date":264,"dateModified":7,"description":265,"extension":266,"head":7,"hero_image_url":7,"json_ld":7,"meta":267,"navigation":268,"ogImage":7,"outbound_links":7,"path":269,"primary_keyword":270,"related_articles":7,"robots":7,"schemaOrg":7,"search_intent":271,"seo":272,"sitemap":273,"stem":274,"supporting_keywords":275,"tags":7,"__hash__":279},"blog_en\u002Fblog\u002Fnuxt-ab-testing.md","Nuxt A\u002FB Testing: SSR, Cookies and Conversion Tracking",null,[9],{"name":10,"to":11,"avatar":12},"Tom Han","https:\u002F\u002Fx.com\u002Ftomhan245",{"src":13},"https:\u002F\u002Fcdn.shipahe.ad\u002Ftomhan.webp",{"label":15},"Guides",{"type":17,"value":18,"toc":254},"minimark",[19,24,28,31,35,38,105,108,112,126,129,132,136,145,183,186,190,223,231,235,238,246],[20,21,23],"h2",{"id":22},"how-do-you-run-ab-testing-in-nuxt","How do you run A\u002FB testing in Nuxt?",[25,26,27],"p",{},"Run A\u002FB testing in Nuxt by assigning each visitor a consistent variant, rendering it consistently on the server and client, and recording exposure and conversion events. Decide how the experiment interacts with caching before sending traffic to it.",[25,29,30],{},"Start with one hypothesis, such as whether a clearer call to action increases completed signups. Define the conversion event before changing the page.",[20,32,34],{"id":33},"what-should-you-measure","What should you measure?",[25,36,37],{},"Measure completed outcomes among visitors exposed to each variant. Pageviews and button clicks can help diagnose behavior, but they do not establish that a signup or purchase happened.",[39,40,41,57],"table",{},[42,43,44],"thead",{},[45,46,47,51,54],"tr",{},[48,49,50],"th",{},"Event",[48,52,53],{},"When it happens",[48,55,56],{},"Useful properties",[58,59,60,72,83,94],"tbody",{},[45,61,62,66,69],{},[63,64,65],"td",{},"Experiment exposure",[63,67,68],{},"The assigned variation is actually displayed",[63,70,71],{},"Experiment ID, variant, page",[45,73,74,77,80],{},[63,75,76],{},"CTA click",[63,78,79],{},"The visitor clicks the tested button",[63,81,82],{},"Experiment ID, variant, destination",[45,84,85,88,91],{},[63,86,87],{},"Signup completed",[63,89,90],{},"An account is successfully created",[63,92,93],{},"Experiment ID, variant",[45,95,96,99,102],{},[63,97,98],{},"Purchase completed",[63,100,101],{},"Payment is confirmed",[63,103,104],{},"Experiment ID, variant, transaction ID",[25,106,107],{},"Use the same counting rule for both variants. Deduplicate repeated events and exclude internal test traffic. Follow your site's consent rules when collecting analytics.",[20,109,111],{"id":110},"how-do-you-keep-a-variant-consistent-in-nuxt","How do you keep a variant consistent in Nuxt?",[25,113,114,115,125],{},"Use a persistent assignment that both server rendering and client hydration can read. Nuxt's ",[116,117,121],"a",{"href":118,"rel":119},"https:\u002F\u002Fnuxt.com\u002Fdocs\u002F4.x\u002Fapi\u002Fcomposables\u002Fuse-cookie",[120],"nofollow",[122,123,124],"code",{},"useCookie"," supports reading and writing a cookie within the Nuxt context.",[25,127,128],{},"For server-rendered pages, assign the visitor before rendering and send the same assignment through hydration. Avoid independent random choices during server and browser rendering: they can produce different content for the same visit.",[25,130,131],{},"For a prerendered page, the HTML is shared. Make a deliberate choice between client-side variation after hydration, with possible flicker, and a server or edge implementation that controls the initial response.",[20,133,135],{"id":134},"can-ab-tests-break-ssr-caching","Can A\u002FB tests break SSR caching?",[25,137,138,139,144],{},"Yes. A shared cached response can serve one visitor's variant to another visitor. Nuxt supports several ",[116,140,143],{"href":141,"rel":142},"https:\u002F\u002Fnuxt.com\u002Fdocs\u002F4.x\u002Fguide\u002Fconcepts\u002Frendering",[120],"rendering and caching modes","; a visitor-specific experiment must account for the one your route uses.",[39,146,147,157],{},[42,148,149],{},[45,150,151,154],{},[48,152,153],{},"Delivery mode",[48,155,156],{},"What the experiment needs",[58,158,159,167,175],{},[45,160,161,164],{},[63,162,163],{},"Uncached SSR",[63,165,166],{},"Assignment available before rendering",[45,168,169,172],{},[63,170,171],{},"Shared prerendered HTML",[63,173,174],{},"Stable common HTML, then a deliberate client-side experiment",[45,176,177,180],{},[63,178,179],{},"Cached SSR or CDN response",[63,181,182],{},"Explicit cache separation by variant or an uncached experiment route",[25,184,185],{},"Test two separate browser sessions, refresh each one, and confirm the variant stays consistent. Do this against the deployed cache behavior as well as local development.",[20,187,189],{"id":188},"how-do-you-verify-a-nuxt-experiment-before-launch","How do you verify a Nuxt experiment before launch?",[191,192,193,197,200,203,206,209,217,220],"ol",{},[194,195,196],"li",{},"Define one hypothesis and one primary conversion event.",[194,198,199],{},"Choose an experiment ID and record the start date.",[194,201,202],{},"Check assignment persistence across refreshes and navigation.",[194,204,205],{},"Confirm server HTML and hydrated content agree where SSR variation is used.",[194,207,208],{},"Check that exposure and conversion events contain the same experiment and variant IDs.",[194,210,211,212,216],{},"Test both branches with your ",[116,213,215],{"href":214},"\u002Fblog\u002Fnuxt-test-utils-setup-examples-best-practices","Nuxt test utils setup",".",[194,218,219],{},"Verify the deployed cache does not mix variants.",[194,221,222],{},"Set the planned duration and sample requirement before judging results.",[25,224,225,226,230],{},"Keep your public URL, canonical tag, and ",[116,227,229],{"href":228},"\u002Fblog\u002Fnuxt-seo-best-practices-saas","Nuxt SEO setup"," consistent. Avoid treating a short experiment with a handful of conversions as a reliable winner.",[20,232,234],{"id":233},"should-a-low-traffic-saas-run-ab-tests","Should a low-traffic SaaS run A\u002FB tests?",[25,236,237],{},"Often, fixing obvious problems and interviewing customers is more useful first. If each variant receives very few eligible visitors or conversions, the test may take too long to answer the question.",[25,239,240,241,245],{},"Use that time to check whether the page explains the product, whether the signup flow works, and whether conversion tracking records completed outcomes. You can use the ",[116,242,244],{"href":243},"\u002Flanding-page-roaster","free landing page roaster"," to generate review ideas, then verify those suggestions with users.",[25,247,248,249,253],{},"When you have enough traffic to evaluate one change, use the checklist above. ",[116,250,252],{"href":251},"\u002F","ShipAhead"," supplies a Nuxt SaaS foundation; experiment assignment and measurement still need to be implemented for your specific application.",{"title":255,"searchDepth":256,"depth":256,"links":257},"",2,[258,259,260,261,262,263],{"id":22,"depth":256,"text":23},{"id":33,"depth":256,"text":34},{"id":110,"depth":256,"text":111},{"id":134,"depth":256,"text":135},{"id":188,"depth":256,"text":189},{"id":233,"depth":256,"text":234},"2026-11-13","Plan Nuxt A\u002FB tests with consistent variants, SSR-safe cookies, cache rules, and exposure and conversion events. Includes a practical launch checklist.","md",{},true,"\u002Fblog\u002Fnuxt-ab-testing","nuxt ab testing","Informational",{"title":6,"description":265},{"loc":269},"blog\u002Fnuxt-ab-testing",[276,277,278],"nuxt ab tests","Nuxt A\u002FB testing","Nuxt conversion tracking","OrNl31WgL7Ip8Dzp4pBJ_lfCiKLEnpOY7kyn1JfQhr0",[281,286],{"title":282,"path":283,"stem":284,"description":285,"children":-1},"How Much Time Does a Nuxt Starter Kit Actually Save?","\u002Fblog\u002Fis-building-a-saas-still-worth-it","blog\u002Fis-building-a-saas-still-worth-it","Is building a SaaS still worth it in 2026? We break down the time-saving data and why speed is the only advantage that matters for solo founders.",{"title":287,"path":288,"stem":289,"description":290,"children":-1},"Nuxt 3 authentication with email, magic links, and Google","\u002Fblog\u002Fnuxt-authentication-with-email-magic-links-and-google","blog\u002Fnuxt-authentication-with-email-magic-links-and-google","Set up Nuxt 3 auth with email\u002Fpassword, magic links, and Google. Secure sessions, protect routes, and ship faster with a production-ready starter.",1794548073677]