Site warmup

Each time your system restarts, the first time pages are requested on the frontend, performance may be slowed down and as a result make your customers impatient while waiting for your site to load. To avoid such cases, you can leverage Sitefinity CMS Warmup service, which ensures your site is configured for optimal performance from the very first time your customers visit it. Warmup service requests all sitemap pages, compiles them based on sitemap priority and stores them in the output cache, so they are ready to perform at their best. As a result, your customers do not experience any slowdown, lagging, or delay in loading of your site.

IMPORTANT: The Warmup service will not cache your website pages if you have a Session_Start or Session_End event handler in your website Global.asax. For more information see KB Article Sitefinity not caching pages visited by the Warmup module or cached by warmup scripts.

PREREQUISITES: By default, the Warmup service module is disabled. Enable the module:

Navigate to Administration » Modules&Services » Warmup.

Expand the Actions menu and choose Install.

Once you install and activate the Warmup module, you can run the service straight away. You enable the service and modify the service configuration in:

The Warmup service is executed upon initialization of your Sitefinity application.

Plugins

The Warmup service leverages a plugin architecture that you can extend, if required. The service enables you to request a specific set of pages during system restart and then the rest of the pages are requested in the background. The default plugin SitemapPlugin gets the set of page URLs to be requested via the sitemap and thus acquires the URLs of pages that are published and part of the navigation. For more information, see Include pages in the sitemap.

NOTE: Pages that have specific permissions are not requested by the SitemapPlugin.

Apart from the default plugin, you can implement and use other plugins. For more information, see Tutorial: Implement a Warmup service plugin.

The SitemapPlugin sorts pages according to:

  • Page sitemap priority
  • The value of the maxPagesOnStartupPerSite parameter.
    The values defines the number of pages requested on system startup

Plugin priority

The Warmup service sorts plugins according to their priority in descending order. Only afterwards the service requests the plugin URLs. Thus, the higher the priority of the plugin, the earlier its URLs are requested.

Page URL priority

All plugins (including the SitemapPlugin) return the WarmupUrl array of objects, each object having the WarmupPriority property that defines whether the URL is requested during system initialization, as well as the order, in which URLs are requested.

All pages with URLs with high priority are requested during initialization and the system compiles and output-caches the requested set of pages, so that subsequent requests of these pages are processed much faster. The rest of the URLs requests are run as a background task.

 

Was this article helpful?