Optimizely CMS vs Umbraco

Optimizely CMS suits teams that want a vendor-run .NET DXP with add-ons included. Umbraco, MIT licensed with paid add-ons, suits .NET teams that want to host and control the CMS themselves.

On this page

Optimizely CMS or Umbraco: which fits your .NET estate

Optimizely CMS fits teams that want a vendor to run the platform and the marketing tooling around it, while Umbraco fits teams that want to host, upgrade and control the CMS themselves. The decision usually arrives with a renewal, a hosting change or a licensing review, and it turns on who should own the platform for the next several years. Optimizely sells its CMS as a managed SaaS offering and as a DXP, so a team that wants one contract covering content, personalization, experimentation and support will find that model straightforward. Umbraco is a free and open source .NET content management system published under the MIT license, so its core carries no license fee. Teams that need to keep data in a specific region, run on their own Azure, AWS or on-premises infrastructure, or pick their own upgrade window will generally find Umbraco the closer fit.

The choice also depends on what you would pay for beyond the core. Umbraco's paid add-ons, such as Umbraco Engage for personalized experiences and A/B testing and Umbraco Forms, are licensed per domain, so a public site with several brands or development domains should be counted before you compare totals. Check whether Umbraco Cloud's managed hosting, which includes Development, Staging and Live environments and backups, suits your change process better than self-hosting. Next, confirm the upgrade timing: the Umbraco end-of-service policy sets dates for each long-term support release, and you should map those against your own release calendar. Finally, assess the .NET skills you already have. A team with strong C# and hosting experience can run Umbraco well; a team that relies on the vendor's professional services for every change should price that dependency honestly.

Which platform fits which scenario

This table matches common Optimizely CMS replacement scenarios to the platform that usually fits best and the reason. Read each row against your own constraints, since the answer often depends on hosting rules, team skills and which add-ons you rely on.

ScenarioBetter fitReason
Data residency rule requires self-hosting in your own data center or tenantUmbraco, self-hostedUmbraco CMS is MIT licensed and runs on infrastructure you choose, while Optimizely DXP and SaaS place hosting under the vendor. Confirm which database (SQLite or SQL Server) your residency policy accepts.
Team with strong .NET skills and existing C# developersUmbraco, self-hostedUmbraco is a .NET CMS, so existing developers, build pipelines and hosting skills carry over. Optimizely CMS 12 and 13 also use .NET, so the move is mainly about the CMS platform, not the language.
Heavy personalization and marketing add-onsOptimizely, or Umbraco with EngageOptimizely bundles personalization and experimentation within its suite. Umbraco Engage covers personalization, analytics and A/B testing, but it needs a license covering each public production domain plus up to two development or testing domains. Count domains before costing it.
Umbraco Forms on several sites or subdomainsUmbraco, with per-domain licensing plannedForms runs unrestricted locally but needs a valid license on a public domain. Licenses are sold per domain, include subdomains and allow one license per installation, so map each public hostname before you buy.
Need for a headless JSON API for apps or front endsUmbraco Content Delivery API, or Optimizely headless setupUmbraco's Content Delivery API returns JSON but is opt-in and must be enabled in configuration. Preview of unpublished content requires an API key, and protected content needs member authentication. Test these settings before launch.
Team wants a managed host on Microsoft Azure with staging and backups includedUmbraco Cloud, or Optimizely DXPUmbraco Cloud is a managed Azure service with Development, Staging and Live environments, automatic backups and a CDN. Compare its included features with the DXP or SaaS scope in writing, and confirm what Umbraco Cloud's terms cover.
Need to stay on a current long-term release with a predictable support windowUmbraco 17, planned against its support datesUmbraco 17 is an LTS release published November 27, 2025, with end of life on November 27, 2028. Umbraco 13 reaches end of life on December 14, 2026, so plan any move off it before that date.
Organization needs an enterprise support contract with a single vendorOptimizely, or Umbraco with a partner support agreementOptimizely provides vendor support under its own agreement. Umbraco support comes from the open-source project and partners, so ask any partner for the scope, response terms and escalation path in writing.

How content modeling and blocks differ in practice

The core decision is whether your Optimizely page types and block types can move to Umbraco one for one. In most estates the mapping is direct for simple cases: an Optimizely page type with typed properties becomes an Umbraco document type, and a block type with its own properties becomes an Umbraco block element type used inside a Block List, Block Grid or Block Stack editor. Properties such as text, rich text, media pickers, links and simple selection lists have close equivalents on both sides. The rework appears where Optimizely behavior depends on its own conventions, such as content areas that nest blocks inside other blocks, shared or global blocks reused across pages, and content types whose inheritance was used to share fields. Confirm in a workbook, before any build starts, which of your block types are reused, how deeply they nest and which properties depend on code-side behavior. Each of those items is a rework candidate, not a one-to-one move. The headless layer adds a second set of decisions. The Umbraco Content Delivery API is opt-in and must be enabled in configuration before any front end can read content, so a front-end team cannot assume JSON is available out of the box. Preview of unpublished content needs an API key, which means your editors' preview workflow and any staging front end must be designed around that key and its handling. Protected content is served only when member authentication is enabled, so any page that Optimizely currently gates through its own access rules needs a deliberate member model in Umbraco. Check the exact configuration keys and endpoints against the current Umbraco documentation for your target version, rather than copying settings from an older project. Before committing, prototype one representative page family end to end. Pick a page with nested blocks, a reused block, a preview requirement and a protected section, then model it as Umbraco document and element types, expose it through the Content Delivery API, and have an editor work through the full authoring and preview cycle. The prototype will show whether your block nesting survives the editor experience, how much of the front-end data shape changes and what the API key and member setup involve in your environment. Use the findings to size the modeling and front-end work in your quote, and to decide which Optimizely content types need redesign rather than translation.

Where your data lives under each hosting model

Hosting determines who holds your content, who applies platform patches and who restores data after an incident. The four options below differ mainly in those duties, so check each one against your data residency rules, identity model and audit obligations before you choose a path.

Optimizely SaaS

Content, configuration and delivery run on infrastructure that Optimizely operates. You depend on the vendor's region options, sub-processor list and contractual terms for where data sits. Patching of the platform is vendor-managed, so your team's work centers on the site and its content model. Ask for the backup frequency, retention period and restore testing approach in writing, and confirm whether you can take an independent export of content and media. Review single sign-on support, audit logging and the vendor's assurance documents with your compliance lead before signing.

Optimizely DXP

DXP is the hosted environment for Optimizely CMS 12 and 13 applications, so the platform layer sits with the vendor while your application code and add-ons remain your responsibility. Confirm which environments are included, which platform updates are applied for you and which ones you must schedule. Your team still owns the upgrade path for custom code and third-party packages. Ask where backups are stored, how long they are kept and how a restore is requested and tested. Map these answers to your data residency and access control requirements.

Self-hosted Umbraco

Your content, database and media stay on servers or cloud accounts you control, which gives you the widest choice of region and network design. You patch the operating system, the .NET runtime, Umbraco, packages and the database, and you run the monitoring that tells you when something fails. Backups, a content delivery network, HTTPS certificates and separate Development, Staging and Live environments must be built and tested by your team or a partner. Identity federation, audit trails and the evidence for compliance assessments also become your job to produce. Check the current requirements for the .NET version and database engine before you size the hosts.

Umbraco Cloud on Azure

Umbraco Cloud is a managed service that hosts Umbraco sites on Microsoft Azure, and it includes automatic backups, a global CDN, HTTPS and Development, Staging and Live environments synchronized with Umbraco Deploy. Platform patching and backup operations sit with the provider, so your team focuses on the site. Confirm the Azure regions available to you, the processing terms that cover your data and how backups are restored. Note the service end dates in the end-of-service policy, because a hosted version can leave Umbraco Cloud on a fixed schedule even when the CMS itself remains open source.

Licensing: free core, paid add-ons per domain

The Umbraco CMS core is MIT licensed, and the Umbraco-CMS repository is published under that license, so the content management system itself carries no per-seat or per-site license fee. The commercial exposure sits in two add-ons, Umbraco Engage for personalization, analytics, A/B testing and campaigns, and Umbraco Forms. Optimizely's licensing is built around its platform and subscription, so the practical question for your team is which Umbraco features you actually need and whether they are licensed. Map each Optimizely capability you use today to either the MIT core or an add-on before you model any cost.

Engage needs a valid license to run on a public domain. That license covers one production domain plus up to two development or testing domains. Forms runs unrestricted on a local machine, but it needs a license once it serves a public domain. Forms licenses are sold per domain, cover subdomains, include two development or testing domains, and apply to one installation each. Because subdomains count, a marketing site split across www, shop and campaigns hosts may need more than one license. Build a domain inventory covering every public hostname, staging host and test host, and note which ones the Engage or Forms installations will serve.

Confirm the exact terms with Umbraco before you sign anything, and have your legal team review them against your contracts, since the add-on rules can change between releases. Ask Umbraco how it counts subdomains, how it treats a single installation shared by several sites, and what happens when you move a domain or retire one. Also ask whether your hosting provider or partner needs its own arrangement. Those answers determine whether the add-on licenses are a small line item or a recurring cost that scales with your digital estate.

What drives cost on each side

What do Optimizely CMS licensing and DXP or SaaS subscriptions actually pay for?

Optimizely charges recurring fees for the platform itself, and the exact structure depends on whether you run CMS 12 or CMS 13 yourself or use its managed SaaS or DXP offer. Ask the vendor to itemize the license or subscription, the hosting and environments, add-on modules, support tiers and any usage limits. Also confirm what happens to the subscription at renewal, because that is where price changes usually appear. Your own team still pays for developers, infrastructure you manage, and the upgrade work that a managed offer might otherwise cover.

Is Umbraco really free, and what costs remain?

The Umbraco CMS core is published under the MIT license, so there is no per-seat or per-site license fee for the core. Costs remain in three places: optional paid add-ons such as Umbraco Engage and Umbraco Forms, which are licensed per domain, hosting on infrastructure you pay for or on Umbraco Cloud, and the people who build and maintain the site. Before you budget, list which add-ons your current Optimizely features map to, and check the add-on licensing terms for your domain count, including development and test domains.

Which migration costs are one-time and which recur?

Migration is a one-time cost. It covers content extraction, mapping page and block types to Umbraco document types and blocks, moving media, rebuilding personalization and setting up redirects, plus integration and testing. Recurring costs begin after go-live: hosting, add-on renewals, maintenance, security patching and upgrades between releases. Ask any implementation partner to quote these as separate line items with the test cycles included, so you can see what is paid once and what continues each year.

How much does hosting change between the two options?

Hosting moves from a vendor bundle to a choice. Optimizely SaaS or DXP includes hosting in the subscription, while Umbraco can run on Umbraco Cloud, which is a managed Azure service with environments, backups and a CDN, or on infrastructure you control. The cost driver is who operates the stack: environments, backups, TLS, CDN, monitoring and disaster recovery. Ask for the Umbraco Cloud plan details in writing, and for your own infrastructure, list each component so the comparison covers the same scope.

What do Umbraco upgrades cost compared with Optimizely upgrades?

Upgrades are a recurring cost on both sides, but the timing and the work differ. Umbraco publishes LTS releases with defined end-of-life dates, and Umbraco 13 reaches end of life on December 14, 2026, while Umbraco 17 is the LTS release published on November 27, 2025, according to Umbraco's end-of-service policy. Each upgrade needs .NET work, add-on compatibility checks and regression testing. Ask Optimizely to show its upgrade path and included support for your version, and budget your own team time for each Umbraco LTS cycle.

What .NET skills and staffing does each option require?

Both platforms run on .NET, so your existing C# developers carry over, but staffing needs change. Optimizely experience often lives with a partner or specialist agency, while an Umbraco site usually needs in-house or contracted developers who own the codebase, deployments and content model. The ongoing cost is the team that maintains the site. Compare the annual cost of that team, including on-call coverage and the skills needed for security patching, against the vendor and partner fees you pay today.

What should I ask a vendor or partner to itemize in a quote?

Ask for a written quote with separate lines for each cost component. For Optimizely, request license or subscription fees, environment counts, add-on modules, support levels, renewal terms and price change conditions. For Umbraco, request the migration scope, add-on licenses by domain count, hosting or Umbraco Cloud plan, environment setup, testing, training and the upgrade plan for the next two years. Ask whether each figure is one-time or annual. DeployOpen plans and implements these migrations under a fixed written scope, so the quote follows from the agreed deliverables.

What hidden costs do teams often overlook when switching CMS?

Several costs appear only after the decision. Teams often miss content rework for block and personalization models, redirect mapping for SEO, visitor group rebuilds, accessibility and performance testing, editor training, and parallel running during cutover. Security monitoring and backups also move onto your side of the line. Ask each bidder how they handle these items and whether they are in scope or excluded, since excluded work tends to return as change requests later.

What a move from Optimizely CMS to Umbraco involves

The sequence turns an Optimizely estate into an Umbraco site with content, templates, media, personalization and URLs verified against the old site before the cutover. Each step ends with a check the team can sign off.

  1. Inventory content, templates and integrations

    The Optimizely site owner and the lead developer list page types, block types, content areas, visitor groups, forms, search, and every external system the site calls or receives data from. Marketing confirms which sites, languages and campaigns are live and which are retired. The output is a signed inventory that separates what must move from what can be dropped, so the rest of the work has a fixed scope.

  2. Extract content through export and APIs

    Export packages from Optimizely carry content items, content types, files and visitor groups, but they rarely carry everything a new platform needs, and permissions do not survive import. The team plans API extraction for the gaps, typically run by a .NET developer who reads published content and its relationships into a neutral format. The check is a record count per content type that matches the source, with a sample of pages compared field by field.

  3. Map page and block types to Umbraco

    Architects map each Optimizely page type and block type to an Umbraco document type or Block List or Block Grid element, and decide how shared content, localized properties and content areas translate. Editors review the mapping against live pages so that the editing experience they need is preserved. The output is a mapping document approved by the content owner, with open questions logged for decisions that change the model.

  4. Move media and rebuild templates

    Images, documents and other files move to Umbraco's media library, and the team rewrites file references in content so that links point to the new storage. Developers rebuild Razor views and components from the design, usually with the same front-end team that owns the markup. The check is that every template renders each migrated content type in test environments, and that no broken media references remain on a crawl of the staging site.

  5. Rebuild personalization and forms

    Visitor groups do not carry over as configuration, so marketing and developers rebuild each audience rule, targeted block and campaign in the target stack. If the site uses Optimizely analytics, testing or personalization, the team decides whether to use Umbraco Engage or another tool and confirms the license terms for the domains it will run on. Forms are rebuilt and tested with real submissions. The check is a written list of each audience and its test result, approved by marketing.

  6. Set up hosting, environments and deployment

    Operations chooses where Umbraco runs, on Umbraco Cloud or on infrastructure the organization controls, and confirms the database option that the platform requires. The team sets up development, staging and production, backups, TLS, a CDN where needed, and a deployment pipeline so that schema and content move between environments in a repeatable way. The check is a successful deployment from pipeline to staging, with a tested restore from backup.

  7. Redirect URLs and verify SEO

    The team exports the current URL set from Optimizely and from analytics and search console data, then maps each old address to its new one. Redirects, canonical tags, sitemaps, robots rules and structured data are checked against the old site. The check is a redirect map where every indexed URL resolves to a live page or a deliberate removal, reviewed by the SEO owner before cutover.

  8. Run in parallel and cut over

    Editors work in the new system for a trial period while the old site remains live, and the team compares traffic, errors and content completeness between the two. Known gaps are either fixed or accepted in writing by the business owner. Cutover switches DNS or the load balancer and keeps the Optimizely environment read-only until the team confirms the new site is stable. The output is a signed cutover record and a decommissioning date for the old environment.

Questions buyers ask before choosing Umbraco

What does switching from Optimizely CMS to Umbraco cost?

The switch cost is driven by the size and complexity of the site, not by a single rate. The main components are the migration build (content types, blocks, media, redirects and any personalization rebuild), hosting, the .NET developers who build and maintain the site, and testing. Umbraco CMS itself is MIT licensed and free to download, so the recurring costs sit in hosting, developer time and any paid add-ons such as Umbraco Engage or Umbraco Forms. Ask any partner for a quote built from a written scope that lists each of these components separately, with what is one-time and what recurs.

How long does an Optimizely to Umbraco migration take?

Duration depends on how many page and block types need mapping, how much media and content must move, how much visitor-group personalization must be rebuilt, and how many integrations sit behind the site. Content volume and the number of templates usually matter more than the platform itself. Ask for a timeline tied to a written scope and a list of assumptions, and check whether the plan includes a parallel run on staging before DNS cutover.

What does the migration need from our internal team?

Your team needs to own content governance decisions: which content types survive, how editors will work with blocks, which URLs must be redirected, and who signs off on each environment. Engineering needs access to the current Optimizely code, the database or export files, and the hosting accounts. Editors should be available for acceptance testing. Confirm these roles in the scope before work starts, because gaps here are the most common reason migrations slip.

Can our .NET team migrate to Umbraco without outside help?

A team already working in C# and ASP.NET can usually learn Umbraco's document types, composition and Razor views, and can do the migration itself if it has time and clear ownership. The harder parts are reading Optimizely content through its APIs, mapping block structures, and moving personalization logic, which need careful testing. Many teams split the work: internal staff own editorial decisions and frontend templates, while an outside team handles extraction, mapping scripts and hardening. Decide this based on capacity and deadline risk.

Should we choose Umbraco Cloud or self-host Umbraco?

Umbraco Cloud is a fully managed service on Microsoft Azure with automatic backups, a global CDN, HTTPS and Development, Staging and Live environments, and Umbraco Deploy to move content and structure between them. Self-hosting gives you control over infrastructure, network placement and cloud account, and lets you run on any host that supports the .NET version Umbraco requires. Umbraco 17 is the current LTS release, and the end-of-service policy sets different hosting end dates for Umbraco Cloud and for extended support. Choose based on your data residency rules, operations capacity and whether you need Azure-specific services.

How do Umbraco Engage and Forms licenses apply to staging and subdomains?

Umbraco Forms runs without restriction locally, but it needs a valid license on a public domain. Its licenses are sold per domain, also cover subdomains, include two development or testing domains, and apply one license per installation. Umbraco Engage requires a license covering one production domain and up to two development or testing domains. Before you plan staging, list every public hostname, including subdomains and test URLs, and confirm with Umbraco how each one is counted. Check the current licensing pages, since terms are the vendor's to state.

What happens to Optimizely personalization and visitor data?

Optimizely visitor groups, experiments and any analytics history do not transfer automatically into Umbraco. Visitor-group rules usually need to be rebuilt as Umbraco logic or as Umbraco Engage segments, and historical analytics stay in the source system unless you export them. Decide early whether you need the historical data, where it will be stored, and who can access it. Ask your provider to document which personalization rules are rebuilt, which are dropped, and which data is archived, so marketing and privacy teams can approve the plan.

How DeployOpen helps you evaluate and move to Umbraco

DeployOpen plans, implements, customizes, integrates, hardens and documents self-hosted open-source platforms inside your own cloud accounts, data centers or air-gapped networks. For Optimizely CMS vs Umbraco, we start with a written evaluation of your content model, add-ons and hosting, then move to a fixed-scope build only once the scope is agreed.

How we scope

  • Inventory your Optimizely CMS content types, blocks, visitor groups and integrations before any Umbraco decision.
  • Document which Optimizely licenses, DXP or SaaS terms and add-ons your team depends on today.
  • Agree deliverables, scope and timelines in writing before any work starts, as fixed-scope engagements.
  • Confirm the target hosting model, whether self-hosted or Umbraco Cloud, and which Umbraco version you plan to run.

How we build

  • Map page and block types to Umbraco document types and blocks, and test editor workflows with your content team.
  • Configure the Content Delivery API only where headless delivery is needed, with preview and member access rules tested.
  • Assess Umbraco Engage and Umbraco Forms licensing per domain against the add-ons your site would use.
  • Harden the .NET hosting, database and deployment pipeline inside your own infrastructure, with backups configured.

How we hand over

  • Deliver architecture notes, content model documentation and runbooks for editors, developers and operations staff.
  • Provide evidence for compliance assessments, such as configuration and access records, for your auditors to review.
  • Run knowledge transfer sessions so your .NET developers can maintain document types, upgrades and releases.
  • Record open items, known gaps against Optimizely features and the decisions behind each one in writing.

How we support

  • Plan upgrades between Umbraco LTS releases and check the end-of-life and end-of-service dates for your version.
  • Offer ongoing support, upgrades and continuous testing as a retainer after handover.
  • Schedule backup restore tests and security testing of the site and its APIs as part of the retainer scope.
  • Confirm the retainer scope and response expectations in writing before the engagement starts.

Talk to our team.

Tell us what you're working on, whether it's a deployment, an audit, a security test or a cyber range. You'll speak with an engineer who can help you scope it.

  • 30-minute call: free, with no obligation.
  • NDA on request: we can sign before you share details.
  • Clear next steps: a scope and plan after the call.