Migrations

How to Upgrade Umbraco: A Step-by-Step Guide

A general-purpose walkthrough for upgrading an Umbraco site to a current version. If you're specifically on Umbraco 13 with the December 2026 deadline in mind, see the dedicated EOL post for that timeline; this one applies whenever you're upgrading.

1. Confirm your current version

Log into the Umbraco backoffice and check the Content section footer or the Help/About area, both show the running version. With codebase access, it's set by the Umbraco.Cms package reference in the project's .csproj file.

2. Pick your target version

Umbraco's Long-Term Support (LTS) releases get 24 months of full support followed by 12 months of security-only fixes, which makes the current LTS the sensible default for most sites: a long runway before you have to think about this again. A Standard-Term Support (STS) release is a reasonable choice only if you're already committed to a faster upgrade cadence and specifically want newer features sooner.

3. Read the breaking-changes notes for every version in between

This is the step most timelines underestimate, especially across a multi-version jump. The single biggest breaking change in recent Umbraco history is the version 13-to-14 backoffice rewrite (new management API, new admin UI, commonly called Bellissima). Content, media, members and URL structure carry across cleanly; custom backoffice extensions, dashboards, and property editors generally need re-implementing against the new API rather than just recompiling. If your upgrade path crosses that boundary, budget real time for it.

4. Set up a staging environment

Never upgrade production directly. Clone content, media and the database to staging first, and do the entire upgrade there before touching the live site.

5. Upgrade package references and fix compilation

Bump the Umbraco.Cms NuGet package and resolve breaking API changes. For a large version gap, upgrading one major version at a time is usually more predictable than jumping straight to the newest release in one move, since each version's breaking-changes notes assume you're coming from the previous one.

6. Test content, media, members and URLs

Confirm published content renders correctly, URLs and redirects still resolve, member login still works, and any custom property editors still save and display data correctly. This is where a rushed upgrade quietly breaks something an editor won't notice for weeks.

7. Test third-party packages

Confirm packages like uSync, Umbraco Forms, and Umbraco Commerce have versions compatible with your target release before going further. Package authors don't always keep pace with the newest Umbraco version immediately.

8. Deploy and monitor

Plan a specific deployment window, know your rollback plan before you need it, and monitor error logs closely for the first few days after launch rather than assuming a clean staging run means a clean production one.

How long this actually takes

For a fairly standard content site with no heavy backoffice customisation, a migration typically runs one to three weeks of actual development time, plus testing and a deployment window either side. Sites with custom backoffice extensions, complex integrations, or high content volumes take longer. Anyone who quotes a number without asking about your specific setup first is guessing.

If you want help with this

This is one of the most common reasons teams get in touch. I plan and run Umbraco upgrades and migrations for agencies and in-house teams, at a flat $700/day rate. See services for more detail, or the Umbraco 13 EOL post if the December 2026 deadline specifically is what's driving this.

Planning an Umbraco upgrade?

Send over your current version and roughly what the site does, and I'll give you a straight read on scope and timeline.

Get in touch