It's a well-known fact that a web site's speed and responsiveness have a significant impact on its user experience. Poor site performance can cause both new and veteran users to become frustrated, and the competition is always just a click away.
Incapsula supports several performance-boosting features which are fully configurable, so that you can fine-tune your site's performance according to your specific needs.
Incapsula's performance-related features include the following:
- A caching mode that determines an overall caching policy
- Advanced caching rules for specific resources
- File compression and minification
- TCP connection management
- Advanced settings
Some Performance features are only available within paid plans. We recommend that free users upgrade their plan in order to enjoy the full benefits of performance enhancement.
Features that are limited to paid plans are marked with (Paid Plans Only).
To access Performance settings, log in to your account on the Incapsula site, click the settings tab, and then click the Performance option in the left-hand menu. After any change to settings, click the button on the top-right.
Incapsula maintains a global Content Delivery Network (CDN). This is a large set of globally distributed data centers (also known as Points of Presence or PoPs) providing high availability and optimizing performance and user experience. The following configuration options allow you to determine how your site's content is cached and refreshed.
The following caching modes are supported:
|Disable Caching||No caching is performed and all requested content is retrieved from your origin web server.|
Only content that was marked by the site's developer / web server as static using standard HTTP headers is cached.
|Static + Dynamic||
In addition to content that was marked by the site's developer / web server as static using standard HTTP headers, Incapsula also profiles other resource to identify and cache static content that was not marked as so. The time period (in minutes, hours, days or weeks) that you set for this option determines how often the cache is refreshed.
Note: This option does not cache personalized or dynamic content.
|Aggressive||All site content is cached. The time period (in minutes, hours, days or weeks) that you set for this option determines how often the cache is refreshed (TTL).|
You may be familiar with an older version of this feature called Acceleration Mode, which was previously found under General Settings. The possible modes were:
Purging the Cache
Purging the Entire Cache
After a major change to your website, such as a version update, you may want to clear all resources in the cache immediately, without waiting for the caching period to expire.
You can purge the entire cache, or purge a subset of the site's cached resources.
To purge the entire cache:
In the Caching Mode section, click Purge Cache. All cached resources for the site will be purged.
To purge specific resources from the cache:
In the Caching Mode section, click Purge Specific Resource. The following displays:
- Select one of the URL rule options (URL is, URL contains, URL starts with or URL ends with).
- In the field on the right, do one of the following:
- For the URL is rule, enter a complete URL, such as /intro/settings/logo.png
- For one of the other rules, enter a specific URL string that will be matched as a prefix, midfix or suffix of the URL, depending on the rule.
- Click the Purge button.
Advanced Caching Rules (Paid Plans Only)
Advanced caching rules let you define specific exceptions to the caching rules that are set by the overall Caching Mode rules (described above). You can define specific URLs or a group of URLs which should always be cached or should never be cached.
A caching rule contains a URL string-matching directive (the leftmost field shown above) and a string to match (the second leftmost field shown above).
The following table summarizes the types of advanced caching rules:
|String-Matching Rule||String Example||Matches||Doesn't Match|
|URL is||/images||/images||/images/background /home|
|URL is not||/images||/images/background /home||/images|
|URL starts with||/images||/images/background /home||/home|
|URL ends with||jpeg||/image.jpeg /home/logo.jpeg||/image.png /home|
|URL contains||/background/||/images/background/image.jpeg /css/background/main.css||/images/background|
|URL does not contain||/background/||/images/background||/images/background/image.jpeg /css/background/main.css|
Note: If there is a conflict between the caching durations defined in the Caching Mode and in the Advanced Caching Rules, the longer period of the two is applied. The same goes for a conflict between the caching rule of a certain resource and one of its sub-resources.
The next group of settings controls options for timing of the cache refresh, content compression and TCP connection management.
Once a certain resource caching period expires, the cache will be refreshed upon the subsequent request for this resource. There are two ways in which a resource cache can be refreshed:
- If the Async Validation option is checked, the first request after the cache period expires will cause the resource to be retrieved from the cache with no delay and the cache will be refreshed asynchronously.
- If the Async Validation option is not checked, the first request after the cache period expires will trigger a refresh of the cache and the request will be delayed until the resource cache has been refreshed.
Image Compression (Paid Plans Only)
Image compression can only be applied to cached images and therefore this option is disabled when caching is disabled. Image compression can be applied to JPEG and PNG images. Compression makes the files smaller and therefore reduces their access time. Check each of the image types you wish to compress.
When compression is enabled, image meta-data is omitted with no impact on quality, and the image data is compressed, which in certain cases may affect quality.
In the case of JPEG compression, there are two possible modes you can choose:
- Progressive Image Rendering – the image is rendered with progressively finer resolution, potentially causing a "pixelated" effect until the final image is rendered with no loss of quality. This option reduces page lead times and allows images to load after the page is rendered.
- Aggressive Compression – a more aggressive method of compression is applied with the goal of minimizing the image file size, possibly impacting the final quality of the image displayed.
TCP Pre-Pooling (Paid Plans Only)
By default, a web session may open and close many TCP connections dynamically throughout the session, causing a certain overhead and reducing performance. When the TCP Pre-Pooling option is enabled, it attempts to maintain several TCP connections constantly open throughout the session, thereby improving performance. Not all web sites support this behavior, so it will be applied only when possible.
Handling Cache-Related Headers
Cache Headers allows us to ensure certain HTTP headers that are required by the customer's systems is not dropped when traffic is going through Incapsula.
The following options allow you to control HTTP features that may interfere with Incapsula's caching behavior, thereby reducing performance. These are triggered by HTTP request and response headers that instruct the web server or client not to cache certain content. These headers are often used incorrectly and unnecessarily, and therefore Incapsula allows you to override them.
Because the use of these headers is often due to misconfiguration of web applications, the default behavior is to ignore them, but you can change this behavior using the setting below.
Comply with "no-cache" and "max-age"
When the Comply with no-cache and max-age option is checked, these cache directives are considered; otherwise they are dynamically profiled by Incapsula and re-configured to optimize performance (which is the default behavior).
no-cache is a directive in the HTTP Cache-Control request header that instructs web proxies not to return cached content without first checking with the server to see if the content has changed.
max-age is a directive in the HTTP Cache-Control request header that instructs web proxies not to return content that is over a certain expiration age.
Comply with "Vary"
Vary is an HTTP response header that indicates how to match future request headers to decide if a cached response can be used.
By default, the Vary header is ignored. When the Comply with Vary option is selected, the Vary header is taken into account.
Note: Accept-Encoding is ignored. All other Vary headers are accepted.
Use shortest caching duration in case of conflicts
Usually when there is a duration conflict between caching rules or modes the longest duration is used. When this box is checked Incapsula will use the shortest duration in case of conflict.
Prefer 'last modified' over eTag
When this box is checked Incapsula will prefer using ‘Last Modified’ values (if available) over eTag values (recommended on multi-server setups).
When this box is checked content will only be cached on the Incapsula proxies and not on client browsers.
Also cache 3xx responses
When this option is checked Incapsula will cache 301, 302, 303, 307, and 308 response headers containing the target URI. 3xx caching can only be triggered through HTTP response headers or caching rules.
Caching HTTPS traffic
When Incapsula caching mode is set to Static + Dynamic, the default caching behavior for HTTPS is as follows:
- Resources that include explicit caching directives against caching, as defined in the resources themselves using the Cache-Controlor Expires HTTP headers, are not cached.
- HTML files are not cached.
- Asynchronous validation is not used.
Caution: If you override this default behavior by setting an explicit Advanced Caching Rule for the site to cache HTML files, you can introduce the risk of returning HTML resources that contain personal information, such as PII, ePHI, and PAN data.
For more information: Content Caching