Umbraco, the friendly CMS with the funny name, is used by some of the biggest brands and names in the world, including Microsoft, Costa, Heinz and many more. Yet regardless of its reputation of an easy-to-use, scalable content management system, there are some common pain points and hidden functionalities that some users aren’t used to. The great news that both Umbraco HQ and it’s incredible developer community are both constantly soliciting feedback about issues users are having with the CMS, and continually improving Umbraco with each new version release. This means that no matter what your issues or pain points are with Umbraco, you can rest assured that the development community will listen, hear them, and create a solution that alleviates that pain point moving forward.
But, alas, sometimes CMS pain points are the result of site owner experience or user error. And that’s okay! The vast majority of us using a CMS aren’t usually aware of the features and capabilities available to us, and sometimes we have to navigate a CMS with the basic knowledge we have at hand. The beautiful thing about Umbraco? There is a vast library of help documents and numerous training courses available to users and site owners. We highly recommend you take advantage of these resources, as they give you the most in-depth and detailed ins and outs of the Umbraco CMS.
In this white paper, we focus on five areas where we see users and site owners having the biggest pain points with the Umbraco CMS, and how they can best be alleviated. The great thing about these common issues? They’re quickly and easily fixable or alleviated with a few minutes of implementation and training. Let’s get started.
1. Built-In Property Editors Don't Fix Needs
The Umbraco CMS comes loaded with property editors out of that box that can quickly and easily help get you started building your dream website, but did you know that these property editors are just the tip of the iceberg? While these property editors are fantastic at the base level, a lot of website owners feel limited by their capabilities in limiting property editors to reduce errors and issues by their users. But don’t worry — there’s a solution!
It’s important to note that these property editors can be customized to your exact business needs. For instance, you can customize these property editors to have maximum text length limits and also limit editor options in the rich text area for specific document types. The benefits of these customization capabilities are numerous, including staying within branding guidelines and creates sensible guardrails for editors, making the editing process much less error prone.
If you’d like a more in-depth tutorial on how to create a custom Umbraco property editors, check out this awesome tutorial from our friend Kevin Giszewski:
2. Using the Rich Text Editor to Create Special Elements
It might be tempting to just use a Rich Text Editor available in the grid to create custom HTML that needs to be on a page. While this works in the short term, it’s not editor friendly and can lead to layout issues down the road. Instead, it’s advantageous to streamline this process and create custom grid elements or macros for complex widgets that appear on a piece of content. This way, the content can be validated for errors, and editors will have an easier time navigating the complex element which they are trying to put on the page.
It’s important to remember that the Umbraco CMS is open source and completely customizable. This means that no matter your content or layout needs, especially for specific content items that you will be recreating and using for the foreseeable future, you’re able to template these items out as macros to be used repeatedly as you build your site out. With some easy and quick training, you can arm your marketing and content editing teams with the tools necessary to continually build content without comprimising your layouts and design.
3. Hardcoding Content IDs for Content Elements
Hardcoding a content node for a homepage or a new listing page might feel like a simple route, but this can break down once you have multiple environments.
For example, if that piece of content which was being statically referenced is deleted and recreated, it would require a code change to fix and the issue would not be able to be resolved by a content editor. In any of the code or HTML, you’re saying “go get this piece of content, IDed 1234”, but there’s no guarantee that this will always be the ID. For instance, if you create a piece of content on different environments (development, testing, and production sites) they will have different IDs per those environment. Also, if a team member accidentally deletes and recreates that content, then it will be assigned a different content ID, as it’s considered a brand new piece of content, thus breaking the hardcoded files. The better route would be to use a configuration element in the content for the content editor to pick the news listing page, or programmatically find the homepage by using helpers like Model.Content.Site() to retrieve the root of the website.
At Marcel Digital, we let the content editor configure the site instead of hardcoding IDs by using the Content Picker from Umbraco; this allows them to select the appropriate content. Otherwise, we would programmatically find the content that we need in a way that’s not dependent on IDs.
4. Using Content Services to Get Content Instead of Querying XML Cache
There are a lot of great Umbraco services available for a programmer to retrieve content like the Umbraco Content Service and the Umbraco Helper. The distinction between the two is that the Content Service retrieves content from the database, whereas Helper retrieves it from the XML cache. Although you can use the Content Service in your implementation to display content, the performance of this operation is not ideal since one needs access to the database for each piece of content displayed. In terms of speed, this is much slower and is not representative of what is currently published on the website.
Instead, the Umbraco helper should be used to retrieve content in code. The Umbraco Helper retrieves content from the XML cache resulting in optimal performance even for large sets of content. This means that users will see content faster and crawlers will be able to scan content faster, which helps for search engine visibility.
People discover the Content Service and think it’s the way to load content to front end users. Learn more about Umbraco Helper here.
5. It Takes So Long to Index and Search Data
Every time a piece of content is called on the front end of the website, the CMS has to search through the content index and find the specific pieces of content the web page is requesting. Most web developers that use Umbraco use the standard XML Cache to do so, while in reality this takes quite a bit of load time, resulting in a decrease in user experience and decreases in search engine visibility. The reason for this is XML Cache searches for content in steps, looking for a content type, specific content name, content dates, etc.
When looking for a specific piece of content, it can be more performant to use an Examine search instead of the XML cache. An example of this is if you wanted to list all of the content of a specific type on a page. While you could use Model.Content.Descentents() and do your sorting and filtering based on the return value, this could be slow depending on how many nodes are returned. Instead, you could use an Examine search to grab all of the Ids of the target content and then retrieve the content from the XML cache of just the items you need.
You can learn more about Examine search here.
So, What's Next?
There’s a lot here to digest here and some research that will need to be conducted on your end to alleviate these pain points. If you’re not sure where to start or how to go about resolving issues with Umbraco, here’s where to start:
- Review the above common issues
- Take note of other issues you may be having with Umbraco
- Discuss with your marketing and web development teams
- Divy responsibilities
- Access resources the below for help and documentation to fix issues
- Reach out to an Umbraco Developer or Master if this seems out of your scope
We’ve provided some additional resources in the next section (conveniently titled, “Additional Resources” ) to help you and your team get off on the right foot with alleviating these common Umbraco pain points above.
And as always, if you have questions, we would love to hear about your project and begin brainstorming how our Umbraco Masters and Professionals can help you and your team get the most out of your Umbraco experience!
Additional Umbraco Resources
Umbraco Help & Training Resources:
Umbraco Packages & Extensions:
We appreciate you taking the time to read our white paper today! We hope you see the benefits of personalization and walk away with actionable insights.