PluginProbe
WP-Optimize – Cache, Compress images, Minify & Clean database to boost page speed & performance / 4.7.0
WP-Optimize – Cache, Compress images, Minify & Clean database to boost page speed & performance v4.7.0
4.7.0 4.6.1 4.6.0 4.5.5 4.5.4 4.5.3 4.5.2 3.2.20 3.2.21 3.2.22 3.2.3 3.2.5 3.2.6 3.2.7 3.2.9 3.3.0 3.3.1 3.3.2 3.4.0 3.4.1 3.4.2 3.5.0 3.6.0 3.7.0 3.7.1 All 111 releases
← All changes | readme.txt +495 -944 3.2.5 → 4.7.0 View file →
@@ -1,115 +1,141 @@
1 -=== WP-Optimize - Cache, Clean, Compress. ===
2 -Contributors: DavidAnderson, ruhanirabin, DNutbourne, aporter, snightingale, lumberhack
1 +=== WP-Optimize – Cache, Compress images, Minify & Clean database to boost page speed & performance ===
2 +Contributors: DavidAnderson, ruhanirabin, DNutbourne, aporter, snightingale, lumberhack, webulous
3 3 Donate link: https://david.dw-perspective.org.uk/donate
4 -Tags: cache, minify, database, image optimize, performance, clean, spam, speed, caching, smush, smushing
5 -Requires PHP: 5.6
6 -Requires at least: 4.5
7 -Tested up to: 6.0
8 -Stable tag: 3.2.5
4 +Tags: cache, caching, image cache, minify, performance cache, page speed, image optimizer, compress images, optimize database, clean database
5 +Requires PHP: 7.2
6 +Requires at least: 4.9
7 +Tested up to: 7.1
8 +Stable tag: 4.7.0
9 9 License: GPLv2+
10 10 License URI: https://www.gnu.org/licenses/gpl-2.0.html
11 11
12 -Boost your site's speed and performance through caching. Clean the database, compress images and cache your site for higher speed & SEO.
12 +Get caching and more with this powerful cache plugin. Cache, optimize images, clean your database and minify for maximum performance.
13 13
14 14 == Description ==
15 15
16 -WP-Optimize Cache is a revolutionary, all-in-one WordPress performance plugin that caches your site, cleans your database, compresses your images.
16 +MORE THAN A CACHING PLUGIN
17 17
18 -Our cache feature is built around the world’s fastest caching engine. This simple, popular and highly effective tool has everything you need to keep your website fast and thoroughly optimized!
18 +<strong><a href="https://www.teamupdraft.com/wp-optimize?utm_source=wpo-wp-dir&utm_medium=referral&utm_campaign=plugin-dir&utm_content=wp_optimize&utm_creative_format=description">WP-Optimize</a> is trusted by more than 1 million WordPress website</strong> owners to <strong>boost performance</strong> and <strong>reduce page load times</strong> to improve your site's <strong>user experiences</strong> and <strong>SERP rankings in Google.</strong>
19 19
20 -[vimeo https://vimeo.com/333705073]
20 +It does this in four clever ways:
21 21
22 -It does it in three clever ways:
22 +<strong>1. It caches your site</strong>
23 23
24 -* It allows you to clean and optimise your database.
25 -* It gives you the option to compress your images.
26 -* It allows you to cache your pages, for super fast load times (read more caching information below).
24 +Caching is the process of storing a temporary HTML version of your site on the server so it can be retrieved more quickly for the user.
27 25
28 -It also enables you to minify and asynchronise CSS and JavaScript (aka. "defer CSS JavaScript").
26 +It's a sure-fire way to ensure web pages load at lightning-fast speed. Turn it on in just one click.
29 27
30 -Extensive tests show the cache feature alone can make WordPress sites at least as fast as any other caching or speed plugin available and often faster. But when you combine the cache with the database optimization, image compression features and minify, the speed difference with alternative solutions is significant.
28 +<strong>2. It compresses images</strong>
31 29
32 -<strong>NEW:</strong> The built-in minify feature adds another layer of optimization, reducing the size and number of requests to your server.
30 +Large images can really impact page speed load times. WP-Optimize makes it easy to identify and compress images to your preferred lossy / lossless settings in a couple of clicks.
33 31
34 -= 1. Cleans the database =
32 +<strong>3. It cleans the database</strong>
35 33
36 -Your WordPress database stores everything that you need for your website – plus many things that you don’t. WP-Optimize Cache clears out all of this unnecessary data, cleans up your tables and even retrieves space lost to data fragmentation.
34 +Your WordPress database stores everything that you need, plus some things that you don't. WP-Optimize cleans and optimizes the database to speed up your site and save server resources.
37 35
38 -Mobile-friendly and incredibly simple to use, it:
36 +<strong>4. It minifies</strong>
39 37
40 -* Removes all unnecessary data (e.g. trashed/unapproved/spam comments, stale data) plus pingbacks, trackbacks and expired transient options
41 -* Compacts/de-fragment MySQL tables with a button-press
42 -* Detailed control of which optimizations you wish to carry out
43 -* Carries out automatic weekly (or otherwise) clean-ups
44 -* Retains a set number of weeks’ data during clean-ups
45 -* Performs optimizations without the need for running manual queries
46 -* Automatically trigger a pre-optimize backup via <a href="https://updraftplus.com">UpdraftPlus</a>
47 -* Show database statistics and potential savings
38 +On top of its three main features, WP-Optimize Cache also has the more advanced minification feature.
48 39
49 -<strong>Why is this important?</strong>
40 +Together with caching, minification dramatically improves performance and page speed load time.
50 41
51 -* The tables in MySQL (the database that WordPress uses) will, over time, become inefficient as data is added, removed, moved around. Asking MySQL to optimize its tables every now and again will keep your site running as fast as possible. It won’t happen by itself.
52 -* Every-time you save a new post or pages, WordPress creates a revision of that post or page. If you edit a post 6 times you might have 5 copy of that post as revisions. This quickly adds lots of rarely-used data to your database tables, making them unnecessarily bloated, and slower to access.
53 -* There might be thousands of spam and un-approved comments in your comments table, WP-Optimize Cache can clean and remove those in a single click.
54 -* WP-Optimize Cache reports which database tables have overhead and wasted space to allow you to reduce them.
55 -* Automatically cleans your database every week and respects the “Keep last [selected number] weeks data” option.
42 +== 1. CACHE YOUR SITE ==
56 43
44 +<strong>Turn on caching in just one click:</strong>
57 45
58 -= WP-Optimize Cache helps you to: =
46 +WP-Optimize automatically and optimally configures itself for your WordPress site. Turn it on in one-click or refine its settings if you prefer.
59 47
60 -* <strong>Make space:</strong> When you edit a post or page on your website, WordPress automatically saves the new revision to the database. If you edit things a few times (and particularly if the post is long), your database soon gets clogged up with old revisions that just sit there, taking up valuable space. WP-Optimize Cache removes these unnecessary post revisions, freeing up valuable Megabytes of data and increasing speed and efficiency. It also cleans up your comments table, removing all the spam and un-approved comments that have built up with a single click.
48 +<strong>More cache features:</strong>
61 49
62 -* <strong>Take control:</strong> WP-Optimize Cache reports on exactly which of your database tables have overhead and wasted space, giving you the insight, control and power to keep your website neat, fast and efficient.
50 +* <strong>Cache preloading:</strong> This feature emulates a visit to your site, meaning cached files are served straight away, speeding up your site from the very first visit.
63 51
64 -* <strong>Keep it clean and fast:</strong> Once enabled, WP-Optimize Cache can run an automatic clean-up on a schedule, keeping a selected number of weeks’ data, according to your specification.
52 +* <strong>GZIP Compression:</strong> When the server isn't configured to do so, WP-Optimize delivers HTML, CSS and JS files to the user's browser as smaller, compressed files, reducing the size of pages and style sheets by up to 90%!
65 53
66 -= 2. Compresses images =
54 +* <strong>Preload key requests:</strong> Recommended by Google to improve page speed times. Critical resources (things like font files) get loaded first, so the page loads much faster <strong>[Premium]</strong>.
67 55
68 -Loading large images is often the biggest culprit in slowing your site’s loading time.
56 +<strong>Use cache settings to:</strong>
69 57
70 -WP-Optimize Cache has an image-compression tool that uses cutting-edge lossy compression techniques to convert large images (which take a long time to load up) into compressed files saved in your image library, where they can be uploaded in an instant.
58 +* <strong>Serve cached content to logged in users:</strong> Turn this on if content stays the same for logged in users (or turn on and exclude URLs where content does change e.g. my account areas).
71 59
72 -It enables you to compress PNG, JPG, GIF, BMP and TIF pictures up to 5MB in size, and it’s packed with other useful features, including:
60 +* <strong>Exclude content from cache:</strong> Exclude by URL, conditional tags, browser agent strings or list cookies that should prevent caching when set (advanced user settings).
73 61
74 -* <strong>Bulk compression</strong>, allowing you to compress multiple existing images at the same time.
75 -* <strong>Intelligent, multi-pass lossy compression algorithm</strong>, which gives you twice the compression with much less loss of quality.
76 -* <strong>‘Restore Originals’ function</strong>, which allows you to retrieve or revert back to your original images at any point.
77 -* <strong>Auto-compress function</strong>, which automatically compress images as they’re added to the site.
78 -* <strong>EXIF Data-Keeping</strong> means image information is retained even once the image is compressed.
62 +* <strong>Deliver device-specific cache:</strong> Serve separate cache files to desktop and mobile devices . This ensures that responsive features e.g. desktop and mobile menus are cached separately and served correctly.
79 63
80 -This WordPress plugin allows you to increase your page speed without compromising the image quality.
64 +* <strong>User per role cache:</strong> Useful if your website delivers different content to different user roles. e.g. an e-commerce site that displays different content to resellers or consumers <strong>[Premium]</strong>.
81 65
82 -= 3. Caches pages =
66 +* <strong>User specific cache:</strong> Serves separate cache files to individual users. Useful for websites with personalised content e.g. Learning management systems <strong>[Premium]</strong>.
83 67
84 -<strong>Depending on your setup, page caching can be what makes the biggest difference to your website's speed and performance.</strong>
68 +* <strong>Cache purging permissions:</strong> Select which user roles are allowed to purge the cache e.g. admin only or perhaps a 'teacher' role in an LMS setting only <strong>[Premium]</strong>.
85 69
86 -Caching involves keeping dynamic data in a temporary storage area so that it can be retrieved in an instant. Caching is a sure-fire way to ensure that web pages load at lightning-fast speed.
70 +== 2. COMPRESS IMAGES ==
87 71
88 -Practically, our powerful yet simple cache feature generates the cache when a user visits any page or post on your site. WordPress processes the dynamic php files to generate that page, and we save it into a static html file in the cache folder, so that when the next user visits, the page is cached and doesn't need processing. This caching results in a much faster loading time, and gives a slight break to your server. So caching increases speed and performance while reducing the server's use of resources.
72 +* <strong>Lossy or lossless compression options:</strong> Choose between maximum space saving, best image quality or somewhere in-between.
89 73
90 -With minimal configuration, caching your site with WP-Optimize Cache is easy to do thanks to a load of useful features, including:
74 +* <strong>WebP conversion:</strong> Recommended by Google, WebP can achieve up to 34% smaller file sizes compared to JPEG and up to 26% compared to PNG.
91 75
92 -* <strong>Cache preloading</strong> to ensure the cache is always ready and loaded.
93 -* <strong>Gzip compression</strong> of HTML, JavaScript, and CSS to reduce site load time.
94 -* <strong>Device-Specific cache</strong> to ensure the optimized page version is always served.
95 -* <strong>Advanced cache exclusion rules</strong>, so that you can cache almost anything by excluding logged in users, specific URLs or cookies.
96 -* <strong>Browser Cache</strong> to instruct client browsers to reuse cached resources (HTML, CSS, JS, images) if no changes were made since the last request.
76 +* <strong>Auto-compress:</strong> Check a box and every new image you upload will automatically be compressed to your preferred lossy / lossless settings.
97 77
98 -= Minify and combine CSS and JavaScript =
78 +* <strong>Bulk compression:</strong> Compress every existing image on your site with the press of a button.
99 79
100 -On top of its three main features, WP-Optimize Cache also has the more advanced <strong>minification</strong> feature. Combining and minifying your site's assets will reduce the number of requests to your server (by combining them) and reduce their size (by minifying their content).
80 +* <strong>Restore original:</strong> Gone too far? Revert images back to their original in one click.
101 81
102 -Together with caching and Gzip compression, this will improve the performance and time to "first contentful paint".
82 +* <strong>Retain EXIF image data:</strong> Check a box to retain EXIF image data during compression.
103 83
104 -The minify feature also enables you to defer CSS and JavaScript. Defering CSS and JavaScript allows you to load non-critical assets after the main page load, resulting in an apparent speed gain. Minifying and defering CSS and JavaScript also makes Google PageSpeed Insights happy!
84 +* <strong>Lazy Load:</strong> Webpages load much faster by loading web parts gradually, when they're needed vs simultaneous loading of everything, all at once <strong>[Premium]</strong>.
105 85
106 -<strong>Overall WP-Optimize brings the best cache and optimization technology together in a single seamless plugin to make your WordPress site fast, lean and efficient.</strong>
86 +* <strong>Delete orphaned images:</strong> Identify and delete unused images from your Wordpress website, saving disk space <strong>[Premium]</strong>.
107 87
108 -= WP-Optimize Cache Premium =
88 +* <strong>Delete unused image sizes:</strong> WordPress creates multiple sizes for every uploaded image causing the uploads folder to become bloated. Scan for image sizes not in use and remove them to save further disk space <strong>[Premium]</strong>.
109 89
110 -Our free version of WP-Optimize Cache is great, but we also have an even more powerful Premium version with extra features that offer the ultimate in freedom and flexibility:
111 90
91 +== 3. CLEAN AND OPTIMIZE THE DATABASE ==
92 +
93 +Cleans-up database tables, post revisions, auto draft posts, trashed posts, spam, trashed comments and more. Choose what to optimize or it's one click to clean out the lot.
94 +
95 +* <strong>Schedule clean-ups:</strong> So you can set and forget. Choose from daily, weekly, fortnightly or monthly.
96 +
97 +* <strong>Flexible clean-up schedules:</strong> You may wish to optimize database tables more frequently than you remove unapproved comments (for example). Choose the specific time and day when tasks should run <strong>[Premium]</strong>.
98 +
99 +* <strong>Retain a set number of weeks' data during clean-ups:</strong> Just in case you need to retrieve something.
100 +
101 +* <strong>Back up before clean-ups:</strong> If you delete something you shouldn't, restore it in a couple of clicks with UpdraftPlus.
102 +
103 +* <strong>Power tweak - Turbo boost for WooCommerce:</strong> Unique to WP-Optimize, this power tweak boosts performance by replacing a slow query in WooCommerce with two much more efficient queries. E-commerce sites transacting high numbers of orders stand to gain here <strong>[Premium]</strong>.
104 +
105 +* <strong>Power tweak - Boost performance by indexing the postmeta table:</strong> This unique power tweak works by allowing the WordPress postmeta table to be indexed, improving performance <strong>[Premium]</strong>.
106 +
107 +
108 +== 4. MINIFY AND COMBINE HTML, CSS AND JAVASCRIPT ==
109 +
110 +* <strong>Minify in just one click:</strong> Minifies HTML, JavaScript and CSS. Toggle on or off or customise each one under 'settings'.
111 +
112 +* <strong>Customise minification:</strong> Minify only (removing unnecessary code e.g line breaks and white spacing) or minify and merge. Apply the same or different settings to HTML, CSS and JavaScript.
113 +
114 +* <strong>Asynchronous loading:</strong> Choose non-critical CSS and JavaScript files to load in the background and independently of other resources e.g. analytics or pixel scripts. Loading asynchronously eliminates render blocking and improves page speed.
115 +
116 +* <strong>Exclude files from being minified:</strong> Specify CSS and JavaScript files to exclude from minification.
117 +
118 +* <strong>Optimize fonts:</strong> Optimize Font Awesome and Google Fonts. Inline the font files, inherit from CSS settings or load CSS / Javascript asynchronously instead.
119 +
120 +* <strong>Preload assets:</strong> WP-Optimize visits each web page on your site so the code is minified and preloaded for real life users, right from their very first visit.
121 +
122 +* <strong>Preload key requests:</strong> Recommended by Google to improve page speed times. Critical resources (things like font files) get loaded first, so the page loads much faster.
123 +
124 +
125 +== WHY WP-OPTIMIZE? ==
126 +
127 +* It's brought to you by [TeamUpdraft](https://www.teamupdraft.com?utm_source=wpo-wp-dir&utm_medium=referral&utm_campaign=plugin-dir&utm_content=teamupdraft&utm_creative_format=description), the team behind the world's most trusted backup, migration and restoration plugin.
128 +* It's easy to use.
129 +* It packs a punch for a free plugin.
130 +
131 +
132 +WP-Optimize brings the best cache and optimization technology together into one single, seamless plugin to make your WordPress site fast, lean and efficient.
133 +
134 +== PREMIUM FEATURES AT A GLANCE ==
135 +
136 +Our free version of WP-Optimize Cache is great, but we also have an even more powerful [Premium version](https://www.teamupdraft.com/wp-optimize/pricing?utm_source=wpo-wp-dir&utm_medium=referral&utm_campaign=plugin-dir&utm_content=premium_version&utm_creative_format=description) with extra features that offer the ultimate in freedom and flexibility:
137 +
112 138 * <strong>Multisite Support:</strong> extends database optimisations so they function for multiple WordPress sites at a time. If you manage more than one website, you will need WP-Optimize Cache Premium.
113 139 * <strong>Flexibility and Control:</strong> gives you the power to optimize select individual tables or a particular combination of tables on one or more WordPress websites, rather than having to optimize all database tables.
114 140 * <strong>Deleting unused and unwanted images:</strong> removes orphaned images from your WordPress site, plus images of a certain, pre-defined size.
115 141 * <strong>Sophisticated Scheduling:</strong> offers a wide range of options for scheduling automatic optimization. Specify an exact time and run clean-ups daily, weekly, fortnightly or monthly and perform any number of additional once off optimizations.
@@ -117,9 +143,9 @@
117 143 * <strong>WP-CLI support:</strong> provides a way to manage optimizations from command-line interface if you have lots of sites
118 144 * <strong>Lazy Loading:</strong> load only the images and part of a web-page when it is visible to the user so they can see something very quickly.
119 145 * <strong>Optimization Preview:</strong> gives users the ability to preview, select and remove data and records available for optimization from the database.
120 146 * <strong>Preload key requests:</strong> preload assets such as web fonts and icon fonts, as recommended by Google PageSpeed Insights.
121 -* <strong>Premium support</strong> - caching is one of the most complex things you can do for a website, so premium support offers you peace of mind there’s someone to talk quickly to if you need any technical answers or help configuring the optimizations of cache settings for your website.
147 +* <strong>Premium support</strong> - caching is one of the most complex things you can do for a website, so premium support offers you peace of mind there's someone to talk quickly to if you need any technical answers or help configuring the optimizations of cache settings for your website.
122 148
123 149 = Translations =
124 150
125 151 Translators are welcome to contribute to the plugin. Please use the [WordPress translation website](https://translate.wordpress.org/projects/wp-plugins/wp-optimize).
@@ -165,13 +191,10 @@
165 191
166 192 = How do I get support? =
167 193 In our support forum, here: https://wordpress.org/support/plugin/wp-optimize/
168 194
169 -= How do I use WP-Optimize Database Cleaning? =
170 -[vimeo https://vimeo.com/339511213]
171 -
172 195 = WP-Optimize does not make large savings on my database =
173 -This is rare; it’s probably because you’re with a shared web hosting company that doesn’t allow scripts to run an optimize command via SQL statements (SQL "OPTIMIZE" instruction). Please consult your web hosting company on this matter.
196 +This is rare; it's probably because you're with a shared web hosting company that doesn't allow scripts to run an optimize command via SQL statements (SQL "OPTIMIZE" instruction). Please consult your web hosting company on this matter.
174 197
175 198 = Is the plugin tried and tested? =
176 199 Yes - WP-Optimize Cache is WordPress's #1 most-installed optimisation plugin, with over 800,000 users and a pedigree going back over 8 years.
177 200
@@ -184,15 +207,15 @@
184 207 = Are there any bugs in this plugin? =
185 208 The plugin is an ongoing work; that means that it is impossible to rule out unforeseen situations and bugs. So I would recommend you to test it out on your local system or make a backup of your database (just to be extra careful).
186 209
187 210 = How do I stop transient options from coming back automatically each time I clear them? =
188 -When WordPress uses a particular transient, that specific transient is re-created automatically. So, it's normally for ones which are in active use to gradually re-appear. The best way to keep things optimal is to clear the transient options on a scheduled basis. For example, WordPress may create 50 transient option in a week. If you schedule WP-Optimize Cache to clear these options on a weekly basis, you’ll have far fewer building up.
211 +When WordPress uses a particular transient, that specific transient is re-created automatically. So, it's normally for ones which are in active use to gradually re-appear. The best way to keep things optimal is to clear the transient options on a scheduled basis. For example, WordPress may create 50 transient option in a week. If you schedule WP-Optimize Cache to clear these options on a weekly basis, you'll have far fewer building up.
189 212
190 213 = The table size shows wrong / Not optimizing =
191 214 Please check your database for corrupted tables. That can happen, usually your web hosting company can run the repair command on the db.
192 215
193 216 = Which WordPress and PHP versions are supported? =
194 -To use all features in the plugin, a minimum of version WordPress 4 with PHP 5.3 are required. But we do recommend to use the latest version of WordPress. Using PHP 7+ is also highly recommended, as our caching feature will work even faster.
217 +To use all features in the plugin, a minimum of version WordPress 4.9 with PHP 7.2 are required. But we do recommend to use the latest version of WordPress. Using PHP 7.2+ is also highly recommended, as our caching feature will work even faster.
195 218
196 219 = Which optimisation will make the biggest difference? =
197 220 This depends on your setup (theme, number and quality of plugins used, etc...), but generally, caching will make the biggest visible difference to your website's performance. Indeed, the cache functionality bypasses most of WordPress code to serve your pre-optimised cached pages directly to your visitor, significantly increasing the speed.
198 221
@@ -204,20 +227,22 @@
204 227
205 228 = Is the WP-Optimize page cache compatible with Gutenberg and WordPress 5.0+? =
206 229 Yes, your Gutenberg pages will be cached, as well as those created with page builder plugins such as Elementor.
207 230
208 -= How do I know my webpage is being cached (or why it isn’t)? =
209 -If cache is enabled, and in order to see if your page is cached, use the “View Source” function in your web browser to view the page source. To find caching information, scroll down to the bottom, and you should see a line added by the cache: `<!-- Cached by WP Optimize - https://getwpo.com - Last modified: Sat, 20 Jul 2019 21:17:19 GMT ->`
210 -However, note that if you are using a further service that minifies HTML (e.g. Cloudflare), then this line may have been removed. Another method is to inspect the contents of the directory wpo-cache inside your wp-content directory. <a href="https://getwpo.com/faqs/how-do-i-know-my-webpage-is-being-cached/>Further information can be read here</a>
231 += How do I know my webpage is being cached (or why it isn't)? =
232 +If cache is enabled, and in order to see if your page is cached, use the "View Source" function in your web browser to view the page source. To find caching information, scroll down to the bottom, and you should see a line added by the cache: `<!-- Cached by WP Optimize - https://teamupdraft.com/wp-optimize/ - Last modified: Sat, 20 Jul 2019 21:17:19 GMT ->`
233 +However, note that if you are using a further service that minifies HTML (e.g. Cloudflare), then this line may have been removed. Another method is to inspect the contents of the directory wpo-cache inside your wp-content directory. <a href="https://teamupdraft.com/documentation/wp-optimize/topics/caching/faqs/how-do-i-know-my-webpage-is-being-cached/>Further information can be read here</a>
211 234 Also note that if you do not preload the cache, a page or post will have to be visited once for the cache file to be generated.
212 235
213 236 = How do I configure the page cache? =
214 -Go to WP-Optimize -> Cache and enable caching. For most people, that will be enough. If you run an e-commerce, have a custom login page or any page that has dynamic content, you might want to exclude certain urls from the cache. See <a href="https://getwpo.com/documentation/">Advanced caching options</a> in our cache documentation to know more on excluding an URL from the cache.
215 -[vimeo https://vimeo.com/337247770]
237 +Go to WP-Optimize -> Cache and enable caching. For most people, that will be enough. If you run an e-commerce, have a custom login page or any page that has dynamic content, you might want to exclude certain urls from the cache. Visit <a href="https://www.teamupdraft.com/documentation/wp-optimize?utm_source=wpo-wp-dir&utm_medium=referral&utm_campaign=plugin-dir&utm_content=documentation&utm_creative_format=faqs">documentation</a> for help.
216 238
217 239 = Is the caching feature compatible with e-commerce plugins? =
218 240 Yes, caching with WP-Optimize Cache allows you to safely cache your products, with plugins like WooCommerce or Easy Digital Downloads, or any e-commerce that uses `DONOTCACHEPAGE` to exclude sensitive pages from caching (e.g. my account, cart or checkout pages).
219 241
242 += Is the caching feature compatible with multilingual plugins? =
243 +Yes, WP-Optimize works with popular multilingual plugins like WPML or Polylang. However, it's important to note that when using WP-Optimize with multilingual plugins, the URL format for different languages should not include any query parameters, for example `https://example.com/?lang=en`. Instead, it should be in a pretty permalink format, such as `https://example.com/en`.
244 +
220 245 = Do I need a special setup to use the caching feature? =
221 246 No, if WordPress works properly, WP-Optimize will be able to cache your pages and posts.
222 247
223 248 = Can I use the page caching feature together with another cache plugin? =
@@ -223,9 +248,9 @@
223 248 = Can I use the page caching feature together with another cache plugin? =
224 249 No, because both cache plugins would need to use the drop-in plugin `advanced-cache.php`. If you turn off caching on WP-Optimize Cache, you can use any other caching plugin and still use the other features of WP-Optimize. But we do recommend using our caching solution.
225 250
226 251 = Is WP-Optimize caching compatible with Cloudflare? =
227 -Yes! No special cache configuration is needed. Page caching on the WP site (that done by WP-Optimize Cache) is independent of proxy cacheing (e.g. Cloudflare) – you can use both, or neither, and they will complement each other and not interfere. <br>Just one thing to note – Cloudflare will strip out the special HTML comment at the bottom of the source of a page that is helpful to confirm that page caching is working, so, don’t be confused by that – it’s absence doesn’t indicate the cache is not working.
252 +Yes! No special cache configuration is needed. Page caching on the WP site (that done by WP-Optimize Cache) is independent of proxy caching (e.g. Cloudflare) – you can use both, or neither, and they will complement each other and not interfere. <br>Just one thing to note – Cloudflare will strip out the special HTML comment at the bottom of the source of a page that is helpful to confirm that page caching is working, so, don't be confused by that – it's absence doesn't indicate the cache is not working.
228 253
229 254 = Can I empty the cache automatically when performing a custom action? =
230 255 Yes, you can trigger a cache purge action using WP-Optimize Cache public functions. If you want to clear the whole cache, use the function `wpo_cache_flush()`. If you want to clear the cache files for a specific page or post, use `WPO_Page_Cache::delete_single_post_cache($post_id);`. Those cache options are available after WP action `plugins_loaded`.
231 256
@@ -240,22 +265,22 @@
240 265 For example a site with hundreds of pages will require more resources to preload its cache. So choosing a high frequency will mean that the cache will be recreated often, and the resource usage will be higher.
241 266 On a website where updates aren't as frequent, you can even disable the cache preloading schedule, or set a high cache lifespan and set the cache preloading schedule to follow it.
242 267
243 268 = How do I cache only the home page? =
244 -Add /.+ to the cache option “URLs to exclude from cache” on the advanced settings tab.
269 +Add /.+ to the cache option "URLs to exclude from cache" on the advanced settings tab.
245 270
246 271 = How do I prevent WP-Optimize Cache from caching a certain page =
247 -To prevent a page from being cached, you can add the URL to the field “URLs to exclude from cache” in the cache “Advanced settings” tab. If you are developing a plugin and want to prevent a page from being cached, you can define the “DONOTCACHEPAGE” constant on the pages you need. Any request where “DONOTCACHEPAGE” is defined will not be cached.
272 +To prevent a page from being cached, you can add the URL to the field "URLs to exclude from cache" in the cache "Advanced settings" tab. If you are developing a plugin and want to prevent a page from being cached, you can define the "DONOTCACHEPAGE" constant on the pages you need. Any request where "DONOTCACHEPAGE" is defined will not be cached.
248 273
249 274 = Is the caching feature of WP-Optimize free? =
250 275 Yes the caching feature is free. You will always be able to cache your website for free using WP-Optimize and we are constantly working on improving the existing cache feature. We will add more caching options to the free version and develop more specific caching options in the premium version to enable you to taylor the caching functionality to your needs.
251 276
252 277 = Where does WP-Optimize Cache store the cached files? =
253 -The cached files are stored in the common “wp-content/cache” folder, inside a “wpo-cache” folder. Removing the “cache” folder will delete all of WP-Optimize's cache, as well as those from other plugins.
278 +The cached files are stored in the common "wp-content/cache" folder, inside a "wpo-cache" folder. Removing the "cache" folder will delete all of WP-Optimize's cache, as well as those from other plugins.
254 279 Deleting the "cache" folder is generally safe, as those cached files will be regenerated.
255 280
256 281 = How do I disable caching? =
257 -Go to WP-Optimize settings > Cache and toggle the “Enable page caching” option to on/off.
282 +Go to WP-Optimize settings > Cache and toggle the "Enable page caching" option to on/off.
258 283
259 284 = Will caching slow down my server? =
260 285 No, caching will actually reduce the load on your server, by reducing the amount of PHP and mysql used. You might see a peak in resource usage when using the cache preloader, as this functionality will create the cache files for all your pages in a short amount of time. But once this is done, performance should increase and the load on your server will decrease. Every single major site uses caching to serve cached pages faster by using fewer resources.
261 286
@@ -263,13 +288,13 @@
263 288 The cached page is sent to the user before most of WordPress was loaded. The plugins aren't loaded yet, making it impossible for them to change the cached content at every request.
264 289 So at the moment if you want to keep parts of your page dynamic (e.g. adverts, widgets, shopping cart...) AND keep it cached, you will have to use custom solutions using javascript and AJAX to fetch those dynamic parts from the server.
265 290
266 291 = How do I delete the WP_CACHE define from wp-config.php? =
267 -WP-Optimize Cache will remove the “WP_CACHE” constant from wp-config.php when you disable page caching, or when you deactivate the cache plugin. If you need to remove it manually, you can use FTP to edit wp-config.php and delete the line define ('WP_CACHE', true );
292 +WP-Optimize Cache will remove the "WP_CACHE" constant from wp-config.php when you disable page caching, or when you deactivate the cache plugin. If you need to remove it manually, you can use FTP to edit wp-config.php and delete the line define ('WP_CACHE', true );
268 293 If page caching is still enabled in the settings, WP-Optimize Cache will attempt to add the line again, as it is required for the caching functionality to work.
269 294
270 295 = My filesystem is not writable to increase security. What do I need to do to make it compatible with the caching functionality? =
271 -WP-Optimize caching feature needs write access to the ‘wp-content/cache’ folder, as this is where the cache files will be stored. It also needs to define the constant ‘WP_CACHE’ in ‘wp-config.php’, it will need access once to ‘wp-content/advanced-cache.php’, as well as to the folder ‘wp-content/wpo-cache’ to write the cache settings.
296 +WP-Optimize caching feature needs write access to the 'wp-content/cache' folder, as this is where the cache files will be stored. It also needs to define the constant 'WP_CACHE' in 'wp-config.php', it will need access once to 'wp-content/advanced-cache.php', as well as to the folder 'wp-content/wpo-cache' to write the cache settings.
272 297
273 298 = How do I change file permissions? =
274 299 If you need to change file permissions to enable caching, you can follow the instructions on this page https://wordpress.org/support/article/changing-file-permissions/
275 300
@@ -277,9 +302,9 @@
277 302 There is no limit to the number of pages you can cache. The only limit is the space on your server and the maximum number of subdirectories allowed by your server, as caching will write files in subdirectories following the permalink structure.
278 303 If you were to reach a caching limit, it probably means that your server is not fit for the size of your website and caching needs.
279 304
280 305 = How do I serve cached pages to people using a phone or tablet? =
281 -You can generate a separate cache by selecting ”Generate separate files for mobile devices” in the page cache settings. This cache setting is only necessary if you use a specific theme for mobile devices, or for certain AMP plugins.
306 +You can generate a separate cache by selecting "Generate separate files for mobile devices" in the page cache settings. This cache setting is only necessary if you use a specific theme for mobile devices, or for certain AMP plugins.
282 307
283 308 = Does WP-Optimize Cache work with Nginx? =
284 309 Yes, the cache feature works with Nginx. Should you want to enable browser caching or GZIP compression, you will have to do this yourself directly on the server settings.
285 310
@@ -286,9 +311,9 @@
286 311 = Does caching work with Windows Server (IIS) ? =
287 312 Yes, the cache feature works with IIS. As with Nginx, if you need to enable browser caching or GZIP compression, you will have to do this yourself on the server.
288 313
289 314 = Does the WP-Optimize page cache work with non-pretty (query parameter-based) permalinks? =
290 -No. It’s necessary to have pretty permalinks of the type http://xxxxx.com/my-post/ rather than http://xxxxx.com/?p=1234 for cache to work. Pretty permalinks are the WordPress default setting, and there is no good reason to turn them off, so you should not have a problem with this.
315 +No. It's necessary to have pretty permalinks of the type http://xxxxx.com/my-post/ rather than http://xxxxx.com/?p=1234 for cache to work. Pretty permalinks are the WordPress default setting, and there is no good reason to turn them off, so you should not have a problem with this.
291 316 Note that cache will work with permalinks including /index.php/. It is only those based upon query parameters (?…) where cache won't work.
292 317
293 318 = When does WP-Optimize clear the page cache? =
294 319 * When you publish new content or update/edit existing content, the cache for that post/page will be cleared.
@@ -311,23 +336,20 @@
311 336
312 337 = Can WP-Optimize Cache minify JavaScript, CSS and HTML? =
313 338 Yes, the newly added Minify enables you to minify JavaScript and CSS. It also enables you to minify HTML.
314 339
315 -= What is "Minify"? =
316 -[vimeo https://vimeo.com/402556749]
317 -
318 340 = Why minify my WordPress site? =
319 -WP-Optimize Cache’s Minify feature is all about increasing the speed of your WordPress site for your users.
341 +WP-Optimize Cache's Minify feature is all about increasing the speed of your WordPress site for your users.
320 342 One way Minify does this is by reducing the size of your HTML, CSS and JavaScript files by removing unnecessary spaces and lines from the files and shortening long names internally within the code.
321 343 Another way is that your files are merged into as few files as possible. This reduces the amount of load on your web server and can be quicker to load fewer files.
322 344 You can also defer the loading of any CSS or JavaScript file. This means any large or extraneous CSS or JavaScript file can be loaded independently from the core of your WordPress site; giving your users quicker access to your site.
323 345
324 -= What does “Reset the minified files” actually do? =
325 -Pressing the “Reset the minified files” does:
346 += What does "Reset the minified files" actually do? =
347 +Pressing the "Reset the minified files" does:
326 348 * delete the temporary files used when generating the minified assets
327 349 * delete old minified files (more than 30 days old)
328 350 * add a folder for the new minified files, which will be generated when visiting a page
329 -The previously minified CSS files will remain on the server until they expire, or until they’re deleted using the button “Delete all the files generated by minify”.
351 +The previously minified CSS files will remain on the server until they expire, or until they're deleted using the button "Delete all the files generated by minify".
330 352
331 353 = Can I defer CSS and JavaScript using WP-Optimize Cache? =
332 354 Yes, the newly added minification feature (a.k.a. Minify) allows you to defer parsing of JavaScript and CSS.
333 355
@@ -333,23 +355,20 @@
333 355
334 356 = Google's PageSpeed Insights says to leverage the font-display CSS feature to ensure text is user-visible while webfonts are loading. Can WP-Optimize Cache do that? =
335 357 Leveraging the font-display CSS feature is currently possible when using Google Fonts. The default parameter is "swap", but can be changed using the WordPress filter "wpo_minify_gfont_display_type".
336 358
337 -= When enabling minify, my site’s layout is broken. How can I fix it? =
338 -This usually means one or more of your CSS files are incompatible with the minification or merging process. It can also be caused by errors in the CSS’s syntax.
339 -You can check the CSS’s syntax by using an online CSS syntax checker such as csslint.net.
359 += When enabling minify, my site's layout is broken. How can I fix it? =
360 +This usually means one or more of your CSS files are incompatible with the minification or merging process. It can also be caused by errors in the CSS's syntax.
361 +You can check the CSS's syntax by using an online CSS syntax checker such as csslint.net.
340 362 If your syntax is not causing the issue, or you cannot change the file with an issue, you can either exclude the problematic CSS files from the minification and merging process.
341 -To exclude individual CSS files from the minification and merging process, you can go to WP-Optimize > Minify > CSS and go to the “Exclude the following CSS files from processing” section.
363 +To exclude individual CSS files from the minification and merging process, you can go to WP-Optimize > Minify > CSS and go to the "Exclude the following CSS files from processing" section.
342 364
343 365 = When enabling minify, some functionality is broken. How can I fix it? =
344 -This usually means one or more of your JavaScript files are incompatible with the minification or merging process. It can also be caused by errors in the JavaScript’s syntax.
345 -The first thing to try is to enable the setting “Contain each included file in its own block” in the JavaScript options (WP-Optimize > Minify > Javascript > JavaScript options). This could “catch” an error, and prevent the rest of the code to be broken.
346 -If the first option didn’t work, try disabling merging of JavaScript files.
347 -If none of the above works, disable processing of JavaScript files in the minify settings, and <a href="https://wordpress.org/support/plugin/wp-optimize">open a support thread</a> with details about your issue. We’ll do our best to help you troubleshoot the issue.
366 +This usually means one or more of your JavaScript files are incompatible with the minification or merging process. It can also be caused by errors in the JavaScript's syntax.
367 +The first thing to try is to enable the setting "Contain each included file in its own block" in the JavaScript options (WP-Optimize > Minify > Javascript > JavaScript options). This could "catch" an error, and prevent the rest of the code to be broken.
368 +If the first option didn't work, try disabling merging of JavaScript files.
369 +If none of the above works, disable processing of JavaScript files in the minify settings, and <a href="https://wordpress.org/support/plugin/wp-optimize">open a support thread</a> with details about your issue. We'll do our best to help you troubleshoot the issue.
348 370
349 -= How do I use the image optimisation feature? =
350 -[vimeo https://vimeo.com/333938451]
351 -
352 371 == Screenshots ==
353 372
354 373 1. Cache - plugins comparison benchmark
355 374 2. Database optimization
@@ -363,906 +382,438 @@
363 382
364 383
365 384 == Changelog ==
366 385
367 -* TWEAK: Added functionality for exclude caching based on conditional tags
368 -* TWEAK: Update last optimized time for scheduled optimizations
369 -* TWEAK: Cache - Prevent already header sent warnings while importing posts
370 -* FEATURE: Create a cron job to delete expired cache files
371 -* TWEAK: Improved UI for `actionscheduler_` tables
372 -* FIX: Problem with Redirect – Trailing Slash on URLs
373 -* FIX: Unused images issue with ACF `repeater` and nested fields
374 -* TWEAK: Add filter to allow/disallow `gz` file generation
375 -* FIX: Incorrect record count after importing
376 -* FEATURE: WebP image format can be used to serve images
377 -* FIX: Image smushing issues
378 -* FIX: Growing smush log because of old semaphore lock option present in db
379 -* TWEAK: Modify WP Smush plugin compatibility notice
386 += 4.7.0 - 16/Sep/2026 =
380 387
388 +* FEATURE: Dashboard overview showing a summary of all WP-Optimize modules (cache, images, minification, and database), including active status, savings, and quick links to manage each area
389 +* FEATURE: Load tables in batches when there are too many tables to load in a single request
390 +* FIX: Added missing optimizations for auto optimizations cron
391 +* FIX: Fix removal of cache settings and related cron events on plugin deactivation and reactivation
392 +* FIX: Fixed inconsistent UI in the Minify status tab, and removed duplicate tooltips
393 +* FIX: Fixed the association of the wp_e_submissions_actions_log table with its plugin
394 +* FIX: LCP - Preserve original cached HTML when removing the LCP observer script fails instead of returning an empty string
395 +* FIX: PHPStan issues WPO_WP_Kses_Compatibility class
396 +* FIX: Permissions issues for adminbar menu items
397 +* FIX: Registered image sizes not showing on multisite
398 +* FIX: Removed extra spacing in the Wipe settings section
399 +* FIX: WP_CACHE constant warning in debug.log
400 +* FIX: WP_Optimize_Utils::get_file_path() does not handle URLs with query parameters
401 +* REFACTOR: WPO_Page_Builder_Compatibility class
402 +* REFACTOR: WPO_Webp_Convert_Image_Task class
403 +* TWEAK: Added data- attributes support for older wordpress versions
404 +* TWEAK: Cache - Browser cache settings updated for better compatibility
405 +* TWEAK: Cache - Improved browser cache detection
406 +* TWEAK: Disabling Show avatars no longer leaves gravatars hosted locally in the background
407 +* TWEAK: Improved GZIP detection
408 +* TWEAK: Improved the Purge Page Cache and Purge Minify Cache admin bar functionality
409 +* TWEAK: Premium - Improved UX for Unused CSS Removal
410 +* TWEAK: Premium - Index Post Meta Table power tweak now correctly indexes all subsites postmeta tables in a Multisite network and tracks last-run status per site
411 +* TWEAK: Premium Auto LCP writes the gzip cache variant atomically via a temporary file and rename, matching how the HTML cache file is patched
412 +* TWEAK: Rename `as_type` to `asset_type` in the LCP beacon request for clarity
381 413
382 -= 3.2.5 - 03/Jun/2022 =
414 += 4.6.1 - 29/Jul/2026 =
383 415
384 -* FIX: Fix a fatal error that could occur in 3.2.4 if settings had not been saved
416 +* FIX: CSS exclusions added via Minify -> Advanced -> Exclude are now saved on separate lines, preventing invalid exclusion entries
417 +* FIX: Fixed compatibility issue with the WooCommerce multi-currency plugin
418 +* FIX: Incorrect WebP browser detection for Firefox users
419 +* FIX: Misaligned UI issue in minify admin pages
420 +* FIX: Mobile UI issues
421 +* FIX: Prevent caching pages when a WooCommerce cart has content
422 +* FIX: UI freezes when restoring a compressed image
423 +* REFACTOR: Use WP_Optimize_Utils::get_url_without_cache_purge_params() for admin bar links
424 +* REFACTOR: WPO_KD_Submissions_Compatibility class
425 +* REFACTOR: WP_Optimize_Server_Compatibility class
426 +* REFACTOR: WPO_Polylang_Compatibility class
427 +* TWEAK: Clear cached local Google Fonts statistics when the CSS font file is downloaded
428 +* TWEAK: Create a new class named WP_Optimize_UpdraftCentral_Commands to group UpdraftCentral specific commands, currently including methods for retrieving and updating WP-Optimize settings
429 +* TWEAK: Removed deprecated UpdraftCentral commands from WP_Optimize_Commands class
430 +* TWEAK: Removed unused phpseclib dependency from composer
431 +* TWEAK: Smush post meta keys are prefixed with `_` and now is multisite compatible
385 432
386 -= 3.2.4 - 24/May/2022 =
433 += 4.6.0 - 06/Jul/2026 =
387 434
388 -* FEATURE: Create a cron job to delete expired cache files
389 -* FEATURE: WebP image format can be used to serve images
390 -* FIX: Incorrect record count after importing
391 -* FIX: Image smushing issues
392 -* FIX: Problem with Redirect – Trailing Slash on URLs
393 -* FIX: Unused images issue with ACF `repeater` and nested fields
394 -* TWEAK: Added functionality for exclude caching based on conditional tags
395 -* TWEAK: Update last optimized time for scheduled optimizations
396 -* TWEAK: Cache - Prevent already header sent warnings while importing posts
397 -* TWEAK: Improved UI for `actionscheduler_` tables
398 -* TWEAK: Add filter to allow/disallow `gz` file generation
399 -* TWEAK: Show error message to user when WP_CACHE constant can't be removed from wp-config.php due to file permission issue.
435 +* FEATURE: Premium - Automatically preloads the page’s Largest Contentful Paint (LCP) element to improve initial load speed and perceived performance
436 +* FIX: Cache - Fixed an issue related to cache setting saving
437 +* FIX: Fixed a UI issue in WooCommerce variation products when Automatically preload content after it is purged is enabled
438 +* FIX: Fixed browser caching issue where admin pages were cached
439 +* FIX: Mobile UI issue
440 +* FIX: Notice Dismissal issue
441 +* FIX: Usage of htmlspecialchars()
442 +* REFACTOR: Code from can_purge_cache() method moved to WP_Optimize_Utils::current_user_can_purge_cache()
443 +* REFACTOR: Fix WordPress Security check errors and warnings on admin page
444 +* REFACTOR: Make `is_edit_mode` a static method and avoid duplication
445 +* REFACTOR: Optimized WP_Optimize_Database_Information::get_table_plugin() method
446 +* TWEAK: Added method to check current user has the capability
447 +* TWEAK: Added methods to retrieve and save essential WP-Optimize toggleable settings for UpdraftCentral
448 +* TWEAK: Disable and hide the "Speed up WooCommerce 'Get total spent' query" Power Tweak when it's no longer relevant
449 +* TWEAK: Handle race conditions in font downloading and optimize cache stats storage
450 +* TWEAK: Improved image grid action button visibility to accommodate WordPress 7.0 button styling changes
451 +* TWEAK: Matched response styles when purging via the admin bar
452 +* TWEAK: Premium - Handle empty orders in WooCommerce Total Spent Power Tweak feature
453 +* TWEAK: Premium - Improved hash logic for the Unused CSS Removal feature
454 +* TWEAK: Prevent unwanted cache growth caused by crawlers or preload bots
455 +* TWEAK: UI changes to match WordPress 7.0
456 +* TWEAK: Unschedule all WP-Optimize cron jobs on deactivation in multisite
457 +* TWEAK: WP_Optimize_Power_Tweaks class method deactivate bug fixed related to the array_diff function
400 458
401 -= 3.2.3 - 09/Mar/2022 =
459 += 4.5.5 - 05/Jun/2026 =
402 460
403 -* FEATURE: Minify: Pre-generate assets
404 -* FIX: Cache - 'Purge cache permissions' setting does not allow additional roles to access the purge cache tool
405 -* TWEAK: Make smush details button work in media modal window
406 -* TWEAK: Do not show overhead in red when the amount is small
407 -* TWEAK: Avoid PHP Notices caused by "upgrader_process_complete" action
408 -* TWEAK: Force monolog 2.3.* in order to avoid PHP 7.2+ dependency
461 +* TWEAK: Update the bundled common-libs version
409 462
410 -= 3.2.2 - 24/Jan/2022 =
463 += 4.5.4 - 25/May/2026 =
411 464
412 -* FEATURE: Cache - Allow debugging of which cache file is chosen
413 -* FEATURE: Premium - Cache - Serve cached content for logged in users, per role
414 -* FIX: Premium - Unused Images - Fixed trashed images listing
415 -* FIX: Image selction issue in compressed and unused image is fixed.
416 -* FIX: ACF plugin compatibility issue with select2 JS library
417 -* FIX: Premium - Unused Images - Multibyte characters in filename are not recognised correctly
418 -* FIX: Table optimization displays wrong information about WP All Import plugin tables
419 -* FIX: Potential PHP fatal error - Call to undefined function _wp_get_current_user()
420 -* FIX: Minify - correctly minify multiple `calc` function in single property value
421 -* FIX: SQL error when keeping post revisions and optimizing
422 -* FIX: Cache - Prevent caching WordPress critical error page
423 -* FIX: Minify - Google fonts merging issue when the same font is enqueued in both API V1 and V2
424 -* FIX: Minify - Make `inherit` and `inline` settings work with Google fonts
425 -* FIX: Database error upon plugin activation
426 -* TWEAK: Minify - Show a notice if other minification plugins are installed and active
427 -* TWEAK: Remove unused bundled JavaScript from minify library to avoid irrelevant scan results
428 -* TWEAK: Image compression - Image compression stats include gains on image sizes
429 -* TWEAK: Make sure that messages from WP_Error objects in gzip compression are displayed to users.
430 -* TWEAK: Prevent PHP notice from WooCommerce deprecation
431 -* TWEAK: Create `task` tables upon activation, if needed.
432 -* TWEAK: Show error instead of success when table doesn't exist
433 -* TWEAK: Update seasonal notices
434 -* TWEAK: Prevent PHP fatal error in media list view, when images are makred as compressed
435 -* TWEAK: Image edit window - Link does not go to image settings and more/less link not working
465 +* FIX: WebP image compression breaking in some cases
466 +* REFACTOR: Avoid instantiating PHPSQLParser on each call in WPO_DB_Table_Analysis
467 +* REFACTOR: Class WPO_WebP_Convert
468 +* REFACTOR: Make markup readable in `tables-body.php` template
469 +* REFACTOR: Refactored duplicated cache_admin_bar logic by centralizing it in the admin class and removing redundant implementations.
470 +* REFACTOR: Removed unused `WPO_Htaccess_Capabilities` class
471 +* REFACTOR: WPO_Activation class
472 +* REFACTOR: WPO_Uninstall class
473 +* REFACTOR: WPO_WebP_Alter_HTML class
474 +* REFACTOR: WPO_WebP_Self_Test class
475 +* REFACTOR: WPO_WebP_Test_Run class
476 +* REFACTOR: WPO_WebP_Utils class
477 +* REFACTOR: WPO_Webp_Task_Manager class
478 +* REFACTOR: WP_Optimize_WebP class
479 +* REFACTOR: WP_Optimize_WebP_Images class
480 +* TWEAK: Added an additional check to prevent SplFileInfo::getSize() RuntimeException in WP_Optimize_Utils::get_folder_stats()
481 +* TWEAK: All in One SEO plugin compatibility issue
482 +* TWEAK: Cache - Inconsistent REST cache filenames due to query parameter order
483 +* TWEAK: Cache - Set the purge old cache cron schedule based on the Cache lifespan setting
484 +* TWEAK: Ensure parsed result is an array in WPO_DB_Table_Analysis::get_query_table()
485 +* TWEAK: Exclude GIF from being converted to WebP with `wpo_webp_convert_compressed_images` cron job
486 +* TWEAK: Optimized `wpo_username_from_cookies()` to avoid repeated database queries per request
487 +* TWEAK: Precheck for existing WebP format of file before running WebP conversion
488 +* TWEAK: Remove redundant code that is not reachable.
489 +* TWEAK: Resolved edge cases in CapoJS
436 490
437 -= 3.2.1 - 29/Nov/2021 =
491 += 4.5.3 - 29/Apr/2026 =
492 +* SECURITY: Prevented path traversal security risk. Thanks to Wordfence for the responsible disclosure
438 493
439 -* FIX: Apply different image compression levels
440 -* FIX: Cache - Purge WooCommerce product page after stock update
441 -* FIX: Database errors after adding a new site
442 -* FIX: Flatsome theme compatibility with google fonts
443 -* FIX: Image compression advanced settings, display default backup days instead of empty value.
444 -* FIX: Image compression was not working when the image extension used capital letters
445 -* FIX: Premium - Cache - Potential PHP error in User-specific cache
446 -* FIX: Premium - resolve potential admin-area PHP error if the deprecated mailchimp sync plugin and MC4WP plugin are both active (and potentially other situations where a plugin deactivates another)
447 -* FIX: Premium - Unused images - compatibility with PHP 8
448 -* FIX: Premium - Unused images - issue with parenthesis in name
449 -* FIX: Premium - Unused images - Pagination count doesn't update
450 -* FIX: Prevent a PHP notice when using with UpdraftCentral
451 -* FIX: Save prioritize maximum compression setting correctly
452 -* FIX: Wrong redirect when wiping settings on multisite
453 -* TWEAK: Premium - add review link at bottom of settings
454 -* TWEAK: Force monolog/monolog and psr/log versions to retain PHP 5.X compatibility/satisfy wordpress.org SVN hooks
455 -* TWEAK: Add compatibility with Kinsta
456 -* TWEAK: Added functionality for to convert MyISAM to InnoDB
457 -* TWEAK: Add filters for minify input string
458 -* TWEAK: Cache - Added filter to modify cache exception urls
459 -* TWEAK: Cache - Optimize preload from sitemap
460 -* TWEAK: Cache - Serve different versions based on cookie consent
461 -* TWEAK: changed filter to prevent deprecation notice in php 8.1+
462 -* TWEAK: Decide automatically whether to inline css or not based on file size
463 -* TWEAK: Fix typo in text domain name
464 -* TWEAK: get_hurl function minified.
465 -* TWEAK: Improve clarity of debug message when DONOTCACHEPAGE constant is used
466 -* TWEAK: Improve DB UI/UX on multisite
467 -* TWEAK: Improve minify cache size messages
468 -* TWEAK: Making Estatik plugin compatible
469 -* TWEAK: Minify - Add JS translations support
470 -* TWEAK: Minify HTML only on cache pre-loading
471 -* TWEAK: Port from previous semaphore classes to Updraft_Semaphore_3_0
472 -* TWEAK: Premium - Unused images - Show that there are images in the trash without having to re-scan everything
473 -* TWEAK: Prevent a PHP notice when downloding image compression log file. Fix backup modal styling issue.
474 -* TWEAK: Prevent fatal error in gzip settings when stylesheet could not be fetched
475 -* TWEAK: Short-circuit trivial case of nothing in the buffer when page-cacheing, to involve any possible other issues
476 -* TWEAK: Update comments count after trackbacks and pingbacks deletion
477 -* TWEAK: Update minified asset when the enqueued scripts and styles version change
478 -* TWEAK: Use proper constant of includes path in user cache extension
479 -* TWEAK: Fix path to `wpo-plugins-tables-list.json` in robots.txt
494 += 4.5.2 - 20/Apr/2026 =
480 495
481 -= 3.1.12 - 12/Jul/2021 =
496 +* FIX: Bug preg_match() fails on wildcard * patterns in browser agents exclusion list
497 +* FIX: Cache - purge the cache when a plugin is auto-updated
498 +* FIX: Ensure page caching is fully disabled by updating internal cache configuration to prevent constant-related errors in logs
499 +* FIX: Premium - Unused images - Fixed an issue where multiple unused images were displayed for an edited image on setups where images are not stored in /yyyy/mm folders
500 +* FIX: Minify - The cron job to purge old cache files is not created
501 +* REFACTOR: Instead of nested output buffering, code make use of single buffer using Page Optimizer class
502 +* REFACTOR: Refactor Updraft_Smush_Manager::update_smush_options() method
503 +* REFACTOR: Using ABSPATH to prevent direct access instead of plugin constants to comply with PCP
504 +* TWEAK: Added a safety check to remove scheduled table optimization cron jobs when the server does not allow table optimization
505 +* TWEAK: Enhanced database table detection by marking the KD Submissions database table as used by Elementor Pro
506 +* TWEAK: Fixed a UI issue with WebP conversion in the Media Library
507 +* TWEAK: Handle WP_Error in WPO_Page_Cache::enable() callers
508 +* TWEAK: Initialize Heartbeat only on admin pages
509 +* TWEAK: Premium - Preload only selected URLs in the "Cache Specific URLs Only" setting
510 +* TWEAK: Premium - Smush - Improved PHP 8.5 compatibility by replacing deprecated $http_response_header usage
511 +* TWEAK: Updated user agent for the cache preloader
482 512
483 -* FEATURE: Ability to defer js files and asynchronously load css files
484 -* FEATURE: Option to not aggregate inline styles and scripts
485 -* FIX: Always purge this cache HTML issue
486 -* FIX: Cache - Enable cache for subfolders and multisite installation with the permalink structure example.com/index.php/a-post-name
487 -* FIX: PHP 8 Issue: Minify and Merge Error
488 -* FIX: Silent failure of page caching if plugin location not found
489 -* TWEAK: Added Update URI header field to avoid accidentally being overwritten with an update of a plugin of a similar name from the WordPress.org Plugin Directory.
490 -* TWEAK: Delay displaying notices for 2 weeks
491 -* TWEAK: Improve label of when saving a media type in always purge this
492 -* TWEAK: Improve query for EWWW IO history
493 -* TWEAK: Prevent a PHP notice if using WP-Optimize and MetaSlider on the same site.
494 -* TWEAK: Prevent PHP warnings from theme update and google font minify
495 -* TWEAK: Skip HTML minification if the total size is > 1MB (takes too long to be worthwhile)
496 -* TWEAK: Updating custom compression slider values
513 += 4.5.1 - 23/Mar/2026 =
497 514
498 -= 3.1.11 - 08/Jun/2021 =
515 +* FIX: Fixed compatibility issue with WP Remote
516 +* FIX: Notice: Function _load_textdomain_just_in_time was called incorrectly
517 +* FIX: Resolved weekly cron not running on WordPress < 5.4 by switching to the wpo_weekly schedule
518 +* FIX: Database table error when upgrading from free to premium version
519 +* REFACTOR: Improved WebP conversion flow by separating capability checks from configuration changes
520 +* REFACTOR: Improved auto-optimization handling by correcting static method usage
521 +* REFACTOR: Introduced `WP_Optimize_Server_Compatibility` class to centralize all server environment checks
522 +* REFACTOR: Removed separate `get_schedule_types()` method in premium version
523 +* SECURITY: Enforced capability checks and allowed-command validation for Smush actions triggered via Heartbeat API. Thanks to WordFence for the responsible disclosure
524 +* TWEAK: Display the `Enable the caching menu in the admin bar` option only when Cache or Minify is enabled
525 +* TWEAK: Improved detection of LearnDash plugin tables
526 +* TWEAK: Improved onboarding wizard RTL support and eliminated dependency on the PHP Reflection class
527 +* TWEAK: Improved robustness of `uploads/wpo` directory removal during plugin uninstallation
528 +* TWEAK: Minify - Don't remove the version query argument when the source is not processed by Minify
529 +* TWEAK: Premium - Unused Images - Enhanced detection of edited WordPress images
530 +* TWEAK: Prevent deprecation notices in PHP 8.5
531 +* TWEAK: Add a notice when `.htaccess` file is not available or renamed in Apache servers
499 532
500 -* FIX: Cache - Don't cache pages for logged-in users when 'Serve cached pages to logged in users' option (new in 3.1.10) is enabled
533 += 4.5.0 - 11/Feb/2026 =
501 534
502 -= 3.1.10 - 26/May/2021 =
535 +* FEATURE: Premium - Cache – Added ability to cache only selected URLs
536 +* FEATURE: Premium - Minify - Host Google Fonts locally
537 +* FEATURE: Premium - Option to enhance page performance by applying Capo.js rules
538 +* FIX: Cache - fixed sitemap caching issue
539 +* FIX: Improved compatibility with WordPress versions earlier than 6.1
540 +* FIX: Reset WebP conversion failure no longer appears in the popup
541 +* FIX: Resolved issues with detecting WebP conversion availability
542 +* FIX: Smush – Fixed missing tooltip in the 'Compress' pop-up in Media Library
543 +* FIX: Stop initialization of page optimizer for non-HTML requests
544 +* FIX: Remove marcusschwarz/lessc lib from autoload
545 +* TWEAK: Added support for bypassing WPO features via a URL query parameter defined by the WPO_DISABLE_MODE_URL_PARAM constant
546 +* TWEAK: Allow some database records cleanup for Kinsta users
547 +* TWEAK: Clear cache of archived pages when a related post is updated
548 +* TWEAK: Disabled CSS/JS merging by default.
549 +* TWEAK: Enhanced 404 detector compatibility with plain permalinks
550 +* TWEAK: WP_Optimize_Options::auto_option_settings() is not called in Premium version
551 +* TWEAK: Improved timestamp handling to prevent fatal errors on WordPress 4.9
552 +* TWEAK: Improved Minify settings UI so JavaScript options correctly show/hide when JS minification is enabled/disabled
503 553
504 -* FEATURE: Premium - Cache - User-specific cache. Useful for subscription websites, and websites where tailored content is offered to logged-in users.
505 -* FEATURE: Page cache now also caches RSS feeds
506 -* FEATURE: Ability to exclude files from minify process
507 -* TWEAK: Prevent PHP warning when deactivating Minify and the cache folder does not exist anymore
508 -* TWEAK: Premium - Lazy-load - Possibility to disable Lazy load on specific pages
509 -* TWEAK: Do not enqueue deleted script
510 -* FIX: Minify - Some pattern CSS import statements broke site
511 -* FIX: Minify - Events triggering
512 -* FIX: Google Fonts regression in 3.1.9
554 += 4.4.1 - 08/Jan/2026 =
513 555
514 -= 3.1.9 - 29/Apr/2021 =
556 +* FIX: Onboarding wizard RTL issue
557 +* FIX: Prevented plugin table JSON data in the uploads directory from being updated on every WP-Optimize admin page load
515 558
516 -* FEATURE: Power Tweak - Change meta_key field length and create new index
517 -* FEATURE: Premium - Automatic Backups using UpdraftPlus during scheduled optimizations
518 -* FEATURE: Keep last X revisions
519 -* FIX: Overlapping header notice in mobile view
520 -* FIX: Cache - Wildcard not working in cache exclusions
521 -* FIX: Prevent error in htaccess when mod_header isn't available
522 -* FIX: PHP Fatal error on deleting plugin
523 -* FIX: PHP 8 Issue: loadAsync JS error
524 -* FIX: RankMath breaks robots.txt
525 -* TWEAK: Bypass minify when editing translations using TranslatePress
526 -* TWEAK: Purge minify cache from front end
527 -* TWEAK: Minify - Prevent cache directory creation while disabled
528 -* TWEAK: Add Google Fonts API version 2 support
529 -* TWEAK: Minify - Save all tab content settings changes with single Click
530 -* TWEAK: Improved optimization preview
531 -* TWEAK: Filter the list of preloaded URLs
532 -* FEATURE: Premium - Cache - Always purge this page
533 -* TWEAK: Update seasonal notices
534 -* TWEAK: Bump WP version requirement to 4.5+
559 += 4.4.0 - 12/Dec/2025 =
535 560
536 -= 3.1.8 - 12/Mar/2021 =
561 +* FEATURE: Added Onboarding Wizard
562 +* FIX: Ensured old cache purging cron job is scheduled successfully
563 +* FIX: Fixed a potential fatal error in the WPO_Page_Optimizer class
564 +* TWEAK: Fixed the ability to disable caching menu in admin bar
565 +* TWEAK: Updated file permissions for wpo-plugins-tables-list.json
537 566
538 -* FIX: Cache - Warning failed to open dir
539 -* FIX: Premium - Unused images - Fixed issue with images including a size suffix similar to WP sizes
540 -* FIX: Display optimization data based on retention period
541 -* FIX: Scheduled cleanup settings - Invalid date selection
542 -* TWEAK: Premium - Separate table optimisations per sub-site
543 -* TWEAK: Premium - Unused images - Add compatibilty with the Envira Gallery plugin
544 -* TWEAK: Page caching: add support for Avada
545 -* TWEAK: Add visual clue when image compression was cancelled
546 -* TWEAK: Image compression - multi image selection using Ctrl/Shift keys
547 -* TWEAK: Premium - Unused images - Reset last clicked image reference when `select none` is clicked
548 -* FIX: Premium - Unused images - Pagination not working in the trash
549 -* TWEAK: Prevent bots from indexing plugins list json file
550 -* TWEAK: Minify - Added a setting to change the time stale cache should be kept
551 -* TWEAK: Better support for Beaver Builder
552 -* TWEAK: Prevent PHP warning when reading a file's size
553 -* TWEAK: Cache - Purge the blog page when updating a post
554 -* TWEAK: Cache - Purge next and previous posts on post update
555 -* TWEAK: Cache - Purge sitemap files on post update
556 -
557 -= 3.1.7 - 12/Feb/2021 =
567 += 4.3.1 - 14/Nov/2025 =
558 568
559 -* FEATURE: Premium - Preload key requests (Preload fonts and other assets)
560 -* FIX: Detecting Brotli compression issue
561 -* FIX: Cache - PHP Warning in URLs to exclude from caching
562 -* FIX: Premium - Unused images - Unused Images Tool not recognising Greek characters
563 -* FIX: Button for disabling Gzip doesn't showing
564 -* TWEAK: Database optimization - Prevent fatal error due to files missing
565 -* TWEAK: Skip minify when SCRIPT_DEBUG is set to true
566 -* TWEAK: Fixed Font-awesome settings
567 -* TWEAK: Add support for different spellings of "Font-awesome"
568 -* TWEAK: Update the feature comparison table
569 -* TWEAK: Added the option to not show the warning before deleting a table
570 -* TWEAK: Wipe all options upon plugin de-installation
571 -* TWEAK: Premium - Lazy-load - Lazy load support for background images
572 -* TWEAK: Minify - Add file size in the minify cache summary
573 -* TWEAK: Detect conflicting plugins for GZIP issue
574 -* TWEAK: Database optimization - Include all tables if database prefix is not set on WP install
575 -* TWEAK: Premium - Unused images - added "X of X images loaded" for unused trash images
576 -* TWEAK: Don't allow to remove actionscheduler_* tables
577 -* TWEAK: Premium - Unused images - Show a progression screen when doing any action with unused images
578 -* TWEAK: Cache - Enable cache for the old default permalink structure `domain.com/index.php/a-post-name` by creating a folder without the extention
579 -* TWEAK: Show previous action as message on Trackbacks or Comments enable or disable.
580 -* TWEAK: Prevent deprecation notice on PHP 8.0
581 -* TWEAK: Update notices
569 +* FIX: Prevent PHP fatal error occurring when cache is enabled and the "Aelia Currency Switcher for WooCommerce" plugin is active
570 +* FIX: Cache – Fixed compatibility issue
571 +* FIX: Database - Table Usage - Fixed the issue with incorrect table name detection in certain cases
572 +* FIX: Fixed UI Issue - Content cut off in "Review Actions" modal under WP-Optimize > Database
573 +* FIX: Fixed _load_textdomain_just_in_time trigger too early
574 +* FIX: Premium - Unused images - Fixed an issue with clearing the cache of unused images
575 +* FIX: Smush - Compressing an image larger than the reSmush.it service limit freezes the popup in the Media Library
576 +* FIX: Smush - Fixed issue with multiple images compression action
577 +* FIX: Undefined property: stdClass::$plugin_status bug fixed
578 +* REFACTOR: Database - Table Usage - enhanced variable names
579 +* REFACTOR: Using strict comparison throughout the codebase
580 +* TWEAK: Improve detection of cloudflare handling browser cache
581 +* TWEAK: Added validation for AJAX commands in the Premium version
582 +* TWEAK: Convert already compressed images to webp format when possible
583 +* TWEAK: Fix the compatibility issue with ALTCHA when using the ASE Pro Plugin
584 +* TWEAK: Improve browser caching by adding max-age option
585 +* TWEAK: Premium - Cache - Do not process the cache when the user cannot be identified
586 +* TWEAK: Premium - Database - Tables usage report shows data only for active plugins
587 +* TWEAK: Premium - Unused Images - Enhanced detection for Revolution Slider
588 +* TWEAK: Premium - Unused Images - Improved detection of unused images in Oxygen Builder
589 +* TWEAK: Premium - Unused Images - Recognize Oxygen 6 images
590 +* TWEAK: Premium - Prevent PHP warnings from Table Usage feature
591 +* TWEAK: Remove unused jQuery 1.12.4 dependency
592 +* TWEAK: Run database table optimization last
593 +* TWEAK: Updated links
594 +* TWEAK: Various tweaks and improvements to code
582 595
583 -= 3.1.6 - 17/Dec/2020 =
596 += 4.3.0 - 22/Sep/2025 =
584 597
585 -* FIX: Fix wrong class name
598 +* FEATURE: Premium - Cache - Cache REST API requests
599 +* FEATURE: Premium - Further reduce CSS files sizes by removing unused CSS rules
600 +* FIX: Added backward compatibility for timezone and datetime functions and improved status report support for older WordPress versions like 4.9.
601 +* FIX: PHP Warning file_exists(): open_basedir restriction in effect
602 +* FIX: Prevented buffer initialization during wp-cron when HTML DOM is unavailable.
603 +* REFACTOR: Database - Table Usage - Refactored execute_query_analysis() function
604 +* TWEAK: Added new UpdraftCentral endpoints
605 +* TWEAK: Enhanced multisite support: added performance widget to Network Dashboard and fixed sub-site widgets to show only site-specific 404 request counts.
606 +* TWEAK: Fix external loading of Gtag analytics script
607 +* TWEAK: Moved the tooltip tag outside the <label> tag
608 +* TWEAK: Performance - 404 Detector (Not Found Requests) added a button to clear all logs.
609 +* TWEAK: Publishing a post or custom post type (CPT) no longer clears the cache of all posts of the same type.
610 +* TWEAK: Removed return statements from constructors and added checks at the point of class instantiation.
611 +* TWEAK: Smush - Enhanced compatibility and performance with EWWW Image Optimizer installed
612 +* TWEAK: Premium - Added cache support for Nelio A/B Testing plugin
613 +* TWEAK: Added a hook to trigger custom code when a page is not cached
586 614
587 -= 3.1.5 - 17/Dec/2020 =
615 += 4.2.4 - 30/Jul/2025 =
588 616
589 -* FEATURE: Introduction of Power tweaks (premium feature)
590 -* FEATURE: Power tweak - replace WooCommerce "Get total spent" query by a faster one
591 -* FIX: CloudFlare not detected on gzip and browser caching tabs
592 -* FIX: Cloudflare caching issue
593 -* FIX: Premium - Unused images - Download CSV warning
594 -* FIX: PHP 8 compatibility issue WP_Optimize_Browser_Cache->prepare_interval()
595 -* TWEAK: Upgrade jQuery code to deal with deprecations with the latest bundled version
596 -* TWEAK: Fix wrong usage of wp_localize_script to prevent warnings in PHP 8
597 -* TWEAK: Premium - Unused images - Update the data when moving images to the trash / deleting instead of doing a hard refresh
598 -* TWEAK: Change how default exclusions are handled
599 -* TWEAK: Now that PHP 8.0 has been released, bump minimum PHP version requirement from PHP 5.4 to 5.6.
600 -* TWEAK: Delete WP-O's .htaccess rules at deactivation
601 -* TWEAK: Premium - Unused images - Separate unused images and unused image sizes processes
602 -* TWEAK: Update jQuery document ready style to the one not deprecated in jQuery 3.0
603 -* TWEAK: Minify CSS - Possibility to toggle the google fonts `display=swap` parameter from the UI.
604 -* TWEAK: Fix small UI issues
605 -* TWEAK: Clean up all cron events when deactivating the plugin
606 -* TWEAK: Premium - Possibility to set permissions for purging page cache and minify files.
607 -* TWEAK: Bypass minify when editing a post using the Brizy editor
608 -* TWEAK: Renamed UpdraftCentral's command classes filter
609 -* TWEAK: Bump WP version requirement to 4.4+, and PHP version requirement to 5.4+
610 -* TWEAK: Purge caches when updating a plugin / theme (also when updating using a ZIP archive)
611 -* TWEAK: Improve the admin bar "cache" menu
612 -* TWEAK: Show information about Cloudflare support
613 -* TWEAK: Database optimization - Resume optimizing when a timeout occurs
614 -* TWEAK: Remove redundant code
615 -* TWEAK: Cache feature - Do not cache pages with fatal errors
616 -* TWEAK: Cache feature - Do not cache RSS feeds
617 -* TWEAK: Page cacheing - Prevent adding the "comment cookie" when ordering on WooCommerce
617 +* FIX: Potential PHP fatal error when no site is selected during database optimization in multisite
618 +* FIX: Issue where the database optimization spinner remained indefinitely active
619 +* FIX: PHP 8.4 compatibility warnings
620 +* FIX: Minify default exclusions fatal error
621 +* FIX: Premium - Potential PHP fatal error - type hinting error in the database table usage feature
622 +* FIX: Premium - Page cache and lazy load meta boxes no longer display on post edit screen when their respective options are disabled
623 +* FIX: Only purge relevant files when a published post is saved; also purge the author archive cache upon post save
624 +* FIX: Premium - Fixed compatibility of Table usage with WordPress versions earlier than 5.3
625 +* REFACTOR: Premium - Database - Table Usage - added missed translation functions
626 +* TWEAK: Purged content will preload only when cache is enabled, and the user-agent has been updated to a modern browser and OS version
627 +* TWEAK: Update seasonal advert banner logos, texts and links
628 +* TWEAK: Update plugin readme text and links
629 +* TWEAK: Premium - Cache - Add UI element to ignore query variables
630 +* TWEAK: Premium - Database - Table Usage - replaced loading state with native modal
631 +* TWEAK: Removed seasonal discount ads except Black Friday
618 632
619 -= 3.1.4 - 15/Sep/2020 =
633 += 4.2.3 - 15/Jul/2025 =
620 634
621 -* FIX: Prevent fatal error when updating
635 +* FIX: Cache - Resolved PHP warning caused by excessively long cache file names
636 +* FIX: Corrected typo from `meta data` to `metadata`
637 +* FIX: Cron reschedule event error for hook `wpo_prune_404_log` when `is_minimum_requirement_met` is `false`
638 +* FIX: Premium - Fixed a rare PHP warning that could occur when saving a post
639 +* FIX: Unused image - incorrect image filtering in multisite
640 +* FIX: WP Remote sync conflict caused in v4.2.1 and v4.2.2 By replacing wp_salt with core PHP functions
641 +* FIX: YouTube lazy-load – Thumbnail image now falls back to JPG if browser doesn't support WebP
642 +* FIX: WebP images were not being served in Firefox on certain environments
643 +* TWEAK: 404 detector logs URLs on mobile screens goes out of viewport fixed.
644 +* TWEAK: CSS Improvements, better font size handling, remove duplication, and SASS instead of import
645 +* TWEAK: Delay YouTube preview image cache purging
646 +* TWEAK: Display notice when server does not allow database optimizations
647 +* TWEAK: Enhanced database optimization compatibility with jQuery 4
648 +* TWEAK: Fixed incorrect transients count in database optimizations UI
649 +* TWEAK: Improved sanitization of incoming data in `Updraft_Smush_Manager_Commands`
650 +* TWEAK: Minify - Improved compatibility with Divi theme's dynamically generated assets
651 +* TWEAK: Multisite corrected site count in database optimizations UI.
652 +* TWEAK: Preserve EXIF data is set to false by default in all places at codebase level.
653 +* TWEAK: Update URLs of links and images to point to https://teamupdraft.com
622 654
623 -= 3.1.3 - 15/Sep/2020 =
655 += 4.2.2 - 02/June/2025 =
624 656
625 -* TWEAK: Added Oasis Workflow Pro tables to the list
626 -* FIX: Unused images - restore from trash UI issue
627 -* FIX: Premium - Unused images - Images trash works on multisite
628 -* TWEAK: Prevent GLOB_BRACE warning on systems not supporting it
629 -* TWEAK: Minify - Reset minified files when saving an Elementor page or post
630 -* TWEAK: Minify - Purge cached assets when UpdraftCentral was updated.
631 -* TWEAK: Minify - Enable users to defer all JavaScript, including the merged and minified assets
632 -* TWEAK: Minify - Improve general compatibility with The Events Calendar and other plugins
633 -* TWEAK: Image compression - prevent database warning when the table `ewwwio_images` does not exist
634 -* TWEAK: Image compression - Detect already compressed images by other plugins (ShortPixel Image Optimizer, Smush, Imagify, Compress JPEG & PNG images by TinyPNG, EWWW Image Optimizer)
635 -* TWEAK: Image compression - Added compression stats in the Media Library's list view
636 -* TWEAK: Image compression - Possibility to restore all compressed images
637 -* TWEAK: Image compression - Remove NitroSmush service, which is no longer active.
638 -* TWEAK: Image compression - Tweak user agent when requesting to resmush.it
639 -* TWEAK: Preserve selected optimizations when saving settings
640 -* TWEAK: Page caching - Prevent PHP Notice: Trying to get property ‘comment_status’ of non-object
641 -* TWEAK: Cache - Do not serve from cache when a user has posted a comment
642 -* TWEAK: Cache feature - Added integration with Cloudflare (Premium)
643 -* TWEAK: Page caching - Rename variables in the global context to more specific names
644 -* TWEAK: Premium - Prevent potential JS error in the "unused images" feature
645 -* TWEAK: Premium - Unused images - Add support for Slider Revolution
646 -* TWEAK: Premium - Unused images - use the URL stored in attachment meta-data as fallback
647 -* TWEAK: Premium - Unused images - Only fetch image informations when requesting the information to be displayed
648 -* TWEAK: Premium - Lazy-load - Show a notice when a known plugin also provides lazy-loading, instead of disabling the feature
649 -* TWEAK: Minify - Only load the required vendor classes instead of using composer's autoload in order to prevent compatibility issues
650 -* TWEAK: Minify - Added filters `wpo_minify_get_js` and `wpo_minify_get_css` to enable users to do extra processing before saving the code
651 -* TWEAK: Minify - Prevent PHP warning when no log is present
652 -* TWEAK: Minify - Prevent error when the function gzencode doesn't exist
653 -* TWEAK: Removed MetaSlider notice in the notices collection
657 +* FIX: Cache - Resolved unwanted output in WP-CLI and fatal error related to WooCommerce's country-specific files, introduced in v4.2.0
658 +* TWEAK: Premium - Cache - Compatibility with WordPress 6.8
654 659
655 -= 3.1.2 - 03/Jun/2020 =
660 += 4.2.1 - 05/May/2025 =
656 661
657 -* TWEAK: Only load minify dependencies when the feature is enabled, reducing the risk of conflicts with plugins with obsolete/incompatible library versions
662 +* FIX: Cache - Compatibility issue with other plugins due to late start of output buffering
663 +* TWEAK: Improved array handling in `get_active_plugins()`, potentially avoiding edge-case fatal error
658 664
659 -= 3.1.1 - 03/Jun/2020 =
665 += 4.2.0 - 01/May/2025 =
660 666
661 -* FIX: Minify - Make the feature unavailable when W3 Total Cache is active (an ancient version of the library in that plugin is incompatible and can cause a crash if either plugin attempts to perform minification)
662 -* TWEAK: Tweak polling interval for fetching WP-O minify cache information
667 +* SECURITY: On multisite installs (only), a logged-in site administrator could use an unsanitised parameter to inject unwanted content into SQL queries. Thanks to Marc Montpas for the responsible disclosure.
668 +* FEATURE: Premium - Replace YouTube Iframes with preview images to improve page speed
669 +* FIX: Fix conflict with the WPML plugin
670 +* FIX: Smush - Fixed PHP warning on the Media Library page
671 +* FIX: Smush - Fixed issue where the Smush popup would freeze
672 +* FIX: WebP images not served after WP-Optimize reactivation
673 +* REFACTOR: Smush option removed from media upload modal
674 +* TWEAK: Update advert banner logos, texts and links
675 +* TWEAK: Add missing separator between compression items in media library
676 +* TWEAK: Avoid PHP warning thrown by Page Speed Ninja plugin
677 +* TWEAK: Cache - Start caching after plugins loaded
678 +* TWEAK: Fix PHP deprecation warning in PHPSQLParser for PHP 8.4
679 +* TWEAK: Fix deprecation warning in Updraft_Logger class for PHP 8.4
680 +* TWEAK: Fixes absence of checkbox to remove all transients
681 +* TWEAK: Premium - Support and feedback links in Help tab now point to getwpo.com
663 682
664 -= 3.1.0 - 02/Jun/2020 =
683 += 4.1.1 - 05/Mar/2025 =
665 684
666 -* FEATURE: Major new feature: JS and CSS combination and minification. Read more at: https://getwpo.com/faqs/category/minification/
667 -* FIX: Image compression - delete backup images in a non-dated folders
668 -* FIX: Premium - Unused images - Only move relevant images to trash
669 -* FIX: Cache feature - Show correct preloading status
670 -* FIX: Fixed optimizations preview on multisite
671 -* FIX: Cache feature - Fixed error handling for cache preload action
672 -* FIX: Call to unavailable function was breaking page cacheing on old WP versions without add_filter() available early
673 -* TWEAK: Premium - Do not show the loading overlay on the database screen when loading the unused images list
674 -* TWEAK: Periodically update the plugins' tables list (plugin.json)
675 -* TWEAK: Do not use wp_get_upload_dir() on WP versions before it is available
676 -* TWEAK: Prevent JavaScript error when showing a notice after purging the cache
677 -* TWEAK: Cache feature - Better handle errors when enabling or disabling caching
678 -* TWEAK: Cache feature - Use HTTP headers to indicate page caching status
679 -* TWEAK: Premium - Unused images - Added filter `wpo_unused_images_ids`
680 -* TWEAK: Cache feature - Prevent purging the whole cache when saving a WooCommerce product
681 -* TWEAK: Premium - Page cache - "Do not cache this post" setting to only be effective when viewing a single post or page.
682 -* TWEAK: Cache feature - Added the filter wpo_cache_preload_sitemap_filename to enable overriding of the sitemap name used for preloading
683 -* TWEAK: Make all tooltips accessible via keyboard navigation
684 -* TWEAK: scandir() usages changed to opendir()
685 -* TWEAK: Database optimizations - Add Gravityforms to list and tweak UI
686 -* TWEAK: Cache feature - Preload indicates when using a sitemap
687 -* TWEAK: Hide the "remember to save settings" notice after saving.
688 -* TWEAK: Updater in paid version now will make checks on availability without needing login
685 +* FIX: Page builders not working with Delay JS option enabled
689 686
690 -= 3.0.19 - 31/Mar/2020 =
687 += 4.1.0 - 03/Mar/2025 =
691 688
692 -* FIX: Fix force tables optimisations checkboxes
693 -* FIX: Fix tablesorter issue preventing the optimisations from displaying
694 -* FIX: Premium - Fix Spam and Trashed Comments preview
695 -* TWEAK: Premium - Possibility to exclude a page from cache from the page / post edit
689 +* FEATURE: Premium - Improve performance by caching Gravatar images locally.
690 +* FIX: Premium - Unused images - Fixed warnings when moving non existing image to trash
696 691
697 -= 3.0.18 - 27/Mar/2020 =
692 += 4.0.1 - 17/Feb/2025 =
698 693
699 -* TWEAK: Wipe WP-Optimize settings function
700 -* FIX: Don't override advanced-cache.php if caching is disabled
694 +* FIX: File system usage issue
701 695
702 -= 3.0.17 - 19/Mar/2020 =
696 += 4.0.0 - 10/Feb/2025 =
703 697
704 -* FIX: Show image as uncompressed after restoring backup from the media modal
705 -* FIX: Save the last state for "take a backup" checkboxes
706 -* TWEAK: Load optimizations and database tables list via ajax
707 -* TWEAK: Move database optimization settings to the database page
708 -* TWEAK: Improve error handling for ajax requests
709 -* TWEAK: Cache feature - Add the filter `wpo_cache_show_cached_by_comment` to enable users to hide the HTML comment <!-- Cached by WP-Optimze... -->
710 -* TWEAK: Cache feature - Clear archive page cache when post is updated
711 -* TWEAK: Cache feature - Possibility to exclude front page from the cache
712 -* TWEAK: Cache feature - Deny direct access to cache files folder
713 -* TWEAK: Cache feature - Prevent direct access to cache config content
714 -* TWEAK: Image compression - Prevent confusing errors when restoring an image whose backup file was deleted
715 -* TWEAK: Only show the plugin's own notices on WP-Optimize's pages
716 -* TWEAK: Remove MetaSlider related message
717 -* TWEAK: Premium - Page cache - Possibility to generate a cache file per country with WooCommerce geolocation
718 -* TWEAK: Premium - Reorganise cache extensions to only keep the code required at the cache generation / fetching stage
719 -* TWEAK: Premium - Unused images - add support for non-dated folders
720 -* TWEAK: Premium - Unused images - Added wpo_unused_images_per_page filter for filtering images per page count
721 -* TWEAK: Premium - Unused images - Possibility to move unused images to trash before completely deleting
698 +* FEATURE: Delay JavaScript execution
699 +* FIX: Cache - Fixed PHP warning "Cannot modify header information"
700 +* FIX: Minify - Unusual behavior occurs when the "Disable Google Fonts processing" option is enabled
701 +* FIX: Smush - Fixed image compression actions in Media Library
702 +* REFACTOR: Replacing jQuery Tablesorter with 'sortable-tablesort' package
703 +* TWEAK: Cache - Enhance ActivityPub compatibility
704 +* TWEAK: Fix PHP notice caused by subscriben plugin advert
705 +* TWEAK: Minimum requirements were updated to PHP version 7.2 and WordPress version 4.9
706 +* TWEAK: Remove uses of `unserialize` without restriction of allowed_classes
707 +* TWEAK: Recognise Independent Analytics Pro plugin tables in database optimization
722 708
723 -= 3.0.16 - 27/Jan/2020 =
709 += 3.8.0 - 09/Dec/2024 =
724 710
725 -* FIX: Premium - Unused images - Fixed detection of -rotated and -scaled images
726 -* TWEAK: Cache feature - Cache sitemap.xml and robots.txt
727 -* TWEAK: Cache feature: fix scheduled preload
728 -* TWEAK: Cache feature: save the value of wpo_current_url() to enhance compatibility with Weglot
729 -* TWEAK: Fix permissions for restoring or compressing images on multisite
730 -* TWEAK: Premium - Tweak UI when fetching unused image infos
731 -* TWEAK: Premium - Added compatibility for Oxygen builder
732 -* TWEAK: Premium - Added WP-CLI commands for managing cache
711 +* FEATURE: Added a system status page
712 +* FEATURE: Logs frequent and highly recurrent 404 requests; introduces a new Performance tab.
713 +* FIX: Cache - Legacy Widgets visibility issue with WP-Optimize Cache enabled
714 +* FIX: Cache - UI issue: Preload "Cancel" option is gone after reloading the WPO settings page instantly
715 +* FIX: Database - optimizing any item also changes the status of other items
716 +* REFACTOR: Minify - Removal of the WPO_MINIFY_PHP_VERSION_MET constant
717 +* TWEAK: Add a warning message before deleting post metadata or orphaned relationship data.
718 +* TWEAK: Bailout early if the minimum PHP version is not met
719 +* TWEAK: Introduced logging for cache purge operations, available under `uploads/wpo/logs/cache-*.log`
720 +* TWEAK: Open CRON overdue guide in new tab
721 +* TWEAK: Persist Analytics Tab when minification is disabled
722 +* TWEAK: Premium - Unused Images - Improved detection of images not present in the Media Library, marking them as used
723 +* TWEAK: UI improvements in Analytics section
724 +* TWEAK: Wrapped checkboxes inside `label` tags in the confirmation popup that appears when clicking the "Remove" button on the Database > Tables tab.
733 725
734 -= 3.0.15 - 16/Dec/2019 =
726 += 3.7.1 - 20/Nov/2024 =
735 727
736 -* FIX: Image compression - Fix restoration on multisite
737 -* FIX: Cache feature - Scheduled preload when a sitemap does not exists
738 -* TWEAK: Check for headers_sent() before closing the browser connection
739 -* TWEAK: Cache feature - Do not show clear cache buttons in the admin bar if the user doesn't have the right capability
740 -* TWEAK: Cache feature - Don't cache REST API requests
741 -* TWEAK: Tabs to point to the correct URL for direct access
742 -* TWEAK: Only log the reason why an URL isn't cached if the constant WPO_CACHE_DEBUG is true
743 -* TWEAK: Image compression - Added a new filter 'wpo_image_compression_single_image_options' to allow changing the image quality for each image.
744 -* TWEAK: Cache feature - Added instructions how to edit advanced-cache.php file
745 -* TWEAK: Detecting Cloudflare and Brotli compression before enabling GZIP
728 +* TWEAK: Resolved a PHP notice caused by translation loading too early when caching is enabled, introduced in WordPress 6.7
746 729
747 -= 3.0.14 - 25/Nov/2019 =
730 += 3.7.0 - 21/Oct/2024 =
748 731
749 -* FIX: Fixed default option values for smush backup automatic deletion
750 -* FIX: Prevent potential Fatal error when including notices class
751 -* FIX: Image compression - Fixed division by zero notification
752 -* FIX: Fix list of backup entities before removing unused images
753 -* TWEAK: PHP 7.4 compatibility tweak in the fatal error handler
754 -* TWEAK: Image compression feature - Backup of original image paths are now relative
755 -* TWEAK: Page cache - Fix condition when displaying the message indicating the reason for not caching or serving cache
756 -* TWEAK: Page cache - Do not save post to cache if comments are opened and the user has saved their information
757 -* TWEAK: Page cache - intelligently handle Google Analytics tracking parameters in URL (Premium)
758 -* TWEAK: Page cache - add a query parameter to force display of the reason for not caching a page or serving a cached page
759 -* TWEAK: Cache feature - Added is_writable() checking before trying to write advanced-cache.php
760 -* TWEAK: Premium - Optimize database optimisations for WP-CLI commands
761 -* TWEAK: Premium - Don't run UI requests for WP-CLI actions
762 -* TWEAK: Premium - Page cache - Add default WooCommerce currency to the cache config
763 -* TWEAK: Page cache - Add the possibility to save default values to the cache config
764 -* TWEAK: Page cache - Add a possible secondary cache extensions location using the constant 'WPO_CACHE_CUSTOM_EXT_DIR', to allow keeping the bundled extensions in their original location
765 -* TWEAK: UI tweaks
766 -* TWEAK: Add missing filename reference in error message
767 -* TWEAK: Page cache - Purge cache when Autoptimize's cache is cleared
768 -* TWEAK: Image compression - Compatibility with Elementor plugin
769 -* TWEAK: Image compression - Added feature to mark all images as uncompressed
770 -* TWEAK: Bump supported minimum WP version up to 3.9
732 +* FEATURE: Added an option to automatically preload URLs immediately after cache content is purged
733 +* FEATURE: Premium - Gather data about table usage by filtering `query` event
734 +* FIX: Cache - Scheduled preloading wasn't working
735 +* FIX: Inconsistency in `smush_manager_send_command` function
736 +* REFACTOR: Smush - Popup styles, remove unused code
737 +* TWEAK: Fix fatal implode error when updating to v3.5.0
738 +* TWEAK: Image compression - Issue with cancelling smush image compression
739 +* TWEAK: Improve module minification logic
740 +* TWEAK: Premium - Unused images - Fixed popup when moving images to or restoring images from the trash
741 +* TWEAK: Premium - Unused images - Placeholder images in unused images section
742 +* TWEAK: Added `security.md` file with information to report security issues
771 743
772 -= 3.0.13 - 21/Oct/2019 =
744 += 3.6.0 - 12/Sep/2024 =
773 745
774 -* FIX: Don't show VIEWs as corrupted database tables
775 -* TWEAK: Image compression - Cancel button now stops the compression process
776 -* TWEAK: Only show general notice when update notice isn't shown
777 -* TWEAK: Improve message when Gzip compression is already enabled
778 -* TWEAK: Premium - Use path to include lazy load script
779 -* FIX: Image compression - Fixed detecting of uncompressed images
780 -* TWEAK: Image compression - Use wp_remote_get() instead file_get_contents() for retrieving compressed images
781 -* TWEAK: Use wp_remote_get() instead file_get_contents() for retrieving compressed images
782 -* TWEAK: Cache feature - add a 'Purge all' cache button to the admin bar
783 -* TWEAK: Premium - Prevent php warning in scheduled optimisations list
784 -* TWEAK: Premium - Unused images feature - Add compatibility with Advanced Custom Fields (ACF) image and gallery fields
746 +* FEATURE: Premium - Auto-detect images lacking dimension attributes and add them to improve CLS
747 +* FIX: Fixed the issue that disabled WebP conversion due to checking all shell commands for WebP compression
748 +* FIX: Premium - Unused Images - The unused image size deletion functionality does not work when images are not in the /yyyy/mm/ folder
749 +* REFACTOR: Removed unnecessary static methods in WebP class
750 +* TWEAK: Image compression - Rolled back to using popup error notices as in versions prior to 3.4.0
751 +* TWEAK: Added a more descriptive error with resolution proposals for failed gzip compression and browser cache tests
752 +* TWEAK: Fix broken unused image list thumbnails and download as csv link in Multisite
753 +* TWEAK: Fix the singleton pattern in Heartbeat class
754 +* TWEAK: Image compression functionality added to the Media Library page
755 +* TWEAK: Premium - Cache - Added support for Aelia Currency Switcher plugin
756 +* TWEAK: Premium - Unused images - improve clarity in UI for images in post revisions
757 +* TWEAK: Added additional checks to the `implode()` function to mitigate the risk of fatal errors on certain instances
785 758
786 -= 3.0.12 - 24/Sep/2019 =
759 += 3.5.0 - 14/Aug/2024 =
787 760
788 -* TWEAK: Cache - Purge cache files when updating menu, saving the customizer and editing widgets
789 -* TWEAK: Cache - Do not show the reason for not caching when the request is DOING_CRON
790 -* TWEAK: Premium - Unused images feature - Improved detection on sites with many posts/images
791 -* TWEAK: Automatically delete smush image backups option
792 -* TWEAK: Premium - Unused images feature - Better detection of featured images
793 -* TWEAK: Cache - Ability to purge single page or post from cache
794 -* TWEAK: Cache - Display the content of advanced-cache.php to the user if it was not writable when enabling cache
795 -* TWEAK: Image compression - Automatically delete image backups option
796 -* TWEAK: Image compression - metabox now inherits the settings from the main screen
797 -* TWEAK: Image compression - Added feature to mark images as already compressed by another tool
798 -* TWEAK: Image compression - Added detailed log information when image compression fails.
799 -* TWEAK: Premium - Unused images feature - Improved detection on sites with many posts/images
800 -* TWEAK: Premium - Unused images feature - Better detection of featured images
801 -* TWEAK: Premium - Lazy load - Added WooCommerce support
802 -* TWEAK: Premium - Increased warning level and visibility when deleting unused database tables and unused images
803 -* TWEAK: Prevent a couple of unwanted PHP notices being logged when running cron via the command-line
804 -* TWEAK: Tweaked update notice wording
761 +* FEATURE: Premium - Host Google and minimal analytics scripts locally
762 +* FIX: Premium - Cache - Single page cache purge/preload feature isn't working
763 +* TWEAK: Add logging for the WebP feature
764 +* TWEAK: Allow minification of script modules
765 +* TWEAK: Cache - Purge the cache when the site is migrated
766 +* TWEAK: Improvements to asset minification cache logic
767 +* TWEAK: Improvements to reSmushIt curl error message
768 +* TWEAK: Minify - Added an option to disable Google Fonts processing when it causes conflicts with other plugins
769 +* TWEAK: Move all WPO files from the `uploads` folder to `uploads/wpo`
770 +* TWEAK: Style improvement of the loading modals
805 771
806 -= 3.0.11 - 07/Aug/2019 =
772 += 3.4.2 - 03/Jul/2024 =
807 773
808 -* FIX: Check the results of opendir() when emptying the cache, to prevent a possible infinite loop if it fails
809 -* FIX: Compatibility issues with WordPress 4.0
810 -* FIX: Replace function that did not exist on PHP 5.2
811 -* TWEAK: Add work-around for plugins which call the WP action comment_post incorrectly
812 -* TWEAK: Change the algorithm for locating file-based-page-cache.php to handle same-server site moves better
813 -* TWEAK: Prevent an unwanted PHP notice caused by Action Scheduler purges
774 +* FIX: Removes unnecessary heartbeat calls for retrieving information about images
814 775
815 -= 3.0.10 - 30/Jul/2019 =
776 += 3.4.1 - 26/Jun/2024 =
816 777
817 -* TWEAK: If short-circuiting the attachment_fields_to_edit filter result, return the pre-existing value
818 -* TWEAK: Adjust wpo_delete_files() and related functions with extra sanity checks
778 +* FIX: Issue with bulk editing on the posts and pages edit screen
819 779
820 -= 3.0.9 - 30/Jul/2019 =
780 += 3.4.0 - 25/Jun/2024 =
821 781
822 -* FIX: Fix bug in logic for sending "Content-Encoding: gzip" header that could cause it to be sent prematurely with non-cached pages
782 +* FEATURE: Premium - Smush - Bulk compress / restore from media library
783 +* FIX: Deactivate the form for minifying JS/CSS settings when the corresponding option is disabled
784 +* REFACTOR: The functionality for the 'Unused Images' feature in ACF has been moved to a separate class
785 +* TWEAK: Add UpdraftCentral commands for the latest WP-Optimize features
786 +* TWEAK: Adjusted the scheduled preload time for improved performance
787 +* TWEAK: Auto-update advanced-cache.php settings during site migration
788 +* TWEAK: Cache - Human-readable file names for the cache directory
789 +* TWEAK: Caching related cron jobs are activated even though cache is disabled
790 +* TWEAK: Image compression - Updated message for restoring images action
791 +* TWEAK: Implement Heartbeat API for image compression progress updates
792 +* TWEAK: Improving vendor autoload
793 +* TWEAK: Introduces a hook (`wpo_force_webp_serve_using_altered_html`) for changing WebP serving method
794 +* TWEAK: Minify - Exclude .min files from minification
795 +* TWEAK: Minify - Improve list of processed files UI
796 +* TWEAK: Optimization of the get_uncompressed_image query
797 +* TWEAK: Persist script loading strategy when minifying JS files
798 +* TWEAK: Premium - Compatibility with Curcy WooCommerce multi currency plugin
799 +* TWEAK: Premium - Unused Images - Added an option to delete original images when scaled versions exist
823 800
824 -= 3.0.8 - 30/Jul/2019 =
801 += 3.3.2 - 16/Apr/2024 =
825 802
826 -* FIX: Lazy-loading regression in recent Premium release
827 -* FIX: Smush images selection on multisite
828 -* FIX: Displaying WP-Optimize tabs menu on mobile devices
829 -* TWEAK: Disable redundant lazy-loading feature when Divi theme is active
830 -* TWEAK: Improve accuracy of message shown when it is not possible to automatically enable Gzip compression of static resources
831 -* TWEAK: Only output reasons a page was not cached if the wp_footer action was run
803 +* FIX: Ensure the admin bar is not cached when caching is enabled for both logged-in and guest users
804 +* REFACTOR: Remove unused code
805 +* TWEAK: Cache - Prevent sitemaps being cached
806 +* TWEAK: Display a notice when static browser cache is enabled but not working
807 +* TWEAK: Premium - Added "Lost your password?" link on plugin's page
808 +* TWEAK: Premium - Unused images - Detect Elementor's 'Video' widget's image
809 +* TWEAK: Recognise Rank Math plugin tables as used in database optimization
810 +* TWEAK: Reduce .htaccess file write operations when WebP is enabled
811 +* TWEAK: Seasonal notice content update for 2024
812 +* TWEAK: Unused Images - Unused tab displays multiple images for compressed images with WebP Conversion
813 +* TWEAK: Prevent multiple AJAX requests being generated by repeated clicks on the "Purge Cache" button
814 +* TWEAK: Call the `litespeed_finish_request()` function when attempting to close browser connection on LiteSpeed servers
832 815
833 -= 3.0.7 - 25/Jul/2019 =
816 +[See changelog for all versions](https://plugins.svn.wordpress.org/wp-optimize/trunk/changelog.txt).
834 817
835 -* FIX: Fix some logic bugs related to the decision whether to send gzip-encoded cached content
836 -* FEATURE: To aid debugging if WP_DEBUG is turned on then if a page was *not* cached, then the HTML source will now contain the reason(s) why not in the footer
837 -* TWEAK: The is_user_logged_in() function is not necessarily available during a WP 'technical difficulties' scenario
838 -* TWEAK: Purge site homepage cache after updating post or publishing a new post (can be over-ridden with the filter wpo_delete_cached_homepage_on_post_update)
839 -
840 -= 3.0.6 - 25/Jul/2019 =
841 -
842 -* FIX: Regression causing incorrect JavaScript filenames in the Premium release in 3.0.5
843 -* TWEAK: Also add cache-busting for the compiled handlebars file
844 -* TWEAK: Change the handlebars enqueue handle to prevent double loading
845 -
846 -= 3.0.5 - 23/Jul/2019 =
847 -
848 -* FIX: Short-circuit Updraft_Smush_Manager::add_compress_button_to_media_modal() outside of a dashboard context, so that plugins or themes that hook into some dashboard hooks outside of that context can't cause fatal errors
849 -* TWEAK: Added suffixes with WP-Optimize version number to js, css files
850 -* TWEAK: Change the method used to generate the configuration file path in advanced-cache.php; no issues were reported, but analysis indicated a potential way to generate a path that would not agree with what was written by saving settings; and also another way to generate an invalid path on Windows webservers running on non-standard ports.
851 -* TWEAK: Use WPO_CACHE_CONFIG_DIR constant instead string value in advanced-cache.php
852 -
853 -= 3.0.4 - 20/Jul/2019 =
854 -
855 -* FIX: Fixed a regression in 3.0 with orphaned relationship data optimization
856 -
857 -= 3.0.3 - 20/Jul/2019 =
858 -
859 -* TWEAK: Prevent saving of page cache settings when the page cache was already off and another page cache plugin was active from over-writing the other plugin's advanced-cache.php
860 -
861 -= 3.0.2 - 19/Jul/2019 =
862 -
863 -* TWEAK: Rename in order to cache-bust sites that cached old versions of the JS admin scripts
864 -* TWEAK: Prevent unwanted PHP notice if saving page cache settings without ever having turned the cache on
865 -
866 -= 3.0.1 - 18/Jul/2019 =
867 -
868 -* FIX: Prevent a potential stray line of text appearing
869 -
870 -= 3.0.0 - 17/Jul/2019 =
871 -
872 -* FEATURE: Adds a caching feature, with page cache, browser cache control and gzip control
873 -* TWEAK: Smush feature added to medial modal
874 -* TWEAK: Remove references to Keyy
875 -* TWEAK: Image compression metabox tweaks
876 -* TWEAK: Preload after purging, If preload schedule is enabled
877 -* TWEAK: Prevent image compression AJAX call from firing upon every tab change
878 -* TWEAK: Load assets in admin_enqueue_scripts()
879 -* TWEAK: Smush all image sizes
880 -* TWEAK: Add quick feedback link
881 -* TWEAK: Delete the original backup file when an attachment file has been deleted
882 -* TWEAK: Remove die() from shutdown handler
883 -* TWEAK: Remove references to Keyy
884 -
885 -= 2.3.4 - 10/Jun/2019 =
886 -
887 -* FIX: Incorrect file paths on multisites
888 -* FIX: Wrong DB Schema caused image compression to fail on multisites
889 -* TWEAK: Improve image compression UI
890 -* TWEAK: Add the possibility to hide the image optimisation metabox in the media edit screen.
891 -* TWEAK: Fix potential PHP notice in task queue when Automatic Smush is activated
892 -* TWEAK: Improve JSON-reparser to cope with even more exotic junk from some setups with problems elsewhere in their stack
893 -* TWEAK: Remove the numerical index column from the list of tables
894 -* TWEAK: Prevent methods being called when create_task returns false
895 -* TWEAK: Prevent PHP log warnings when images are missing from server (log in WP-O internal log instead)
896 -* TWEAK: Changed the default settings page from 'Settings' to 'Database'
897 -* TWEAK: Better discoverability of Premium features
898 -* TWEAK: Use new task manager class Updraft_Task_Manager_1_1
899 -
900 -= 2.3.3 - 17/Apr/2019 =
901 -
902 -* FIX: Revert faulty change to the default settings page in 2.3.2, which prevented optimization buttons working
903 -
904 -= 2.3.2 - 17/Apr/2019 =
905 -
906 -* FIX: Non-ASCII filenames could get mangled in the image optimization preview, resulting in images not shown (and WP 404 generation on the back-end).
907 -* FIX: Optimizing a table now runs correctly after automatic pre-optimize backup
908 -* TWEAK: Changed the default settings page from 'Settings' to 'Database'
909 -* TWEAK: Updated plugin links
910 -
911 -= 2.3.1 - 16/Apr/2019 =
912 -
913 -* FIX: Fix a code path that could cause a fatal error on PHP 5.2
914 -* TWEAK: Optimizing a table should then refresh the information in the UI shown for it
915 -* TWEAK: Use an image compression logfile path inside the uploads hierarchy, with unpredictable salted element
916 -
917 -= 2.3.0 - 12/Apr/2019 =
918 -
919 -* FEATURE: Compress images using lossy and lossless compression - both existing images, and newly uploaded
920 -* FIX: Wrong information about corrupted tables
921 -* TWEAK: Prevent PHP notices on calls from UpdraftCentral
922 -* TWEAK: Prevent notices about Premium showing in Premium, correct button text, update coupon
923 -* TWEAK: Prevent the overdue cron checker running twice instead of once
924 -
925 -= 2.2.13 - 04/Mar/2019 =
926 -
927 -* FIX: Fixed RTL layout
928 -* FIX: Detect more relationships between tables and plugins in orphaned database tables optimization
929 -* FIX: Fixed orphaned relationships optimization
930 -* TWEAK: The informational list of WP core tables missed some possible extra tables on multisite
931 -
932 -= 2.2.12 - 07/Feb/2019 =
933 -
934 -* TWEAK: Updated information on More plugins tab
935 -* TWEAK: Fix header layout when a system or third party notification are shown
936 -* TWEAK: (Premium) Fix layout in unused images list mode
937 -* TWEAK: Improve data reliability in javascript
938 -* TWEAK: Improve orphaned relationships data optimization
939 -* TWEAK: Wrong message for "remove spam and trashed comments" optimization
940 -* TWEAK: Output additional information if table was not deleted
941 -* FIX: Added escaping for table names in database queries
942 -* FIX: Fix another possible fatal error due to missing get_plugins() function
943 -* FIX: Improve identification of installed/active plugins
944 -
945 -= 2.2.11 - 16/Jan/2019 =
946 -
947 -* FIX: A regression in the "identify table by owner" feature caused optimizing to silently fail on some tables
948 -* TWEAK: Added ability to exclude lazy load images by class
949 -
950 -= 2.2.10 - 11/Jan/2019 =
951 -
952 -* FEATURE: Added the ability to download unused images list (Premium version) as a CSV file
953 -* FIX: Load scripts and styles only on WP-Optimize pages
954 -* FIX: Fix a possible fatal error due to missing get_plugins() function
955 -* TWEAK: Remember selected optimizations on Database page
956 -* TWEAK: Prevent PHP notices when saving settings or optimizing in some circumstances
957 -
958 -= 2.2.9 - 03/Jan/2019 =
959 -
960 -* FIX: Change a newly-introduced fragment that was not compatible with PHP 5.2
961 -* TWEAK: Tweak some other code that had PHP 5.2 compatibility issues
962 -
963 -= 2.2.7 - 31/December/2018 =
964 -
965 -* RE-FACTOR: Refactoring and reorganisation of the UI
966 -* TWEAK: Added feature to view unused images as list
967 -* TWEAK: Fix sorting sizes columns in Tables information to take into account textual modifiers
968 -* FIX: MetaSlider images detected as unused
969 -* FIX: Preview for Trashed posts optimization doesn't work
970 -* FIX: Unselected optimizations could be run on a scheduled run
971 -
972 -= 2.2.6 - 30/October/2018 =
973 -
974 -* FEATURE: Added Gzip compression support
975 -* FIX: Unexpected content in the footer after preview popup closed
976 -* TWEAK: Mark as supporting WordPress 5.0
977 -* TWEAK: Update seasonal notices
978 -* TWEAK: Removed redundant checkbox for Lazy Loading settings
979 -* FEATURE: Remove orphaned database tables, and identify (many) known tables by plugin.
980 -
981 -= 2.2.5 - 24/August/2018 =
982 -
983 -* FEATURE: Preview data before deleting. (Premium)
984 -* FEATURE: Lazy Loading for images, iframes and videos. (Premium)
985 -* FEATURE: Added custom capabilities wpo_prevent_run_optimizations and wpo_prevent_manage_options (Premium)
986 -* FIX: Correct tables order sorting
987 -* FIX: Wrong numbers in total cleaned field
988 -* FIX: Don't show incorrect overhead value if option innodb_file_per_table disabled
989 -* TWEAK: Added option to clean "all" transient options and network-wide transient options for multisite WordPress installation
990 -* TWEAK: Links to UpdraftPlus automatically Install/Activate UpdraftPlus plugin
991 -* TWEAK: FAQ links point to getwpo.com
992 -* TWEAK: Auto-draft, revision posts and pingback comments removing with their meta data
993 -* TWEAK: Scheduler is not using the WordPress timezone settings
994 -* TWEAK: Detecting corrupted tables in background.
995 -* TWEAK: Unused Images optimization correctly detects images in pages built with popular plugins - Page Builder by SiteOrigin, Visual Composer, Beaver Builder, Elementor.
996 -* TWEAK: Paginate unused images
997 -* TWEAK: Added checkbox for select all optimizations
998 -* TWEAK: Prevent deleting homepage images in image optimization
999 -* TWEAK: Override the default multisite site list fetch limit of 100 sites
1000 -
1001 -= 2.2.4 - 07/May/2018 =
1002 -
1003 -* TWEAK: Changed the term 'Automatic' to 'Scheduled'.
1004 -* TWEAK: Show correct table type for views
1005 -* TWEAK: Fixed string spelling and syntax errors
1006 -* TWEAK: Disabled Simple History logging option if plugin is not installed.
1007 -* TWEAK: Prevented PHP notices in repair tables functionality
1008 -
1009 -= 2.2.3 - 04/Apr/2018 =
1010 -
1011 -* FEATURE: Added the ability to repair corrupted database tables
1012 -* FIX: Fixed dismiss notices functionality
1013 -* FIX: When detecting potentially unused images, exclude those found mentioned in the options table(s)
1014 -* TWEAK: Load WPO translations (logger classes info included) when template is pulled for UpdraftCentral-WPO module
1015 -* TWEAK: Add get_js_translation command for the UpdraftCentral WPO module
1016 -* TWEAK: Added logging for fatal errors
1017 -
1018 -= 2.2.2 - 28/Feb/2018 =
1019 -
1020 -* TWEAK: Prevent possible PHP notice when parsing logger options
1021 -
1022 -= 2.2.1 - 28/Feb/2018 =
1023 -
1024 -* FIX: Fix number counting in Table information tab
1025 -* FIX: Fix InnoDB optimization UI
1026 -* TWEAK: Removed orphaned attachment optimization from optimizations UI list
1027 -
1028 -= 2.2.0 - 19/Feb/2018 =
1029 -
1030 -* FEATURE: Added the ability to export/import WP-Optimize settings
1031 -* FEATURE: Extended the logging class to include logging for Simple History Logger, Slack, Email, syslog and a simple 'ring' log
1032 -* FEATURE: Added the ability to optimize ARCHIVE and Aria (MariaDB) database tables.
1033 -* FEATURE: Added the ability to sort data in the "Table Information" tab
1034 -* FEATURE: Added the ability to search tables in "Table Information" tab
1035 -* FEATURE: Added the ability to optimize an individual table. (Premium)
1036 -* FEATURE: Added the ability to optimize multisites. (Premium)
1037 -* FEATURE: Allow the user to create arbitrarily complex automatic optimization schedules (Premium)
1038 -* FEATURE: Added ability to use WP CLI interface for run optimizations. (Premium)
1039 -* FIX: Auto clean-up settings not optimizing database tables
1040 -* FIX: Comments count after related to comments optimization
1041 -* FIX: Fix unapproved comments count
1042 -* TWEAK: Add functions to pull WP-Optimize templates for UpdraftCentral
1043 -* TWEAK: Allow user to tick the "Take a backup with UpdraftPlus before optimizing" option from UpdraftCentral
1044 -* TWEAK: Show last automatic optimization time using site's configured timezone and locale
1045 -* TWEAK: Extra MySQL and MariaDB checks for optimization, along with an over-ride functionality.
1046 -* TWEAK: updated previous optimizations and added optimizations for trash posts, trash comments and orphaned attachements
1047 -* TWEAK: Use higher-quality spinner image
1048 -* TWEAK: Adjusted notices about other products
1049 -* TWEAK: Added message for multisite users with proposal to upgrade to Premium.
1050 -* TWEAK: Optimize the check for whether both free and Premium are installed
1051 -* TWEAK: Added Premium / Plugin Family tab
1052 -* TWEAK: Added seasonal dashboard notices
1053 -
1054 -= 2.1.1 - 28/Feb/2017 =
1055 -
1056 -* FEATURE: Added the ability to take a automatic backup with UpdraftPlus (https://updraftplus.com) before an optimization
1057 -* FEATURE: When optimizing from the dashboard, tables are now optimized one by one, to reduce the scope for timeouts
1058 -* FIX: Removal of sitemeta items from main site on multisite install was not proceeding
1059 -* TWEAK: Adding premium bootstrapping to WP-Optimize for adding premium features in the future
1060 -* TWEAK: A few wording tweaks, plus automatically refresh the page if the 'admin bar menu' option is changed
1061 -* TWEAK: Introduce internal logging API
1062 -
1063 -= 2.1.0 - 28/Dec/2016 =
1064 -
1065 -* FOCUS: This release concentrates upon the user-interface, and in particular upon improving the clarity of each part, and making optimizations, saves and other actions possible without page reloads.
1066 -* FEATURE: Any optimisation can now be run individually with a single button press
1067 -* TWEAK: All optimisations run via the dashboard page are now run via AJAX (no page refresh)
1068 -* TWEAK: Settings saving now takes place via AJAX (no page refresh)
1069 -* TWEAK: Navigation between different tabs now takes place without a page refresh
1070 -* TWEAK: The "trackback/comments" actions section now operates via AJAX (no page refresh needed)
1071 -* TWEAK: "Refresh" button in the "Status" widget now refreshes via AJAX (no page refresh needed)
1072 -* TWEAK: When saving settings or running an optimization, the "Status" widget now automatically refreshes
1073 -* TWEAK: Make the admin bar menu into a drop-down, making it quicker to access individual tabs
1074 -* TWEAK: Call set_time_limit to reduce the chances of PHP self-terminating via reaching max_execution_time
1075 -* TWEAK: Introduce dashboard notice infrastructure
1076 -* TWEAK: The lines showing information on how many spam/trashed posts and comments existed were incomplete
1077 -
1078 -= 2.0.1 - 12/Dec/2016 =
1079 -
1080 -* OWNERSHIP: WP-Optimize is now under the leadership of Team UpdraftPlus - https://updraftplus.com. A big thank you to Ruhani (who remains on-board) for his leadership of WP-Optimize until this point! Layout, branding and links have been altered to reflect this change.
1081 -* RE-FACTOR: Internal code completely re-factored, laying the foundations for future improvements
1082 -* TWEAK: Various filters introduced internally for easier customisation
1083 -* TWEAK: Marked form element labels, so that they can be clicked
1084 -* TWEAK: Various small UI improvements (more to come in future releases)
1085 -* FIX: Previous versions could potentially run OPTIMIZE commands on tables in the same MySQL database (if it was shared) belonging to other sites
1086 -* FIX: Previous versions were not deleting most delete-able transients. This is now fixed, with the modification that we now delete all *expired* transients.
1087 -* LANGUAGES: Removed language packs and screenshots that are already carried by wordpress.org, reducing the plugin download / install size
1088 -
1089 -= 1.9.1 =
1090 -* Ability to clean up Unused Post Meta, Comment Meta and Broken Relationship Data
1091 -* Warning prompts for RED marked items and optimize button
1092 -* Better transient options cleaning.
1093 -* Language files update
1094 -* Various other fixes
1095 -
1096 -= 1.9 =
1097 -* 27 Weeks retention option equivalent to 6 month
1098 -* Compatibility update.
1099 -* Language files update
1100 -* Removed email notifications, it doesn't work on many servers
1101 -* Various other fixes
1102 -
1103 -= 1.8.9.10 =
1104 -* Security Patch provided by Dion at WordPress.org and Security report provided by http://planetzuda.com .
1105 -* Language files update
1106 -
1107 -= 1.8.9.8 =
1108 -* Daily Schedule Option Added
1109 -* Email notification on automatic optimization, default email is admin email address. You can change this in settings
1110 -
1111 -= 1.8.9.7 =
1112 -* BUGFIX for Settings screen
1113 -* Enable/Disable trackbacks / comments buttons removal and use select box instead. Extra button caused the Auto Scheduler to get into reset mode.
1114 -
1115 -= 1.8.9.6 =
1116 -* There were few number formatting problem and detection of InnoDB table format. Charles Dee Rice solved the problems that I missed out. Thank you!
1117 -* Duplicate msg fixed
1118 -* Enable/Disable trackbacks for all published post
1119 -* Enable/Disable comments for all published post
1120 -
1121 -= 1.8.9 =
1122 -* ONE MILLION+ Downloads. THANK YOU!!
1123 -* Language updates platform - see readme file for details.
1124 -* Mixed type tables optimization supported and in BETA
1125 -* Removal of akismet metadata from comments
1126 -* Removal of other stale metadata from comments
1127 -* InnoDB tables won't be optimized.
1128 -* Main screen user selection will be saved. Red items selection will not be saved
1129 -* Scheduled time display will be shown according to WordPress blog local time
1130 -
1131 -= 1.8.6 =
1132 -* Language files update
1133 -* Fix issues with total gain number problem
1134 -* InnoDB tables detected and features disabled automatically, tables view will not show Overhead. Main view will not show space saved, or total gain.
1135 -
1136 -= 1.8.5 =
1137 -* Version bump + modified translator names
1138 -
1139 -= 1.8.4 =
1140 -* Problem with readme file changes
1141 -
1142 -= 1.8.3 =
1143 -* Minor fixes
1144 -
1145 -= 1.8.1 =
1146 -* A whole lot more code optimization
1147 -* Slick new interface
1148 -* Responsive mobile interface, supports running from iPhone/Android/Tablets
1149 -* Tables moved to independent tab
1150 -* Optimize faster
1151 -* GitHub updater support
1152 -* I do not monitor WP forums, support email at plugins(at)ruhanirabin.com
1153 -
1154 -= 1.7.4 =
1155 -* More Translation compatibility.
1156 -* Added MYSQL and PHP versions beside the Optimizer tab.
1157 -
1158 -= 1.7.3 =
1159 -* Fixed Problems with wpMail.
1160 -* Fixed Problems with wpAdmin menubar.
1161 -* Fixed Permission issues on some site.
1162 -* Language files update
1163 -
1164 -= 1.7.2 =
1165 -* All MySQL statements re-factored into native WP database calls - necessary for future versions of MySQL and WordPress.
1166 -* Upgrade to match WordPress 3.9 changes.
1167 -* Language files update
1168 -* Now postmeta cleanup is disabled from code - it will be updated soon with native WordPress postmeta cleaning options.
1169 -
1170 -= 1.6.2 =
1171 -* Language files update
1172 -
1173 -= 1.6.1 =
1174 -* Fixed - trashed Comments was not clearing out.
1175 -* Language files update
1176 -
1177 -= 1.5.7 =
1178 -* Language files update
1179 -
1180 -= 1.5.6 =
1181 -* "Unused Tags cleanup" option made a problem on some WordPress sites that it deletes empty categories. Since I am unable to replicate this problem. I am making this option disabled.
1182 -* Language files update
1183 -* Minor maintenance and fixes.
1184 -
1185 -= 1.5.5 =
1186 -* Safe clean up options are selected by default, defaults are not by user preference for now (Optimizer Page).
1187 -* All the potentially dangerous clean up options are MARKED RED.
1188 -* Language files update
1189 -* New features explained - http://j.mp/HBIoVT (read the blog post).
1190 -
1191 -= 1.5.4 =
1192 -* More path related fixes for various warnings. Maintenance
1193 -
1194 -= 1.5.2 =
1195 -* Fatar error fix, if it disabled your wp admin, please remove the wp-optimize directory and reinstall again.
1196 -
1197 -= 1.5.1 =
1198 -* Option to add or remove link on wp admin bar (even enabled - it is visible to admin only).
1199 -* New admin interface.
1200 -* Settings to select items for automatic optimization.
1201 -* Removal of WordPress transient options
1202 -* Removal of orphaned post meta tags.
1203 -* Removal of unused tags.
1204 -* 3 different schedule times added (weekly, bi-weekly and monthly).
1205 -* Language files update
1206 -* Code optimization and translation strings updated.
1207 -* Integrated development log from TRAC
1208 -
1209 -= 1.1.2 =
1210 -* removed persistent admin bar menu item
1211 -* Language files update
1212 -
1213 -= 1.1.1 =
1214 -* Fix Fatal Error.
1215 -
1216 -= 1.1.0 =
1217 -* Added WP-Optimize to admin menu bar on top. Always accessible.
1218 -* Added wp-optimize.pot file for translators (inside ./languages/ folder).
1219 -* Last auto optimization timestamp / display
1220 -* Fix possible scheduler bug as requested at support forum
1221 -* Fix some other codes regarding SQL query parameters
1222 -* Ability to keep last X weeks of data, any junk data before that period will be deleted - this option affects both Auto and Manual process. Appreciate time and help from Mikel King (http://mikelking.com/) about this matter.
1223 -
1224 -= 1.0.1 =
1225 -* Removed auto cleanup of trackbacks or pingbacks.. it's better for people to do it manually.
1226 -
1227 -= 0.9.8-beta =
1228 -* added beta tag
1229 -
1230 -= 0.9.8 =
1231 -* Remove all trackbacks and pingbacks (can significantly reduce db size)
1232 -* Remove all Trash Comments and Posts
1233 -* Enable/Disable weekly schedules of optimization. This is an EXPERIMENTAL feature. It may or may not work on all servers.
1234 -
1235 -= 0.9.4 =
1236 -* Non Initialized variables fixes as of https://wordpress.org/support/topic/plugin-wp-optimize-errors-in-debug-mode?replies=2
1237 -
1238 -= 0.9.3 =
1239 -* Removed security tools.
1240 -* Full database size displayed
1241 -
1242 -= 0.9.2 =
1243 -* Now the plugin is visible to site administrators only. Authors, Contributors, Editors won't be able to see it.
1244 -
1245 -= 0.9.1 =
1246 -* Fixed problem with database names containing "-" .
1247 -* NEW Main Level Menu Item added for WP-Optimize, You might need to scroll down to see it
1248 -* Compatibilty with WordPress 3.1
1249 -* Language files update
1250 -* Added auto draft post removal feature
1251 -
1252 -= 0.8.0 =
1253 -* Added Multilanguage capability
1254 -* Language files update
1255 -
1256 -= 0.7.1 =
1257 -* POST META Table cleanup code removed cause it is making problems with many hosts
1258 -
1259 -= 0.7 =
1260 -* Added cleanup of POST META Table along with the revisions
1261 -* Fixed some minor PHP tags which causes the total numbers to disappear
1262 -* Now requires MySQL 5.1.x and PHP 5.1.x
1263 -
1264 -= 0.6.5.1 =
1265 -* Fix Interface
1266 -
1267 818 == Upgrade Notice ==
1268 -* 3.2.5: WebP image format can now be used to serve images, added a cron job to delete expired cache files. Many various tweaks and fixes; a recommended update for all.
819 +* 4.7.0: A new Overview Dashboard, and a lot of tweaks and fixes - a recommended update for all