Fasterize offers HTTP caching features to serve content more quickly instead of using origin servers and to cache the elements we optimize (which don’t exist on the original site). By default, all static objects are cached.
From the interface, you can:
- Easily add rules to cache other elements, including HTML pages. The regular expressions applied to URLs allow you to cache all of your product pages or all items in just 2 clicks.
- Easily define the cache lifespan for each pages group.
- Exclude certain pages or objects from the cache.
- Automatically segment your cache by incorporating User-Agent categorization in the cache key to ensure that a mobile page and a desktop page can easily co-exist (find out more).
- Cache all versions of your pages (for each country, for each shop, etc.) with a simple cookie configuration (find out more).
Our little extras
As HTTP cache doesn't come close to meeting our needs, we’ve made a few improvements:
- The TCP layer of each of our servers is optimized (initcwnd, tcp_slow_start_after_idle).
- Our caches are memory caches. We’ve developed our own Nginx module that builds on the well-known memcached to serve all cached content.
- Our caches are distributed, but unlike others, there are no replication problems because we use a consistent hashing algorithm. Each object is directed to a single cache node. This ensures that the origin server is much better protected and eliminates the need to refresh to refill the caches!
Fasterize uses SmartCache to cache dynamic pages.
We analyse your pages and identify the dynamic elements using CSS selectors (
div .price for example). The static elements are cached, while the dynamic elements are automatically loaded in JSONP afterwards.
On average, Fasterize’s impact is 42% greater when SmartCache is used, compared to a ‘light’ Fasterized version.
What's the difference compared to ESI?
The principle of SmartCache is very similar to the principle of ESIs. However, there are two aspects that set them apart:
|Page reconstitution||On the cache server||In the browser|
|Implementation||Tags integrated in templates||Dynamic zones identified directly in the Fasterize settings|
And in terms of maintenance, there’s no need to modify templates – everything is configured through Fasterize.
Often, ‘uncachable’ dynamic pages are identical - when customers haven’t put items in their basket on an e-commerce website, for example. This means that the page is identical most of the time, but is identified as ‘uncachable’ and is unnecessarily re-optimized.
Cookieless Cache can be used to distinguish between users that are unknown to the site (without cookies) and users that are known to the site (with cookies).
Our engine caches the pages served to anonymous users so they can then be served from the same cache to subsequent anonymous users. However, users identified via a cookie will receive their (personalized) page from the origin server.
We’ve incorporated simplified cache rule management into Fasterize. In a single click, you can set the amount of time static resources are retained in the cache (on both the Fasterize side and the browser side).
To prevent our engine from unnecessarily optimizing dynamic pages that are often identical, the engine keeps a copy of the optimized page for one minute. This copy is linked to the origin server’s response hash function.
Before each optimization, the engine checks that it hasn’t optimized the page within the last minute. If it has, the engine serves the already optimized version, thus avoiding the need to optimize again. This reduces optimization time by an average of 60ms.