refactored significantly (no more "classlesses", all is OO), classes are autoloaded, tests added (travis-ci) by zytzagoo who deserves praise for his hard work!
new: image optimization (see "Extra"-tab) using Shortpixel's smart image optimization proxy
new: you can now disable JS/ CSS-files being aggregated, having them minified individually instead
new: Google Fonts can now be "aggregated & preloaded", this uses CSS which is loaded non render-blocking
new: Autoptimize "listens" to page caches being cleared, upon which it purges it's own cache as well. Support depends on known action hooks firing by the page cache, supported by Hyper Cache, WP Rocket, W3 Total Cache, KeyCDN Cache Enabler, Swift, WP Super Cache, WP Fastest Cache and Comet Cache.
new: local JS/ CSS-files that are excluded from optimization are minified by default (can be overridden by filter)
improvement: updated minifiers (with very significant improvements for YUI CSS compressor PHP port)
improvement: "remove all Google Fonts" is now more careful (avoiding removing entire CSS blocks)
misc. under the hood improvements (e.g. more robust cache clearing, better support for multibyte character sets, improved CDN rewrite logic, avoid PHP warnings when writing files to cache, ...)
workaround for stale options-data in external object cache such as Redis, Memcached (core bug) resulting in Autoptimize continuously executing the upgrade-procedure including clearing the cache and trying to preload it with HTTP-requests with "cachebuster" in the query string, thanks to Haroon Q. Raja and Tomas Trkulja for their great assistance!
fixes for "undefined index" notices on Extra settings page
now removing respective dns-prefetch resource hints when "remove emojis" or when Google Fonts are optimized or removed.
changed JS code to load webfont.js deferred instead of asynced to make sure the js-file or fonts are not consider render blocking.
new: Autoptimize now appears in admin-toolbar with an easy view on cache size and the possibility to purge the cache (pass false to autoptimize_filter_toolbar_show filter to disable), a big thanks to Pablo Custo for his hard work on this nice feature!
new: An extra "More Optimization"-tab is shown (can be hidden with autoptimize_filter_show_partner_tabs-filter) with information about related optimization tools- and services.
new: If cache size becomes too big, a mail will be sent to the site admin (pass false to autoptimize_filter_cachecheck_sendmail filter to disable or pass alternative email to the autoptimize_filter_cachecheck_mailto filter to change email-address)
new: power-users can enable Autoptimize to pre-gzip the autoptimized files by passing true to autoptimize_filter_cache_create_static_gzip, kudo's to (Draikin)[https://github.com/Draikin] for this!
improvement: admin GUI updated (again; thanks Pablo!) with some responsiveness added in the mix (not showing the right hand column on smaller screen-sizes)
improvement: settings-screen now accepts protocol-relative URL for CDN base URL
improvement: new (smarter) defaults for JS (don't force in head + exclude jquery.js) and CSS optimization (include inline CSS)
Misc. bugfixes & small improvements (see commit-log on GitHub)
Improvement: Autoptimize now also tries to purge WP Engine cache when AOs cache is cleared
Improvement: for AMP pages (which are pretty optimized anyway) Autoptimize will not optimize to avoid issues with e.g. "inline & defer" and with AO adding attributes to link-tags that are not allowed in the subset of HTML that AMP is
Improvement: refactored the page cache purging mechanism (removing duplicate code, now nicely hooking into AO's own autoptimize_action_cachepurged action)
Improvement: Re-enable functionality to move non-aggregated JS if also aggregate inline JS is active (can be disabled with autoptiize_filter_js_unmovable filter)
Improvement: script tags with data-noptimize attribute will be excluded from optimization
Bugfix: Better support for renamed wp-content directories
Bugfix: Multiple fixes for late-injected CSS/ JS (changes in those files were not always picked up, fonts or background images were not being CDNed, )
Misc. other fixes & improvements, go read the commit-log on GitHub if youre that curious
Tested & confirmed working with WordPress 4.5 (beta 3)
bugfix: make sure non-AO CSSmin doesn't get fed 2 parameters (as some only expect one, which resulted in an internal server error), based on feedback from zerooverture and zamba
bugfix: make default add_action hook back into "template_redirect" instead of "init" to fix multiple problems as reported by schecteracademicservices, bond138, rickenbacker, Rick Sportel and wizray. If you do need Autoptimize to initialize earlier (e.g. when using Nextgen Galleries), then add this to your wp-config.php:
improvement: more intelligent CDN-replacement logic, thanks Squazz for reporting and testing
improvement: allow strings (comments) to be excluded from HTML-optimization (comment removal)
improvement: changed priority with which AO gets triggered by WordPress, solving JS not being aggregated when NextGen Galleries is active, with great help from msebald
improvement: extra JS exclude-strings: gist.github.com, text/html, text/template, wp-slimstat.min.js, _stq, nonce, post_id (the latter two were removed from the "manual" exclude list on the settings-page)
new in API: autoptimize_filter_html_exclude, autoptimize_filter_css_defer, autoptimize_filter_css_inline, autoptimize_filter_base_replace_cdn, autoptimize_filter_js_noptimize, autoptimize_filter_css_noptimize, autoptimize_filter_html_noptimize
bugfix: remove some PHP notices, as reported by dimitrov.adrian
bugfix: make sure HTML-optimalization does not gobble a space before a cite as proposed by ecdltf
bugfix: cleaning the cache did not work on non-default directories as encountered by NoahJ Champion
upgraded to yui compressor php port 2.4.8-4
added arabic translation, thanks to the ekleel team
New: Option to inline all CSS as suggested by Hamed
New: set of filters to provide a simple API to change Autoptimize behavior (e.g. replace "defer" with "async", disabling Autoptimization on certain pages, specificy non-aggregatable script to be moved after aggregated one (cfr. http://wordpress.org/support/topic/feature-request-some-extra-options?replies=14), size of image to be data-urized). More info in the included autoptimize_helper.php_example.
Improvement: exclude (css in) noscript-tags as proposed by belg4mit
Improvement: switch default delivery of optimized CSS/JS-files from PHP to static files
Updated upstream CSS minifier
Improvement (force gzip of static files) and Bugfix (force expiry for dynamic files, thanks to Willem Razenberg in .htaccess
Improvement: fail gracefully when things go wrong (e.g. CSS import resulting in empty aggregated CSS-files reported by Danka or when the theme is broken as seen by Prateek Gupta)
Updated translations and Polish added (thanks to Jakub Sierpinski).
Bugfix: stop import-statements in CSS comments to be taken into acccount hat tip to Josef from blog-it-solutions.de
Bugfix: fix for blur in CSS breakeage as reported by Chris of clickpanic.com
improvement: remove cache + options on uninstall as requested by Gingerbreadmen
improvement: set .htaccess to allow PHP execution in wp-content/cache/autoptimize when saving optimized files as PHP, as suggested by (David Mottershead of bermuda4u.com}[http://www.bermuda4u.com/] but forbid PHP execution when saving aggregated script/css as static files (except for multisite).
bugfix: avoid Yoast SEO sitemaps going blank (due optimization of Yoast's dynamically built XML/XSL) as reported by Vance Hallman and Armand Hadife. More info on this issue can be found on my blog.
Yet another emergency bugfix I'm afraid: apache_request_headers (again in config/delayed.php) is only available on ... Apache (duh), breaking non-Apache systems such as ngnix, Lighttpd and MS IIS badly. Reported by multiple users, thanks all!
Added support for ETag and LastModified (essentially for a better pagespeed score, as the files are explicitely cacheable for 1 year)
Autoptimizing for logged in users is enabled again
Autoptimize now creates an index.html in wp-content/cache/autoptimize to prevent snooping (as proposed by Chris)
bugfix: removed all deprecated functions (reported by Hypolythe and diff by Heiko Adams, thanks guys!)
bugfix for HTTPS-problem as reported by dbs121
bugfix for breakage with unusual WordPress directory layout as reported by Josef from blog-it-solutions.de.