Make FacetWP-powered pages load quicker by caching FacetWP-specific ajax requests.

The FacetWP Caching add-on compliments other caching plugins. They can be used side-by-side because most caching plugins intentionally ignore ajax requests. For example, WP Rocket and the FacetWP Caching add-on can be used together without a problem (if you make sure some specific WP Rocket settings are in place).


Simply activate the plugin. Starting in version 1.5.0, plugin will automatically symlink db.php into the /wp-content/ folder.

Setting the expiration

By default, the cache will expire after 1 hour (3600 seconds). You can adjust the expiration with the following filter:

function my_cache_lifetime( $seconds ) {
    return 86400; // one day
add_filter( 'facetwp_cache_lifetime', 'my_cache_lifetime' );

Page-specific expiration

You can also set custom expirations for specific pages:

function my_cache_lifetime( $seconds, $params ) {
    if ( 'products' == $params['uri'] ) { //
        $seconds = 1800;
    return $seconds;
add_filter( 'facetwp_cache_lifetime', 'my_cache_lifetime', 10, 2 );

Clearing the cache

When logged in and viewing your front-facing page, you’ll see a FWP menu in the black admin bar.

clearing the cache

Clearing the cache (via code)

FWP_Cache()->cleanup(); // clear expired cache

FWP_Cache()->cleanup( 'all' ); // clear everything

FWP_Cache()->cleanup( 'demo/cars' ); // clear the "/demo/cars/" page



  • Fixed when clearing cache within `wp-admin`, preserve existing query args on redirect


  • Fixed require FacetWP 3.8 (cache raw JSON requests)


  • Improved switched to `wp_schedule_single_event` for better cron handling


  • Improved automatically symlink db.php
  • Improved automatically clear the cache on deactivation


  • Improved support multisite (props Mark Chouinard)