Updated to support WP 6.3.1
fixed small bug for fresh installs where the save button disappeared from the advanced settings page.
This is just a bump release. See the changelog for 3.5.21 for the most recent change.
the only change is how the add_submenu_page() commands are used.
They went from being
add_submenu_page(null, null, null,
add_submenu_page('options.php', null, null,
This was a problem as in some cases, when running PHP8.0+ it would give PHP Deprecated
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!
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.
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.
bump release to make sure that WordPress.org was updated.
This release of Servbolt Optimizer came in co-ordination with the enabling of HTML caching on Servebolt CDN
The additions were.
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.
Version bump after failed release to wordpress.org. This version bump will force the release to happen. No code change
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.
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
The main change in 3.5.11 is the inclusion of
CacheTags for ACD
CacheTag headers to Accelerated Domains reducing purge commands to only 2 for each post/page update and their related archives, taxonomy terms and feeds.
CacheTag purging for Accelerated Domains.
CacheTag headers to Servebolt CDN for later use in purging.
wp servebolt check-cdn-setup to the WP-CLI to check the CDN setup for Accelerated Domains or Servebolt CDN.
wp servebolt cache purge queue trash to the WP-CLI to purge old items from the queue
action_scheduler filters to only be implemented if
action_scheduler is installed.
Two adaptions were made in 3.5.10
The latest version of Sevebolt Optimizer has two small but very useful additions
We’re released a new version of the servebolt optimizer plugin, this is only a bugfix version with no new features.
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)
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.
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.
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 (
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.
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.
There was an error during plugin uninstallation due to a missing PHP constant. This is now fixed.
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.
We’ve released Servebolt Optimizer version 3.5. It introduces new features as well as bugfixes.
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.
The plugin now supports Servebolt CDN.
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.
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.
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.
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!
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.
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.
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.
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.
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.
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.
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.
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.
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.
Due to confusion between Cloudflare/Accelerated Domains-cache and the menu cache feature we changed the name said feature to “Menu Optimizer”.
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.
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.
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.
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.
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.
Whenever Cloudflare was selected as cache provider in the cache purge configuration form the validation did not function. This is now fixed.
Due to missing namespace, some exceptions went unhandled which again caused fatal errors in some cases. This is now fixed.
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.
The feature to exclude posts from cache was broken due to wrong order in conditions in the cache header logic. This is now fixed.
Due to cases of incompatibility between themes and other plugins we removed the priority-attribute from the actions that enqueued the plugins static assets. This means that the priority-attribute falls back to the default value of 10 which should be less likely to cause issue.
Certain packages were not included in the Composer autoloader due to an issue in Mozart (which was needed to resolve conflicts between composer packages used in WordPress plugins). The packages originated as dependencies of the Servebolt PHP SDK, and was solved by specifically including them in the plugins composer-file. The affected packages contained polyfills for the PHP functions
getallheaders which means that this was only an issue in environment where these functions were not available in PHP.