In these days, user experience (UX) is very important. We could have a cool website, but if it is slow, people will go away and never come back to our site. Performance is a main component of UX, so it is imperative that your website is as fast as it can be.
Lately I've been doing a lot of work assessing and improving performance of several websites built on Sitecore. I've seen many reasons why websites perform below par. However, I have observed the following:
- -Poor judgement on when to use Sitecore Query.
- -Unnecesary use of recursion in Sitecore Query.
- -Coding bad practices (Data Binding, bad logic, etc.).
- -Information Architecture problems (bad template design, bad template inheritance, etc.).
- -Many Sitecore sites do not use Sitecore's Cache.
- -Front-End performance issues.
Here are a few tips:
- -When querying items, consider that Fast Query is faster than Sitecore Query. Lucene is faster than Fast Query, so try to use Lucene for the heavy lifting and use Fast Query for simple queries in which using Lucene would be overkill.
- -Avoid recursion unless it is absolutely necessary.
- -Take a close look at how you bind your collections to .Net Controls. I've seen several issues because developers bind data more than once and this is a real performance killer.
- -Fix your IA. This will be a painful process, but it will pay off in the end.
- -Take the time to configure and take advantage of Sitecore's Cache. The performance improvement could be huge.
That's it for now.