Here are the top five reasons that you may notice your SharePoint Online is slow, or that your environment is running slower than expected…
1. Structural navigation:
This is the most common and has most impact on performance. The Structural Navigation functionality generates hierarchical navigation by dynamically crawling through the SharePoint site. This could mean possibly hundreds of SQL roundtrips just to generate a single page. While this functionality may have worked well On Premises, the additional latency is amplified by having to go to the cloud. A typical Lift and Shift migration to the cloud would require that the navigation structure be changed in order to have performant navigation. It is recommended to build navigation using search instead of the Structural Navigation functionality.
As of April of 2019, Microsoft is rolling out an enhancement to SharePoint Online wherein the system will automatically tell you if structural navigation is slowing down your system. Talk to us if you need help implementing an alternative navigation to speed things up!
2. Content rollup:
Content rollup web parts, such as Content Query and Content by Search, will dynamically aggregate information to display to the user on the fly. While these are convenient methods for developers, it can also present slower loading times and are not recommended for Publishing Portals that generate large amounts of traffic. Use static content where possible for highly trafficked areas. And if speed is a concern, remember that Content by Search web parts will return results faster than the Content Query web part.
3. Large images or videos:
Be sure to check that images are sized appropriately; that is, they are not down-sized by CSS and is pre-sized as the appropriate for rendering. Make sure that if there are any videos on the page, that it is not loaded until the user clicks to start the video.
4. Too many requests:
In recent years development techniques have pushed to loading more content on the client side. For example, parts of a page could be loaded via HTML templates; many templates mean many calls to the server. Try to minimize requests as much as possible by minifying and combining JavaScript sources, and also use CDN sources where possible. Because CDN sources for common libraries, like jQuery, likely would have already been accessed by the client, the file would be cached and need not be loaded again.
5. Too many web parts:
Every web part is an asp.net control that requires additional server processing to render. Minimize the number of web parts by using static content wherever possible.