Skip to content

Configure Performance Edge

⏱ 20 minutes advanced

In standard Web Experimentation, the browser loads your page, then the Optimizely snippet evaluates experiments and modifies the DOM. Visitors briefly see the original content before the variation takes effect. This flash of original content — called “flicker” — degrades user experience and can bias experiment results if visitors react to the original before the variation renders.

Performance Edge moves the bucketing decision from the browser to the CDN edge. When a visitor requests your page:

  1. The request hits the Optimizely edge network
  2. The edge worker evaluates experiment targeting and buckets the visitor
  3. The variation changes are applied to the HTML response before it reaches the browser
  4. The browser renders the modified page directly — no JavaScript-based DOM manipulation

The result is zero flicker. Visitors see only their assigned variation, from the very first paint.

LayerRole
Optimizely edge networkRuns the bucketing logic at CDN points of presence worldwide
Edge workerEvaluates targeting rules, assigns variations, modifies HTML
Your origin serverServes the base HTML page as usual
BrowserReceives pre-modified HTML — no snippet-based DOM changes needed

Performance Edge does not replace the Optimizely snippet entirely. The snippet still loads for analytics, event tracking, and experiments that require client-side JavaScript. Edge handles the initial rendering to prevent flicker.

Performance Edge requires server-side configuration by Optimizely. Your account team will:

  1. Enable the Performance Edge feature on your project
  2. Provision edge worker capacity for your traffic volume
  3. Provide the edge endpoint configuration details

Point your site traffic through the Optimizely edge network. The exact setup depends on your hosting architecture:

Option A: CNAME routing

  1. Create a CNAME record pointing your domain to the Optimizely edge endpoint provided by your account team
  2. The edge network proxies requests to your origin server
  3. Experiment modifications are applied on the return path

Option B: Edge-side include

  1. Keep your existing CDN setup
  2. Configure an edge-side include (ESI) that calls the Optimizely edge API for bucketing decisions
  3. Apply modifications before caching the response

Your account team will recommend the best approach for your infrastructure.

Not all experiments need to run at the edge. Configure which experiments use Performance Edge.

  1. In the Optimizely application, open your experiment
  2. Navigate to Settings > Delivery Method
  3. Select Performance Edge as the delivery method
  4. Save the experiment

Experiments using Performance Edge must meet these requirements:

  • Variations use HTML/CSS modifications only (no custom JavaScript in the initial render)
  • URL targeting uses exact match or simple pattern matching
  • Audience conditions use server-evaluable attributes (location, device, query parameters)
  1. Open your site and load a page with an active edge-delivered experiment
  2. Open browser developer tools and check the Network tab
  3. Look for the x-optimizely-edge response header — its presence confirms edge delivery
  4. Inspect the HTML source — variation changes should appear in the initial HTML, not via DOM manipulation
  5. Disable JavaScript in the browser and reload — the variation should still appear
AspectStandard (snippet)Performance Edge
Bucketing locationBrowserCDN edge
FlickerPossible — depends on snippet load timeNone
Time to first variation paintAfter snippet evaluates (100-500ms)At first paint (0ms additional)
Custom JavaScript variationsSupportedNot eligible — use standard delivery
Audience targetingFull capabilityServer-evaluable attributes only
Analytics and trackingVia snippetSnippet still loads for tracking

Most teams use a hybrid setup:

  • Performance Edge for visual changes where flicker matters (hero sections, above-the-fold content, pricing tables)
  • Standard snippet delivery for experiments requiring custom JavaScript, complex audience conditions, or third-party integrations

Both methods can run simultaneously in the same project. Assign each experiment to the appropriate delivery method based on its requirements.

After enabling Performance Edge, monitor these metrics:

  1. Edge hit rate — Percentage of requests processed at the edge vs. passed through. Check in the Optimizely dashboard under Settings > Performance Edge.
  2. Origin response time — Edge adds minimal latency, but verify your origin response time is unchanged.
  3. Experiment activation rate — Compare activation rates before and after enabling edge to confirm consistent bucketing.
IssueCauseFix
Variation not applied at the edgeExperiment not configured for edge deliverySet delivery method to Performance Edge in experiment settings
Edge header missing from responseDNS not routing through edge networkVerify CNAME configuration and DNS propagation
Flicker still visible on some pagesExperiment uses custom JavaScript variationsSwitch to CSS/HTML-only variations or accept snippet delivery for those experiments
Audience targeting not working at edgeAudience uses client-side-only attributesUse server-evaluable attributes (location, device) for edge-delivered experiments
Cached variations served to wrong visitorsCDN caching the modified HTMLConfigure your CDN to vary cache by the Optimizely bucketing cookie
  • Start with above-the-fold experiments. These benefit most from flicker elimination since they are visible immediately on page load.
  • Keep edge variations simple. HTML and CSS changes at the edge are fast and reliable. Reserve complex JavaScript interactions for standard delivery.
  • Test with JavaScript disabled. If the edge-delivered variation appears correctly without JavaScript, your configuration is working.
  • Monitor cache behavior. If you use a CDN in front of your origin, ensure it respects the Optimizely bucketing cookie to prevent serving the wrong variation from cache.