Matt Pallatt
Jun 2, 2026
  26
(0 votes)

Pushing Content Between Optimizely DXP Environments

We've been working with a client who has been on Optimizely 11 for a long time - self-hosted, on their own server infrastructure, with a content workflow that for various reasons sees their editorial team creating and getting internal sign off in staging, then manually recreating it on production. Because the editors don't have the admin access required to export and import content packages, every approved piece of content has to be rebuilt field by field in the production environment. It's time-consuming, it's error-prone, and it's the kind of friction that quietly chips away at a team's confidence in their CMS.

Recently we convinced them to upgrade to Optimizely 12 (13 is a bit too shiny new and a reach too far for them for the time being) and move into the DXP, and we've had a genuinely “interesting” time migrating them and ensuring that their hundreds of pieces of functionality, page types and blocks survived the transition intact. I’d been most excited about showing the performance gains from moving off the client's server farm and into the DXP - they are significant with substantial Lighthouse score improvements to back up the perception.

The client was seemingly pleased.

And then they asked: "Does moving to the DXP mean we can push content between environments?"

It was a requirement that nobody had mentioned before, and yet something that their editorial team desperately wanted.

Let’s face it, it's a completely reasonable question. The DXP is a managed cloud platform - surely it should handle that kind of thing? As we know, the answer is no, that's not what the DXP is built for. Content promotion between environments isn't part of the offering. Watching that land wasn't the highlight of my day.

So, I built something.

Using the Content Delivery API and Content Management API, I developed a gadget that sits inside the CMS and does exactly what the client needed.

You choose a page, pick the target environment, decide what publication state you want it to arrive in, choose whether to include child pages, and decide whether to overwrite anything that already exists at the destination. Hit Transfer, and within seconds the content you approved in Preproduction is live in Production. It does pages, images and blocks, and respects local and global assets.

It's a straightforward tool, but it solves a real problem - and for a team that has been manually duplicating content across environments for years, it should make a meaningful difference to their day. If you're on the DXP and this workflow sounds familiar, it's something worth exploring.

And it also potentially gets around circumstances where an export is just too huge to be reimported – one of my own bug bears – although it’s only been tested on trees of 20 pages or so, there’s no reason it shouldn’t be able to handle hundreds or thousands of pages.

Have a look over at https://nuget.optimizely.com/packages/mp.dxpcontenttransfer/

Jun 02, 2026

Comments

Please login to comment.
Latest blogs
Launching “Learning by Doing – Optimizely OPAL Series” | Episode 01 is Live!

  Introduction With Optimizely OPAL, we’re seeing a shift from "content management" to "intelligent content orchestration". But here’s the reality ...

Ratish | Jun 1, 2026 |

Finding Thomas Part 2 - The Recognition Engine

Remember Thomas? In digital landscape, Thomas is the returning visitor who reads everything, opens every email, converts on nothing. In standard...

Ritu Madan | Jun 1, 2026

Unleashing Cloudflare's Power: Setting up Orange-to-Orange (O2O) with Optimizely DXP

If you're working with Optimizely DXP, you're probably already aware that it uses Cloudflare under the hood to deliver performance and security to...

David Drouin-Prince | May 30, 2026 |