General content modeling recommendations
Every content model is unique and having a good content model is the foundation for a successful business online presence. When deciding how to model the content in Kentico Xperience, always respect the project's business requirements and the preferences of website editors and marketers.
On this page, you can learn about general recommendations that you or your developers might consider when planning the content model for your project.
Digital marketing features
Xperience comes with a large set of on-line marketing features. These features can be used to attract new customers, promote your content or automate workflows to keep in touch with your existing customers. A decision about using digital marketing can have a direct impact on your content model and on the way content editors work with the content.
Find out more about the digital marketing features in the documentation and in the Business tutorial.
- If you want to leverage the built-in on-line marketing features, use pages to store content.
- We recommend using the Page builder on pages in which your editors might benefit from content personalization configurable directly in the Xperience administration. That is, personalization based on personas or contact groups, for example, on campaign landing pages or thank you pages.
- For example, an "Articles" listing page can contain an editable area with a "Featured articles" widget. Editors can personalize the widget and offer different featured articles to visitors who fall under different personas.
- To enable the personalization, develop custom page builder widgets that allow editors to personalize content based on personas or contact groups.
- We recommend using the Page builder on pages in which your marketers want to optimize content using the built-in A/B testing feature.
- Use media libraries to store images and other assets for email marketing and marketing automation email campaigns.
- For collecting data from users, we recommend using forms. Developers should leverage built-in form section properties in the custom code. Editors will be then able to adjust the layout of their forms to match the rest of the pages.
- To ensure your website stays within the legal boundaries, we recommend using the Data protection functionalities.
General content modeling recommendations
Routing and URLs
We recommend using content tree-based routing for most scenarios. Content tree-based routing ensures the system generates ULRs based on predefined rules set by developers. It also allows editors to easily change URL slugs of their pages, store URL history in the Former URLs application, or provide alternative URLs.
To ensure editors don’t use characters that are considered invalid or suboptimal for URLs in specific environments (e.g., characters from extended Latin alphabets, such as ö), use the field validation. Use it on any URL-related page type fields to constraint forbidden (or suboptimal) URL characters.
Aim for content reusability
Follow a simple rule of thumb: if there is a chance that a specific content will appear on the same website in multiple places or different channels of marketing communication, we recommend creating structured content.
Ensure a seamless editing experience
When you build the structured content hierarchy, we recommend that every developer participating on the project steps into the content editor's shoes and creates several pages in the content tree from scratch. Developers will try out the editing experience, and might propose improvements.
- For example, you can often improve the editing experience just by slightly flattening the content tree hierarchy.
Group the fields on the Content tab into categories to help with the editing experience.
- For example, you can use categories such as: Page content, SEO-related, original content, Page categories, etc.
Using the Description and Explanation text page type fields (Description adds a tooltip and Explanation adds an explanation under the field), you can help editors understand what content the corresponding field expects and its behavior. We recommend focusing more on the type of content that editors are supposed to provide rather than describing where the content is used/displayed. Focusing on the substance of content rather than its presentation helps with strengthening its reusability.
Set restrictions for content creation by using the Allowed page types or Page type scopes. This ensures that editors won’t unintentionally break the website composition by adding a page where it doesn't belong.
Ensure seamless content workflow
Make sure that editors have complete control over their content. The Preview view mode in the Pages application gives editors the option to see what their content will look like before it’s published to the live site. Similarly, we recommend using Content staging to help with testing and proving the content on pre-production before synchronizing it with the production site.
To manage the content life-cycle identified in the content audit, we recommend using Xperience built-in features, such as content locking, versioning, ACL permissions, and content management workflows. To store archived pages, consider building a custom module.
Use inheritance to your benefit
Use inheritance in page types. Create “base” page types with properties and share them across different children page types. For example, you could share SEO-related fields or page categories.
Localization and multilingual websites
Xperience can store multilingual content within one site through a localized content tree or host many sites, each localized to a targeted culture. For pages in the content tree, editors can switch between language versions, create new language versions or manage translations. Find out more about localizing content in the Multilingual websites section.
If you're planning to use on-line marketing features on multilingual websites, note that:
- Xperience contacts are global objects shared across all sites within one Xperience instance. This means that marketing teams working on one Xperience instance have access to contacts from all websites of that instance.
Therefore, consider deploying websites running on a single instance into multiple instances with separate contact databases in regions where you need to meet specific e-privacy requirements.
- For localizing content that doesn't need to be represented in the content tree, use resource strings.
- To create localized content variants, use the hreflang tag.
- If you don't need to create localized variants of the whole content tree, consider using the content personalization features. For example, you can assign users from different regions to different personas and handle displaying localized variants in code rather than in page builder widgets.
- Consider using the culture alias to change the default .NET language prefix in the URL at the project's beginning.
Decisions on how to store and present localized content vary based on:
- Your content types.
- If the content types are the same for different languages, use a localized content tree.
- If the same content type needs to differ between languages, use a different site for each language version.
- Your marketing team structure.
- If the marketing team is small and oversees all the localized versions, use a localized content tree.
- If your company has independent marketing teams in different cultures or every team uses different workflows, it’s usually better to separate the content into multiple sites.
Based on your project requirements, we recommend evaluating whether to use SKUs with pages versus the standalone SKUs option of storing products and deciding on how to approach the website’s language variants. See the E-commerce customization model and Developing on-line stores for more information.
Website navigation helps users find the content they are looking for. Well-structured navigation menus provide an overview of how the website’s content (or its specific segment) is structured. It can also help keep users engaged and lead them to explore website content.
There are different ways how developers can build website navigation.
- Xperience comes with a built-in feature that allows editors to include pages stored in the content tree into website navigation. Read more on the Building website navigation page.
- Developers can also create a dedicated section in the content tree where editors can build their navigation. For example, the linked pages can be used to define a navigation menu with only several key items.
- Developers can also prepare a dedicated “Menu item” page type and a section in the content tree. Editors can then use the "Menu item" page type and manually specify the website navigation structure into a hierarchy and desired order of individual menu items.
Recommendations - Modeling navigation
We recommend using the built-in "Navigation item" feature for small projects, typically websites for small businesses (such as our own Dancing Goat sample site).
For larger projects where you want to create multi-layered navigation menus, we recommend creating a dedicated section in the content tree and defining a custom "Menu item" page type.
Website system pages
A good website administration experience doesn’t only mean that editors can easily create and manage website content. A well-structured website offers editors ways to adjust system-specific features without asking developers for help whenever they need to adjust the website SEO performance. For example, you can create a ”Website settings” section in the content tree and create specific page types that content administrators can use to change system settings. We recommend including the following system pages into your project:
Search result pages
Xperience provides an index-based smart search solution that allows users to search through website data and display results on an internal search results page.
Find out more about configuring search:
- Setting up search on your website
- Settings - Search
- Enabling search indexing
- Using Azure Cognitive Search
Recommendations - Search
Considering your project requirements, we recommend using the Azure Cognitive Search.
Use smart search to index files uploaded as page attachments. For indexing files uploaded to media libraries, we recommend building a custom smart search indexer.
Businesses don’t want to have all the content exposed freely to search engines and regular website visitors; some content should be accessible only to authorized visitors. Xperience comes with a flexible security model that allows administrators to configure granular access permissions.
The "Registration" (and "Sign in") page usually appears when a visitor is turning into a potential lead or existing customer. From a business perspective, this page provides an opportunity for content personalization, either using custom code or allowing editors to personalize the content using the Page builder.
Learn more about securing websites:
- Permission model overview
- Securing websites
- or take our Xperience for Developers e-learning course
Recommendation - Sign-in and Registration
Website administrators should be able to define which roles have access to which content themselves. Create custom functionality that allows website admins to grant specific user role access to secured sections from the Xperience administration.
Secure media library files on the IIS level as the media files are always be accessible via their URLs.
Allow for content personalization on the sign-in/registration page.
Consents settings page
Xperience comes with an extensive Data protection functionality that allows for building websites compliant with many different e-privacy laws and legislation.
Administrators can use the data protection features to create and manage tracking consents or easily remove personal data from the administration UI. Once the personal data is in the system, marketers can easily use them using the built-in Xperience on-line marketing features, e.g., ensure that marketing emails are sent only to visitors who provided appropriate consent.
To comply with the data privacy regulations, developers need to implement data collection and erasure features to match project requirements and accommodate how the website gathers, processes, and stores personal data.
Find out more about customer data protection in Xperience:
Recommendations - Consents
To ensure marketers stay within legal boundaries with their marketing activities, we recommend leveraging the Xperience data protection functionality for collecting and managing every piece of visitor data in the customer life-cycle. From cookie tracking over data submitted through online forms up to e-commerce specific data.
To allow users to manage their consents, we recommend building a consent settings page.
Sitemaps help search engines correctly index the content of websites and have a significant effect on the resulting search ranking. You need to create a custom generator to build a website sitemap.
Recommendations - SEO
We recommend doing a custom implementation of the sitemap generator, including a mechanism that enables editors to decide which page URLs to include in the sitemap, as well as a way to canonicalize URLs. For example, by adding a dedicated URL canonical field to the page's Content tab.
Errors can appear on different occasions. Visitors can request content that’s no longer available on the page, or they can simply make a typo in the URL. In any case, a user-friendly error page combined with simple website navigation can help improve user experience and guide them to relevant content. Xperience uses MVC conventions for handling error pages.
Find out more about handling errors:
Recommendations - Errors
Give editors the power to personalize the content of error pages, e.g., by enabling the Page builder feature on the error page. It can help in case your website contains a lot of content and the menu on the website doesn't provide for quick navigation. The most frequently used error pages are:
- 404 - Page Not Found.
- 403 Forbidden - You do not have permission to access this page.
- 400 Bad request - Your browser performed an invalid operation.
- 500 Internal server error - The server encountered an error while processing your request.
Robots.txt and no-indexing content
Website administrators sometimes want to prevent search engine agents from indexing specific pages or parts of the website. The Robots.txt page can help in such situations.
Recommendations - Indexing
We recommend to provide editors or administrators means to disallow parts of the website from search engines:
- To disallow indexing of individual website pages, add dedicated fields on the Content tab. Selecting the fields should include the no-index directive into your output markup.
- To disallow indexing parts of the website, create a dedicated page for Robots.txt with, e.g., a Text area form control on the Content tab and use a custom code to process the directives administrators input into the Robots.txt file. The implementation could also allow restricting indexing the website by specific search bots.
Even though content models show similarities across different organizations, every model is unique. Projects where the content model is defined in collaboration with editors and other website stakeholders are more successful in results and user satisfaction.
The key points for building content models are:
- Prefer structured content and use widgets for styling rather than storing the content.
- Regularly validate your model with stakeholders, both internal and external.
- Website developers should use the created content model and try out creating content on the website themselves.
- Don’t be afraid to experiment or deviate from the recommendations above to satisfy the project requirements.
Happy content modeling!