Merges/Concatenates CSS & Javascript and then minifies using Minify (for CSS) and Google Closure (for JS with Minify as a fallback).
As of April 2026, Merge + Minify + Refresh is a WordPress merge plugin with 4.0K+ active installations and a 4.2/5 rating from 68 reviews. It has been downloaded 443K+ times in total. Requires WordPress 6.4.0+ and PHP 7.4+. Available on WordPress.org since 2015. Recently updated within the last 3 months. Download volume is stable this week. Top alternative: Merge Menus.
Development for this plugin is now done on GitHub. Pull requests are welcome.
This plugin merges/concatenates Cascading Style Sheets & Javascript files into groups. It then minifies the generated files using Minify (for CSS) and Google Closure (for JS – fallback to Minify when not available). Minification is done via WP-Cron so that it doesn’t slow down the website. When JS or CSS changes files are re-processed. No need to empty cache!
Inspired by MinQueue and Dependency Minification plugins.
Minification by Minify and Google Closure
In order to ensure fast loading times it’s recommended to set long expiry dates for CSS and JS as well as make sure gzip or deflate is on.
Version 1.10 added should_mmr filter which allows developers to disable MMR when needed. You could…
I used a website speed test to look at the differences before and after installing this plugin. Of course I waited a while for the merging and minifying to take effect i.e. I visited my website and moved from page to page.
The plugin got the number of requests down by 20.
What about speed? Well the load time does vary. Even without the plugin, sometimes the website responded a bit faster. It looks like this plugin has reduced the load time for my website by 0.8 seconds.
To get this reduction in load time, I had to turn on “enable output buffering” and both “enable preload” options. Without these options turned on the speed increase was about 0.4 or 0.5 seconds.
This an excellent result. Thanks very much.
Now http2 is supposed to make merging have less effect. Is this really true? Is this still the case? Are all the effects from minifying or are they from merging as well?
It seems to me that:
* if the CSS files has @includes it will not work. The option to skip CSS seems to be ignored
* If the site is password protected (htpasswd protected site) the minifying part will be skipped.
Great plugin. Works as expected.
Thank you.
I discovered that autoptimize generated unwanted 302 redirections. There was a reason for it. autoptimize generates new CSS and JS filenames from time to time. So, then googlebot is lost and autoptimize creates a 302 redirect from old to newly generated CSS and JS files. If you disable their
Merge, minify is much better. it uses variables in the URL to show new versions of files. For your information this is the WordPress approach. It is the best because, Googlebot understands it and it does not create a 404 or a 302 when a CSS file or a JS file is refreshed.
To my knowledge this plugin is the only one with this approach.
It is super simple. The developer of this plugin didn’t add useless features. i like it.
You just install and it is ready out of the box. We don’t need other features. We need this plugin to remain efficient with new versions and to remain the best as it is now.
I can see that in the background, this plugin does a great job. It reduces the number of files to the minimum and it is really lightweight.
By far, this plugin is the best Merge, minify wordpress plugin
Combines, but doesn’t properly minify .js and fails on dynamic parts of Woocommerce checkout page – vanilla theme – both .js and css.
| WordPress | 6.4.0+ requiredTested up to 6.9.0 |
| PHP | 7.4+ required |
Plugin data sourced from WordPress.org. Analysis and metrics by PluginSift.