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
wp-optimize / readme.txt

readme.txt in WP-Optimize – Cache, Compress images, Minify & Clean database to boost page speed & performance 4.7.0, at readme.txt

820 lines 59.7 KB
No matching file
Up and down to move Enter to open Esc to close
Raw Download Zip
1 === WP-Optimize – Cache, Compress images, Minify & Clean database to boost page speed & performance ===
2 Contributors: DavidAnderson, ruhanirabin, DNutbourne, aporter, snightingale, lumberhack, webulous
3 Donate link: https://david.dw-perspective.org.uk/donate
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 License: GPLv2+
10 License URI: https://www.gnu.org/licenses/gpl-2.0.html
11
12 Get caching and more with this powerful cache plugin. Cache, optimize images, clean your database and minify for maximum performance.
13
14 == Description ==
15
16 MORE THAN A CACHING PLUGIN
17
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
20 It does this in four clever ways:
21
22 <strong>1. It caches your site</strong>
23
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.
25
26 It's a sure-fire way to ensure web pages load at lightning-fast speed. Turn it on in just one click.
27
28 <strong>2. It compresses images</strong>
29
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.
31
32 <strong>3. It cleans the database</strong>
33
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.
35
36 <strong>4. It minifies</strong>
37
38 On top of its three main features, WP-Optimize Cache also has the more advanced minification feature.
39
40 Together with caching, minification dramatically improves performance and page speed load time.
41
42 == 1. CACHE YOUR SITE ==
43
44 <strong>Turn on caching in just one click:</strong>
45
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.
47
48 <strong>More cache features:</strong>
49
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.
51
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%!
53
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>.
55
56 <strong>Use cache settings to:</strong>
57
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).
59
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).
61
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.
63
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>.
65
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>.
67
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>.
69
70 == 2. COMPRESS IMAGES ==
71
72 * <strong>Lossy or lossless compression options:</strong> Choose between maximum space saving, best image quality or somewhere in-between.
73
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.
75
76 * <strong>Auto-compress:</strong> Check a box and every new image you upload will automatically be compressed to your preferred lossy / lossless settings.
77
78 * <strong>Bulk compression:</strong> Compress every existing image on your site with the press of a button.
79
80 * <strong>Restore original:</strong> Gone too far? Revert images back to their original in one click.
81
82 * <strong>Retain EXIF image data:</strong> Check a box to retain EXIF image data during compression.
83
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>.
85
86 * <strong>Delete orphaned images:</strong> Identify and delete unused images from your Wordpress website, saving disk space <strong>[Premium]</strong>.
87
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>.
89
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
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.
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.
140 * <strong>Deleting unused and unwanted images:</strong> removes orphaned images from your WordPress site, plus images of a certain, pre-defined size.
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.
142 * <strong>Seamless Graphical User Interface:</strong> for superb clarity in scheduling and managing of multi-site optimizations.
143 * <strong>WP-CLI support:</strong> provides a way to manage optimizations from command-line interface if you have lots of sites
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.
145 * <strong>Optimization Preview:</strong> gives users the ability to preview, select and remove data and records available for optimization from the database.
146 * <strong>Preload key requests:</strong> preload assets such as web fonts and icon fonts, as recommended by Google PageSpeed Insights.
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.
148
149 = Translations =
150
151 Translators are welcome to contribute to the plugin. Please use the [WordPress translation website](https://translate.wordpress.org/projects/wp-plugins/wp-optimize).
152
153 == Installation ==
154
155 There are 3 different ways to install WP-Optimize Cache, as with any other wordpress.org plugin.
156
157 = Using the WordPress dashboard =
158
159 1. Navigate to the 'Add New' in the plugins dashboard
160 2. Search for 'WP-Optimize'
161 3. Click 'Install Now'
162 4. Activate the plugin on the Plugin dashboard
163
164 = Uploading in WordPress Dashboard =
165
166 1. Download the latest version of this plugin from https://wordpress.org/plugins/wp-optimize/
167 2. Navigate to the 'Add New' in the plugins dashboard
168 3. Navigate to the 'Upload' area
169 4. Select the zip file (from step 1.) from your computer
170 5. Click 'Install Now'
171 6. Activate the plugin in the Plugin dashboard
172
173 = Using FTP =
174
175 1. Download the latest version of this plugin from https://wordpress.org/plugins/wp-optimize/
176 2. Unzip the zip file, which will extract the wp-optimize directory to your computer
177 3. Upload the wp-optimize directory to the /wp-content/plugins/ directory in your web space
178 4. Activate the plugin in the Plugin dashboard
179
180 == Frequently Asked Questions ==
181
182 = Isn't it better to use a dedicated caching plugin to cache my site? =
183
184 We've built WP-Optimize Cache around the most advanced and powerful caching technology. Our caching tests and feedback from real-world users show that the caching feature alone can make your site faster than any other cache plugin or optimization. <a href="https://ps.w.org/wp-optimize/assets/screenshot-1.png?rev=2125386">See these speed test results.</a>
185
186 = Is optimizing my database safe? =
187 Yes; optimizing does not involve any "tricks" or poking around in dangerous ways. It involves running routine clean-up operations using well-defined, common MySQL commands. <strong>Nevertheless, we always recommend backups</strong>, which cover every possibility; not just database malfunctions, but hackers, human errors, etc. We recommend <a href="https://wordpress.org/plugins/updraftplus/">UpdraftPlus</a>.
188
189 = What savings can I expect to make? =
190 This is a "how long is string?" sort of question. It depends completely on your site - how big it is, how many users interact on it, how long it has been running, and when you last optimised it. However, the savings and speed-ups can be substantial; it is always worth making sure that your database is optimised.
191
192 = How do I get support? =
193 In our support forum, here: https://wordpress.org/support/plugin/wp-optimize/
194
195 = WP-Optimize does not make large savings on my database =
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.
197
198 = Is the plugin tried and tested? =
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.
200
201 = Does WP-Optimize support InnoDB tables? =
202 WP-Optimize will disable some features if it detects InnoDB tables. Optimization of the database tables on-disk is not available, but other clean up features would work.
203
204 = Can you help me restore my database? =
205 Not unless you have an existing backup. Please ensure that you make a backup of your entire database before using WP-Optimize for the first time, and when you upgrade to a major new version of it. We recommend <a href="https://wordpress.org/plugins/updraftplus/">UpdraftPlus</a>.
206
207 = Are there any bugs in this plugin? =
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).
209
210 = How do I stop transient options from coming back automatically each time I clear them? =
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.
212
213 = The table size shows wrong / Not optimizing =
214 Please check your database for corrupted tables. That can happen, usually your web hosting company can run the repair command on the db.
215
216 = Which WordPress and PHP versions are supported? =
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.
218
219 = Which optimisation will make the biggest difference? =
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.
221
222 = What is caching, or page caching? =
223 <em>"Caching", from Wikipedia:</em> "In computing, a cache is a hardware or software component that stores data so that future requests for that data can be served faster; the data stored in a cache might be the result of an earlier computation or a copy of data stored elsewhere. A cache hit occurs when the requested data can be found in a cache, while a cache miss occurs when it cannot." — WP-Optimize cache does this by saving the page computed by WordPress on the disk. When a user visits a page, WP-Optimize will serve the cached page before WordPress is loaded. If the page wasn't cached before, it will be computed by WordPress, and WP-Optimize will then save the result to the cache.
224
225 = Why should I use a caching plugin on my website? =
226 You think your site is fast without caching? A caching plugin will make your website even faster. A faster cached website will increase SEO, it will improve your visitors experience. Caching will also save your server's resources.
227
228 = Is the WP-Optimize page cache compatible with Gutenberg and WordPress 5.0+? =
229 Yes, your Gutenberg pages will be cached, as well as those created with page builder plugins such as Elementor.
230
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>
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.
235
236 = How do I configure the page cache? =
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.
238
239 = Is the caching feature compatible with e-commerce plugins? =
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).
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
245 = Do I need a special setup to use the caching feature? =
246 No, if WordPress works properly, WP-Optimize will be able to cache your pages and posts.
247
248 = Can I use the page caching feature together with another cache plugin? =
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.
250
251 = Is WP-Optimize caching compatible with Cloudflare? =
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.
253
254 = Can I empty the cache automatically when performing a custom action? =
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`.
256
257 = Will the comments work even when page caching is enabled? =
258 Yes, when using WordPress' commenting system, your users will still be able to post comments. Every time a comment is approved, the cache for that page or post will be cleared, allowing the next visitor to see an up to date list of comments.
259
260 = What is "cache preloading"? =
261 Usually, a page is cached when a user visits it. So the first user visiting won't be served a cached version of the page, and will wait longer than the next users. The cache preloading functionality will go through all your pages and posts, and simulate a visit by a user, allowing WP-Optimize to cache the pages before anyone visits them. Your first visitor will thus be served a cached version of the page, increasing its performance.
262
263 = What frequency should I choose for the cache preloading schedule? =
264 Choosing a frequency for the cache preloading schedule will depend on factors such as the frequency at which the website content is updated, the number of pages in the cache, the resources of the server and more.
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.
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.
267
268 = How do I cache only the home page? =
269 Add /.+ to the cache option "URLs to exclude from cache" on the advanced settings tab.
270
271 = How do I prevent WP-Optimize Cache from caching a certain page =
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.
273
274 = Is the caching feature of WP-Optimize free? =
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.
276
277 = Where does WP-Optimize Cache store the cached files? =
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.
279 Deleting the "cache" folder is generally safe, as those cached files will be regenerated.
280
281 = How do I disable caching? =
282 Go to WP-Optimize settings > Cache and toggle the "Enable page caching" option to on/off.
283
284 = Will caching slow down my server? =
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.
286
287 = Can I make certain parts of the page stay dynamic when cache is enabled? =
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.
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.
290
291 = How do I delete the WP_CACHE define from wp-config.php? =
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 );
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.
294
295 = My filesystem is not writable to increase security. What do I need to do to make it compatible with the caching functionality? =
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.
297
298 = How do I change file permissions? =
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/
300
301 = What is the maximum number of pages I can cache? =
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.
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.
304
305 = How do I serve cached pages to people using a phone or tablet? =
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.
307
308 = Does WP-Optimize Cache work with Nginx? =
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.
310
311 = Does caching work with Windows Server (IIS) ? =
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.
313
314 = Does the WP-Optimize page cache work with non-pretty (query parameter-based) permalinks? =
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.
316 Note that cache will work with permalinks including /index.php/. It is only those based upon query parameters (?…) where cache won't work.
317
318 = When does WP-Optimize clear the page cache? =
319 * When you publish new content or update/edit existing content, the cache for that post/page will be cleared.
320 * Changing/updating current themes and parent themes (of child themes) will purge the cache.
321 * When turning off the cache feature in WP-Optimize
322
323 = Will pages in the WP admin dashboard be cached? =
324 No, WP dashboard pages are not cached. The cache functionality is only meant to cache frontend pages.
325
326 = What is cache lifespan? =
327 The cache lifespan is the time a cached file will be kept before being regenerated.
328 One of the main reason for setting a lifespan to your cache is that some plugins and themes use nonces, which are printed in the source code of the page (<a href="https://developer.wordpress.org/plugins/security/nonces/">Read more about nonces here</a>). These nonces cannot be reused and are valid for 12 hours by default (developers can change that value). The cache plugin will store the nonce in the page, and this one will become invalid after that perdiod of time, which can affect certain functionalities of your plugins and themes. Setting a cache lifespan to under 10 hours ensures the cache is flushed automatically before the nonce expires. This way you can use WP-Optimize's cache feature on sites which use nonces.
329 An other reason is that you may want your pages to reflect some changes without having to clear the whole cache. Indeed if you have many pages and posts, you might not want to clear every cache file with every change, but rather set an interval at which they will expire and be regenerated.
330
331 = What value should the cache lifespan be? =
332 A lower cache lifespan value will result in more frequent cache update activity on your server, and thus more preload processes, if activated.
333 If your site does not use nonces, and your site's cache doesn't need to be updated often, you can set the cache lifespan to a high value or to 0 to give it an infinite lifespan.
334 The cache lifespan option is set to 10 hours by default, but you may go down to 8 or even less.
335 If you notice any issues due to high server load, set a higher interval for the preloader.
336
337 = Can WP-Optimize Cache minify JavaScript, CSS and HTML? =
338 Yes, the newly added Minify enables you to minify JavaScript and CSS. It also enables you to minify HTML.
339
340 = Why minify my WordPress site? =
341 WP-Optimize Cache's Minify feature is all about increasing the speed of your WordPress site for your users.
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.
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.
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.
345
346 = What does "Reset the minified files" actually do? =
347 Pressing the "Reset the minified files" does:
348 * delete the temporary files used when generating the minified assets
349 * delete old minified files (more than 30 days old)
350 * add a folder for the new minified files, which will be generated when visiting a page
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".
352
353 = Can I defer CSS and JavaScript using WP-Optimize Cache? =
354 Yes, the newly added minification feature (a.k.a. Minify) allows you to defer parsing of JavaScript and CSS.
355
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? =
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".
358
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.
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.
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.
364
365 = When enabling minify, some functionality is broken. How can I fix it? =
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.
370
371 == Screenshots ==
372
373 1. Cache - plugins comparison benchmark
374 2. Database optimization
375 3. UpdraftPlus running a backup before an optimization proceeds
376 4. Table Report
377 5. Image compression
378 6. Main cache screen
379 7. Settings
380 8. Real world tests show the cache feature alone can make your site faster than any other caching plugin
381 9. Features comparison
382
383
384 == Changelog ==
385
386 = 4.7.0 - 16/Sep/2026 =
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
413
414 = 4.6.1 - 29/Jul/2026 =
415
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
432
433 = 4.6.0 - 06/Jul/2026 =
434
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
458
459 = 4.5.5 - 05/Jun/2026 =
460
461 * TWEAK: Update the bundled common-libs version
462
463 = 4.5.4 - 25/May/2026 =
464
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
490
491 = 4.5.3 - 29/Apr/2026 =
492 * SECURITY: Prevented path traversal security risk. Thanks to Wordfence for the responsible disclosure
493
494 = 4.5.2 - 20/Apr/2026 =
495
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
512
513 = 4.5.1 - 23/Mar/2026 =
514
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
532
533 = 4.5.0 - 11/Feb/2026 =
534
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
553
554 = 4.4.1 - 08/Jan/2026 =
555
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
558
559 = 4.4.0 - 12/Dec/2025 =
560
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
566
567 = 4.3.1 - 14/Nov/2025 =
568
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
595
596 = 4.3.0 - 22/Sep/2025 =
597
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
614
615 = 4.2.4 - 30/Jul/2025 =
616
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
632
633 = 4.2.3 - 15/Jul/2025 =
634
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
654
655 = 4.2.2 - 02/June/2025 =
656
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
659
660 = 4.2.1 - 05/May/2025 =
661
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
664
665 = 4.2.0 - 01/May/2025 =
666
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
682
683 = 4.1.1 - 05/Mar/2025 =
684
685 * FIX: Page builders not working with Delay JS option enabled
686
687 = 4.1.0 - 03/Mar/2025 =
688
689 * FEATURE: Premium - Improve performance by caching Gravatar images locally.
690 * FIX: Premium - Unused images - Fixed warnings when moving non existing image to trash
691
692 = 4.0.1 - 17/Feb/2025 =
693
694 * FIX: File system usage issue
695
696 = 4.0.0 - 10/Feb/2025 =
697
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
708
709 = 3.8.0 - 09/Dec/2024 =
710
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.
725
726 = 3.7.1 - 20/Nov/2024 =
727
728 * TWEAK: Resolved a PHP notice caused by translation loading too early when caching is enabled, introduced in WordPress 6.7
729
730 = 3.7.0 - 21/Oct/2024 =
731
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
743
744 = 3.6.0 - 12/Sep/2024 =
745
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
758
759 = 3.5.0 - 14/Aug/2024 =
760
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
771
772 = 3.4.2 - 03/Jul/2024 =
773
774 * FIX: Removes unnecessary heartbeat calls for retrieving information about images
775
776 = 3.4.1 - 26/Jun/2024 =
777
778 * FIX: Issue with bulk editing on the posts and pages edit screen
779
780 = 3.4.0 - 25/Jun/2024 =
781
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
800
801 = 3.3.2 - 16/Apr/2024 =
802
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
815
816 [See changelog for all versions](https://plugins.svn.wordpress.org/wp-optimize/trunk/changelog.txt).
817
818 == Upgrade Notice ==
819 * 4.7.0: A new Overview Dashboard, and a lot of tweaks and fixes - a recommended update for all
820