I can offer you aditional
custom made optimization on top of this plugin. If you would like to hire me, please visit my profile for further information.
- Merge JS and CSS files into groups to reduce the number of HTTP requests
- Google Fonts concatenation and optimization
- Handles scripts loaded both in the header & footer separately
- Keeps the order of the scripts even if you exclude some files from minification
- Supports localized scripts (https://codex.wordpress.org/Function_Reference/wp_localize_script)
- Minifies JS with PHP Minify.
- Minifies CSS with PHP only, no third party software or libraries needed.
- Stores cache and minified files in the plugin directory.
- Checks the last modified date on merged CSS and JS files so that the minified files are always up to date.
- View the status and logs on the WordPress admin page.
- Option to Minify HTML for further improvements.
- Ability to turn off minification
- Ability to turn off merging + minification (by disabling either css or js processing)
- Ability to manually ignore scripts or css
- Support for conditional scripts and styles
- Support for multisite installations
- Support for gzip_static on Nginx
- Support for the CDN Enabler plugin
- and some more…
- Compatible with Nginx, HHVM and PHP 7.
- Minimum requirements are PHP 5.5 and WP 4.4, from version 1.4.0 onwards
- Upload the plugin folder to the
/wp-content/plugins/directory or upload the zip within WordPress
- Activate the plugin through the
Pluginsmenu in WordPress
- Configure the options under:
Settings > Fast Velocity Minifyand that’s it.
- Check that you have permissions for PHP to call the jar files if the JS minification fails and you have PHP exec and Java available.
- How can I remove Font Awesome if I’m not using it on my theme or plugins?
If your theme doesn’t make use of font-awesome in any way and you are not enqueuing it at all on your theme or plugins, you can select the “Disable Font Awesome optimization” and this will stop the plugin from adding the fonts to the site. The default is to remove any duplicates it finds and add our own version to the footer asynchronously.
- How can I exclude certain assets by wildcard?
You can exclude css or js files by using a single wildcard symbol “*” at the end of the url. For example,
//yoursite.com/wp-content/plugins/some-plugin/js/*will ignore all files inside that directory. You can also shorten the url like
some-plugin/js/*and then it will match any css or js url that has
some-plugin/js/*on the path. Obviously, doing this
/js/*would match any files inside any “/js/” directory and in any location, so to avoid unexpected situations please always use the longest, most specific path you can use.
- Why are there several js and css files listed on the logs page?
- What about logged in users?
- Can I update other plugins and themes?
On every page load we compare the
- Do I need to purge the cache directory?
needed files signature for that pageviewwill change, thus avoiding our cache invalidation checks. This happens, because it’s considered a new set of files that the plugin needs to merge and minify, rather than an update to the same set of files.
- Is it compatible with other caching plugins?
Yes. The only time it would stop working is if you
manually purgethe minified files on our plugin without purging the cache on your cache plugin. This happens because when you use a caching plugin, your HTML is cached and therefore will keep pointing to the old minified files. If you ever encounter such situation, simply delete the cache on your caching plugin.
- Is it resource intensive, or will it use too much CPU on my shared hosting plan?
No it’s not. The generation of the minified files takes only a couple of seconds and it’s done only once per page (and only if needed). After that all requests will be served a static file from the cache directory. There is no PHP involved on serving the minified files after the first request.
- Is it compatible with multisites?
It should be compatible as it generates a new cache file for every different set of requirements it finds.
- Is it compatible with Adsense and other ad networks?
- After installing, why did my site became slow?
Please note that the cache regeration happen’s once per page but only if the required CSS + JS files change. If you need the same set of CSS and JS files in every page, then the cache will only be generated once and reused for all other pages. If you have different CSS + JS files being loaded in every page, then the first view for those pages will be slower… however, the second and further requests will be much faster.
- Whats the intermediate minification cache for?
Each page on your site requires a possibly different set of JS and CSS files and while merging is fast, minification is slow. To speed up things, whenever we find a JS or CSS file that needs minification, we minify it and keep it on the intermediate cache. The next time a page requires any of those files, it doesn’t need to minify those again thus speeding things up by minifying only the new required files.
- How do I use the precompressed files with gzip_static on Nginx?
When we merge and minify the css and js files, we also create a
.gzfile to be used with
gzip_staticon Nginx. You need to enable this feature on your Nginx configuration file if you want to make use of it. If you’re upgrading from 1.2.3 or earlier, you may need to clear the plugin cache.
- After installing, why is my design or layout broken or some images and sliders are not showing?
Please note that each theme is coded differently and that your theme needs to follow the standard wordpress way of enqueueing css and js files, as well as to make use of conditionals and mediatypes properly for our plugin to work as it should.
Here are some of the more usual cases:
CSS Merging:Some theme authors have no idea that they should use the
wp_style_add_datato add conditional IE only stylesheets… so instead, they print the whole code snippet on the header and therefore, minification plugins have no way to know that a css or js file is to be loaded for Internet Explorer only.
If you are using one of these themes, take a look at the plugin “status” page and click “View Log” for each generated css or js file.
There’s a chance that their “IE only” css file got merged together, thus breaking the design… in that case, simply copy the url and add it to the ignore list.
If you want to go the extra mile, report the bug to the theme developer and have them read: https://developer.wordpress.org/reference/functions/wp_style_add_data/
There’s no obvious solution for this because the theme was built that way and it needs jQuery to be render-blocking in order to work (and sometimes other js files are needed too). You could have a proper developer copy and edit all that inlined jQuery code to an external js file and load it with jQuery as a dependency to update the content with ajax (asynchronous)… but not always possible.
If that’s your case, then your theme can never have a perfect pagespeed score.
JS merging and minification:Be aware that with so many plugin authors and theme developers, not always their js code works well together when merging or minifying. Some coders are better than others and different people follow different practices of coding.
Some plugins cannot be merged together with others (put them on the ignore list) because they have errors or incompatible code, were not Linted properly, etc. Example: Most notabily, the Select2 js file included in several woocommerce is not utf-8 encoded (!), so it breaks the whole thing when merged with other js files.
Some other plugins have minified their scripts but haven’t renamed it to .min.js (so we cannot have a way to know that). Most already minified js files cannot be minificated a second time (such as the default wordpress jquery.js file) and they will break if double minification is done.
In most cases for a quick fix, you can try to disable js processing and see if it fixes your layout issues… and if it does, you need some basic wordpress knowledge (or a developer) to find which file is causing conflict and then add it’s urls to the ignore list.
If you have no idea, I recommend adding them all to the ignore list and then one by one trying to delete each url until you find the one causing trouble.
- How to undo all changes done by the plugin?
The plugin itself doesn’t do any “changes” to your site, it intercepts some sections and replaces it with a new optimized version of those files (in other words, your files are untouched). As with any plugin, if you panic simply disable or uninstall the plugin and the site will go back to what it was before installing it. The plugin itself doesn’t delete anything from the database or modify any files.
- Why is it that even though I have disabled or removed the plugin, the design is still broken?
While this is very rare, it can happen if you have some sort of cache enabled on your site or server. A cache means that the site or server makes a static copy of your page and serves it for a while (until it’s deleted or expires) instead of loading wordpress directly to the users. Some hosting providers such as Godaddy (and their derivates) enforce their own cache plugin to be installed and creates a new menu which allows you to purge the cache.
If you don’t see any option anywhere to clear your cache, you can contact your hosting provider or developer to clear the cache for you and to provde you instructions so you can do it in the future.
- I have a complaint or I need support right now. Why haven’t you replied to my topic on the support forum yet?
Before getting angry because you have no answer within a few hours (even with paid plugins, sometimes it takes days…), you should first be informed about how wordpress.org and the plugins directory work. The plugins directory is an open source, free service where developers and programmers contribute (on their free time) with plugins that can be downloaded and installed by anyone “at their own risk” and are all released under the GPL license.
While all plugins have to be approved and reviewed by the wordpress team before being published ( for dangerous code, spam, etc ) this doesn’t change the license or add any warranty. All plugins are provided as they are, free of charge and should be used at your own risk (so you should make backups before installing any plugin or performing updates) and it’s your sole responsability if you break your site after installing a plugin from te plugins directory.
Support is provided by plugin authors on their free time and without warranty of a reply, so you can experience different levels of support level from plugin to plugin. As the author of this plugin I strive to provide support on a daily basis and I can take a look and help you with some issues related with my plugin, but please note that this is done out of my goodwill and in no way I have any legal or moral obligation for doing this.
For a full version of the license, please read: https://wordpress.org/about/gpl/
- Where can I get support?
You can get support on the official wordpress plugin page at: https://wordpress.org/support/plugin/fast-velocity-minify
- How can I donate to the plugin author?
If you would like to donate any amount to the plugin author (thank you in advance), you can do it via Paypal at https://goo.gl/vpLrSV
It doesn’t parse some CSS such as extra spaces for readability before and after URLs.
It breaks Fontawesome.
El mejor plugin para el molesto mensaje de ” web lenta”.
This minifying plugin is the only one that i’ve encountered that actually delivers. Reduces load times for first time as well as repeated users with no penalty for first time visits.
Works great, reduced requests and load time as advertised. Unfortunately it killed the CSS for my site regardless of subfeature disabling. Ended up I had to disable CSS processing altogether and use Autoptimize’s CSS minification to work. Still, grateful for your work and for making it free. Thank you.
Great performance from this plugin. Does it’s work quietly in the background. Has worked great on our WooCommerce site with Dreamhost hosting. Has been stable and reliable and is regularly enhanced. Great plugin.
Contributors & Developers
“Fast Velocity Minify” is open source software. The following people have contributed to this plugin.Contributors
Interested in development?
- changed minimum requirements to PHP 5.4 for older clients
- fixed another warning when debug mode is active on wordpress
- fixed a warning when debug mode is active on wordpress
- added option to force HTTP or HTTPS protocol to the generated files, so it can work with the CDN Enabler plugin
- fixed compatibility for sites where home_url() and site_url() differ (some files could not be find by the plugin)
- fixed removing valid code from .svg images when “removal of query strings for Web Fonts” was on the default settings
- changed the “defer of JS for Pagespeed Insights” option so it ignores scripts that already have the async or defer attribute
- changed the “defer of JS for Pagespeed Insights” so it doesn’t defer external resources https://www.chromestatus.com/feature/5718547946799104
- changed so that Font Awesome now loads asynchronously in the footer, unless “Disable Font Awesome optimization” is selected
- changed minimum requirements to PHP 5.5 and WP 4.4 for compatibility reasons.
- removed YUI and Google Closure for simplicity thus making JS minification default to PHP MINIFY
- updated the faq questions
- stop removing some important CSS comments during HTML minification
- added support to strip html comments during HTML minification
- added wildcard support to the ignore list (url’s must end in ), ex: http://yourdomain.com/wp-content/plugins/some-plugin/dynamic-css-
- changed mrclay HTML library to an older version (same as WP Rocket 2.91) due to unecessary line breaks on HTML minification
- changed some code on mrclay HTML library in order to properly minify some inline css styles
- changed absolute urls during minification to protocol-relative URLs for better https compatibility
- changed the plugin cache directory to the uploads directory for better compatibility with Google App Engine and Amazon Elastic Beanstalk (beta)
- stop removing html comments from html minification for better compatibility with some plugins
- fixed a bug where sometimes the paths and urls have double slashes in the middle leading to those files not being found
- added option to automatically exclude dynamically generated css and js files
- added option to defer all JS files for Pagespeed Insights tests only
- fontawesome improvements
- added some options to exclude jquery from other sections
- added option for inlining all CSS
- added option for inlining google fonts as woff (modern browsers only)
- added option for optimizing fontawesome
- bug fixes
- fixed some other reported notices that are visible when debug mode is enabled
- fixed a few notices that are visible when debug mode is enabled
- fixed keeping of CSS handles with empty src for better dependency management (JS processing already does this)
- added merging of “screen” and “all” CSS mediatypes
- added auto reordering of CSS files by mediatype
- added support to keep order of CSS for better compatibility
- fixed a bug with CSS where “print” mediatypes were being merged together with “all”, breaking some designs
- added an option to remove Print Style Sheets (CSS files of mediatype “print” for printers)
- changed the defer JS files logic in order to skip files that are on the ignore list
- added option to force JS files defer even if they are on the ignore list
- improved some descriptions for some options in the settings page
- added option to remove emojis support
- added font awesome optimization and cdn delivery (if used by your theme)
- load only one font awesome css file, even when your theme or plugins enqueue multiple files
- replaced the HTML minification engine with mrclay minify (same as the autoptimize plugin, w3 total cache and a few other popular plugins)
- fixed CSS minification not working on some cases after the latest update
- improved html minification speed and compatibility
- fixed a PHP 7 compatibility issue on PHP Minify JS minify script
- fixed the JS defer option for scripts that already have defer or async, such as the AMP plugin
- reverted back the PHP Minify library due to a bug
- added support for
gzip_staticon nginx for cached files
- updated PHP Minify with today’s release date
- added donation link to the FAQ’s section
- google fonts related bugfixes
- improved help section
- more improvements on multisite installations
- improved compatibility with multisite instalations
- fixed a fatal error on versions older than PHP 5.5 (note that our recommended PHP version is still PHP 5.6+)
- fixed support for custom directory names on wordpress (wp-content, plugins, etc)
- bug fixes
- fixed a compatibility issue with SunOS and Solaris systems
- changed the CSS minification to PHP Minify for better compatibility with the calc() expression and others.
- fixed a bug for when wp-content has been renamed to something else
- better support for third party cache plugins
- bug fixes
- added logic for when wp-content has been renamed to something else
- small improvements
- added option to force the use of PHP Minify for JS minification instead of YUI or Google Closure
- added PHP Minify [2016.08.01] as fallback for JS files again
- PHP Minify issues (white screen on PHP 7) might have been fixed
- other small bug fixes
- improved compatibility for PHP 7
- new location for cache and temporary files
- removed PHP Minify as fallback due to incompatibility (white screen) with some PHP 7 configurations
- Fallback method for JS files updated to merge only
- added new logic to group handling for better compatibility
- added an intermediate minification cache for faster performance
- added PHP Minify as fallback option for JS files
- added a local Google Closure alternative to YUI Compressor
- added help page to the plugin
- removed the Google Closure API because their rate limit can lead to incomplete minified files
- disabled error reporting messages
- added some extra code checks
- bug fixes related to warnings being displayed at the admin area
- fixed some header and footer scripts not being enqueued on the right place
- added a better dependency check before merging and minifying of JS files
- added more logic to keep the order of js files, when one or several of them are excluded from minification
- performance improvements and some code simplification
- bug fixes on the admin page log viewer
- added YUI Compressor for local JS minification with java (if available)
- JS minification fallback to the Google Closure API if java not available or YUI Compressor fails
- added individual cache for already minified files, so they are minified again only if that cache is older than the original files to minify
- removed JSrink and added back the Google Closure API for compatibility with PHP 7
- Fixed Google Fonts optimization
- Replaced Google Closure API with JSrink PHP library
- Reorganized inline CSS code dependencies
- New (safer) HTML minification
- Initial Release