BLACK FRIDAY
Save 59% on PageForge Annual $191/year $485/year
Claim 59% Off →
Merge + Minify + Refresh icon
Actively maintained Tested up to 6.9.0 #1 in closure

Merge + Minify + Refresh

Merges/Concatenates CSS & Javascript and then minifies using Minify (for CSS) and Google Closure (for JS with Minify as a fallback).

Active installs4K+1K+ tier
Downloads · 30d1.2K▼ -32.6% vs prev. 30d
Rating4.2/568 reviews
Health score58/100Fair
All-time downloads449.4KSince Apr 2015
Support resolved0 / 10% in last 2 months
RequiresWP 6.4.0PHP 7.4+
Downloads · 7d272• -0.4% week over week
Our verdict

Use with caution

Merge + Minify + Refresh works, but test it on a staging site before relying on it in 2026. It runs on 4K+ sites, is rated 4.2/5 and was last updated 2 months ago, and scores 58/100 on our health check.

  • Only tested up to WordPress 6.9 (latest is 7.1)

How does it stack up?

Side-by-side on installs, updates, ratings & support

Daily downloads

174348522Jun 28Aug 11Sep 25
Yesterday57
Daily average (1y)51
Peak day1,915Dec 9, 2025
Last 12 months18.5K

Download spikes usually follow a new release — each site that auto-updates counts as a download.

Rankings

Where Merge + Minify + Refresh stands today

WordPress.org search rankings

Live position in the plugin search, top 100
KeywordPositionCompeting pluginsCategory
closure #2 287 Best closure plugins →
concatenate #3 47 Best concatenate plugins →
merge #1 1,202 Best merge plugins →
minify #7 548 Best minify plugins →
refresh #4 4,315 Best refresh plugins →

Version adoption

Share of active sites per release.

  • 2.1633.0%
  • 2.1516.3%
  • 2.1212.0%
  • 1.89.0%
  • 1.127.4%
  • 1.106.9%
  • Other15.4%

Rating breakdown

★★★★★★★★★★ 4.2 from 68 reviews

  • 5★73.5%
  • 4★5.9%
  • 3★4.4%
  • 2★1.5%
  • 1★14.7%

About Merge + Minify + Refresh

From the official readme · v2.16

Description

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 use this to disable MMR for certain WordPress roles or with some Page Builders. Three new plugins have been created that utilise this:
Merge + Minify + Refresh Check DIVI, Merge + Minify + Refresh Check Visual Composer and Merge + Minify + Refresh Check Beaver Builder. Please install these when required.

Version 1.6 added support for HTTP2 Server Push to further speed up your requests (thanks to Daniel Aleksandersen).

Version 1.6.9 added the ability to specify the cache directory. Set MMR_CACHE_DIR & MMR_CACHE_URL constants in wp-config.php. MMR_CACHE_DIR must be full server path and MMR_CACHE_URL must be absolute URL for this to work correctly (thanks to Daniel Aleksandersen).

Version 1.6.11 added the ability to specify seperate cache urls for javascript and CSS. Use MMR_JS_CACHE_URL & MMR_CSS_CACHE_URL to replace MMR_CACHE_URL.

Version 1.7.0 added the ability to generate .css.gz & .js.gz files. Your webserver may need to be configured to use these files. Here is how to use these files in Apache (mod_rewrite, mod_deflate and mod_headers need to be enabled):

<IfModule mod_rewrite.c>
    <IfModule mod_deflate.c>
        <IfModule mod_headers.c>
&#35;Serve gzip compressed CSS files if they exist and the client accepts gzip.
RewriteCond %{HTTP:Accept-encoding} gzip
RewriteCond %{REQUEST_FILENAME}\.gz -s
RewriteRule ^(.*)\.css $1\.css\.gz [QSA]

&#35;Serve gzip compressed JS files if they exist and the client accepts gzip.
RewriteCond %{HTTP:Accept-encoding} gzip
RewriteCond %{REQUEST_FILENAME}\.gz -s
RewriteRule ^(.*)\.js $1\.js\.gz [QSA]

&#35;Serve correct content types, and prevent mod_deflate double gzip.
RewriteRule \.css\.gz$ - [T=text/css,E=no-gzip:1,E=is_gzip:1]
RewriteRule \.js\.gz$ - [T=text/javascript,E=no-gzip:1,E=is_gzip:1]
Header set Content-Encoding "gzip" env=is_gzip
        </IfModule>
    </IfModule>
</IfModule>

Version 1.8.8 added a “merge_minify_refresh_done” hook that fires when JS or CSS has changed.

Version 1.11 added two new constants:
MMR_USE_CLOSURE – allows Google Closure Javascript minification to be disabled.
MMR_REMOVE_EXPIRED – disables removing expired files.

Version 1.13 added two new filters which can be used to exclude specific files:
mmr_ignored_css_sources
mmr_ingnored_js_sources
Version 1.13 also automatically moves the WordPress inline styles to a global stylesheet which it then enqueues.

Version 1.14.3 added two new filters which can be used to modify the output before it gets saved:
modify_css_output_before_save
modify_js_output_before_save

Note Installing this plugin on a server with the eAccellerator module installed has the potential to break as Minify uses anonymous functions which return NULL. View eAccellerator Issue Thread

Features

  • Merges JS and CSS files to reduce the number of HTTP requests
  • Handles scripts loaded in the header & footer
  • Compatible with localised scripts
  • Creates WP-Cron for minification as this can take some time to complete
  • Minifies JS with Google Closure (requires php exec) with fallback to Minify
  • Minifies CSS with Minify
  • Failed minification doesn’t break the site. Visitors will instead only see the merged results
  • Stores Assets in /wp-content/mmr/ folder
  • Uses last modified date in filename so any changes to JS or CSS automatically get re-processed and downloaded on browser refresh
  • View status of merge and minify on settings page in WordPress admin
  • Option to enable http2 server push (thanks to Daniel Aleksandersen)
  • Option to enable output buffering for compatibility and so footer scripts can be HTTP2 pushed
  • Ability to turn off minification
  • Ability to turn off concatenation
  • Ability to manually ignore scripts or css
  • Ignores conditional scripts and styles
  • Ability to specify cache directories
  • Ability to generate .css.gz & .js.gz files (Thanks to Marcus Svensson)
  • Works with WordPress Multisite

Installation

  1. Upload the merge-minify-refresh folder to the /wp-content/plugins/ directory or upload the zip within WordPress
  2. Activate the plugin through the ‘Plugins’ menu in WordPress

Changelog

If your site uses DIVI, Visual Composer or Beaver Builder please make sure you install one of the additional MMR plugins.

2.16

  • Fix for invalid media types

2.15

  • CSRF fixes

2.13

  • Update Closure Compiler to latest version
  • Prevent divide by 0 in isFileMinified

2.12

  • Removed GLOB_BRACE which isn’t available on some non GNU systems

2.11

  • Fix warning in php error log when accessed time is invalid

2.10

  • Fix warning in php error log when WordPress date isn’t set correctly

Full changelog on WordPress.org →

For developers

Is this your plugin? Show off the numbers.

Add a live badge to your site, docs or GitHub README. It updates on its own — no account needed.

Active installs badge Rating badge Health score badge

Best Merge + Minify + Refresh alternatives

All closure plugins →

FAQ

Merge + Minify + Refresh: quick answers

Straight answers, pulled from live WordPress.org data.

Live data from WordPress.org · checked Sep 26, 2026

Is Merge + Minify + Refresh free?

Yes. Merge + Minify + Refresh is free to download and use from the official WordPress.org plugin directory.

Is Merge + Minify + Refresh safe to use in 2026?

Merge + Minify + Refresh works, but test it on a staging site before relying on it in 2026. It runs on 4K+ sites, is rated 4.2/5 and was last updated 2 months ago, and scores 58/100 on our health check.

How many websites use Merge + Minify + Refresh?

Merge + Minify + Refresh is active on 4K+ WordPress websites and has been downloaded 449,371 times since it launched in April 2015. It was downloaded 1,161 times in the last 30 days.

Does Merge + Minify + Refresh work with WordPress 7.1?

Merge + Minify + Refresh is officially tested up to WordPress 6.9.0, while the latest release is 7.1.2. It may still work, but try it on a staging site first.

What PHP version does Merge + Minify + Refresh need?

Merge + Minify + Refresh requires PHP 7.4 or higher. Most hosts run PHP 8.x today, so it works on any modern WordPress hosting.

When was Merge + Minify + Refresh last updated?

The latest version, 2.16, was released on July 26, 2026 (2 months ago).

Who makes Merge + Minify + Refresh?

Merge + Minify + Refresh is developed and maintained by launchinteractive.

What are the best alternatives to Merge + Minify + Refresh?

The most popular alternatives to Merge + Minify + Refresh are Merge + Minify + Refresh Ch… (10+ installs), Merge + Minify + Refresh Ch… (10+ installs) and Merge + Minify + Refresh Ch… (10+ installs).

Powered by PageForge

Want thousands of pages that rank like these? Build them in an afternoon.

This directory runs on the same engine as PageForge. Turn any spreadsheet, CSV or API into thousands of fast, SEO-ready WordPress pages — with schema, internal links and AI-written copy baked in.

  • CSV, Google Sheets & API data sources
  • AI content, schema & internal links per page
  • Works with Elementor, Gutenberg, Yoast & Rank Math
  • Free on WordPress.org — no credit card
Sarah is here to help!
Hi there! 👋 Need help finding what you're looking for?
Sarah
Sarah
Online & Ready to Help
Hi there! 👋 Need help finding what you're looking for?

We'll use this to continue our conversation

Just now ✓ Verified

Join 500+ SEO Pros Scaling Their Strategy

Get exclusive programmatic SEO tactics, AI content workflows, and the latest PageForge updates delivered straight to your inbox. Stay ahead of the algorithm.

We care about your data in our privacy policy.