Top Hero Dark 1500X500px @2X

Umbraco 9.1 Release

Find out what you get with this brand new version of Umbraco

Bjarke Mikkelsen Berg
Written by Bjarke Berg

Umbraco 9 just got a round of polish, some would even say, a thorough cleaning 🧹 With 142 features and improvements in Umbraco 9.1, the release train continues full steam ahead on the latest and greatest version of Umbraco, now running ASP.NET Core 5. You get the ability to keep your Umbraco installations squeaky clean, with History cleanup, polish to the Richtext Editor, an improved Examine Dashboard and a whole lot more.


What’s new in Umbraco 9.1?

Umbraco 9.1 is the first minor release for Umbraco 9. With the release of Umbraco 9 we’ve moved to “proper” semantic versioning and as such, we aim to keep breaking changes to major releases going forward (this release does contain an unforeseen breaking change). You can read more about versioning in the Product Knowledge Center

This release is a true community effort, with 113 out of the 142 contributions made by the community. Hacktoberfest has also had a big impact with no less than 96 community improvements and fixes being made in October. Just amazing and a big HIGH FIVE YOUR ROCK to all who participated 🎃

Now let’s take a look at what you get with Umbraco 9.1:

History Cleanup

Every time a content item is saved in Umbraco a new version (or revision) is saved in the database. This allows you to roll back to previous versions and provides a history of changes. It also means that a content item that has been worked on a lot can potentially consist of many database entries of which only one is in use (the published version) and just a few others might be relevant such as unpublished work. 

This new feature provides some much-requested functionality to your Umbraco installations, previously only available through the unVersion package, that helps keep the database footprint of Umbraco at a more reasonable level and some more efficient querying of the database.

It is worth mentioning that the History Cleanup feature will also be added to Umbraco 8 with the release of Umbraco 8.18 (ETA TBD). 

History Cleanup does exactly what the name suggests. It cleans the history for content items ensuring there is less excess data. 

Scheduled cleanup

The cleanup is scheduled to run hourly (changed from daily in the release candidate) and will go through content items and clean up any unnecessary versions based on the cleanup policy.

Cleanup policy

You can of course configure the cleanup policy to your liking and either add new defaults for all Document Types, add granular policies on a per Document Type level, or disable the cleanup entirely.

The default cleanup policy is to remove all versions that are more than 4 days old except for the latest version which will be kept for 90 days.

If you are upgrading an existing installation to 9.1, the History Cleanup will be disabled by default and you’ll need to enable it in order to benefit from scheduled cleanups. This is all configured in appsettings.json:

Granular Cleanup Policies

It is also possible to override or disable the cleanup policies for a specific Document Type. This is done in the backoffice on the Permissions tab for each Document Type. Here you can prevent cleanup for content based on the Document Type entirely, or overwrite the global configuration.

Umbraco 9.1 History Cleanup Policy 1270X566px

Pinned versions

Aside from the cleanup policies, you can also pin specific versions to ensure they are not removed during cleanup. This is done in the backoffice Rollback dialog which means it can be done by content editors as well.

Click for full-screen video

Adding this functionality allowed us to improve the UX on the Rollback dialog which. The dialog is now much bigger, allowing for better overview of version content. The version dropdown has been replaced with a beautiful listview including the ability to pin specific versions.

Improved default 404 page

The default 404 page in Umbraco is no longer “left intentionally ugly”. It has been redesigned to provide a simple and clean default 404 page. There are 2 versions of the new 404 page. A simple “Page not found” message will be displayed if you are not running in debug mode.

Umbraco 9.1 404 Page Not Found 1912X1031px

If the installation is in debug mode, the page will also provide links to documentation for how to customise the 404 page.

Umbraco 9.1 404 Page Not Found Debug Mode 1912X1031px

While the old 404 was fun and likely did incentivise a lot of great custom 404 pages, it wasn’t really that friendly towards end clients and website visitors. So a huge thanks to Søren for making this a friendlier (and prettier) experience out of the box.

Examine Dashboard improvements

The Examine Dashboard has been improved with some changes to styling (the row width is now enforced) and the ability to toggle which fields are shown on the dashboard. It makes it easier to inspect and debug your examine indexes.

Click for full-screen video

As you can see in the video above it is a breeze to inspect different fields now and even useful for comparing data between documents. 

Friendlier RTE

You’ll also find some great improvements to the Richtext Editor (RTE) in the backoffice. When the RTE was in focus previously, it annoyingly overwrote the ctrl+P shortcut for publishing in Umbraco with TinyMCEs shortcut for printing the page. This has now been changed, so crtl+P now does as expected, also when using an RTE :)

Furthermore, the RTE has been updated to be a little friendlier when inserting links without having text highlighted. Prior to Umbraco 9.1, this would result in no link being inserted. Now a link will be created with the URL as the anchor text.

If a Media item or Content page is referenced the name of the item will be automatically inserted. You can of course change the link text afterwards to your liking but it is definitely easier to do that than having to mark some text and add the link all over again.

Updated dependencies

This release also contains a few updated dependencies:

  • nouislider from 15.2.0 ➡️ 15.3.0 
  • Examine from 2.0.0 ➡️ 2.0.1
  • ImageSharp from 1.0.3 ➡️ 1.0.4

Breaking changes

Unfortunately a breaking change snuck its way into this minor release. We aim to only add breaking changes in major versions, this one was caught very late in the process. We'll have a 9.1.1 patch out to address this as soon as possible. It is a behavioral breaking change, meaning it will not affect compilation of a project and only occurs in certain circumstances.

The issue can be encountered if you're using pickers (such as the Multi Node Tree Picker) as a Macro Parameter editor. You can read more details in the PR discussion and on the issue that made us aware of this. Thanks to PeatLaur for making us aware of this. Keep an eye one the Umbraco status page for when the patch is scheduled.

And so much more...

That’s only a little sliver of the things included in the release. There is a long list (literally 100s) of additional tweaks, improvements and fixes that all help to make Umbraco faster and friendlier. You can see the full list in the Umbraco 9.1 release notes and who to thank in the list of contributors below 👇

Community Contributions

Of the 142 bug fixes and feature additions in 9.1.0, a total of 113 of them have been contributed by the community, by 27 unique contributors. For this release we’re really seeing the Hacktoberfest effect, where 96 of the contributions were made in the month of October.

We’re welcoming seven brand new contributors who have made their first pull request for Umbraco CMS; they’re marked with a star below. Welcome to the contributor club Matthew, Jesper, Ibrahim, Brian, Jamie, Lewis and Martino! 🏆


Jan Skovgaard - 43 PRs

Patrick De Mooij - 10 PRs

Bjarne Fyrstenborg - 6 PRs

Matthew Care - 6 PRs

Søren Kottal - 5 PRs

Anders Bjerner - 4 PRs

Paul Seal - 4 PRs

Jesper Mayntzhusen - 4 PRs

Callum Whyte - 3 PRs

Jeavon Leopold - 3 PRs

Laura Neto - 3 PRs

Louis JR - 3 PRs

Daniel Shuy - 2 PRs

Rick Butterfield - 2 PRs

Ibrahim Muhammad Nada - 2 PRs

Chriztian Steinmeier - 2 PRs

James Dartnell - 1 PR

Blake - 1 PR

Erik-Jan Westendorp - 1 PR

Jose Marcenaro - 1 PR

Doug Moore - 1 PR

Jacob Overgaard - 1 PR

Brian Popow - 1 PR

Jamie Townsend - 1 PR

Lewis Hazell - 1 PR

Owain Jones - 1 PR

Martino Gabrielli - 1 PR


⭐ = First pull request to any Umbraco repository

And of course, as a thank you, we’ve just added another bunch of trees to our growing plot for today’s 9.1.0 release to celebrate your contributions! 🌳🌲🌴


Top Hero Dark 1500X500px @2X

How to get your hands Umbraco 9.1

As always, from today, all new Umbraco Cloud projects will be running 9.1. For all our Umbraco Cloud customers with existing projects, this upgrade is only 2 minutes away:

We’ve wrapped it all up for you, so all you have to do now is follow these steps:

  • Add a Development Environment to your project, if you do not already have one (Add a Development environment by clicking “Manage Environments” in the project view)
  • Make sure you also restore the content to the Development Environment from your Live.
  • When the Development Environment is all set up and you’ve made sure you don’t have any pending changes on the Development Environment - you are all ready to upgrade to Umbraco 9.1!
  • It's as easy as clicking a button - like, literally clicking the "Upgrade Available" button on the Development Environment. The auto-upgrader will take care of everything from here! 🚀
  • Once it's done, check the Development Environment to make sure everything is looking right.
  • When that's confirmed, you are ready to deploy the upgrade to the next environment - Live or Staging, and start taking full advantage of all the new features.

Update (2021-11-19): We have encountered an issue provisioning the newly released Umbraco 9.1 on Umbraco Cloud.
This means that currently, new projects are running Umbraco 9.0.1. We're working on a patch and as soon as this is released you'll be able to create new and upgrade existing projects to Umbraco 9.1.

Update (2021-11-23): Umbraco 9.1.1 has been released, and all new projects on Umbraco Cloud are now running the latest version.

Non-Cloud and release notes:

As always, installation and release notes can be found on Our: 

This release is also available from Nuget:

Loved by developers, used by thousands around the world!

One of the biggest benefits of using Umbraco is that we have the friendliest Open Source community on this planet. A community that's incredibly pro-active, extremely talented and helpful.

If you get an idea for something you would like to build in Umbraco, chances are that someone has already built it. And if you have a question, are looking for documentation or need friendly advice, go ahead and ask on the community forums.

Want to be updated on everything Umbraco?

Sign up for the Umbraco newsletter and get the latest news and special offers sent directly to your inbox