
For more complex websites, Umbraco CMS developers have had to use the content tree in creative ways to implement reusable and non-routable content features. So what does that mean in practice?
Reusable content includes website content that should appear on more than one page, like a call to action for a newsletter signup, an alert or advertisement, a header or other visual element, etc. It can also include content used outside of web pages, like product specs used in a similar series of products.
Non-routable content is any content that is not a web page. This can include things like custom website settings, libraries of content like product data, complex picker options, et al. Many of these kinds of content are shown on web pages in one way or another, but are not themselves web pages in the technical sense.
Umbraco CMS 19 is a LTS (long-term support) release with the usual bug fixes and performance improvements, set to be released in December of 2026. One notable new addition addresses the issues with reusable and non-routable content I just described. It's a new content editor section named "Library".
The new Library area of the back office first appeared in version 18 supporting reusable content elements using a content picker. This allowed content editors to choose 1 or more reusable items as a property of another content item. For example, choosing a color scheme for a page header.
Version 19 adds the use of Library items in the block editor, which is used for stacking content to build web pages, among other things. In fact, it also adds the ability to both detach Library content so changes don't affect all consumers of the item, and save a block to the Library so others can access it. This can even be used as a sort of templating system to bootstrap page content with a starter block.
One of the patterns we've used for a long time is creating a Settings node under the home page node, and under that creating a tree structure of configuration items like short codes, forms, shared blocks, organization profile, menus, 301/302 redirect mappings, domain redirects, and more. Much of this structure can be moved to the Library, and some of it (like shared blocks) can go away entirely, which is a big win!
Settings and Global Units are now in the Library, leaving more content tree space for web pages.
Another benefit of moving these items outside the content tree is that all tree items are inherently routable, meaning, even without a template appliedm, Umbraco will still process requests to these items and try to serve them as pages, which wastes server resources and allows curious or malicious people to explore the structure of your content tree by looking at the request responses. You can code around this, as we typically do, to serve 404 (not found) pages. But it's another chore to remember which the Library solves by not routing its content.
There's usually more to the story so if you have questions or comments about this post let us know!
Do you need a new software development partner for an upcoming project? We would love to work with you! From websites and mobile apps to cloud services and custom software, we can help!