Sitecore Blog: @sitecorejohn blog

Repost: Maximize Sitecore Content Editor Performance

By John West, November 08, 2010 | Rating:  | Comments (2)

This blog post provides suggestions to maximize the performance of the browser-based Content Editor application provided with the Sitecore ASP.NET CMS. These tips can be especially important for users that access Sitecore over long-distance and slow network connections.

This is a repost of http://sitecorejohn.spaces.live.com/blog/cns!960125F1D4A59952!852.entry.

Always ensure that you have properly configured the browser. Most importantly, add the CMS to Internet Explorer’s trusted sites, and disable the SmartScreen (Phishing) filter. For complete instructions to configure the browser, see the Internet Explorer Configuration Reference on the Sitecore Developer Network (SDN).

One of the best ways to increase performance of any browser-based application is to evaluate and improve networking conditions between client and server.

Users should consider whether they can use the Page Editor rather than the Content Editor. The Page Editor is generally faster and easier to use than the Content Editor, which is intended for more advanced content managers.

Every Sitecore release can include performance enhancements. Sitecore 6 often outperforms Sitecore 5, and Sitecore 6.2 often outperforms Sitecore 6.1 and 6.0.

The less features visible in the user interface, the faster the client performs. If you do not use them, you can disable the following features:

  • The Pages Bar, which appears at the bottom of the Content Editor providing tabs to access the Media Library and the Workbox.
  • The Quick Action Bar, which appears to the left of the content tree.
  • The Validator Bar, which appears to the right of the editing pane.
  • The Quick Info Section, which appears at the top of the editing pane.

To disable these features, click the Sitecore logo at the top left corner of the Content Editor, then click Application Options, and then clear the appropriate checkboxes. At some usability cost, you can also hide he Item Title Bar, which shows the icon for the item and provides some information above the editing pane. I recommend disabling prefetch of collapsed sections as described in the following paragraph rather than hiding Field Section Titles, which would merge all of the sections into a single form.

Every item contains some number of sections, and each section contains some number of fields. Each time you click an item, Sitecore generates markup for each of the fields in each of the sections, and the client must retrieve that markup over the network. In Application Options, if you disable Prefetch Collapsed Sections (and remember to collapse sections that you don’t use frequently), Sitecore performs less unnecessary processing on each request, and sends less unnecessary markup over the network. For this reason (in addition to providing better usability), it’s also important to organize the fields of each data template into a number of sections instead of placing all fields in a single section, and to avoid using the same section name in all data templates. You should also avoid implementing templates with a large number of fields (instead, store that data in descendant items).

The number of items under any parent item affects how quickly that parent unfolds. This also affects usability – think about trying to find a file in a folder with dozens of files. Try to limit the number of children per item to 25, and especially avoid items with more than 100 children.

For the same reasons (performance and usability), it’s important to hide the sections and fields inherited from the standard template. You can disable this feature in Application Options, but more commonly, click the View tab, and then clear the Standard Fields checkbox (or press CTRL-SHFT-ALT-T).

You should also hide the tabs in the ribbon that you’re not using. To hide tabs, right-click on the tabstrip, and then clear the checkmark for each tab not currently in use. You should also configure membership in the Sitecore Client roles such that users have access to only those tabs and commands that they require.

Validation can also affect performance. Consider configuring validation only for workflow and the validate command rather than the Quick Action Bar or the Validator bar.

Consider using the TreelistEx field type instead of other selection field types. Rather than processing the options to display when a user loads an item, the TreelistEx field type only processes and displays options when a user clicks the Edit command to update the field value.

You can enable content expiration in IIS, especially for images, JavaScript, and CSS files, including the /sitecore subdirectory and the /temp/IconCache subdirectory (as specified by the Icons.CacheFolder setting in the web.config file).

Another option on the server is to disable Firebug Lite, especially in production Content Management instances (you should really do your debugging in development). In the Core database, delete the /Sitecore/Layout/Devices/Internet Explorer/Firebug Lite item.

Using SSL and/or Windows authentication can also affect performance. Consider other options to secure the solution.

The Sitecore Performance section on SDN provides a number of additional suggestions for optimizing Sitecore performance, such as ehnabling compression in IIS.

Feel free to add your suggestions below.

Tags: Architecture, Infrastructure

Comments

  • The following summary is based on the content above and additional suggestions from Ivan.

    -Optimize the network connection between the CMS client and server.
    -Configure the browser properly.
    -Consider the Page Editor rather than the Content Editor.
    -Patch and upgrade at least Microsoft and Sitecore software.
    -Hide the Pages bar, the Quick Action Bar, the Validator Bar, Quick Info Section and/or the the Item Title Bar.
    -Disable prefetch of collapsed sections.
    -Hide the standard fields
    -Secure or hide unused ribbon tabes
    -Validate on workflow operations rather than the Quick Action Bar.
    -Enable content expiration in IIS, especially for images, JavaScript, and CSS files, including the /sitecore subdirectory and the /temp/IconCache subdirectory (as specified by the Icons.CacheFolder setting in the web.config file).
    -Disable Firebug Lite.
    -Avoid SSL and Windows authentication.
    -Consider content compression.
    -Minimize the number of children beneath each item.
    -Minimize the number of fields in each data template. Consider descendant itemss and custom editors.
    -Collapse sections.
    -Keep only a few versions per item.
    -Use Version Manager: http://trac.sitecore.net/VersionManager
    -Use TreelistEx instead of a Treelist field.
    -Every field that stores links (multi-selection fields, lookup, Rich Text etc) slows down CE.
    -Enable validation rules (on the left off the content tree) only when one’s need to run them against content items.
    -Wisely design Sitecore Queries for multi-selection and lookup fields. Use fast query if possible.
    -Make sure that prefetch and database caches are optimized for master database in CM environment.
    -Use field security to hide fields that should be visible for specific groups of editors.

    See also:

    http://sdn.sitecore.net/Scrapbook/Optimizing%20Sitecore%20Performance.aspx

    - John West
    March 25, 2011 at 2:50 PM

  • http://blog.boro2g.co.uk/navigate-quickly-around-the-sitecore-content-editor/?utm_source=rss&utm_medium=rss&utm_campaign=navigate-quickly-around-the-sitecore-content-editor

    http://www.sitecore.net/Community/Best-Practice-Blogs/Grant-Bartlett/Posts/2012/05/6-Easy-Ways-to-Improve-Your-Content-Author-Experience-in-Sitecore.aspx

    - John West
    May 04, 2012 at 7:26 AM

*
*
*

Learn More with Sitecore

Newsletter
*

Digitaria | Read Case Study >

Sitecore was the technology of choice for us…There wasn’t a thing that we wanted to do that Sitecore couldn’t accommodate.

- John Van Spyk, Digitaria