Beta Version

BLOGS

Kapil Oliveti
4 Minute read

Optimize the performance of your website with Sitecore Performance Tuning

While zeroing in on Sitecore 9 for your company website is a smart decision, there are a few points your developers must keep in mind when it comes to performance, scalability and security. Sitecore 9 can be a little slow to start and throw a few annoying hurdles during development. Fret not, you can adjust a few settings and configurations to ensure optimum performance (given below).

  • Log review

One of the most useful features of Sitecore, this can be used to monitor the performance of the application and keep a tab on the lags, so as to tackle issues before an issue turns critical. These logs can give significant information: Publishing details, schedule task running, code error issues, indexing or query issues, issue with MongoDB, SOLR or SQL server connectivity.

  • Enable JS, CSS compression

This helps to boost the performance of the application by reducing the page requests to the server or browsing the pages. One can utilise static and dynamic compression in IIS.

When you enable ‘IIS static content compression’, static responses get compressed and cached on the disk across multiple requests, and without degrading CPU resources. By default, static content compression is enabled in IIS.

On the other hand, enabling dynamic content compression is optional, since the benefits are dependent on the availability of CPU resources. Dynamic content compression compresses responses for dynamic content and reduces bandwidth requirements. Since dynamic content is compressed with every response, there is a trade-off of increased CPU utilisation. This is why systems that are running at a high CPU utilisation level must steer clear of dynamic content compression.

  • Sitecore Debugging

The Sitecore debugging tool can be found in the Page Editor, and can used to understand and analyse statistics around different components being used in the page. It also aids in understanding the time taken by a specific component to render on the page.

This must be followed by every developer right from the time they start to experience any performance issues in the local development environment. This tool helps in narrowing down any problem with the code and resolves issues in time.

ebook

Sitecore CMS Best Practices Implementation Audit Guide

  • Sitecore Schedule tasks:

When you schedule tasks in Sitecore, they are based on interval execution and not absolute moments in time. In fact, Sitecore periodically polls for any tasks that are due to run. This interval is defined in Sitecore’s configuration: /sitecore/scheduling/frequency (Sitecore.config) and defaults to 5 minutes. Remember polling begins when he Sitecore App Pool starts, not a specific time.

Scheduling tasks involves two types of items in the Sitecore tree: Command and Schedule. Both items are located under /sitecore/System/Tasks.

Always try to review the Sitecore schedule tasks, and see if there is any task which is running and which is not expected? Remember to review all the agents, which are present under the <agents> section, <web.config> or using custom patch. Note: You can also consider updating the frequency of the task execution by updating the time. In case schedule task is not required, it must be disabled.

That’s not all - check if the scheduled task is triggering Full Publish, this can be a serious issue in the production environment, especially since this will clear all the caches, and can reduce the speed of your site.

Lastly, monitor the logs for anything related to scheduled tasks.

  • Indexing strategy

Go through the indexing strategy, which is being used in the application. Also, check if the full index rebuild is in place for any item publish event. Try to update the strategy if it doesn’t fit the requirement or if it’s over killing.

One can use index update strategies to maintain indexes. Each index can be configured with a unique set of index update strategies. Remember you must not specify more than three update strategies per index, keeping in mind performance reasons.

Sitecore provides a range of index update strategies, and all these strategies are defined under the following node in the Sitecore.ContentSearch configuration files:

sitecore/contentSearch/indexConfigurations/indexUpdateStrategies
<manualtype = "sitecore.contentsearch.maintenance.strategies.manualstrategy,sitecore.contentsearch">

  • Image optimization

Sometimes, issues also crop up with several applications, only because images are not properly optimized. This leads to occupying more resource bandwidth and poor user experience. Since this is the age of smartphones, any poor-performing mobile site can put off customers. This is why clients and content authors must be educated to utilise optimized images.

  • Indexes

This is a critical and significant component of any Sitecore application. Ensure to try and use indexes as much as you can, especially to fetch details from the repository or to search items based on specific conditions and filters. Try and perform all the operations directly in queries related to Pagination, Sorting and Filters.

Avoid fetching all the results and then applying business rules to filter it based on specific conditions; it is advised to do most of the processing directly in the query level.Also, try to create and use custom indexes for any custom feature.

Use of computed fieldscan also be considered, since this helps in executing any complex business logic while querying the results.

  • Site publish

It is a complete no-no to trigger complete Site Publish in the production environment, until it is essential. It can also be an expensive affair, since it clears all the cache. This is why try and publish areas that are absolutely important. One can trigger full Site Publish in a development environment, but in production, it can have negative consequences. It is best to use Smart or Incremental Publish!

  • Caching

Configure sub-layout(s) and rendering(s) to use caching, this can give a real good browsing experience to site users. Clearing cache is something which should be considered in a production environment. When you try to publish items, it will clear the cache and can slow down the application performance.

  • GetDescendants

While GetDescendants can prove to be really expensive, it is best to use indexes or fast queries if possible, and when required. Try and revisit your code and search if there is any reference to GetDescendants. Accordingly, update it if required.

  • Number of items under one node

Avoid having more items under a single node and try to break it down using multiple subfolders or items.

At Altudo (formerly eDynamic), we help our clients deliver exceptional customer experiences through 1:1 personalization & enhanced engagement, to grow revenue streams.We create and deliver personalized experiences to engage customers in a 1:1 manner at every touchpoint to improve customer experience and drive revenue.

As Sitecore Platinum implementation partners, we understand that the Sitecore ecosystem goes beyond the basics of CMS. Altudo delivers on all types of Sitecore implementations, crafting beautiful, user-focused websites that become the life of your brand.

Kapil Oliveti Director Solution Architect


You might like these

Sitecore Mobile SDK and Xamarin - Personalized mobile-ready web experiences

In this blog, we will cover how enterprises with existing Sitecore implementation can create effective mobile experiences using Sitecore Mobile App solution.

Read More...
Supercharge Digital Marketing ROI with Revenue Engine

Why Customer Behavior Analysis Is Indispensable to 1:1 Personalized Experiences

The long and short of personalized CX is that all business have to dig deep into customer behavior analysis, if they hope to make a ‘home run’ with customers.

Read More...
Leverage Machine Learning to increase Revenue Growth

How Marketers can Leverage Machine Learning to Foster Revenue Growth

An increasing number of organizations are implementing ML in their marketing strategies, and are deriving great results. Here are 3 ways how marketers can leverage Machine Learning better to foster revenue growth.

Read More...
Why Customer Behavior Analysis is indispensable to 1 to 1 Personalization