Skip to main content

We are currently experiencing an issue that is preventing customers from submitting support tickets. Please contact us at (866) 819-4486 if you need immediate assistance.

Optimizely Knowledge Base

Make the transition to Optimizely X

  • Optimizely X Web Experimentation
  • Optimizely X Web Personalization
  • Optimizely X Web Recommendations
  • Optimizely Classic

  • Transition your account from Optimizely Classic to Optimizely X
  • Understand which features are migrated automatically and which aren't

Once you have access to Optimizely X, you can easily test it out by enabling a setting in your snippet. Eventually, you'll transition your account from Optimizely Classic to Optimizely X Web Experimentation. What happens to your experiments, audiences, and goals? How do you move from one tech stack to the other?

Below, we walk you through different steps involved in making the transition to Optimizely X.

Learn about the differences between Optimizely X and Optimizely Classic. Or, check out this article to get started.

Migration by feature

Optimizely X delivers changes that incorporate the entire tech stack. Read on to learn which features are automatically migrated to Optimizely X and which aren't.


Click to enable your Optimizely X snippet in Settings.

The new snippet includes project-level settings for Optimizely X, Optimizely Classic, or both. Use both when you're trying out Optimizely X but running experiments on Optimizely Classic at the same time. Once you're ready to , switch to the Optimizely X snippet to reduce snippet size and improve performance.

You will need to have Administrator privileges to enable Optimizely X in the snippet settings.

Experiments and Results

Experiments in Optimizely Classic and Optimizely X live on their own platforms. Optimizely X experiments don't show up in classic Optimizely Testing or vice versa.

After migrating to Optimizely X, you'll still be able to reference your Optimizely Classic experiments and results.

URL Targeting

In Optimizely X, you'll define URL targeting on pages. A page is reusable across different campaigns, and isn't tied to any single experiment until you add it to the campaign.

When setting up a page, select an activation mode for each page from a few different options:

To set up two experiments with the same URL targeting (for example, across all product detail pages) but different activation modes, you'll need to create two separate pages.


In Optimizely X, goals are called events. They're now more powerful and can be used across different campaigns.

Optimizely Classic goals don't show up in Optimizely X.

For custom events coded for your site, the POST request is still sent. You don't need to make any code changes. Simply add the custom event in Optimizely X:

  1. Select the Implementation dashboard, then click New Event.

  2. Then select Custom event

The Optimizely Customer Success team can help you migrate your custom events. If you'd like all your events migrated programmatically, please submit a support ticket.


Audiences are shared between classic Optimizely Classic and Optimizely X. All audiences created in Optimizely Classic will show up in Optimizely X, and vice versa.

However, classic Optimizely Classic audiences that include browser type and custom tags don't currently work in Optimizely X. 

Optimizely X audiences that include visitor behaviors (a feature available only through Optimizely X Web Personalization) don't currently work in classic Optimizely Classic.


Optimizely X uses a new version (v2) of the REST API. If you use the v1 REST API, use our developer documentation to update to v2.

There's also a new version of the JavaScript API. Most JS API methods from Optimizely Classic are backwards-compatible. See our developer documentation for more details.


Our most popular analytics integrations work in both Optimizely Classic and Optimizely X. Audience and data management platform (DMP) integrations also work in both.

We're actively building more integrations. Check our list of current integrations.

Migrate an account

You can make the transition to Optimizely X with a phased rollout approach or a hard switchover. Read about each below.

Phased rollout

A phased rollout allows you to migrate slowly to Optimizely X Web Experimentation. Use this approach to finish running Optimizely Classic experiments and ease onto new tech stack.

Use the bundled snippet to run Optimizely X and Optimizely Classic at the same time. Note that the bundled snippet is ~50kB larger to incorporate both configurations, which may affect speed.

Build new tests with Optimizely X and pause Optimizely Classic experiments once they run to completion. Once all experiments in Optimizely Classic are complete, switch to the standalone snippet for faster performance.

Hard switchover

If you'd like to avoid running the larger bundled snippet on your production site, consider using a separate project or staging environment to evaluate Optimizely X. Test any templates you'd like to migrate to Optimizely X in your environment. 

Once you're comfortable with Optimizely X, pause experiments in Optimizely Classic and enable the Optimizely X snippet. You won't need to make any code changes.

Migrate an experiment

You can migrate Optimizely Classic experiments into Optimizely X. 

In Optimizely X, create a new campaign with the following specific steps.

  1. Add a page by clicking Create New Page. Use the URL targeting from the Optimizely Classic experiment.

  2. Add the audience(s) from your Optimizely Classic experiment.

  3. Add the revenue goal or a pageview goal as a metric. This step is required to complete your campaign. Don't worry, you can easily change this later.

  4. Set your traffic allocation. Then, click Create campaign.

  5. Select a variation to edit it.

    Copy the variation code from your Optimizely Classic experiment and paste it into Variation Code Editor.

    Adjust the new variation code based on timing in Optimizely X.

  6. In the Manage Campaign sidebar, click Metrics. Add the events -- which are called goals in Optimizely Classic -- you'll track. Define any custom events.


  7. QA your experiment. Use the new Preview tool to view your changes.

    Then, create a QA audience using a test cookie. Publish the test for that audience only. Verify that the timing of custom code works as expect, and events are firing as expected.

    If you have an experiment running in Optimizely Classic and need to disable it to QA your Optimizely X experiment, use the following query parameter: ?optimizely_disable=classic

When your campaign looks and works the way you like, publish your campaign. Congratulations! You've successfully migrated an experiment from Optimizely Classic to Optimizely X Web Experimentation, and published it live to the world.