---
title: "Performance"
slug: "performance"
abstract: "A list of best practices to ensure optimal Content Hub performance, which includes recommendations for settings, policies, options, and page design."
---
# Performance

Follow these recommendations to ensure optimal Sitecore Content Hub performance.

| Area | Recommendation |
| --- | --- |
| [Conditions](https://doc.sitecore.com/ch/en/users/content-hub/conditions.html) | Use rules to redirect users from a details page to its child pages under specific conditions. Avoid adding a large number of conditions on properties or relations. |
| [Data model](https://doc.sitecore.com/ch/en/users/content-hub/data-model.html) | Keep the number of relation definitions assigned to any single entity definition below 50. Use [aggregates](https://doc.sitecore.com/ch/en/users/content-hub/create-an-aggregate.html). |
| [Entity members](https://doc.sitecore.com/ch/en/users/content-hub/members.html) | Keep the number of members assigned to an entity definition below 100. |
| [Image assets](https://doc.sitecore.com/ch/en/users/content-hub/get-started-with-assets.html) | For image assets intended for browser display, use the sRGB color profile or remove embedded color profiles. You can do this by converting the image before uploading or by [adding a processing task](https://doc.sitecore.com/ch/en/users/content-hub/create-a-processing-task.html) to adjust the color profile in the rendition if needed. |
| [Localization](https://doc.sitecore.com/ch/en/users/content-hub/portal-translation.html) | Remove unused portal languages. |
| [Member groups](https://doc.sitecore.com/ch/en/users/content-hub/members.html) | Keep the number of member groups configured on an entity definition below 100. Use a member group when applying identical conditions to multiple members. |
| [Option lists](https://doc.sitecore.com/ch/en/users/content-hub/create-an-option-list.html) | Keep the number of values defined in an option list below 100. We recommend 50 values or less. |
| [Page design](https://doc.sitecore.com/ch/en/users/content-hub/add,-modify,-or-delete-page-components.html) | Keep the number of page components per page below 200. Use [tabs](https://doc.sitecore.com/ch/en/users/content-hub/organize-components-on-a-page.html) so that data is loaded when a tab is selected and not all at once. Remove unused components. Use React components, and avoid having React and Knockout components on the same page. |
| [Product content](https://doc.sitecore.com/ch/en/users/content-hub/get-started-with-product-content.html) | Set the [*allow_navigation* flag](https://doc.sitecore.com/ch/en/users/content-hub/disable-navigation-for-a-relation.html) to false by default to avoid performance issues. |
| [Relations](https://doc.sitecore.com/ch/en/developers/cloud-dev/relations.html) | Keep the number of nested relations on an entity definition below three and the number of relations below 50. Do not use self-referencing relations that inherit taxonomies if there are already more than 50 taxonomy relations on an entity definition. If a relation has more than 20 entities, turn off the [**Allow navigation**](https://doc.sitecore.com/ch/en/users/content-hub/disable-navigation-for-a-relation.html) switch.<br><br>The number of ancestors in self-relations can impact performance. It is important to consider:<br><br><ul><li>Whether a relation inherits security.</li><li>What the hierarchical depth of the self-relation is.</li><li>How many parents each parent in the relation has.</li></ul><br><br>> [!note]<br>> Content Hub information architects and those in technical roles can find more detailed information about path relations in the [Accelerate Cookbook for Content Hub](https://developers.sitecore.com/learn/accelerate/content-hub/implementation/configuration/paths-across-entity-definitions), a collection of recipes that provides information to help you successfully set up, configure, and implement Content Hub. |
| [Schema](https://doc.sitecore.com/ch/en/users/content-hub/schema-changes-and-inheritance.html) | Turn off the **Inherits security** switch when there are more than two levels of inheritance. You can find this switch in the **Technical** group on the [entity detail page](https://doc.sitecore.com/ch/en/users/content-hub/edit-an-entity-details-page.html). |
| [Taxonomies](https://doc.sitecore.com/ch/en/users/content-hub/taxonomies-and-option-lists.html) | Avoid having more than 250 facets in a single taxonomy definition. |
| [Uploads](urn:resource:component:1283838) | The Upload API is intended for day-to-day activities and not for the bulk upload of assets. A typical use for the Upload API is to build third-party upload UIs, which can be useful for connector plugins. For integrations, bulk uploads, or large blobs, use [fetch jobs](https://doc.sitecore.com/ch/en/developers/cloud-dev/fetch-jobs.html) instead of the Upload API. Fetch jobs are executed through back-end services and do not impact the UI performance. You could also use an [Excel import](https://doc.sitecore.com/ch/en/users/content-hub/import-and-export-excel-data.html). |
| [User groups](https://doc.sitecore.com/ch/en/users/content-hub/manage-user-groups-in-content-hub.html) and [user group policies](https://doc.sitecore.com/ch/en/users/content-hub/standard-user-groups.html) | Pre-calculated permissions in Content Hub are evaluated each time an entity is created or updated. The number of user groups, and the number of policies they contain, have an impact on performance; for this reason, ensure you have no more than 100 user groups, each containing fewer than 100 policies. We recommend that you do not change or remove the [standard user groups](https://doc.sitecore.com/ch/en/users/content-hub/standard-user-groups.html). |