Umbraco powers critical content and commerce for many companies. Upgrades feel invisible until packages, security updates, or the editor experience force your hand. This guide explains when to move, where the risks hide, and how to keep changes predictable.
Umbraco releases alternate between short-term and long-term support lines aligned to modern .NET. Packages, hosting, and the backoffice evolve with those lines. Staying far behind increases security risk, breaks extensions, and makes content teams less productive. It also blocks or complicates AI adoption, because cloud AI SDKs track current .NET lines and supported hosting images. The solution is a steady upgrade habit, not a rescue project.
Fix unclear answers first. It reduces cost and protects the editorial experience.
Confirm the target Umbraco line and runtime, then run a short compatibility exercise focused on packages and backoffice customisations. Pilot with a non-critical site or a subset of editors. Release in stages, watch error rates and backoffice performance, and promote only if healthy.
We focus on current and recent supported lines aligned to modern .NET. Very old versions on .NET Framework carry significant risk and cost.
Umbraco 13 LTS on .NET 8
Best default for long-running sites. You get a stable line with security fixes and broad package support.
Why it matters: aligns with modern .NET, current Azure hosting images, and the healthiest package ecosystem.
Risks if you lag: packages and cloud SDKs move on, leaving you pinning old clients and accepting security trade-offs.
Umbraco 14 and later short-term lines on modern .NET
Great for teams that move fast and want new backoffice capabilities. These lines iterate quickly.
Why it matters: access to the newest editor experience and APIs.
Risks if you linger: shorter support window and the need to plan a clean step into the next LTS.
Umbraco 12 and other short-term lines on .NET 7
Now aging. Packages have largely shifted focus to 13 LTS and newer lines. Some hosting and build images de-emphasise .NET 7.
Business impact: more time spent pinning older packages, more friction integrating with newer extensions and services.
Umbraco 10 LTS on .NET 6
Stable but nearing the end of its practical runway. Many package authors focus on .NET 8 based lines.
Why it matters: security and platform updates are healthier on 13 LTS.
Practical path: plan a calm move to 13 LTS so you do not pay for two big jumps later.
Umbraco 9 on .NET 5
Out of step with current hosting, security policies, and package targets.
Why it matters: modern Azure images, security guidance, and dependencies have moved on, increasing risk and integration effort.
Practical path: migrate to a supported LTS on modern .NET, typically 13 LTS, with a focus on package replacements.
Umbraco 8 and older on .NET Framework
High risk and high cost to maintain. Backoffice customisations rely on legacy approaches, and many packages and deployment tools no longer support these lines.
Why it matters: limited security posture, shrinking ecosystem, and tougher audits.
Practical path: treat as a migration project to modern Umbraco on .NET 8. Budget time for package swaps, content model changes, search reindexing, and hosting updates.
Backoffice change to be aware of
Later Umbraco lines introduce a modernised backoffice stack. Custom backoffice extensions written for legacy approaches often need a rewrite.
Why it matters: this is where most surprise costs occur. Identify these customisations early and plan the rewrite in the pilot.
Teams often discover that “we can’t plug in AI” isn’t a feature problem—it’s a runtime and SDK alignment problem. Here’s a practical view of how your Umbraco version + .NET runtime affects using services like Azure OpenAI / OpenAI, AWS Bedrock/SageMaker, and Google Vertex AI.
If you’re on a modern Umbraco + modern .NET, you’re green:
If you’re on aging, still-supported lines, you’re amber:
If you’re on out-of-cycle or legacy, you’re red:
What “AI-ready” means here
Leader’s rule of thumb
Often yes. Plan from the current LTS on modern .NET and prove compatibility with a focused pilot.
Usually yes, in a good way. Faster backoffice, fewer glitches, and cleaner workflows.
Custom backoffice extensions and older packages. Identify them first and budget for replacements or rewrites.
Ask for a one-page inventory showing your Umbraco version, runtime, critical packages, and known customizations. Approve a short compatibility exercise, then pilot an upgrade on a low-risk site. Keep the habit quarterly.
We plan and execute Umbraco upgrades with calm, measurable steps. If you want an outside view or a delivery team, start a conversation.