PluginProbe ʕ •ᴥ•ʔ
WP-Optimize – Cache, Compress images, Minify & Clean database to boost page speed & performance / 4.5.4
WP-Optimize – Cache, Compress images, Minify & Clean database to boost page speed & performance v4.5.4
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 3.8.0 4.0.0 4.0.1 4.1.0 4.1.1 4.2.0 4.2.1 4.2.2 4.2.3 4.2.4 4.3.0 4.3.1 4.4.0 4.4.1 4.5.0 4.5.1 3.2.2 trunk 0.7.0 1.8.9.10 1.8.9.7 1.8.9.8 1.8.9.9 1.9 1.9.1 2.0.1 2.1.0 2.1.1 2.2.0 2.2.1 2.2.10 2.2.11 2.2.12 2.2.13 2.2.2 2.2.3 2.2.4 2.2.6 2.2.8 2.2.9 2.3.0 2.3.1 2.3.2 2.3.3 2.3.4 3.0.0 3.0.1 3.0.10 3.0.11 3.0.12 3.0.13 3.0.14 3.0.15 3.0.16 3.0.18 3.0.19 3.0.2 3.0.3 3.0.4 3.0.5 3.0.7 3.0.8 3.0.9 3.1.0 3.1.1 3.1.10 3.1.11 3.1.12 3.1.2 3.1.4 3.1.5 3.1.6 3.1.7 3.1.8 3.1.9 3.2.1 3.2.10 3.2.11 3.2.12 3.2.13 3.2.14 3.2.15 3.2.16 3.2.17 3.2.18 3.2.19
wp-optimize / readme.txt
wp-optimize Last commit date
cache 1 week ago compatibility 1 month ago css 1 week ago images 6 months ago includes 1 week ago js 1 week ago languages 1 week ago minify 1 week ago optimizations 1 month ago templates 1 week ago vendor 1 week ago webp 1 week ago LICENSE.txt 9 years ago changelog.txt 1 week ago google-fonts.json 1 week ago index.html 9 years ago plugin.json 1 week ago readme.txt 1 week ago security.md 1 year ago wp-optimize.php 1 week ago
readme.txt
822 lines
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.0
8 Stable tag: 4.5.4
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.5.4 - 25/May/2026 =
387
388 * FIX: WebP image compression breaking in some cases
389 * REFACTOR: Avoid instantiating PHPSQLParser on each call in WPO_DB_Table_Analysis
390 * REFACTOR: Class WPO_WebP_Convert
391 * REFACTOR: Make markup readable in `tables-body.php` template
392 * REFACTOR: Refactored duplicated cache_admin_bar logic by centralizing it in the admin class and removing redundant implementations.
393 * REFACTOR: Removed unused `WPO_Htaccess_Capabilities` class
394 * REFACTOR: WPO_Activation class
395 * REFACTOR: WPO_Uninstall class
396 * REFACTOR: WPO_WebP_Alter_HTML class
397 * REFACTOR: WPO_WebP_Self_Test class
398 * REFACTOR: WPO_WebP_Test_Run class
399 * REFACTOR: WPO_WebP_Utils class
400 * REFACTOR: WPO_Webp_Task_Manager class
401 * REFACTOR: WP_Optimize_WebP class
402 * REFACTOR: WP_Optimize_WebP_Images class
403 * TWEAK: Added an additional check to prevent SplFileInfo::getSize() RuntimeException in WP_Optimize_Utils::get_folder_stats()
404 * TWEAK: All in One SEO plugin compatibility issue
405 * TWEAK: Cache - Inconsistent REST cache filenames due to query parameter order
406 * TWEAK: Cache - Set the purge old cache cron schedule based on the Cache lifespan setting
407 * TWEAK: Ensure parsed result is an array in WPO_DB_Table_Analysis::get_query_table()
408 * TWEAK: Exclude GIF from being converted to WebP with `wpo_webp_convert_compressed_images` cron job
409 * TWEAK: Optimized `wpo_username_from_cookies()` to avoid repeated database queries per request
410 * TWEAK: Precheck for existing WebP format of file before running WebP conversion
411 * TWEAK: Remove redundant code that is not reachable.
412 * TWEAK: Resolved edge cases in CapoJS
413
414
415 = 4.5.3 - 29/Apr/2026 =
416 * SECURITY: Prevented path traversal security risk. Thanks to Wordfence for the responsible disclosure
417
418 = 4.5.2 - 20/Apr/2026 =
419
420 * FIX: Bug preg_match() fails on wildcard * patterns in browser agents exclusion list
421 * FIX: Cache - purge the cache when a plugin is auto-updated
422 * FIX: Ensure page caching is fully disabled by updating internal cache configuration to prevent constant-related errors in logs
423 * 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
424 * FIX: Minify - The cron job to purge old cache files is not created
425 * REFACTOR: Instead of nested output buffering, code make use of single buffer using Page Optimizer class
426 * REFACTOR: Refactor Updraft_Smush_Manager::update_smush_options() method
427 * REFACTOR: Using ABSPATH to prevent direct access instead of plugin constants to comply with PCP
428 * TWEAK: Added a safety check to remove scheduled table optimization cron jobs when the server does not allow table optimization
429 * TWEAK: Enhanced database table detection by marking the KD Submissions database table as used by Elementor Pro
430 * TWEAK: Fixed a UI issue with WebP conversion in the Media Library
431 * TWEAK: Handle WP_Error in WPO_Page_Cache::enable() callers
432 * TWEAK: Initialize Heartbeat only on admin pages
433 * TWEAK: Premium - Preload only selected URLs in the "Cache Specific URLs Only" setting
434 * TWEAK: Premium - Smush - Improved PHP 8.5 compatibility by replacing deprecated $http_response_header usage
435 * TWEAK: Updated user agent for the cache preloader
436
437 = 4.5.1 - 23/Mar/2026 =
438
439 * FIX: Fixed compatibility issue with WP Remote
440 * FIX: Notice: Function _load_textdomain_just_in_time was called incorrectly
441 * FIX: Resolved weekly cron not running on WordPress < 5.4 by switching to the wpo_weekly schedule
442 * FIX: Database table error when upgrading from free to premium version
443 * REFACTOR: Improved WebP conversion flow by separating capability checks from configuration changes
444 * REFACTOR: Improved auto-optimization handling by correcting static method usage
445 * REFACTOR: Introduced `WP_Optimize_Server_Compatibility` class to centralize all server environment checks
446 * REFACTOR: Removed separate `get_schedule_types()` method in premium version
447 * SECURITY: Enforced capability checks and allowed-command validation for Smush actions triggered via Heartbeat API. Thanks to WordFence for the responsible disclosure
448 * TWEAK: Display the `Enable the caching menu in the admin bar` option only when Cache or Minify is enabled
449 * TWEAK: Improved detection of LearnDash plugin tables
450 * TWEAK: Improved onboarding wizard RTL support and eliminated dependency on the PHP Reflection class
451 * TWEAK: Improved robustness of `uploads/wpo` directory removal during plugin uninstallation
452 * TWEAK: Minify - Don't remove the version query argument when the source is not processed by Minify
453 * TWEAK: Premium - Unused Images - Enhanced detection of edited WordPress images
454 * TWEAK: Prevent deprecation notices in PHP 8.5
455 * TWEAK: Add a notice when `.htaccess` file is not available or renamed in Apache servers
456
457 = 4.5.0 - 11/Feb/2026 =
458
459 * FEATURE: Premium - Cache – Added ability to cache only selected URLs
460 * FEATURE: Premium - Minify - Host Google Fonts locally
461 * FEATURE: Premium - Option to enhance page performance by applying Capo.js rules
462 * FIX: Cache - fixed sitemap caching issue
463 * FIX: Improved compatibility with WordPress versions earlier than 6.1
464 * FIX: Reset WebP conversion failure no longer appears in the popup
465 * FIX: Resolved issues with detecting WebP conversion availability
466 * FIX: Smush – Fixed missing tooltip in the 'Compress' pop-up in Media Library
467 * FIX: Stop initialization of page optimizer for non-HTML requests
468 * FIX: Remove marcusschwarz/lessc lib from autoload
469 * TWEAK: Added support for bypassing WPO features via a URL query parameter defined by the WPO_DISABLE_MODE_URL_PARAM constant
470 * TWEAK: Allow some database records cleanup for Kinsta users
471 * TWEAK: Clear cache of archived pages when a related post is updated
472 * TWEAK: Disabled CSS/JS merging by default.
473 * TWEAK: Enhanced 404 detector compatibility with plain permalinks
474 * TWEAK: WP_Optimize_Options::auto_option_settings() is not called in Premium version
475 * TWEAK: Improved timestamp handling to prevent fatal errors on WordPress 4.9
476 * TWEAK: Improved Minify settings UI so JavaScript options correctly show/hide when JS minification is enabled/disabled
477
478 = 4.4.1 - 08/Jan/2026 =
479
480 * FIX: Onboarding wizard RTL issue
481 * FIX: Prevented plugin table JSON data in the uploads directory from being updated on every WP-Optimize admin page load
482
483 = 4.4.0 - 12/Dec/2025 =
484
485 * FEATURE: Added Onboarding Wizard
486 * FIX: Ensured old cache purging cron job is scheduled successfully
487 * FIX: Fixed a potential fatal error in the WPO_Page_Optimizer class
488 * TWEAK: Fixed the ability to disable caching menu in admin bar
489 * TWEAK: Updated file permissions for wpo-plugins-tables-list.json
490
491 = 4.3.1 - 14/Nov/2025 =
492
493 * FIX: Prevent PHP fatal error occurring when cache is enabled and the "Aelia Currency Switcher for WooCommerce" plugin is active
494 * FIX: Cache – Fixed compatibility issue
495 * FIX: Database - Table Usage - Fixed the issue with incorrect table name detection in certain cases
496 * FIX: Fixed UI Issue - Content cut off in "Review Actions" modal under WP-Optimize > Database
497 * FIX: Fixed _load_textdomain_just_in_time trigger too early
498 * FIX: Premium - Unused images - Fixed an issue with clearing the cache of unused images
499 * FIX: Smush - Compressing an image larger than the reSmush.it service limit freezes the popup in the Media Library
500 * FIX: Smush - Fixed issue with multiple images compression action
501 * FIX: Undefined property: stdClass::$plugin_status bug fixed
502 * REFACTOR: Database - Table Usage - enhanced variable names
503 * REFACTOR: Using strict comparison throughout the codebase
504 * TWEAK: Improve detection of cloudflare handling browser cache
505 * TWEAK: Added validation for AJAX commands in the Premium version
506 * TWEAK: Convert already compressed images to webp format when possible
507 * TWEAK: Fix the compatibility issue with ALTCHA when using the ASE Pro Plugin
508 * TWEAK: Improve browser caching by adding max-age option
509 * TWEAK: Premium - Cache - Do not process the cache when the user cannot be identified
510 * TWEAK: Premium - Database - Tables usage report shows data only for active plugins
511 * TWEAK: Premium - Unused Images - Enhanced detection for Revolution Slider
512 * TWEAK: Premium - Unused Images - Improved detection of unused images in Oxygen Builder
513 * TWEAK: Premium - Unused Images - Recognize Oxygen 6 images
514 * TWEAK: Premium - Prevent PHP warnings from Table Usage feature
515 * TWEAK: Remove unused jQuery 1.12.4 dependency
516 * TWEAK: Run database table optimization last
517 * TWEAK: Updated links
518 * TWEAK: Various tweaks and improvements to code
519
520 = 4.3.0 - 22/Sep/2025 =
521
522 * FEATURE: Premium - Cache - Cache REST API requests
523 * FEATURE: Premium - Further reduce CSS files sizes by removing unused CSS rules
524 * FIX: Added backward compatibility for timezone and datetime functions and improved status report support for older WordPress versions like 4.9.
525 * FIX: PHP Warning file_exists(): open_basedir restriction in effect
526 * FIX: Prevented buffer initialization during wp-cron when HTML DOM is unavailable.
527 * REFACTOR: Database - Table Usage - Refactored execute_query_analysis() function
528 * TWEAK: Added new UpdraftCentral endpoints
529 * TWEAK: Enhanced multisite support: added performance widget to Network Dashboard and fixed sub-site widgets to show only site-specific 404 request counts.
530 * TWEAK: Fix external loading of Gtag analytics script
531 * TWEAK: Moved the tooltip tag outside the <label> tag
532 * TWEAK: Performance - 404 Detector (Not Found Requests) added a button to clear all logs.
533 * TWEAK: Publishing a post or custom post type (CPT) no longer clears the cache of all posts of the same type.
534 * TWEAK: Removed return statements from constructors and added checks at the point of class instantiation.
535 * TWEAK: Smush - Enhanced compatibility and performance with EWWW Image Optimizer installed
536 * TWEAK: Premium - Added cache support for Nelio A/B Testing plugin
537 * TWEAK: Added a hook to trigger custom code when a page is not cached
538
539 = 4.2.4 - 30/Jul/2025 =
540
541 * FIX: Potential PHP fatal error when no site is selected during database optimization in multisite
542 * FIX: Issue where the database optimization spinner remained indefinitely active
543 * FIX: PHP 8.4 compatibility warnings
544 * FIX: Minify default exclusions fatal error
545 * FIX: Premium - Potential PHP fatal error - type hinting error in the database table usage feature
546 * FIX: Premium - Page cache and lazy load meta boxes no longer display on post edit screen when their respective options are disabled
547 * FIX: Only purge relevant files when a published post is saved; also purge the author archive cache upon post save
548 * FIX: Premium - Fixed compatibility of Table usage with WordPress versions earlier than 5.3
549 * REFACTOR: Premium - Database - Table Usage - added missed translation functions
550 * TWEAK: Purged content will preload only when cache is enabled, and the user-agent has been updated to a modern browser and OS version
551 * TWEAK: Update seasonal advert banner logos, texts and links
552 * TWEAK: Update plugin readme text and links
553 * TWEAK: Premium - Cache - Add UI element to ignore query variables
554 * TWEAK: Premium - Database - Table Usage - replaced loading state with native modal
555 * TWEAK: Removed seasonal discount ads except Black Friday
556
557 = 4.2.3 - 15/Jul/2025 =
558
559 * FIX: Cache - Resolved PHP warning caused by excessively long cache file names
560 * FIX: Corrected typo from `meta data` to `metadata`
561 * FIX: Cron reschedule event error for hook `wpo_prune_404_log` when `is_minimum_requirement_met` is `false`
562 * FIX: Premium - Fixed a rare PHP warning that could occur when saving a post
563 * FIX: Unused image - incorrect image filtering in multisite
564 * FIX: WP Remote sync conflict caused in v4.2.1 and v4.2.2 By replacing wp_salt with core PHP functions
565 * FIX: YouTube lazy-load – Thumbnail image now falls back to JPG if browser doesn't support WebP
566 * FIX: WebP images were not being served in Firefox on certain environments
567 * TWEAK: 404 detector logs URLs on mobile screens goes out of viewport fixed.
568 * TWEAK: CSS Improvements, better font size handling, remove duplication, and SASS instead of import
569 * TWEAK: Delay YouTube preview image cache purging
570 * TWEAK: Display notice when server does not allow database optimizations
571 * TWEAK: Enhanced database optimization compatibility with jQuery 4
572 * TWEAK: Fixed incorrect transients count in database optimizations UI
573 * TWEAK: Improved sanitization of incoming data in `Updraft_Smush_Manager_Commands`
574 * TWEAK: Minify - Improved compatibility with Divi theme's dynamically generated assets
575 * TWEAK: Multisite corrected site count in database optimizations UI.
576 * TWEAK: Preserve EXIF data is set to false by default in all places at codebase level.
577 * TWEAK: Update URLs of links and images to point to https://teamupdraft.com
578
579 = 4.2.2 - 02/June/2025 =
580
581 * FIX: Cache - Resolved unwanted output in WP-CLI and fatal error related to WooCommerce's country-specific files, introduced in v4.2.0
582 * TWEAK: Premium - Cache - Compatibility with WordPress 6.8
583
584 = 4.2.1 - 05/May/2025 =
585
586 * FIX: Cache - Compatibility issue with other plugins due to late start of output buffering
587 * TWEAK: Improved array handling in `get_active_plugins()`, potentially avoiding edge-case fatal error
588
589 = 4.2.0 - 01/May/2025 =
590
591 * 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.
592 * FEATURE: Premium - Replace YouTube Iframes with preview images to improve page speed
593 * FIX: Fix conflict with the WPML plugin
594 * FIX: Smush - Fixed PHP warning on the Media Library page
595 * FIX: Smush - Fixed issue where the Smush popup would freeze
596 * FIX: WebP images not served after WP-Optimize reactivation
597 * REFACTOR: Smush option removed from media upload modal
598 * TWEAK: Update advert banner logos, texts and links
599 * TWEAK: Add missing separator between compression items in media library
600 * TWEAK: Avoid PHP warning thrown by Page Speed Ninja plugin
601 * TWEAK: Cache - Start caching after plugins loaded
602 * TWEAK: Fix PHP deprecation warning in PHPSQLParser for PHP 8.4
603 * TWEAK: Fix deprecation warning in Updraft_Logger class for PHP 8.4
604 * TWEAK: Fixes absence of checkbox to remove all transients
605 * TWEAK: Premium - Support and feedback links in Help tab now point to getwpo.com
606
607 = 4.1.1 - 05/Mar/2025 =
608
609 * FIX: Page builders not working with Delay JS option enabled
610
611 = 4.1.0 - 03/Mar/2025 =
612
613 * FEATURE: Premium - Improve performance by caching Gravatar images locally.
614 * FIX: Premium - Unused images - Fixed warnings when moving non existing image to trash
615
616 = 4.0.1 - 17/Feb/2025 =
617
618 * FIX: File system usage issue
619
620 = 4.0.0 - 10/Feb/2025 =
621
622 * FEATURE: Delay JavaScript execution
623 * FIX: Cache - Fixed PHP warning "Cannot modify header information"
624 * FIX: Minify - Unusual behavior occurs when the "Disable Google Fonts processing" option is enabled
625 * FIX: Smush - Fixed image compression actions in Media Library
626 * REFACTOR: Replacing jQuery Tablesorter with 'sortable-tablesort' package
627 * TWEAK: Cache - Enhance ActivityPub compatibility
628 * TWEAK: Fix PHP notice caused by subscriben plugin advert
629 * TWEAK: Minimum requirements were updated to PHP version 7.2 and WordPress version 4.9
630 * TWEAK: Remove uses of `unserialize` without restriction of allowed_classes
631 * TWEAK: Recognise Independent Analytics Pro plugin tables in database optimization
632
633 = 3.8.0 - 09/Dec/2024 =
634
635 * FEATURE: Added a system status page
636 * FEATURE: Logs frequent and highly recurrent 404 requests; introduces a new Performance tab.
637 * FIX: Cache - Legacy Widgets visibility issue with WP-Optimize Cache enabled
638 * FIX: Cache - UI issue: Preload "Cancel" option is gone after reloading the WPO settings page instantly
639 * FIX: Database - optimizing any item also changes the status of other items
640 * REFACTOR: Minify - Removal of the WPO_MINIFY_PHP_VERSION_MET constant
641 * TWEAK: Add a warning message before deleting post metadata or orphaned relationship data.
642 * TWEAK: Bailout early if the minimum PHP version is not met
643 * TWEAK: Introduced logging for cache purge operations, available under `uploads/wpo/logs/cache-*.log`
644 * TWEAK: Open CRON overdue guide in new tab
645 * TWEAK: Persist Analytics Tab when minification is disabled
646 * TWEAK: Premium - Unused Images - Improved detection of images not present in the Media Library, marking them as used
647 * TWEAK: UI improvements in Analytics section
648 * TWEAK: Wrapped checkboxes inside `label` tags in the confirmation popup that appears when clicking the "Remove" button on the Database > Tables tab.
649
650 = 3.7.1 - 20/Nov/2024 =
651
652 * TWEAK: Resolved a PHP notice caused by translation loading too early when caching is enabled, introduced in WordPress 6.7
653
654 = 3.7.0 - 21/Oct/2024 =
655
656 * FEATURE: Added an option to automatically preload URLs immediately after cache content is purged
657 * FEATURE: Premium - Gather data about table usage by filtering `query` event
658 * FIX: Cache - Scheduled preloading wasn't working
659 * FIX: Inconsistency in `smush_manager_send_command` function
660 * REFACTOR: Smush - Popup styles, remove unused code
661 * TWEAK: Fix fatal implode error when updating to v3.5.0
662 * TWEAK: Image compression - Issue with cancelling smush image compression
663 * TWEAK: Improve module minification logic
664 * TWEAK: Premium - Unused images - Fixed popup when moving images to or restoring images from the trash
665 * TWEAK: Premium - Unused images - Placeholder images in unused images section
666 * TWEAK: Added `security.md` file with information to report security issues
667
668 = 3.6.0 - 12/Sep/2024 =
669
670 * FEATURE: Premium - Auto-detect images lacking dimension attributes and add them to improve CLS
671 * FIX: Fixed the issue that disabled WebP conversion due to checking all shell commands for WebP compression
672 * FIX: Premium - Unused Images - The unused image size deletion functionality does not work when images are not in the /yyyy/mm/ folder
673 * REFACTOR: Removed unnecessary static methods in WebP class
674 * TWEAK: Image compression - Rolled back to using popup error notices as in versions prior to 3.4.0
675 * TWEAK: Added a more descriptive error with resolution proposals for failed gzip compression and browser cache tests
676 * TWEAK: Fix broken unused image list thumbnails and download as csv link in Multisite
677 * TWEAK: Fix the singleton pattern in Heartbeat class
678 * TWEAK: Image compression functionality added to the Media Library page
679 * TWEAK: Premium - Cache - Added support for Aelia Currency Switcher plugin
680 * TWEAK: Premium - Unused images - improve clarity in UI for images in post revisions
681 * TWEAK: Added additional checks to the `implode()` function to mitigate the risk of fatal errors on certain instances
682
683 = 3.5.0 - 14/Aug/2024 =
684
685 * FEATURE: Premium - Host Google and minimal analytics scripts locally
686 * FIX: Premium - Cache - Single page cache purge/preload feature isn't working
687 * TWEAK: Add logging for the WebP feature
688 * TWEAK: Allow minification of script modules
689 * TWEAK: Cache - Purge the cache when the site is migrated
690 * TWEAK: Improvements to asset minification cache logic
691 * TWEAK: Improvements to reSmushIt curl error message
692 * TWEAK: Minify - Added an option to disable Google Fonts processing when it causes conflicts with other plugins
693 * TWEAK: Move all WPO files from the `uploads` folder to `uploads/wpo`
694 * TWEAK: Style improvement of the loading modals
695
696 = 3.4.2 - 03/Jul/2024 =
697
698 * FIX: Removes unnecessary heartbeat calls for retrieving information about images
699
700 = 3.4.1 - 26/Jun/2024 =
701
702 * FIX: Issue with bulk editing on the posts and pages edit screen
703
704 = 3.4.0 - 25/Jun/2024 =
705
706 * FEATURE: Premium - Smush - Bulk compress / restore from media library
707 * FIX: Deactivate the form for minifying JS/CSS settings when the corresponding option is disabled
708 * REFACTOR: The functionality for the 'Unused Images' feature in ACF has been moved to a separate class
709 * TWEAK: Add UpdraftCentral commands for the latest WP-Optimize features
710 * TWEAK: Adjusted the scheduled preload time for improved performance
711 * TWEAK: Auto-update advanced-cache.php settings during site migration
712 * TWEAK: Cache - Human-readable file names for the cache directory
713 * TWEAK: Caching related cron jobs are activated even though cache is disabled
714 * TWEAK: Image compression - Updated message for restoring images action
715 * TWEAK: Implement Heartbeat API for image compression progress updates
716 * TWEAK: Improving vendor autoload
717 * TWEAK: Introduces a hook (`wpo_force_webp_serve_using_altered_html`) for changing WebP serving method
718 * TWEAK: Minify - Exclude .min files from minification
719 * TWEAK: Minify - Improve list of processed files UI
720 * TWEAK: Optimization of the get_uncompressed_image query
721 * TWEAK: Persist script loading strategy when minifying JS files
722 * TWEAK: Premium - Compatibility with Curcy WooCommerce multi currency plugin
723 * TWEAK: Premium - Unused Images - Added an option to delete original images when scaled versions exist
724
725 = 3.3.2 - 16/Apr/2024 =
726
727 * FIX: Ensure the admin bar is not cached when caching is enabled for both logged-in and guest users
728 * REFACTOR: Remove unused code
729 * TWEAK: Cache - Prevent sitemaps being cached
730 * TWEAK: Display a notice when static browser cache is enabled but not working
731 * TWEAK: Premium - Added "Lost your password?" link on plugin's page
732 * TWEAK: Premium - Unused images - Detect Elementor's 'Video' widget's image
733 * TWEAK: Recognise Rank Math plugin tables as used in database optimization
734 * TWEAK: Reduce .htaccess file write operations when WebP is enabled
735 * TWEAK: Seasonal notice content update for 2024
736 * TWEAK: Unused Images - Unused tab displays multiple images for compressed images with WebP Conversion
737 * TWEAK: Prevent multiple AJAX requests being generated by repeated clicks on the "Purge Cache" button
738 * TWEAK: Call the `litespeed_finish_request()` function when attempting to close browser connection on LiteSpeed servers
739
740 = 3.3.1 - 06/Mar/2024 =
741
742 * FIX: Cache - Compatibility issue with Jetpack's infinity scroll feature
743 * FIX: Cache - Don't cache activity stream (ActivityPub plugin compatibility)
744 * FIX: Cache - Page not cached comment is added to `robots.txt`
745 * TWEAK: Fix PHP warnings when server variables are not available
746 * TWEAK: Fix Unexpected response alert and PHP warning when cache preloading is triggered manually
747 * TWEAK: Migrate from setInterval to WP heartbeat API to refresh information about backend tasks
748 * TWEAK: Optimization of the WebP Implementation
749 * TWEAK: Update dashboard notice to include all of our plugins
750 * TWEAK: Update the footer review prompt
751
752 = 3.3.0 - 31/Jan/2024 =
753
754 * FEATURE: Premium - Ability to preload and purge caches from individual post/page
755 * FIX: Premium - Unused Images - Recognise Elementor's Container, and Section widget background images
756 * FIX: Avoid having repeated minified scripts in the same bundle, it breaks the code in some specific cases
757 * FIX: Cache - TranslatePress compatibility - Post updates purges cache for all related translated languages
758 * FIX: Only try to parse canonical URLs if there is a path or querystring, needed for WPML with multi-domain compatibility
759 * TWEAK: Add cron de-scheduling of all wpo_* events during plugin uninstall
760 * TWEAK: Cache - Always add source code comment about page not being cached, but only add details when WP_DEBUG is ON
761 * TWEAK: Cache - Fix issue with excluding encoded (non-latin) URLs
762 * TWEAK: Do not attempt to close browser connection when the context is not an AJAX action
763 * TWEAK: Minify - Logging more information about why minify static assets cache gets invalidated and regenerated
764 * TWEAK: Revert to the original `matthiasmullie/minify` repository after confirming resolution of previous issues
765 * TWEAK: Setup Cron job to clear failed smush tasks from DB
766 * TWEAK: Using clear text user agent strings instead of regular expressions to identify web browsers for improved clarity
767 * TWEAK: Updater library in the Premium version updated to the current release series
768
769 = 3.2.22 - 23/Nov/2023 =
770
771 * TWEAK: Cache - Show a notice in the admin if the config file is missing and caching is enabled
772 * TWEAK: Added support for new emoji styles related hooks introduced in WordPress 6.4
773 * TWEAK: Database - Fix "Optimize database tables" stuck loading state
774 * TWEAK: Premium - Cache - Style improvement for the select2 box from advanced cache settings
775 * TWEAK: Premium - Images - Fix issues with avif images in the unused images feature
776 * REFACTOR: Wrapping most of the external links in the WPO settings pages with the appropriate function
777 * REFACTOR: Remove unused code
778
779 = 3.2.21 - 18/Oct/2023 =
780 * FIX: Prevent PHP fatal error when updating from older versions of WP-Optimize
781
782 = 3.2.20 - 16/Oct/2023 =
783
784 * FIX: WebP - Performance issue because of possible infinite loop
785 * FIX: Cache purging occurred prior to the cache lifespan expiration
786 * FIX: Premium - Smush - Do not consider images in trashed posts as unused
787 * TWEAK - Remove extra slash from plugin asset urls and paths
788 * TWEAK: Image - Add a tooltip next to the restore button on the edit media screen
789 * TWEAK: Premium - Prevent PHP deprecated warning when generating variations from attributes for new WooCommerce variable products
790 * TWEAK: Premium - Purge cache when the `Variation Swatches for WooCommerce` plugin settings get updated
791 * TWEAK: Premium - Settings - Style improvement for the `Purge cache permissions` select2 box
792 * TWEAK: Recognise LearnDash plugin tables in database optimization
793 * TWEAK: Remove empty `uploads/.htaccess` file and remaining cron events
794 * TWEAK: Smush - Disable server info in smush logs by default
795 * TWEAK: Smush - Resolve double log entries when compressing a single image from the media library metabox
796 * TWEAK: Prevent unwanted PHP notice upon update
797
798 = 3.2.19 - 15/Sep/2023 =
799
800 * FIX: Cache - Relevant caches are now purged upon updating homepage display settings and posts per page settings
801 * FIX: Minify - Multiline content inside textareas break after exporting and importing settings
802 * FIX: Smush - Images are not compressed with default (image quality = 100) settings
803 * FIX: Premium - Cache - Caching stops working when WordPress salt keys contain backslash (\) character
804 * FIX: Premium - User per role cache not working when tables do not have `wp` prefix
805 * FIX: Premium - When lazy loading is enabled, the picture tag in initial viewport is not visible
806 * TWEAK: Fixed date format and timezone in the cache last modification comment according to the site configuration
807 * TWEAK: Fixed spelling errors in the repository
808 * TWEAK: Minify - The process of purging cache for 3rd party caching solutions now works properly when multiple other solutions are present
809 * TWEAK: Premium - Lazy load - Added Jetpack, Optimole, Rocket Lazy Load, and Smush (WPMU Dev) plugins to the incompatibility notice
810 * TWEAK: Prevent PHP warning upon installing themes from the WordPress repository
811 * TWEAK: Update the composer package yahnis-elsts/plugin-update-checker for PHP 8.2 compatibility
812
813 = 3.2.18 - 11/Aug/2023 =
814
815 * FIX: A bug in the v3.2.17 release that caused certain database optimization buttons to be disabled has been fixed
816 * TWEAK: Reset WebP serving method upon updating to version 3.2.18
817
818 [See changelog for all versions](https://plugins.svn.wordpress.org/wp-optimize/trunk/changelog.txt).
819
820 == Upgrade Notice ==
821 * 4.5.4: A lot of bug fixes and tweaks - a recommended update for all
822