Changelog

Servebolt Optimizer

  • 3.5.47

    This release includes the ability to purge the server as well as the CDN by “purge all caches”.  The former “purge all” button is now named “purge CDN cache”
    When someone clicks on the “Purge All Caches” button it sends a request to the Servebolt API to purge everything known on the server via internal processed, and every domain name on the Environment will be purged at Cloudflare.  It does the internal processing first then the Cloudflare request.This only applies to sites hosted on the new Servebolt Linux 8. Servebolt Linux 7 continues to support purge the CDN. There are other important parts in this release
    • clean up of deprecation errors
    • removal of bad url candidates from purge requests.  If a url contains a blacklisted bit of text, it does not send the url to be purged.  These are strange urls that are being asked to purge, but we would have never had cached them in the first place.
  • 3.5.38

    • Adapted the action scheduler cron script to check active status of WooCommerce per site, not per network.
    • Removed /favicon.ico from fast404 capability.
    •  Updated Servebolt Linux 8 users control panel link from top menu.
  • 3.5.35

    This release has been about improving 404 support. The changes brought both cache header management a overall performance improvements to 404’s. The Fast 404’s are for static files that are not found on disk. Rather than loading all of WordPress, it stops after loading the (mu-)plugins when it comes accross a known static file type and gives the 404 at that point. The cache headers for 404’s are now enabled for an intelligent set of cache headers for each file type, or the choice to disable caching of 404’s altogether. The purge all trigger on save of Permalinks has been added so that if there is change to the permalink structure or that its been re-saved to force rebuilding of the permalinks, the CDN will also reflect these new changes. change overview
    • Confirmed WordPress 6.6.1 support.
    • Added Admin UI elements to manage Caching of 404’s, and fast 404’s reponses for static files
    • Implemented fast 404’s for static files, that give a reponse after either mu_plugins_loaded or plugins_loaded. No extra processing or file sizes.
    • Added purge all trigger to options->permalink_structure
  • 3.5.34

    • Updated composer
    • Fixed php 8 depreciation error on strtolower()
    • Removed PHP 7.3 support, lowest level is now 7.4 which Servebolt supports.
    • Upgraded the Servebolt PHP-SDK
    • Confirmed support for 6.5.3
  • 3.5.33

    Release 3.5.33 is a small release with great benefits.
    • Support for WordPress 6.5.2 confirmed.
    • Added auto healing for environment files where if the cached filepath is incorrect, it is automatically replaced.
    • Bugfix – On some cron based jobs that do not have HTTP_USER_AGENT set, were failing on newer versions of PHP. Added check for ‘HTTP_USER_AGENT’ before trying to use it in part of the prefetching checks.
    • Bugfix – Added additional checks on the strContains() helper function to deal with PHP8 requirements on null values.
    In this release of the Servebolt Optimizer to give two possible error messages that can be tracked in the PHP error log.
    1. Auto healing message
      [Servebolt Optimizer] Is automatically clearing the environment filepath to force an update.

      This happens when the currently known environment file path in the db does not exist within the document root. So when moving from one Bolt to another this will automatically happen as the filepath will be different on each bolt.

    2. 2. Path is correct, file not found message.
      [Servebolt Optimizer] Could not find the environment.[ini,json] file on the path: /path/to/file/environment.json

      Only happens when the file has been deleted.

  • 3.5.32

    Changelog update release, no change to code.
  • 3.5.31

    Bump release to force a version number change
  • 3.5.30

    When on Servebolt the plugin now checks the environement.json file to see if the key `api_url` exists. If its there it will use that, if not it will continue to use the pre-defined url for communication with the Servebolt API.
  • 3.5.29

    This release has a small fix for a ‘hidden’ bug that had implemented. Recently we moved to using the environment_id as the unique identifier, but it is not that, it is not unique.  It is possible to have more than one site on the same environment_id. Thus we moved it to choose between the shortest of:
    • the domain name without dots
    • the environment_id + the bolt_id
    This way it will be the shortest possible unique id given the information we have.
  • 3.5.28

    Found extra typo and replaced ‘sb_optimizer_cach_tags_fine_grain_control’ to be ‘sb_optimizer_cache_tags_fine_grain_control’
  • 3.5.27

    Very small release with no change to the way that the codebase works.
    • fixed typo in ‘sb_optimizer_cach_tags_fine_grain_control’ to be ‘sb_optimizer_cache_tags_fine_grain_control’
    • added new brand icon
    • added copy text for Servebolt CDN
  • 3.5.26

    overview of change
    • added filter ‘sb_optimizer_cach_tags_fine_grain_control’ that when set to false will use a single tag for all HTML and RSS
    • converted cachetags from a human readable format to a machine readable format to reduce header size
    • added new branding logo
    • forcing a cache purge all on update of this version of the plugin to move sites to the to new CacheTags schema
    The big change here is that we have moved from a human readable cache tags schema to a machine readable one. going from this style: [domain name with dots removed]-[the label used to define the cache part]-[the id of that item]-[when multi-site add blog id] to this style: [environment.json id]-[the const value of the label]-[the id of that item]-[when multi-site add blog id] Which means for an average blog page the cache tags change from something like this: thesitecom-author-1-1,thesitecom-term-6-1,thesitecom-term-43-1,thesitecom-date-06-3-2023-1,thesitecom-year-2023-1,thesitecom-month-3-1,thesitecom-posttype-post-1 to: 17912-11-1-1,17912-20-6-1,17912-20-43-1,17912-12-06-3-2023-1,17912-14-2023-1,17912-13-3-1,17912-10-post-1 important: the plugin automatically forces a cache purge when it gets updated. This is so that the cache tags schema is updated through the site.
  • Servebolt Optimizer 3.5.25

    This release was mainly about getting the Servebolt Optimizer plugin to work with our new NextGen Linux servers. This means an alternative set of paths are needed for the common things like Error Log location & environment.json file location.

    Changelog

    • Allows for NextGen servers to be supported for reading Servebolt Environment files and obtaining the site id from the path.
    • Using hook set_object_terms, so that it checks if default_category is used on first save of a post, and if its is being replace with newer terms on first publish.
    • Tested on WordPress upto 6.4.1
    • Fixed bug in cache by term id, now uses CacheTags whenever possible.
    • Added check for Image sizes on Accellerated Domains image resizer so that it can never have a zero value.
  • Servebolt Optimizer v3.5.24

    Updated to support WP 6.3.1

    fixed small bug for fresh installs where the save button disappeared from the advanced settings page.

  • Servebolt Optimizer 3.5.23

    Changes

    • 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.22

    This is just a bump release. See the changelog for 3.5.21 for the most recent change.

  • 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.17

    bump release to make sure that WordPress.org was updated.

  • 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.

    Overview

    • 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.14

    Version bump after failed release to wordpress.org. This version bump will force the release to happen. No code change

  • 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.

    Features

    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!

    Bugfixes

    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.

    Enhancements

    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”.

    Bugfixes

    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.

  • Servebolt Optimizer 3.1

    We updated our Servebolt Optimizer plugin to include our Image Resize add-on for Accelerated Domains and some additional features.

    • Accelerated Domains Image Resizing – This version introduces a new feature: Accelerated Domains Image Resizing. This feature will resize, optimize metadata, and cache your images on the fly. Improving load time and enhancing the user experience.
    • PHP version constraint – We have changed the required PHP version from 7 to 7.3. This means that whenever the plugin is activated in an environment running less than PHP version 7.3, the plugin will show an admin notice in WP Admin indicating the need to upgrade to be able to used the plugin.
    • Yoast SEO Premium – automatic cache purge for redirects. Whenever you add or remove a redirect in Yoast SEO Premium, the plugin will now purge the cache for the given URLs. This is useful since otherwise one would potentially need to manually purge these URLs after adding or removing a redirect.
    • Added CDN cache control header – We have now added a new header (CDN-Cache-Control) that allows for more fine grained control over the cache feature in the CDN-nodes.
    • Improved WP Rocket compatibility – We’ve improved the compatibility with WP Rocket’s cache feature so that it will not interfere with the cache feature of Servebolt Optimizer.
  • Servebolt Optimizer v3.0.1


    Fixed issue with post exception in cache headers

    The feature to exclude posts from cache was broken due to wrong order in conditions in the cache header logic. This is now fixed.


    Removed priority-attribute from plugin static asset actions

    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.


    Resolved issue with single file composer packages not being included in autoloader

    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 http_build_query and getallheaders which means that this was only an issue in environment where these functions were not available in PHP.

  • Servebolt Optimizer version 3.0.0

    Servebolt Optimizer v3.0.0 includes a total rebuild of the plugin, support for Accelerated Domains, improved cache purging and more.

    Version 3.0.0 is a major rewrite of Servebolt Optimizer and we highly recommend you testing this update on staging before you update in on production.

    (more…)