Servebolt Optimizer 3.5.23


  • Small text changes in WP Cron configuration area.
  • Adapted links to include a link to the advanced tab for enabling or disabling cron.
  • Cron enabled checkbox also takes account of the DISABLE_WP_CRON constant, not just the option.
  • proven support for WP 6.3

Servebolt Optmizer v3.5.21

The release performs 1 specific task, which only helps accelerated domains customers.

What it does is add a Cache-Tag header “search” for search results so that they can be purged when there is a content update. This only works for Accelerated Domains purging, where as Servebolt CDN does not allow for caching of the search.

In the short term we’ll be adding support for this into the ACD worker, so that search results can be cached until there are any changed on the site. Important to note its a “can” and not the default setting.   There will be documentation how to do this when we update the Worker.

Servebolt Optimizer v3.5.20

the only change is how the add_submenu_page() commands are used.

They went from being

add_submenu_page(null, null, null,

to being

add_submenu_page('options.php', null, null,

This was a problem as in some cases, when running PHP8.0+ it would give PHP Deprecated

  1. when WP_DEBUG was set to TRUE it would show this error in the logs on every page load.
  2. when Query Monitor was installed. 

The page /wp-admin/options.php is a hidden admin page that shows all the things in the options table.  By using this, rather than null, it satisfied the php requirements while also not showing the submenu pages in the admin menu.

It should be noted that /wp-admin/options.php does give the ability to make destructive change, so be careful if you ever go to this page!

Servebolt Optimizer v3.5.19

There was no code change in this version of Servebolt Optimizer, it was updated to show that it has full compatibility with WordPress 6.2
It should noted that Servebolt Optimizer is constantly tested against the next generation version of WordPress via the nightly builds, long before it is release as the next version.

Servebolt Optimizer v3.5.18

There was a small bug in the deployment of 3.5.17 where it offered the option to clear page caches by Tag/Category/Taxonomy Term when using Servebolt CDN. This is not possible with Servebolt CDN as it cache purges via the CacheTag HTML, thus purges the cache on every HTML page in one go.

The links and buttons that gave the extra unusable options have been removed.

Servebolt Optimizer v3.5.16

This release of Servbolt Optimizer came in co-ordination with the enabling of HTML caching on Servebolt CDN

The additions were.

  • Added CacheTags to Servebolt CDN
  • Added HTML cache purging to Servebolt CDN

Servebolt Optimizer 3.5.15

After considerable testing with a site with other 50k posts on it, we have proved that the problem with the Purge Queue is now fixed. It was previously giving errors from CRON.

In addition we also added a new filter to the system to allow for headers to be adapted programmatically.


  • Bugfix for purge queue on large sites. It was giving CRON errors.
  • Added filter to allow for adaption of headers on Full Page Caching.

Changelog 3.5.13

Its for sites that are using both Cloudflare CDN of their own plus using the batch queue processing. This was fixed and human tested on a “Free Cloudflare” account.

The fix was to check for the $url that was processed and see if it was in an array or in a string, if it was in an array, convert to a string.

Servebolt Optimizer 3.5.12

Very simple change to remove the get variable ?ip=1 from websites that were not running Instantpage.
The ?ip=1 is added to cart and checkout urls to prevent them from being prefetched via instantpage.

If a site owner still wants to prevent this string being added to cart and checkout urls they can use the following filter to remove them

// add to funcitons.php

add_filter('sb_optimizer_woocommerce_instantpage_urls', '__return_false');

Servebolt Optimizer 3.5.11

The main change in 3.5.11 is the inclusion of CacheTags for ACD

  • Added scheduled cleanup of expired transients.
  • Added method to stop WooCommerce carts from ever being prefetched by InstantPage.
  • Removed APO capability due to it being only possible now with the cloudflare plugin.
  • Added CacheTag headers to Accelerated Domains reducing purge commands to only 2 for each post/page update and their related archives, taxonomy terms and feeds.
  • Implemented CacheTag purging for Accelerated Domains.
  • Added CacheTag headers to Servebolt CDN for later use in purging.
  • Added new garbage collection for the purge queue via cron scheduler.
  • Added UID column and UID index to the purge queue tables so that searching for existing queue items could be significantly speed up and also stop repeat adding of an existing
  • Added wp servebolt check-cdn-setup to the WP-CLI to check the CDN setup for Accelerated Domains or Servebolt CDN.
  • Added wp servebolt cache purge queue trash to the WP-CLI to purge old items from the queue
  • Changed Database Migrations to work with own version control, unlinking from the plugin version number.
  • Added LIMIT to garbage collection query.
  • Slight change to the logic for cache purging to improve payload checking.
  • Moved action_scheduler filters to only be implemented if action_scheduler is installed.
  • Fixed a bug in the WP Rocket compatibility.
  • Fixed a few typo’s.
  • Fixed PHP deprecated messages.
  • Added existence checking of API error messages.
  • Fixed cache headers errors on RSS feeds.

Servebolt Optimizer v3.5.10

Two adaptions were made in 3.5.10

  • There was a limit added to the exist garbage collection of 1000 row to prevent it trying to do too many things at once
  • The adaptions added for the action_scheduler are now only accessible if action scheduler is actually installed. They are both filters so would not have made a difference to the total processing, but it is still a little cleaner

Servebolt Optimizer v3.5.9

The latest version of Sevebolt Optimizer has two small but very useful additions

  • Feature – Added “Error Log” to to the admin bar menu (for Administrators only)
  • Bug Fix/Improvement – Added a check for REQUEST_METHOD before trying to use it to prevent log errors if the that array element has been removed from $_SERVER

Servebolt Optimizer v3.5.8

We’re released a new version of the servebolt optimizer plugin, this is only a bugfix version with no new features.

Bugfix – Clear all caches from Menu Cache

There was a problem with previous release where it was not deleting the transients that are saved when the system finds a 404 page when Menu Caching was enabled.

This means that there are possibly many thousands to references saved in the wp_options table, and each one saved for 1 year before being automatically removed.

The purge command to remove Servebolt Optimizer transients was adapted to include all type of caching that being saved.

The purge option is run when Menu Caching is disabled, or when the “Clear Menu Cache” button in the admin screen (Servebolt –> Performance Optimizer –> Menu Optimizer)

Servebolt Optimizer version 3.5.4

We’ve released a new version of our WordPress plugin Servebolt Optimizer. It contains some bug fixes. Read below for a more in depth description of what was fixed/improved.

Bugfix – Removed menu manifest file option from Prefetch-feature (Servebolt customer only)

Due to some difficulties with making the menu manifest file work in the Prefetch-feature it was decided to remove it until further notice. The script and style file manifest files will persist as before.

Bugfix – Resolved issue with the cache purge features in row actions for taxonomies/post types

The plugin adds purge cache-link in the row actions for posts and terms. We previously targeted all registered post types and taxonomies, but this is now changed to only target public post types and terms. The targeted post types and terms can also be controlled through filters (sb_optimizer_cache_purge_row_action_post_types, sb_optimizer_cache_purge_row_action_post_types_query, sb_optimizer_cache_purge_row_action_taxonomies, sb_optimizer_cache_purge_row_action_taxonomies_query).

Bugfix – Automatic cache purge of products during WooCommerce checkout

In some cases there was an error during the WooCommerce checkout. The feature in question purged cache for the product during checkout so that stock amount and status would be kept up to date. This error should now be resolved.

Bugfix – Automatic setup of WP Cron on multisite failed (Servebolt customer only)

The feature that sets the WP Cron up with the UNIX cron failed when ran on a multisite. This should now be fixed. The cause of the error was that the lockfiles we’re not generated with a valid filename. These lockfiles (originating from “flock”) keeps the system from running concurrent cron tasks, so that we force the system to wait until the previous job is done. Note that this is a Servebolt hosted only feature.

Bugfix – Error during plugin uninstallation

There was an error during plugin uninstallation due to a missing PHP constant. This is now fixed.

Bugfix – Errors when environment file is not present (Servebolt customer only)

There was some error related to the environment file not being found, either because there is a custom WordPress folder structure or because the file is removed (either by deletion on disk or by disabling the file in the control panel). The plugin now handles the absence of this file in a better way – the error handling was improved and there is an admin notice telling the user that the file is missing + instructions on how to fix this.

Servebolt Optimizer version 3.5

We’ve released Servebolt Optimizer version 3.5. It introduces new features as well as bugfixes.


Clear site data on login

In v3.5 a new feature was added – every time a user logs in then we return a header telling the browser to clear local storage and browser cache. This is useful to ensure that cached content gets cleared for logged in users.

Support for Servebolt CDN

The plugin now supports Servebolt CDN.

Cache purging when Accelerated Domains is disabled

We have added a feature to purge all cache even when Accelerated Domains is disabled. This is useful when deactivating Accelerated Domains and doing a proper “cleaning up” by clearing all cache.

Automatic WordPress Cron setup (including Action Scheduler) (Servebolt-clients only)

We have added a feature to automatically set up the WordPress Cron so that it runs using the UNIX cron. This offloads WordPress from having to trigger scheduled tasks as well as making the process of setting it up a lot easier. Note that this feature also sets up the Action Scheduler (used by WooCommerce and other plugins) to be run using the UNIX cron.

Purge all network feature

We’ve now added a feature to purge all cache for all sites in a multisite-network. You can find it in the dropdown in the top bar in WordPress Admin.

Beta feature

Accelerated Domains Prefetching

We’ve added a new feature for users of Accelerated Domains – Prefetching of assets and menu items. This feature allows for our infrastructure to preliminary fetch the assets of a webpage and cache them in our infrastructure which results in reduction of load time. Another feature is that menu items gets prefetched as well, meaning that when you navigate to a subpage it has already been cached and is ready to be served in no time!


WooCommerce product immediate cache purge on checkout

Whenever a user checks out in WooCommerce then the cache for the products in the cart will be purged. For many users this means using the queue to purge the cache of these products, but in the case of WooCommerce checkouts we now purge cache immediately regardless of whether they have the queue based cache purge active or not.

WooCommerce product simple cache purge on checkout

Whenever a user checks out in WooCommerce then the cache for the products in the cart will be purged. Due to how we purge cache a whole range of URLs might be included in the cache purging. This is because a post/page/product might be visible on the front page, in archives etc. and thus we include the front page URL, archive URL in the cache purge actions. But in the context of WooCommerce checkout and WooCommerce product we decided that a simple cache purge will suffice – this meaning that we only purge cache for the product URL, not the front page URL or any other related URL.

WP Admin markup error

The styling for the information panel used in for example the cache settings page was broken in WordPress v5.9, but this is now fixed.

Menu optimizer

We saw that the menu optimizer feature was incompatible with some WordPress-themes. The feature was therefore refactored and should now be better suited to work with most WordPress-themes.

Improved cache purge queue feature

We’ve improved the cleanup of the cache purge queue to prevent the queu from growing too big. This is done by removing all completed queue items as well as removing failed queue items that are older than 1 month.

Accelerated Domains Image Resize can only be enabled when site has access

Previously a Servebolt-client was able to enable Accelerated Domains Image Resizing even when the client did not have access to it (based on their subscription). We’ve now added a check so only eligible clients can enable the feature. Note that enabling the feature while not having access to it will result in the feature not being active. The subscription needs to be in place for the feature to work. This “bugfix” only fixes the GUI so that we communicate better to the client whether they have access or not.

Servebolt Optimizer v3.3

We’ve released version 3.3 of the Servebolt Optimizer for WordPress plugin. It introduces a couple of feature improvements and a number of bugfixes.


Cache purge queue origin metadata

Whenever an item is added to the cache purge queue, we now also add the origin of this event. For example a manual cache purge, or an automatic cache purge on content update etc.

Simplified cache purge

During cache purge we previously purged related URLs for a WP object (posts, terms etc.). Related URLs could be the front-page, archives etc. In some cases this caused large amounts of URLs to be purged cache for even when not needed. We have simplified cache purge in some cases – like for example during checkout in WooCommerce.

Changed name of menu cache feature

Due to confusion between Cloudflare/Accelerated Domains-cache and the menu cache feature we changed the name said feature to “Menu Optimizer”.


Bugfix – WP admin bar markup error

Fixed minor markup error in the WP admin bar dropdown menu. An obsolete “target”-attribute was added to the parent div element which is invalid.

Bugfix – menu cache feature issue with filters

Whenever a 3rd party adds a menu using the filter wp_nav_menu_args, we could not cache the result due to how we interact using WordPress filters. This should now be fixed.

Bugfix – menu cache feature producing excessive amount of transient rows

The menu cache feature produced too many transients due to the way the transient key (a.k.a. cache key) was generated. Solved by making the transient key less complicated and by adding a filter so that 3rd parties can modify the cache behaviour instead.

Improved cache purging for the menu cache feature

Whenever a menu is assigned to a menu location we now purge cache for the previously assigned menu. This process prevents orphaned transient rows and help prevent the options table from getting bloated.

Bugfix – Migration error on plugin activation/deactivation in CLI-context

Whenever the plugin was activated or deactivated there was, in some cases, an error due to the database migration not being ran correctly. This should now be solved.

Bugfix – Fixed broken Cloudflare API credentials validation in form

Whenever Cloudflare was selected as cache provider in the cache purge configuration form the validation did not function. This is now fixed.

Bugfix – Fixed unhandled exceptions

Due to missing namespace, some exceptions went unhandled which again caused fatal errors in some cases. This is now fixed.

Bugfix – Could not determine if in Servebolt hosting environment from Cron-trigged CLI context

Due to absence of server variables, the system could not determine whether the code was executing in a Servebolt server environment when it was ran in CLI-context trigged by Cron. This is now fixed.