Caching Exclusions

To fully configure the extension for your store so that caching can function, you need to enable the loading of dynamic content, you can also disable caching entirely for certain parts of your site by URL. You will probably want to disable caching by URL for things like the customer login area, the cart page and the checkout process - basically anywhere where pages have more dynamic, user specific content than static content the same for all users.

So before you enable Evolved Caching through the normal configuration, you will need to browse your site to find full pages, and blocks that you don't want to be cached. For full pages just note the full or partial URL of the page (excluding the domain). On page load the extension compares the current URL with the excluded URL's you enter and if there is a match, caching is bypassed. So if you for instance entered customer as an excluded URL, this would exclude caching for various sections of the customer login area.

Let's do that now. Log into admin and under System → Cache Management disable and clear all caching. We'll enable it again later, this just saves potential caching issues causing confusion when configuring the extension. Now we can view the frontend to find blocks, and pages we want to exclude from caching. Evolved Caching makes this easy via a helper argument you can append to any frontend URL to show the names of the blocks that are rendered on that page.

Information

Evolved Caching uses three different helper URL arguments, ?shownames, ?disabled and ?evolved.

?shownames - displays block names you can add into the excluded blocks section of admin.

?evolved - displays error messages if the cached page cannot be loaded, or if it loads fine it will show you which areas of the page have been loaded as dynamic content.

?disabled - disables full page caching for the request.

Append ?shownames to the URL of any frontend page and you will see blocks are now named and outlined in red.

Browse the various areas of your site and note down the names of all of the blocks you want to exclude from caching. A common collection of block names might include some or all of the following:

  • top.links
  • messages
  • global_messages
  • wishlist_sidebar
  • catalog.compare.sidebar
  • right.reports.product.viewed
  • right.reports.product.compared
  • right.poll
  • catalog.product.related
  • product_compare

As well as collecting block names you will also want to collect partial or complete URL's to exclude from caching. You might want to include some or all of the following, and you must also add to the list any URL's for external payment processors you may use (i.e. such as PayPal):

  • checkout
  • customer
  • sales
  • wishlist
  • compare
  • newsletter
  • catalogsearch
  • tag
  • paypal
  • api
  • currency
Note You can exclude any block or page, the above is just designed to give you a few ideas. Custom content can also be excluded in exactly the same way as any other block, no special treatment is required.

When you have collected all the block names and pages you want to exclude you can configure Evolved Caching in admin. In the backend navigate to System → Configuration → Evolved Caching (if you can't access the page you probably need to log out and back in to admin). Under the Caching Exclusions section add in the Excluded Blocks and Excluded Pages you collected. Both should be added as a comma separated list.

Information If you have a multi store setup you can set different page and URL exclusions per store by changing the configuration scope. All Evolved Caching options which apply to the front end can be configured in this way, while backend only options such as automatic cache clearing and warming are global.

Version 1.7.0 of Evolved Caching now adds the ability to define holding HTML to be displayed as soon as the page loads, while dynamic content is being collected from the server. When entering block names you will have the opportunity of setting this holding HTML for each block you define. If you do not set any holding HTML then behaviour remains the same with the area to be occupied by dynamic content being empty until the dynamic content has been added. With holding HTML defined however, there will no longer be any fade/slide effects, instead the dynamic content will simply directly replace the holding HTML. Depending on what blocks you are excluding, holding HTML can result in less of an impact on the layout when populating the page with dynamic content. It is also possible to define holding HTML in the same way for the dynamic options at the bottom of this section.

Under Excluded Pages version 1.6.7 adds a new option, Ignored URL Arguments. You can enter in here any URL arguments you would like Evolved Caching to ignore when making a decision on whether not to create a new cached page. These arguments may for instance be tracking variables you use on certain landing pages which unless ignored will cause a separate cached page to be created, even though the page content is identical to an existing cached page. Ignoring this argument means the same cached page will the be served regardless of the presence of any tracking variables in the URL. So if you had for instance a URL argument of ?argument=value, you would add argument here to ignore it.

Below Ignored URL Arguments versions 1.2.0, 1.3.7 and 1.3.8 add six new options:

  • Dynamic Category Prices
  • Dynamic Category Reviews
  • Dynamic Category Stock Status
  • Dynamic Product Reviews
  • Dynamic Product Tier Pricing
  • Dynamic Welcome Message

The reason for the inclusion of these extra options is due to the way the category, and some elements on product pages are rendered. Also the welcome message in the header is not contained in it's own block by default, and with the inclusion of persistent customer functionality, cannot be moved into it's own block as simply as other content. Category page prices, review summaries, add to cart buttons and the product page review summary are also all not rendered inside a block and so cannot be added to the list of Excluded Blocks. This means that if you have say a complex pricing structure based on customer groups, have review summaries showing on category and product pages, or manage stock with products sometimes showing as out of stock as they sell out, changes in any of these areas would otherwise not be correctly reflected on the cached category or product page.

So if any of these scenarios match your store setup, just turn on the relevant option(s) to allow dynamic updating of category and product pages, and the header welcome message. It's worth noting that these options also cater for the search results page, the product edit page and the product reviews page.

For detailed information on customising the behaviour of these dynamic options, see the developer resources section of the guide.

From version 1.8.4, pages are now automatically re-cached when placing an order on the frontend or through admin. The same is also true when cancelling an order or creating a credit memo in admin. With this addition, most stores won't any longer need to enable Dynamic Category Stock Status if they are using stock management.