User Guide

We encourage you to review the Data Caching and Performance page of ExpressionEngine’s documentation along with the information presented here.

Website Performance and ExpressionEngine

Website Performance and ExpressionEngine

Fine Tuning Your eeSiteKit Website For Increased Performance

eeSiteKit uses a combination of ExpressionEngine’s Query Caching, Tag Caching, Query Disabling, and the choice of simple conditionals over advanced in its template code to increase your website’s performance.

Here are a few things you can do that may improve your site’s performance even more:

Avoid Cheap Hosting: Feature-rich dynamic websites simply run better on a well-maintained host server with a proper allocation of resources. We highly recommend EngineHosting for its hosting methods and customer support, and we think you’ll find that its Load Balanced Shared Hosting provides a great environment for your site.

We also run eeSiteKit-based sites on single-server shared hosting and they perform just great there too. Basically make sure your site is with a quality host that doesn’t overload and/or under-allocate server resources and you’ll be fine.

Enable SQL Query Caching: We recommend you use EE’s SQL Query Caching. You can turn it on here:

Site Name ›  Admin ›  System Preferences ›  Database Settings

Disable “Cache Dynamic Channel Queries”: eeSiteKit has already added Tag Caching to the dynamic tags that would most benefit from this, and we didn’t see any noticeable improvements using this feature in our test sites. We recommend you turn this off and enjoy the added benefits of “future/expiring/random” entries when you need them. You can turn it off here:

Site Name ›  Admin ›  Channel Administration ›  Global Channel Preferences

Enable GZIP Output: We’ve had good luck using GZIP Output on our sites. You can enable it here:

Site Name ›  Admin ›  System Preferences ›  Output and Debugging Preferences

Template Caching: Template Caching settings are found in the Template Preferences area of Template Management.

Site Name ›  Templates ›  Template Management ›  Preferences (top link in the second (middle) column of the template management screen)

Caching some templates can make pages or parts of pages of your site stick (fail to update dynamically) so you don’t want to use it on every template. The best bet is to try adding a few template caches at a time to see how things go with your specific website design.

We also recommend you wait to add template caching until you’re just about done with your site and in pre-launch or soft-launch. This way none of the caching will interfere with your revisions during site development.

We’ve had good success by enabling caching of the following eeSiteKit templates on most sites:

Template Group kit_display
kit_display/header
kit_display/header_html
kit_display/footer
kit_display/sitemap (only if your site’s navigation does not change often)

Depending on your site, you may also try caching the primary display templates (although we’ve not see much of a performance benefit to doing this on our sites).
kit_display/home
kit_display/landing
kit_display/category
kit_display/single_entry

Template Group kit_system
kit_system/bread_crumbs
kit_system/engine_category_heading
kit_system/engine_channel_heading
kit_system/engine_main_nav_channels *highly recommended*
kit_system/engine_page_titles
kit_system/engine_sub_nav
kit_system/link_tell_a_friend
kit_system/link_print

Template Group kit_css
You may cache all CSS templates in this group, although we highly recommend you wait to do this until you’re done editing the files first.

Template Group kit_forms
You may cache all form templates unless you are using CAPTCHA within a form.

Template Group kit_language
None. We don’t recommend caching any templates in the kit_language group.

Refresh Intervals: We have set ours as low as “10” minutes and as high as one-week “10080” without issue. We have them set to cash for a week in this site.

Dynamic Feature Overload: Every dynamic feature you add to your site has the potential to add additional server workload during dynamic page creation. You may not need every feature eeSiteKit has on every page of your site and you may not need some features at all. We’ve left a few out of this site because we didn’t think the design called for them and we didn’t think you would miss them. Of course, you can run every feature of eeSiteKit all at once (we run them all at demo.eesitekit.com), but you may not need to. Removing, or not adding an un-needed dynamic feature can help you have a cleaner, leaner site with slightly better performance.

Compressing CSS: By default, eeSiteKit installs YAML’s CSS in several separate templates that mirror its own default and external CSS files. We choose to do things this way so that it will be quick and easy for you to remove parts of the CSS if you choose to. Also, if you are new to YAML, this will make it easier to learn. We also believe that once you are familiar with the default CSS templates, having them split up like this will actually speed your development process.

The down side to running the CSS this way is that it increases the number of HTTP requests. To see what we’re talking about, check a few of your favorite websites with this website optimization tool.

What we’ve found is that once we’re done with browser testing, we combine all the InternetExplorer CSS templates into one new template, and all the rest of the CSS templates into a second new template. Then we adjust the paths in kit_display/header_html to point to our two CSS files and this reduces the number of HTTP requests needed for the site.

We also compress our CSS files a bit to make them even lighter. This site’s CSS file is just over 200 lines after we removed the extra spaces. This final step is easily considered by some to be a bit “geeky,” but hey, you might want your site to use that saved 100th of a second for some cool feature right?