Migrate from VWO. Step by step.
Written by the ABTestly team. ABTestly pricing verified on our own pricing page on 6 September 2026. VWO and AB Tasty have merged and both platforms now sit under the Wingify brand; rebrand and product details checked on vwo.com and help.wingify.com on 6 September 2026. VWO pricing checked on vwo.com/pricing on 6 September 2026, where the public page shows no price at 100,000 tracked users; that figure sits behind VWO's in app checkout or a quote, so ask VWO for a current one rather than trusting a number from us.
Yes, we are ABTestly, so read this knowing who wrote it. Every step and number here is checkable. The work in a VWO move is not the snippet swap, which takes fifteen minutes. It is your conversion goals: VWO gives you seven goal types, five of them rebuild cleanly, and two of them were already carrying custom JavaScript before you started. This guide is mostly about telling those apart before you commit an afternoon to the wrong one.
The Wingify rebrand is not the reason to move, and we will not pretend it is
VWO and AB Tasty merged, and on 13 June 2026 at 11:00 PM PDT both platforms came together under one brand, Wingify. app.vwo.com redirects to app.wingify.com; help.vwo.com and developers.vwo.com redirect to help.wingify.com and developers.wingify.com; the help articles now call the tag Wingify SmartCode. VWO says vwo.com will continue to operate during and after the transition.
Read this part before anyone sells you a panic migration. Taken from the vendor's own post, in its own words:
- The tag stays put. The SmartCode installed on your website does not need to be replaced and will continue to work as is.
- Running work carries on. Campaigns, experiments and feature flags keep running.
- Your history survives. Historical data and reports are preserved.
- Access and commercials are untouched. Logins are unchanged, and so are contracts, pricing and billing terms.
- Nothing to re integrate. REST API endpoints are unchanged, and CSP directives are unaffected.
So nothing about the rebrand forces a move, and no part of this guide is repair work. What the merger does change is your shortlist: VWO and AB Tasty are now one company, so if you were planning to weigh one against the other, read the VWO comparison and the AB Tasty alternative page together.
Question one: legacy Goals, or Metrics?
This decides what your inventory even looks like, and it is the question teams skip.
The newer model is Metrics under Data360, which are reusable across campaigns. Legacy goals are not: the vendor documentation is explicit that they are limited to the scope of a given campaign and cannot be applied to multiple campaigns. Metrics are conditional on the account having Data360 enabled, and six automatic categories apply to accounts created after 14 June 2026.
So find out which one you are on before you list anything, because the two produce different work:
- On Metrics. Your definitions already exist once and are reused, so your inventory is a short list of Metrics plus which campaigns consume them. Rebuilding is mostly one pass through that list.
- On legacy Goals. The same conversion has been redefined inside every campaign that measures it, so your export will contain the same idea five or six times under five or six names. Deduplicate first. Teams routinely find they have three definitions of "signup" that do not agree with each other, and that discovery is worth the hour on its own.
We are not saying VWO goals are deprecated. That claim circulates widely and it is not in the vendor documentation, so we do not make it. What the documentation does say is that legacy goals are campaign scoped and that Metrics are reusable where Data360 is enabled. Checked on help.wingify.com on 6 September 2026.
Question two: who else is on that tag?
SmartCode is a single snippet placed before the closing </head> tag, in an async and a sync variant, and the async variant carries a page load timer: if the page fails to load in time, execution stops and the original page is shown. One tag serves the whole suite, and Wingify sells eight products across it: Testing, Feature Experimentation, Insights, Personalization, Commerce, Engage, Pulse and Wandz.
That is convenient while you are buying and awkward while you are leaving. Removing the tag does not only remove A/B testing; anything else your organisation runs through the same SmartCode goes with it. In a company of any size the person who wants to change testing tools is usually not the person reading Insights dashboards. Ask around before you scope the switch, not after. If other teams are on that tag, the realistic outcome is that ABTestly runs alongside for a while rather than instead of, and that is a perfectly normal way to start.
What carries over, and what does not
ABTestly is focused A/B testing, not a full CRO suite. So some of VWO maps across cleanly and some does not. Here is the honest mapping before you start.
| In VWO | In ABTestly | |
|---|---|---|
| Experiments | A/B, split URL, multivariate, multi arm, personalization campaigns | Rebuilt as A/B experiments. Multivariate and personalization do not carry across, since ABTestly is A/B testing focused |
| Variant changes | Built in the visual editor, stored as generated selectors and CSS | Re authored as variation code in Monaco. The variation JavaScript and CSS become explicit and reviewable, and you can copy them into your own version control. Experiment configuration stays in the ABTestly dashboard |
| Goals and metrics | Seven goal types, plus reusable Metrics where Data360 is enabled | Recreated as goals in a site level library: page visit, click, form submit, custom event, scroll depth, revenue, engaged session. Two system goals attach to every new experiment automatically. See the goal by goal table below |
| Audience and targeting | URL, device, geo, cookie, behavioral, and custom JavaScript conditions | Recreated as targeting rules: URL, device, and query parameters. URL rules are case insensitive by default. More specific VWO conditions may map to a custom rule, and we will help you check |
| Statistics | Depends on the account. SmartStats, the Bayesian engine, covers accounts on the older framework and campaigns created before migration. Newer accounts use Campaign Reports, with Bayesian and frequentist models. Worth checking which one produced the results you are about to leave behind | Three statistics engines (Frequentist on every plan; Sequential and Bayesian on Pro), applied to conversion and revenue |
| Historical reports | Live inside the platform's reporting, and preserved through the Wingify rebrand | Export them before you cancel. Past results stay yours. New data starts fresh in ABTestly |
| Heatmaps, recordings, surveys | Part of the suite, on the same SmartCode tag | Experiment heatmaps are included with Pro and Business; the Signals add on brings them to Starter. Session recordings and surveys are not offered; keep a dedicated tool if your program relies on these |
The seven goal types, one at a time
This is where the afternoon actually goes. VWO names seven conversion goal types. Five of them rebuild without argument. Two were already custom JavaScript before you started, so the work is smaller than it looks. One has no clean equivalent anywhere, and it is the one to decide about early.
| VWO goal type | In ABTestly |
|---|---|
| Track Page Visits On | A page visit goal on a URL rule. Clean rebuild, minutes each |
| Track Clicks on Link | A click goal with a CSS selector. Clean rebuild |
| Track Clicks on Element(s) | A click goal with a CSS selector. Clean rebuild. If VWO recorded a generated selector from the editor, write a stable one by hand instead of copying it |
| Track Custom Conversion On | A custom event goal, fired by your own code. Whatever already decides when the conversion happened stays yours; only the call at the end changes |
| Track Form Submits To | A form submit goal, optionally scoped to a form selector. Both tools listen for the standard submit event, so a form posted with JavaScript that never dispatches one needs a custom event goal in either tool. VWO's own documentation says the same: dynamic and AJAX forms need a custom goal there too |
| Track Revenue On | A revenue goal carrying a numeric amount. VWO required additional JavaScript beyond the standard SmartCode for this, so you already have the code that knows the order value. You are rewriting the last line of it, not inventing it |
| Tracks Engagement | No single equivalent. See below. This is the one that costs you time |
The engagement goal is the real non mapping. VWO's Tracks Engagement is a composite: it counts clicks on anchors, buttons, input buttons, submit buttons and image inputs, all under one goal. ABTestly's Increase Engagement system goal fires on hyperlink clicks, on a real anchor with an href, and nothing else. So the anchor half carries over automatically and the button and input halves do not. You have three options, and only you can pick:
- Split it. Add click goals for the buttons and inputs you actually care about. More honest, more setup, and usually reveals that two of the five element kinds were never meaningful on your pages.
- Narrow it. Keep hyperlink clicks alone and accept that the number is not comparable to the old one. Fine for a fresh baseline, wrong for a running trend line.
- Drop it. Most teams who look closely find the composite was a secondary metric nobody ever acted on.
Whichever you choose, do not carry the old engagement number forward as though it continued. Two differently scoped goals produce two different series, and a chart that pretends otherwise is worse than no chart.
VWO goal types and their behaviour checked on help.wingify.com on 6 September 2026. ABTestly's Increase Engagement system goal is a hyperlink click goal; see the system goals documentation for its exact scope.
The migration in five steps
The mechanics are short, and most of them are the same for any tool you leave. Steps one and two are the two questions above.
3. Install the snippet and rebuild one experiment (about an hour). Sign up, add your site, and paste the loader into your <head>. It is a few lines and it pulls the full runtime, about 31 KB gzipped, measured on our own snippet. Anti flicker is opt in, so turn it on only for tests that hide content above the fold. Then take your simplest live A/B concept and build it: variants, split, targeting, goals. Targeting, goals, allocation, and method settings stay in the ABTestly dashboard; there is no repository sync today. The install guide has the exact snippet your site generates, and the consent guide covers wiring it to your CMP if you operate under GDPR.
1<!-- ABTestly · paste first in <head> --> 2<script>(function (w, d) { 3 var s = d.createElement('script'); 4 s.src = 'https://cdn.abtestly.com/s/YOUR_KEY.js'; 5 s.async = false; 6 (d.head || d.documentElement).appendChild(s); 7})(window, document);</script>
Where the VWO editor recorded your change as a generated selector, you write it as variation code. It is a few lines, and it says exactly what it does.
1// Variant B: rewrite the hero CTA 2var cta = document.querySelector('.hero .btn-primary'); 3if (cta) { 4 cta.textContent = 'Start free'; 5 cta.dataset.variant = 'b'; 6}
4. Prove the tracking before you move traffic. Do not run the same live test in two tools at once. Some visitors would land in both, some in neither, and two scripts would fight over the same elements. The isolation has to sit upstream of both platforms, because ABTestly's exclusion groups only coordinate experiments inside ABTestly. Split once on a stable visitor id, hand each tool its own group as an audience condition, and confirm the split in both dashboards before either side serves a treatment.
A no change ABTestly experiment is the lighter option and it does prove ingestion works. On a 14 day free trial you can run it at your real traffic volume without being charged; a card is required at signup and nothing is charged until day 15. Be clear about the cost anyway: a visitor counts as a tracked user the first time they are bucketed, whether or not the variation changes anything on the page, and the run writes real assignment and goal records. It is a plumbing check, not a free dry run. Four things to confirm, in this order: the visitors you expect actually qualify under the same URL and device rules; exposure fires only after consent, the way your CMP is wired; exposure is recorded once per visitor with no sample ratio warning on the results panel; and every goal fires on the same action you defined in VWO. Then launch one real low risk test. The two tools will not line up to the decimal, and that is not a fault in either one: identity, attribution, consent handling and goal definitions all differ for legitimate reasons.
5. Move the rest and cancel (1 to 2 hours). Rebuild the remaining A/B tests, export your VWO history, and cancel. VWO plans commonly run on annual terms, so start the tracking check a few weeks before renewal and the overlap costs you nothing extra. Two things to watch while both are running. Your VWO quota keeps burning during the parallel period, and when a purchased visitor quota is exhausted VWO pauses the campaign rather than billing you for the overage, so a validation run can stop halfway through on its own. Quota does not roll over either, and it is counted per product, so if you also run Insights or Web Rollout the same visitor draws down more than one allowance. And if other teams are on the same SmartCode, do not remove the tag at all; leave it and remove only your campaigns.
Honest effort estimate
| Setup | Expected effort |
|---|---|
| A handful of simple A/B tests, page visit and click goals only | Half a day of building, plus the tracking check before you move traffic |
| 5 to 10 tests, with revenue goals or custom conversions | 1 to 2 days. The revenue code already exists on your site, so this is rewiring rather than writing |
| Legacy campaign scoped goals, duplicated across many campaigns | Add half a day for deduplication before you build anything. It is the cheapest half day in the project |
| Heavy visual editor usage, multivariate, personalization, or an engagement goal you rely on | 2 to 4 days. Editor changes are re expressed as code, multivariate and personalization campaigns need rethinking as A/B tests, and the engagement composite has to be split or dropped. Weigh whether code first suits your team before you start (the comparison covers this) |
Five reasons to stop reading and stay
Honesty matters more to us than the sale, so here are the cases where the migration is not worth starting. Any one of them is enough.
- Someone who does not write code owns your tests. The visual editor is the single biggest thing you give up, and no amount of tooling around a code first product replaces it.
- Recordings, surveys or funnels are load bearing. ABTestly offers experiment heatmaps with Pro and Business and page heatmaps through Signals, and offers none of the other three.
- Your program runs multivariate tests or feature flags. Neither exists here, so those campaigns would have no home.
- The engagement composite is a metric your leadership reads. Splitting it changes the number, and a trend line that changes definition mid flight is worse than the tool it came from.
- Procurement needs certifications, SSO or phone support. An established vendor clears that bar today and we do not.
If none of those describe you, the rest is a practical path across.
We will do it with you
Migration help is free and human. Email [email protected] with your campaign list and, more usefully, your goal list. Redact the URLs and the numbers if you like; the structure is what we read. What you get back is a goal by goal verdict: which of your seven goal types rebuild as is, which need a line of your own code, and what your engagement goal would have to become. If your account is on legacy campaign goals we will also tell you where the duplicates are, which is usually the part that changes the estimate. A screenshot works, it just gets you a vaguer answer. Prefer something smaller? Send us one experiment and we rebuild that one with you first.
Start the pilot: app.abtestly.com/sign-up. Whether a single pilot test can read a result depends on your conversion rate and the size of the effect you are looking for.
What the switch is worth
At 100,000 tracked users, ABTestly Pro is $249 / mo, or $199 / mo billed annually, with unlimited experiments. We publish that price. VWO does not publish a 100,000 tracked user price on its public page, so there is no clean like for like figure to set beside it, and the two products cover different scope anyway. The honest comparison is your own VWO renewal quote, for the scope you actually use, against ABTestly's published plan. Full pricing is on the pricing page, and the VWO and ABTestly comparison lays out the trade offs. Not sure yet whether to switch at all? Start with the VWO alternative page.
ABTestly prices are billed via Paddle as merchant of record; applicable tax is handled at checkout. VWO's public tiers cover different tracked user volumes, so compare by tracked users and by the features you actually use, not by a single list line.
Common questions
Does the Wingify rebrand force a migration?
No. The domains moved and the docs were renamed. Your setup did not: the vendor's post lists the tag, running campaigns, historical reports, logins, commercial terms, API endpoints and CSP as all untouched, and it is quoted in full at the top of this page. Move because a code first workflow and a published price suit you better, or do not move.
Which VWO goals do not rebuild cleanly?
Two, and for different reasons. Revenue goals needed extra JavaScript in VWO beyond the standard SmartCode, so the code that knows your order value already exists and you rewire its last line. The engagement goal is the harder one: VWO counts clicks on anchors, buttons, input buttons, submit buttons and image inputs under one composite, and ABTestly's Increase Engagement system goal fires on hyperlink clicks only, so you split it into explicit click goals, narrow it, or drop it. Everything else, page visits, link clicks, element clicks, custom conversions, and standard form submits, rebuilds without argument. Dynamic and AJAX forms need a custom goal in both tools.
How long does a VWO migration take?
For a focused VWO A/B account, about half a day of building plus a short tracking check before you move traffic. Budget more if you lean on the visual editor, multivariate, or personalization, and add half a day for deduplication if your goals are defined per campaign rather than as reusable Metrics.
Does anything import automatically from VWO?
No. You rebuild your live A/B tests, goals, and targeting, and visual editor changes are re authored as variation code. Send your VWO campaign and goal list to [email protected] and we map every A/B test, goal, and rule for you, and say plainly what does not carry across.
How do I confirm ABTestly is tracking correctly before I switch?
Prove the plumbing before you move any traffic. Make the split once, upstream of both platforms, on a stable visitor id, then give each tool only its own group and confirm the split in both dashboards. ABTestly's exclusion groups coordinate experiments inside ABTestly, so no ABTestly setting can decide what VWO buckets. A no change ABTestly experiment is the lighter option and it does prove ingestion; a 14 day free trial covers it, with a card required at signup. It is not free of consequence: a bucketed visitor counts as a tracked user and the run writes real assignment and goal records. Check eligibility, consent, exposure and goal definitions, then launch one real low risk test. Do not run the same live test in both tools at once, and do not expect the two tools to line up to the decimal.
How much is ABTestly at 100,000 tracked users?
At 100,000 monthly tracked users, Pro is $249 / mo, or $199 / mo billed annually, with unlimited experiments. Pro includes up to 200,000. VWO does not publish a comparable public price, so compare your own VWO quote and the scope you use against ABTestly's published plan.
Sources checked
VWO and Wingify details checked on 6 September 2026. ABTestly details checked on 6 September 2026. Prices and product behaviour change, so verify against the source before you rely on a number.
- ABTestly pricing: abtestly.com/pricing
- Install snippet and size: docs.abtestly.com/install/snippet
- Statistics engines: docs.abtestly.com/results/engines
- Sample ratio guard: docs.abtestly.com/results/srm
- Refund terms: docs.abtestly.com/billing/refunds
- Wingify rebrand, cutover date and what is unchanged: vwo.com, aligning our domain
- Conversion goal types: help.wingify.com, types of conversion goals
- Metrics and Data360: help.wingify.com, working with metrics
- SmartCode: help.wingify.com, what is Wingify SmartCode
- SmartStats methods: help.vwo.com, SmartStats configurations
- SmartStats configuration on the Wingify help site: help.wingify.com, SmartStats configuration
- VWO pricing: vwo.com/pricing
- VWO and AB Tasty combination announcement: abtasty.com/news/vwo-ab-tasty-join-forces
VWO figures checked on vwo.com/pricing on 6 September 2026. Its public page shows no price at 100,000 tracked users; that figure sits behind VWO's in app checkout or a quote, so ask VWO for a current one rather than trusting a number from us. ABTestly is not affiliated with Wingify Software (VWO).