A major improvement introduced in SharePoint 2013 is a feature called managed navigation. With managed navigation, a content author has the ability to define navigation structure using taxonomy term store. Using this new feature could yield significant site performance improvements unless you pay close attention to your physical site structure.
Setup
Before going into the technical details explaining why SharePoint 2013 behaves in different navigation configurations, let’s first compare the page load performance on two out-of-the-box publishing sites. One is configured to use structural navigation while the other is using managed navigation. Both are populated with 125 navigation nodes on global and current navigation.
In the first site collection with structural navigation, five sub sites are created at the top level, with another five created for each of the sub sites at the level below, finishing on the third level with 125 sub sites created in total.
The second site collection with managed navigation has 125 publishing pages that are created at the root site page library. 125 terms are created in the site navigation term set, corresponding to the 125 publishing pages and structured similarly to the first site collection with three levels.
A third site collection was also created using the same parameters as the first, except it had managed navigation enabled instead of structural. 125 navigation terms were created accordingly, with each pointing to a corresponding sub site.
Page Load Time Comparison
The following data points were captured immediately after object cache had been flushed to force SharePoint to re-process the navigation nodes.
Navigation Setup |
Number of sub sites (SPWeb) |
SharePoint Online Page Load Time (seconds) |
Structural Navigation with 125 nodes |
125 |
20.34 |
Managed Navigation with 125 nodes |
1 |
4.63 |
Managed Navigation with 125 nodes |
125 |
28.01 |
With structural navigation, SharePoint 2013 spent 20 seconds processing the 125 navigation nodes. This was one of the many reasons why some SharePoint 2013 sites were slow on the initial visit.
This observation was confirmed with the SharePoint product group and its’ expected behavior. Intermittently, users may hit a page that takes a long time to load in SPO depending on some of the following situations:
- Too many sub sites that contain visible navigational nodes.
- The usage of other tenants who share the same farm with you.
- How often your site is changed. See the definition of change below.
- How many visible navigational nodes exists.
As it turned out, when managed navigation was enabled on the third site collection containing 125 sub sites, the page load time was not improved, instead it got worse. This means even if managed navigation is used, it did not guarantee any performance improvement. The key determining factor is the number of sub sites that contain the visible navigational nodes.
Conclusion
For publishing sites, given the above performance observations, one could recommend using a pure managed navigation approach with one sub site to get optimal performance. However, it’s not that feasible for many real world scenarios unless your site content fits entirely on a single site with no need for granting different permissions for different users. It’s fair to say that your site is going to have more than one sub site. The million-dollar question then becomes: what is the maximum number of sub sites you should have?
In our SharePoint Online tenant, the time it takes to process every additional sub site is somewhere between 30-300 milliseconds. With this you should be able to figure out the number of sub sites in order to keep the page load time under ‘n’ seconds. We’ve recently launched a major web site running on SharePoint 2013 and we managed to use less than 10 sub sites.
Unfortunately there isn’t a lot you can do about this due to limited configuration options on SharePoint Online. The product team has no plans to address the slowness at this point, based on the outcome of a support call with Microsoft. For now, in order to avoid running into the issue, keep the number of sub sites to a minimum.
If you’re upgrading from SharePoint 2010 or an earlier version, your content will likely already be organized with structural navigation. Simply enabling managed navigation will not provide you with any performance increase. In fact, you might actually see a decrease because the processing of navigation nodes in SharePoint 2010 was much faster. During my initial test, SharePoint 2010 took half the time it takes SharePoint 2013 to process navigation nodes.