Optimizely CMS cost vs self-hosted Umbraco

Umbraco's core is free and MIT licensed, so the cost gap comes from hosting, paid add-ons, migration and .NET staffing rather than a core license. This page shows how to model each component with your own numbers.

On this page

Is self-hosted Umbraco cheaper than Optimizely CMS?

The Umbraco core carries no license fee, because the Umbraco-CMS repository is published under the MIT license, so the comparison that matters for a renewal is not the CMS license itself. Your total cost moves with the components around it: the Optimizely license or DXP and SaaS subscription you would stop paying, the hosting you would take on or buy, the one-time migration, the paid add-ons you still need, and the .NET developers who will maintain the site. Start by listing each line on the current invoice and marking which ones disappear, which ones move to your own cloud account, and which ones you still need after the switch.

Umbraco runs on .NET 10.0 or higher, and the current requirements documentation lists SQLite and SQL Server as supported databases, so your hosting bill and your staffing needs depend on that runtime and database choice. Plan around the upgrade calendar as well. Umbraco 17 is the long-term support release published on November 27, 2025, with end of life on November 27, 2028. Umbraco 13, the previous LTS release from December 14, 2023, reaches end of life on December 14, 2026, so a site started on it now will need an upgrade project within the next year or so. Ask your partner to price that upgrade as a recurring line item, not a surprise.

Two paid add-ons can change the math. Umbraco Engage and Umbraco Forms are not free on a public domain: Engage requires a valid license covering one production domain and up to two development or testing domains, and Forms requires a license on a public domain, sold per domain and per installation. Confirm with Umbraco which domains you need, whether subdomains are covered, and whether a managed option such as Umbraco Cloud changes the bill. Ask for a written quote that lists hosting, licenses, migration, upgrades and developer time separately, so you can compare it line by line with your Optimizely renewal.

Which cost components change when you move from Optimizely to Umbraco

This table sets each Optimizely cost component beside its Umbraco counterpart and marks whether it is one-time or recurring. Read it as a checklist for building a like-for-like quote, since most line items shift from a vendor subscription to internal, partner or hosting spend rather than disappearing. The main takeaway is that Umbraco's core software is free under the MIT license, so the comparison turns on hosting, paid add-ons, migration and the .NET skills needed to run the site.

Cost componentOptimizely (commercial side)Umbraco (self-hosted side)One-time or recurring
Software license or subscriptionLicensed CMS or SaaS subscription, priced under your Optimizely agreement; confirm terms, renewal dates and any usage limits in writingUmbraco CMS is free and open source under the MIT license; no core license fee appliesOptimizely: recurring. Umbraco core: none
DXP or SaaS hostingHosting bundled in the DXP or SaaS subscription, including environments and operations the vendor runsHosting is your choice: your cloud account, data center or a managed Umbraco Cloud plan on Microsoft AzureRecurring in both cases
Self-hosted infrastructureUsually limited to integration and connected services, since the vendor operates the platformCompute, database (SQLite or SQL Server), storage, CDN, backups and monitoring you provision and pay for directlyRecurring; scales with traffic and environments
Umbraco add-on licensesMarketing and personalization features are often part of the wider Optimizely product set; confirm which features your agreement includesUmbraco Engage and Umbraco Forms are paid add-ons, licensed per domain with development and test domains included; Forms runs unrestricted locallyRecurring if you use the add-ons; confirm current terms
MigrationExport and extraction effort to leave the platform, including content, media, permissions and visitor groups that may need manual rebuildingMapping content types to document types and blocks, moving media, rebuilding personalization and redirects, usually by a partner or internal teamOne-time
Implementation and integrationConfiguration and custom development under your existing vendor or partner arrangementsBuilding the Umbraco site, integrations and any headless delivery through the Content Delivery API, sourced from in-house staff or an implementation partnerOne-time, with later change work recurring
SupportVendor support and partner support included in or added to your commercial contractCommunity resources are free; paid support comes from a partner or retainer you contract separatelyRecurring if you buy a retainer
Upgrades between LTS releasesUpgrades handled through the vendor release cycle and your contract termsPlan moves between LTS releases yourself, for example Umbraco 13 reaches end of life on December 14, 2026 and Umbraco 17 is the LTS release from November 27, 2025 (Umbraco end-of-service policy)Recurring, with a larger effort at each major move
Internal .NET skillsTeam skills needed for the Optimizely stack and its customizationStaff or contractors who can maintain a .NET 10 or later application, its database and its deployment pipelineRecurring salary or contractor cost; the largest long-term driver

What moves the total cost in your model

The license line is only one input. Site count, traffic, content volume, hosting route, in-house .NET skills and upgrade cadence decide most of the difference between Optimizely and a self-hosted Umbraco estate. Model each driver separately so a quote can be checked against your own numbers.

Number of sites and domains

Umbraco CMS is MIT licensed, but the paid add-ons are licensed per domain. Umbraco Engage needs a valid license covering one production domain and up to two development or testing domains, and Umbraco Forms is sold per domain, also covering subdomains, with one license per installation. Count every public domain and subdomain that will run Engage or Forms, because each one adds a license line. Ask the vendor how subdomains are counted before you finalize the model.

Traffic and availability needs

Hosting cost scales with traffic peaks, redundancy and how fast you must recover from failure. On a self-hosted estate you pay for servers, load balancing, a CDN, monitoring and an on-call rota. Umbraco Cloud bundles automatic backups, a global CDN and HTTPS on Microsoft Azure. Ask your team to state the expected peak load and recovery target in writing, then price each option against that same target.

Content volume and asset storage

Large media libraries grow storage, backup and CDN bills over time, and they also lengthen migrations. Count content items, document types, media files and their total size, and how many languages each page needs. Decide whether assets stay in the Umbraco media store or move to external object storage, since that choice changes both the one-time migration effort and the recurring storage line.

Self-hosted or Umbraco Cloud

This choice moves cost between a recurring Azure subscription and your own infrastructure staff. Umbraco Cloud provides Development, Staging and Live environments and Umbraco Deploy for syncing content and structure. A self-hosted install needs equivalent environments built, a deployment pipeline, backups and patching. Confirm which database you will use, since Umbraco supports SQLite and SQL Server, and price the database licensing and administration that follows from that choice.

In-house .NET skills

Umbraco is a .NET application, so the cost of ownership depends heavily on whether your team already builds and supports C# and ASP.NET Core. Current documentation requires .NET 10.0 or higher. If the team is strong in PHP or JavaScript, budget for hiring, training or a partner for the first build and for ongoing maintenance. Ask any implementation partner to name the developers and their .NET experience in the written scope.

Planned LTS upgrade cadence

Upgrade cost is the recurring cost most often missed in a model. Umbraco 13 reaches end of life on December 14, 2026, and Umbraco 17 is the LTS release published on November 27, 2025. Decide now whether you will take each LTS release or wait for the extended period, because each path has a different test and deployment effort. Model one upgrade per LTS cycle, including regression testing and add-on license checks, and ask who owns that work after the initial build.

How to build the comparison with your own numbers

This sequence turns the Optimizely comparison into a model built from your contract, your domains and written quotes, so the three to five year view reflects your estate rather than list prices. Each step produces a figure or document that feeds the next.

  1. Inventory your current Optimizely licenses and terms

    Pull the Optimizely contract, order forms and any DXP or SaaS subscription schedules, and record the license metric, the number of environments, add-on products, support tier, renewal date and notice period. Ask your account manager to confirm in writing anything the documents leave unclear, such as overage rules or what happens to hosting at renewal. Finance and procurement own this step. It is done when every recurring line has a source document and a renewal date next to it.

  2. List every domain and environment

    Build a table of every public site, subdomain, language variant, preview or staging environment, and internal tool that touches the CMS, including the ones your team treats as temporary. For each item, note the domain license implications if you plan to use paid Umbraco add-ons, since Umbraco Forms and Umbraco Engage are licensed per domain. The web team and the platform owner do this together. It is done when the list reconciles with your DNS records and your deployment pipelines.

  3. Price the target hosting from written quotes

    Request written quotes for the hosting you plan to use, whether that is your own cloud accounts, a managed .NET host, or Umbraco Cloud, which the Umbraco Cloud documentation describes as a managed service on Microsoft Azure with backups, a CDN and Development, Staging and Live environments. Ask each provider to list what is included, what is metered and what is extra, and to state the term. Compare quotes against the same environment list from step two. It is done when each option has a quote that covers identical scope.

  4. Quote add-ons and the partner work

    Separately request quotes for any Umbraco add-on you need, checking the current licensing pages for Umbraco Engage and Umbraco Forms, and for partner or agency work to build, migrate and support the site. Ask for the hours or fixed-scope deliverables behind each figure, the assumptions about content volume and integrations, and what is excluded. Treat any quote that does not state scope as incomplete. It is done when every add-on and service line has a written scope and a named source.

  5. Estimate migration and rebuild scope

    Count content types, page and block types, media volume, languages, redirects, forms and visitor-group personalization that must be rebuilt rather than copied. Use your own export results and the API extraction approach described in the migration hub to size the work. Ask each candidate partner to price this inventory in its written scope. It is done when migration work is split into one-time items with a clear owner for each.

  6. Set an upgrade schedule against the Umbraco dates

    Map your upgrade plan to Umbraco's published lifecycle. Umbraco 13 is the previous LTS release from December 14, 2023, with end of life on December 14, 2026, XLTS ending December 14, 2028 and Umbraco Cloud service ending December 14, 2029. Umbraco 17 is the LTS release published on November 27, 2025, with end of life on November 27, 2028, XLTS ending November 27, 2030 and Umbraco Cloud service ending November 27, 2031. Confirm current .NET requirements in the Umbraco requirements documentation, and add the upgrade effort to the recurring column. It is done when each planned upgrade has a date, an owner and a budget line.

  7. Model three to five years with one-time and recurring items

    Build a spreadsheet with one row per cost and one column per year across a three to five year horizon. Mark migration, build and initial licensing as one-time, and hosting, add-on renewals, support, upgrades and the .NET developers who maintain the site as recurring. Run the model against each hosting and support option, then ask a second reviewer to test the assumptions. It is done when the totals can be traced line by line to a quote, a contract clause or a documented assumption, and the open questions are listed for the vendors.

How Umbraco's LTS dates shape the upgrade budget

Umbraco's release calendar sets the rhythm of a recurring cost that many Optimizely comparisons leave out. Umbraco 13 is the previous LTS release, published on December 14, 2023, and it reaches end of life on December 14, 2026. Umbraco 17 is the current LTS release, published on November 27, 2025, with end of life on November 27, 2028. Extended Long-Term Support (XLTS) for Umbraco 13 ends on December 14, 2028, and for Umbraco 17 on November 27, 2030. If your site is on Umbraco 13 today, the first budget question is when you will move to a supported major version, and that move should be scheduled well before the end-of-life date.

The end-of-service policy ties hosting to these dates. On Umbraco Cloud, hosting continues for the duration of XLTS, a phase of up to 24 months, and projects can then run on dedicated resources for 12 months after XLTS ends. For Umbraco 13, Cloud service ends on December 14, 2029, and for Umbraco 17 it ends on November 27, 2031. Confirm these dates against the current policy page before you plan, because the policy is the document that governs your hosting, not a summary. If you self-host, the Cloud dates do not apply to you directly, but your own support plan for the .NET runtime and database still does.

Upgrade cost is recurring because each major version brings a project of its own. Its size depends on the number of custom document types, compositions, block types, Razor views, property editors, third-party packages such as Umbraco Engage or Umbraco Forms, and integrations that call the Content Delivery API. The current requirement of .NET 10.0 or higher, shown in the Umbraco requirements documentation, can add a runtime upgrade to the same project. Ask any implementation partner to price the upgrade as a separate line item from the initial build, with test coverage, content regression checks and a rollback plan named in the written scope.

Costs teams forget on each side

Licence fees are only part of the bill when comparing Optimizely CMS with a self-hosted Umbraco site. The costs that surprise teams sit on both sides: contract terms and environment charges on the Optimizely side, and add-on licensing, supporting tooling and authentication work on the Umbraco side.

Contract renewals and term changes

Optimizely contracts usually renew on a term, and the renewal price can differ from the original signing price. Ask whether the renewal includes uplift, what happens to add-ons bundled into the contract, and what notice period applies. Compare that recurring figure with the one-time cost of moving to Umbraco, which is paid to your developers and partners rather than to a licence vendor.

DXP environment charges

On Optimizely DXP, extra environments for development, testing and staging are a separate line in the commercial agreement. Teams that add environments during a redesign often find the bill rises for the duration of the project. Ask the vendor to itemise environments, storage and bandwidth in the quote, and confirm which of them recur after a migration ends.

Integration partner fees

Many Optimizely estates depend on agency or partner retainers for support, custom modules and releases. Those fees sit outside the licence and are often the largest recurring cost. For a self-hosted Umbraco site, the equivalent is a support retainer you choose to buy. Ask for a written list of which partner services you currently pay for, and which of them your in-house team could cover.

Umbraco add-on licences per domain

Umbraco itself is MIT licensed, but Umbraco Forms and Umbraco Engage need a valid licence on a public domain. Forms licences are sold per domain and cover subdomains, so a site with many subdomains may need careful counting. Confirm the domain count with your vendor before purchase, and check whether each installation needs its own licence.

Backup, monitoring and staging tooling

Umbraco Cloud includes automatic backups and Development, Staging and Live environments. On self-hosted Umbraco you pay for these yourself: database backup tooling, uptime and error monitoring, and a staging environment that mirrors production. Price each as a separate line, and confirm restore tests are scheduled, because an untested backup is not a recovery plan.

CDN, security testing and authentication work

A self-hosted site needs a CDN, HTTPS certificates and a regular security test, all of which Umbraco Cloud provides as part of the service. The Content Delivery API is opt-in, and protected content needs member authentication configured, so developer time for API setup and access rules is a real project cost. Ask your developers to estimate that work separately from general site build time.

What a migration adds to the business case

Migration is a one-time cost that sits on top of the recurring figures in the comparison above, and it is the part of the business case most often underestimated. The work falls into four groups: extracting content and media from Optimizely, mapping page and block types to Umbraco document types and blocks, rebuilding visitor-group personalization, and setting up redirects so existing URLs keep ranking and resolving. Ask any partner or internal team to price each group separately, because they scale with different things. Extraction depends on how much content and media you hold and how clean it is. Type mapping depends on how many page and block types your Optimizely solution defines. Redirects depend on how many live URLs you must preserve.

Personalization and analytics are the items most likely to need rebuilding rather than moving. Optimizely visitor groups do not carry over as configuration, so each audience rule, targeted block and test has to be recreated in Umbraco or in the tool that replaces it. If the team wants personalized experiences, analytics, A/B testing or targeted campaigns inside Umbraco, Umbraco Engage is a separate marketing add-on with its own license, and it must be costed as a recurring line item. Confirm early whether the business needs that functionality at all, because an analytics tool outside the CMS may be a cheaper and simpler route. Also confirm which tracking tags, consent settings and reporting dashboards depend on the current Optimizely setup.

For the detailed steps, the sibling pages on exporting content from Optimizely CMS and on migrating from Optimizely CMS to Umbraco explain what export packages contain, why permissions do not survive import, and why API extraction is usually needed alongside them. Use those pages to build a written scope with a named owner for each of the four work groups, a list of the content types and visitor groups in use, and an inventory of URLs to redirect. A migration that is scoped this way gives you a figure you can compare with the license and hosting savings, and it shows which costs are fixed and which grow with the size of the site.

Questions buyers ask about Optimizely and Umbraco costs

Does Umbraco CMS have a license fee?

No. Umbraco describes itself as a free and open source .NET content management system, and the Umbraco-CMS repository is published under the MIT license, so the core software carries no license fee. The costs you do pay are the ones around it: hosting, developers, migration work and any paid add-ons. Confirm the current license terms in the repository before you rely on them in a procurement file, and check the license of every third-party package your team adds.

Which Umbraco add-ons are paid, and when do they apply?

Umbraco Engage and Umbraco Forms are the add-ons with license terms that matter here. Forms runs unrestricted locally but needs a valid license on a public domain, and licenses are sold per domain, cover subdomains and include two development or testing domains, with one license per installation. Engage, the marketing add-on for personalization, analytics, A/B testing and campaigns, needs a license covering one production domain and up to two development or testing domains on a public site. Ask Umbraco for current prices and check whether your features need either add-on at all.

Can our own team run a self-hosted Umbraco site without outside help?

Often yes, if you already have .NET developers and a sysadmin who can operate SQL Server or SQLite, backups, TLS and patching. Current Umbraco documentation requires .NET 10.0 or higher and supports SQLite or SQL Server, so the stack is standard for a .NET shop. The gaps are usually security hardening, upgrade planning, backup restore testing and migration of Optimizely content. Estimate the staff hours from your own ticket history and ask a partner for a written scope if any of those gaps are open.

How long does a migration from Optimizely take, and what drives it?

The duration depends on content volume, the number of page and block types, the amount of personalization to rebuild, media volume and URL redirects. Visitor-group personalization is not a simple export, so it often takes the most effort. Before you accept any timeline, ask for an inventory of content types, custom code, integrations and redirects, and for the export method, whether a package file or API extraction. Timelines should come from a written, fixed scope rather than a generic estimate.

How do we handle Umbraco LTS upgrades without surprises?

Plan around the published lifecycle. Umbraco 17 is an LTS release published on November 27, 2025, with end of life on November 27, 2028, end of Extended Long-Term Support on November 27, 2030 and end of service on Umbraco Cloud on November 27, 2031. Umbraco 13 reaches end of life on December 14, 2026. Budget for an upgrade project each LTS cycle, covering .NET version changes, package compatibility and regression testing. Confirm the policy with Umbraco before you commit, since dates can change.

What should we ask for in a fixed-scope quote?

Ask for a written scope that names the source systems, content and media volumes, page and block types to map, integrations, personalization rules, redirects, environments and acceptance criteria. Require separate line items for hosting setup, backup and restore testing, security hardening, migration, training, handover documentation and post-launch support. State which items are one-time and which recur, such as hosting, domain licenses and retainers. Ask how changes are priced and who owns the code, content and infrastructure after handover.

Is Umbraco Cloud a cheaper option than self-hosting?

Not necessarily. Umbraco Cloud is a managed service on Microsoft Azure with automatic backups, a global CDN, HTTPS, Development, Staging and Live environments, and Umbraco Deploy. It removes infrastructure work but carries its own subscription. Self-hosting shifts that cost to your own cloud accounts and staff time. Compare the two using the same workload, including environments, backup retention, CDN, support hours and the .NET developers you need, and ask Umbraco for current pricing.

When self-hosting Umbraco makes sense and when it does not

Self-hosting Umbraco makes sense when your organization already has in-house .NET skills, must control where the hosting runs, and manages a stable number of sites. Umbraco CMS is published under the MIT license, so the core software carries no per-site or per-seat fee. The cost you take on is the people and infrastructure to run it: a team that can patch the application, manage the SQL Server or SQLite database, handle the .NET runtime and keep backups tested. If that team already exists and maintains other .NET systems, the marginal cost of one more site is often small. If it does not exist, hiring or contracting for it becomes the largest recurring line in the model.

Staying with Optimizely, or moving to Umbraco Cloud, can remain the better choice in several cases. Umbraco Cloud is a managed service on Microsoft Azure with backups, a CDN, Development, Staging and Live environments and Umbraco Deploy, which shifts hosting and environment work to the vendor for a subscription. A team without .NET staff may find that cheaper than recruiting. Feature gaps are the other risk. Paid add-ons such as Umbraco Engage and Umbraco Forms have their own license terms, and some Optimizely capabilities you rely on may have no direct equivalent. Before you commit, list every feature your current estate uses, including personalization, workflow, multilingual handling and editor tooling, and confirm each one in your own environment with a proof of concept. Do not assume parity from marketing pages.

Treat the decision as a check on several points. Ask who will own upgrades, since Umbraco 13 reaches end of life on December 14, 2026 and Umbraco 17 is the current LTS release published on November 27, 2025, so your upgrade path should be planned against those dates. Ask whether your hosting requirements, such as data residency or private network access, truly rule out managed options. Ask how many sites you expect to run in five years, because each additional domain adds add-on licensing and environment management. A written scope from a partner or internal team, covering these points, will show whether self-hosting is cheaper or merely different.

How DeployOpen scopes a fixed-price Umbraco implementation

DeployOpen plans, implements, customizes, integrates, hardens, backs up, upgrades and documents self-hosted open-source platforms inside your own cloud accounts, data centers or air-gapped networks. For an Umbraco move, that means turning a cost comparison into a written scope that names the licenses, hosting, migration and maintenance work you will carry.

How we scope

  • We confirm which Optimizely products, add-ons and hosting terms you pay for today before estimating anything.
  • We agree on the Umbraco version, hosting target and database, such as SQLite or SQL Server, in writing.
  • We define which Umbraco add-ons are in scope and which Engage or Forms licenses you would need to buy.

How we build

  • We set up the .NET hosting environment in your infrastructure, with development, staging and production separated.
  • We rebuild content types, blocks and visitor-group personalization as Umbraco document types and configured features.
  • We test the Content Delivery API, redirects and media migration against the signed-off scope before cutover.

How we hand over

  • We deliver runbooks for deployments, backups, restores and Umbraco version upgrades within your environment.
  • We document the total cost components, including recurring hosting, licenses and developer time, for your budget owners.
  • We walk your .NET developers and editors through the site and the operating procedures before go-live.

How we support

  • Ongoing support, upgrades and continuous testing are available as a retainer after handover.
  • Upgrade planning follows the published Umbraco end-of-life dates, which we confirm against your chosen release.
  • We recommend confirming current Umbraco support terms and license terms directly with Umbraco before signing.

Sources and further reading

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.