Autoptimize

Wordpress Plugin
Download latest - 3.1.4

Developers

futtta
turl

Download Stats

Today 4,086
Yesterday 6,275
Last Week 40,253
All Time 3,464,609
Banner 772x250


Releases (93 )

Version Release Date Change Log
3.1.4 2022-12-03
  • Improvement: when all CSS is inlined, try doing so after SEO meta-tags (just before ld+json script tag which most SEO plugins add as last item on their list).
  • Img opt: also optimize images set in data-background and data-retina attributes (+ filter to easily add other attributes)
  • CSS opt: filter to enable AO to skip minification of calc formulas in CSS (as the CSS minifier on rare occasions breaks those)
  • Multiple other filters added
  • Some other minor changes/ improvements/ filters, see the GitHub commit log.
3.1.3 2022-11-01
  • Multiple fixes for metabox LCP image preloads (thanks Kishorchand for notifying & providing a staging environment to debug on).
  • Fix in revslider compatibility (hat tip Waqar Ahmed for reporting & helping out ).
  • No image optimization or criticalcss attempts on localhost installations any more + notification of that fact if localhost detected.
  • Some other minor changes/ improvements/ filters, see the GitHub commit log.
3.1.2 2022-09-20
  • Google Fonts: some more removal logic
  • fix for 404 fallback bug (hat tip to Asif for finding & reporting)
  • Some other minor changes/ improvements/ filters, see the GitHub commit log.
3.1.1.1 2022-08-16
  • Quick workaround for an autoload conflict with JetFormBuilder (and maybe other Crocoblock plugins?) that causes a critical error on the AO settings page.
3.1.1 2022-08-15
  • images: when optimizing images and lazyloading is on, then by default do not set an LQIP (low quality image placeholder) any more (reason: it might look nice but it comes with a small-ish perf. penalty). This can be re-enabled by returning true to the autoptimize_filter_imgopt_lazyload_dolqip filter.
  • security: further improvements to critical CSS settings page (again with the great assistance of WPScan Security).
  • some other minor changes/ improvements/ filters, see the GitHub commit log.
3.1.0 2022-07-19
  • new: HTML sub-option: "minify inline CSS/ JS" (off by default).
  • new: Misc option: permanently allow the "do not run compatibility logic" flag to be removed (which was set for users upgrading from AO 2.9.* to AO 3.0.* as the assumption was things were working anyway).
  • security: improvements to the critical CSS settings page to fix authenticated cross site scripting issues as reported by WPScan Security.
  • bugfix: "defer inline JS" of very large chunks of inline JS could cause server errors (PCRE crash actually) so not deferring if string is more then 200000 characters (filter available).
  • some other minor changes/ improvements/ hooks, see the GitHub commit log
3.0.4 2022-05-06
  • fix for "undefined array key ao_post_preload on post/ page edit screens
  • fix for image optimization altering inline JS that contains an <img tag if lazyload is not active
  • improvements to exit survey
  • confirmed working with WordPress 6.0
3.0.3 2022-04-15
  • fix for images being preloaded without this being configured when lazyload is on and per page/post settings are off.
  • ensure critical CSS schedule is always known.
  • when deferring non-aggregated JS, make the optimatization exclusions take the full script-tag into account instead of just the src URL.
3.0.2 2022-04-11
  • rollback automatic "minify inline CSS/ JS" which broke more then expected, this will come back as a separate default off option later and can now be enabled with a simple filter: add_filter( 'autoptimize_html_minify_inline_js_css', '__return_true'); .
  • fix for "Call to undefined method autoptimizeOptionWrapper::delete_option()" in autoptimizeVersionUpdatesHandler.php
3.0.1 2022-04-10
  • fix for minification of inline script with type text/template breaking the template (e.g. ninja forms), hat tip to @bobsled.
  • fix for regression in import of CSS-files where e.g. fontawesome CSS was broken due to being escaped again with help of @bobsled, thanks man!
3.0.0 2022-04-10
  • fundamental change for new installations: by default Autoptimize will not aggregate JS/ CSS any more (HTTP/2 is ubiquitous and there are other advantages to not aggregating esp. re. inline JS/ CSS and dependancies)
  • new: no API needed any more to create manual critical CSS rules.
  • new: "Remove WordPress blocks CSS" option on the "Extra" tab to remove block- and global styles (and SVG).
  • new: compatibility logic for "edit with elementor", "revolution slider", for non-aggregated inline JS requiring jQuery even if not excluded (
2.9.5.1 2022-01-26
  • fix for CSS cache growing too fast when inline CSS with variable selectors from WordPress 5.9 comment blocks is aggregated.
2.9.5 2022-01-26
  • Better fix for PHP notice in autoptimizeImages.php.
  • Further improvements to the exit survey.
2.9.4 2021-12-28
  • Fix for 2 AMP compatibility issues (toolbar JS & lazyload JS).
  • Fix for PHP notice in autoptimizeImages.php.
  • Change default for "lazyload from nth image" from 0 to 2 (only applies to new installations).
  • Improvements to the exit survey.
  • Enjoy the end-of-year celebrations, there are great Autoptimize things to come in 2022! ;-)
2.9.3 2021-11-24
  • Improvement: add logic to autoptimize_404_handler.php to differentiate between different multisite sites.
  • Improvement: remove the different feeds (and all JS to switch between them) on the settings-page, keeping only the "Autoptimize news".
  • Improvement: reduced autoptimize_enable_site_config option lookups when on multisite and AO is active for network.
  • Fixed wrong variable name that caused PHP notices (but did not affect normal usage) to $w3tc_minify_on.
  • Fix for Autoptimize Toolbar being loaded on AMP pages for logged in administrators/ editors
  • Fix for CDN replacement edge case (if the CDN has the site_url in it).
  • Fix for service availability checks causing too many outgoing requests (root cause likely to be object caching resulting in the autoptimize_service_availability option not being updated)
  • Added "exit survey" when Autoptimize is deactivated (with the kind help of Shakeeb of RapidLoad, thanks brother!)
2.9.2 2021-09-01
  • New: page/ post settings now have a "Generate Critical CSS"-button (critical CSS needs to be active with valid API key)
  • Improvement: also check WP Rocket settings for possible conflicts
  • Improvement: Image optimization CDN updated to new Autoptimize-specific subdomain
  • Fix: "don't aggregate but defer" did not defer 3rd party hosted JS (can be disabled with a filter)
  • Fix: the metabox per page/post logic failed when all optimizations were off (hat tip to Valenki for reporting) resulting in PHP notices
2.9.1 2021-08-12
  • New: logic to detect possibly conflicting plugins, with notification if found.
  • Improvement: to be reviewed critical css rules UI change.
  • Improvement: automatically save critical CSS rules when changed.
  • Fix for no CCSS jobs being created when "aggregate CSS" is off and all files are minified.
  • Fix for some page caches not being detected correctly leading to notification being shown when it should not (thanks @optimocha for warning me!)
  • Fix for a (rare) lazyload-regression in 2.9.0.
  • Fix for a (rare) image optimization issue when the same image is referenced multiple times as background-image in optimized CSS.
2.9.0 2021-07-27
  • New: per page/ post Autoptimize settings so one can disable specific optimizations (needs to be enabled on the main settings page under "Misc Options").
  • New: "defer inline JS" as sub-option of "do not aggregate but defer" allowing to defer (almost) all JS.
  • Improvement: Image optimization now automatically switches between AVIF & WebP & Jpeg even if lazyload is not active (AVIF has to be explicitly enabled).
  • Improvement: re-ordering of "JavaScript optimization" settings
  • Misc. other minor fixes, see the GitHub commit log

This release coincides with my father's 76th birthday, who continues to be a big inspritation to me. He's a mechanical engineer who after retirement focused his technical insights, experience and never-ending inquisitiveness on fountain pen design and prototyping, inventing a new bulkfiller mechanism in the process. Search the web for Fountainbel to find out more about him (or read this older blogpost I wrote in Dutch). Love you pops!

2.8.4 2021-05-04
  • fix for an authenticated XSS vulnerability
2.8.3 2021-04-11
  • fix for missing ao-minify-html.php file
2.8.2 2021-04-03
  • Images: only show "did you know shortpixel" notice on Autoptimize settings pages (no more littering all over the backend)
  • Images: update lazysizes from upstream
  • Images: misc. improvements such as fix for PHP "undefined index" notice, updated copy, ...
  • HTML: rename HTML minify class from minify_HTML to AO_minify_HTML to avoid conflicts with e.g. W3TC
  • Critical CSS: misc. improvements such as detect is_front_page before any other conditional, fix for conditional rules without an actual condition, improved debug logging, ...
  • JS/ CSS: fix for AO not optimizing multisite child sites when CDN set
2.8.1 2020-12-15
  • Images: new option not to lazyload first X images
  • fix for "array to string" conversion errors in image optimization logic of .ico files
  • switch jQuery shorthand .click (in toolbar JS & PaND dismiss notice JS) to please jQuery Migrate helper (and because it's better that way)
2.8.0 2020-12-09
  • JavaScript: new option "defer but don't aggregate"
  • JavaScript: ensure Autoptimize also acts on jQuery in WordPress 5.6 which is renamed to jquery.min.js from jquery.js before.
  • Images: add field to exclude images from being optimized.
  • Images: new filter (autoptimize_filter_imgopt_lazyload_from_nth) to tell AO not to lazyload the first X images (to improve LCP/ CLS).
  • Critical CSS: major improvements of the job processing mechanism, reducing time spent from up to 1 minute to just a couple of seconds.
  • Critical CSS: under "advanced options" replace "request limit" with "queue processing time limit" (default 30s).
  • Extra | Google Fonts: better parsing of version 2 Google Font URL's (/css2/).
  • Misc. other minor fixes, see the GitHub commit log.
2.7.8 2020-10-09
  • Image optimization: add support for AVIF image format for browsers that support it (enabled with the existing WebP-option, also requires lazy-load to be active)
  • Critical CSS: further security improvements of critical CSS import settings upload, based on the input of Marcin Weglowski of afine.com
  • Misc. other minor fixes, see the GitHub commit log.
2.7.7 2020-08-23
  • critical CSS: make sure pages get a path-based rule even if a CPT or template matches (when "path based rules for pages" option is on)
  • critical CSS: make sure the "unload CCSS javascript" is only added once
  • settings screens: switch jQuery .attr() to .prop() as suggested by jQuery Migrate to prepare for the great oncoming big jQuery updates
  • HTML minify: reverse placeholder array to make sure last replaced placeholder is changed back first to fix rare issues
  • security fix: kudos to Erin Germ for finding & reporting an authenticated XSS vulnerability
  • security fix: props to an anonymous pentester for finding & reporting an authenticated malicous file upload vulnerability
2.7.6 2020-08-06
  • fix for top frontend admin-bar being invisible when "inline & defer" is active.
  • fix for 3rd party CSS-files not being deferred when "inline & defer" is active.
  • small copy changes on Extra settings screen.
2.7.5 2020-07-21
  • urgent fix for Google Fonts aggregate & preload that broke badly in 2.7.4.
2.7.4 2020-07-21
  • Image optimization: also optimize icon links
  • Image optimization: fix webp-detection for Safari (contributed by @pinkasey)
  • Image lazyload: remove CSS that hides the placeholder image/ sets transistion between placeholder and final image
  • Critical CSS: new advanced option to unload CCSS on onLoad
  • Critical CSS improvement: cache templates in a transient to avoid overhead of having to search filesystem time and time again (contributed by @pratham2003)
  • Critical CSS improvement: better but still experimental jQuery deferring logic
  • Critical CSS fix: prevent MANUAL template-based rules being overwritten
  • CSS Inline & defer: move away from old loadCSS-based approach to Filamentgroup's new, simpler method
  • 404 fallback enabled by default for new installations
  • changed all occurences of blacklist/ whitelist to blocklist/ allowlist. The filters autoptimize_filter_js_whitelist and autoptimize_filter_css_whitelist still work in 2.7.4 but usage is deprecated and should be replaced with autoptimize_filter_js_allowlist and autoptimize_filter_css_allowlist.
  • updated readme to explicitly confirm this is GPL + praise open source projects used in Autoptimize as praise was long overdue!
  • tested and confirmed working on WordPress 5.5 beta 2
2.7.3 2020-06-10
  • Critical CSS: cache settings in the PHP process instead of re-fetching them
  • Critical CSS: shorter intervals between calls to criticalcss.com (shortening the asynchronous job queue processing time)
  • inline & defer CSS: fix for some excluded files not being preloaded
  • 404 fallback: only create fallback files for CSS/ JS, not for (background-)images
  • copy changes as suggested by Cyrille (@css31), un grand merci!
  • misc. other minor fixes, see the GitHub commit log.
2.7.2 2020-05-21
  • Critical CSS: fix settings page issues with certain translation strings
  • Critical CSS: fix "inline & defer" not being "seen" on multisite network settings
  • Critical CSS: add links on path-based rules
  • Critical CSS: fix for non-asci URL's not matching rules
  • Improvement: auto-disable autoptimize on misc. page builder URL's
  • Improvement: don't change non-aggregated CSS if it already has an onload attribute
  • Image lazyload improvement: remove &quot; from around background images
2.7.1 2020-05-07
  • A couple of small bugfixes, see the GitHub commit log.
2.7.0 2020-05-01
  • Integration of critical CSS power-up.
  • New option to ensure missing autoptimized files are served with fallback JS/ CSS.
  • Batch of misc. smaller improvements & fixes, more info in the GitHub commit log.
2.6.2 2020-04-01
  • auto-exclude images from lazyload when they have loading="eager" attribute.
  • bugfix: don't take querystring into account when deciding as-value for preloaded resources.
  • bugfix; ensure lqip images (used when both image optimization and lazyload are active) always work by normalizing the URL before sending it to shortpixel.
  • minimum WordPress version bumped to 4.4.
2.6.1 2020-02-15
  • bugfixes for multiple lazyload bugs causing images not to load or load incorrectly
  • bugfixes for multiple multisite bugs causing settings-screen to be unavailable
  • bugfix re-added 3rd parameter to autoptimize_filter_js_minify_excluded-filter to ensure backwards-compatibility and thus avoid breaking Smart Cookie Kit which expected that 3rd parameter.
2.6.0 2019-12-25
  • New: Autoptimize can be configured at network level or at individual site-level when on multisite.
  • Extra: new option to specify what resources need to be preloaded.
  • Extra: add display=swap to Autoptimized (CSS-based) Google Fonts.
  • Images: support for lazyloading of background-images when set in the inline style attribute of a div.
  • Images: updated to lazysizes 5.2.
  • CSS/ JS: no longer add type attributes to Autoptimized resources.
  • Improvement: cache clearing now also integrates with Kinsta, WP-Optimize & Nginx helper.
  • Added "Critical CSS" tab to highlight the criticalcss.com integration, which will be fully included in Autoptimize 2.7.
  • Batch of misc. smaller improvements & fixes, more info in the GitHub commit log.
2.5.1 2019-05-21
  • Images: Also optimize & lazyload <picture><source>
  • Images: Misc. improvements to lazyload
  • Images: Updated to LazySizes 5.0.0
  • CSS: improvements to the deferring logic for non-aggregated CSS resources.
  • Settings-page: Show "JS, CSS & HTML" advanced options by default (many people did not see the button)
2.5.0 2019-05-10
  • moved image optimization to a separate tab and move all code to a separate file.
  • added lazyloading (using lazysizes)
  • added webp support (requires image optimization and lazyloading to be active)
  • added option to enable/ disable the minification of excluded JS/ CSS files (on by default)
  • misc. bugfixes and smaller improvements
2.4.4 2018-12-04
  • bugfix: safer way of removing extra cronjobs
2.4.3 2018-12-04
  • improved Google Fonts optimzation, praise to @nextendweb (of Smartslider3 fame)!
  • improved deferring of non-aggregated CSS when "inline & defer" is active
  • bugfix: extra ao_cachechecker scheduled jobs & improve scheduling logic
  • bugfix: some extra checks on vars to avoid PHP notices
2.4.2 2018-11-26
  • misc. improvements to image optimization logic
  • update PAnD framework to latest version to fix issues with notices not staying dismissed
  • patched JS minifying component to not break template literals as reported by Alex Kozack
  • bugfix for Google fonts subset concatenation by Rocco Aliberti, thanks!
  • bugfix not to remove querystrings if that option is not on in "Extra", kudo's to Diego Versiani for pointing out the inconsistency
  • tested and confirmed working with WordPress 5.0 (beta 5)
2.4.1 2018-10-21
  • bugfix for CSS minifier throwing a HTTP 500 error when a } is missing.
  • bugfix for slowness when iconv was used for multibyte string replacements (ditched iconv).
  • bugfix for occasional issues with broken/ missing
2.4.0 2018-09-25
  • 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, ...)
2.3.4 2018-03-29
  • bugfix: is_plugin_active causing errors in some cases as reported by @iluminancia and @lozula
  • bugfix: added language domain to 4 __/_e functions, un grand merci Guillaume Blet!
2.3.3 2018-03-29
  • improvement: updated to latest version of Filamentgroup's loadCSS
  • improvement: by default exclude wp-content/cache and wp-content/uploads from CSS optimization (Divi, Avada & possibly others store page-specific CSS there)
  • bugfix: stop double try/catch-blocks
  • misc. bugfixes (see GitHub commit log)
  • heads-up: this is (supposed to be) the last minor release of the 2.3 branch, 2.4 is a major change with some big under-the-hood and functional changes
2.3.2 2018-03-25
  • 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.
2.3.1 2017-12-31
  • fix for issue with update-code in some circumstances, thanks to Rajendra Zore to report & help fix!
2.3.0 2017-12-31
  • new: optimize Google fonts with combine & link and combine and load async (with webload.js), intelligently preconnecting to Googles domains to limit performance impact even further
  • new: Async JS, can be applied to local or 3rd party JS (if local it will be auto-excluded from autoptimization)
  • new: support to tell browsers to preconnect (
2.2.2 2017-12-27
  • roll-back to previous battle-tested version of the CSS minifier (a.o. fixing a bug where colors in filenames were replaced by hex-values)
  • tweaks to Autoptimize toolbar menu (visual + timeout of "delete cache" AJAX call)
  • readme update
2.2.1 2017-06-21
  • fix for images in CSS not all being translated to correct path, leading to 404s as reported by Jeff Inho
  • fix for "[] operator not supported for strings" error in PHP7.1 as reported by falk-wussow.de
  • fix for security hash busting AO's cache in some cases (esp. in 2.1.1)
2.1.2 2017-06-21
2.2.0 2017-06-21
  • new: Autoptimize minifies first (caching the individual snippets) and aggregrates the minified snippets, resulting in huge performance improvements for uncached JS/ CSS.
  • new: option to enable/ disable AO for logged in users (on by default)
  • new: option to enable/ disable AO on WooCommerce, Easy Digital Downloads or WP eCommerce cart/ checkout page (on by default)
  • improvement: switched to rel=preload + Filamentgroups loadCSS for CSS deferring
  • improvement: switched to YUI CSS minifier PHP-port 2.8.4-p10 (so not to the 3.x branch yet)
  • improvements to the logic of which JS/ CSS can be optimized (getPath function) increasing reliability of the aggregation process
  • security: made placeholder replacement less naive to protect against XSS and LFI vulnerability as reported by Matthew Barry and fixed with great help from Matthew and Tomas Trkulja. Thanks guys!!
  • API: Lots of extra filters, making AO (even) more flexible.
  • Lots of bugfixes and smaller improvements (see GitHub commit log)
  • tested and confirmed working in WordPress 4.8
2.1.1 2017-06-19
  • Fix for problem reported by Matthew Berry
  • confirmed working with WordPress 4.8
2.1.0 2016-12-14
  • 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)
  • Minimal version updated from 2.7 (!) to 4.0
  • Tested and confirmed working on WordPress 4.6
2.0.1 2016-12-13
  • 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)
2.0.2 2016-08-20
  • bugfix: disallow moving non-aggregated JS by default (can be re-enabled by passing false to the autoptimize_filter_js_unmovable)
  • bugfix: hook autoptimize_action_cachepurged into init to avoid ugly error-message for ZenCache (Comet Cache) users
  • bugfix to allow for Autoptimize to work with PHP 5.2, although you really should upgrade
2.0.0 2016-01-23
  • On average 30% faster minification (more info in this blogpost)!
  • New: Option to (de-)activate aggregation of inline JS and CSS.
  • New: Option to remove Google Fonts.
  • New: Cache-size will be checked daily and a notice will be shown on wp-admin if cache size goes over 512 MB (can be changed by filter).
  • New: Small autoptimized CSS (less then 256 characters, can be changed by filter) will be inlined instead of linked.
  • New in API: filters to declare a JS and CSS whitelist, where only files in that whitelist are autoptimized and all others are left untouched.
  • New in API: filters to declare removable CSS and JS, upon which Autoptimize will simply delete that code (emoji CSS/JS for example, if you prefer not to dequeue them).
  • New in API: filter to move fonts to CDN as well.
  • lots of small and bigger bugfixes, I wont bother you with a full list but have a look at the commmit log on GitHub.
  • tested and confirmed working with PHP7
1.9.4 2015-10-08
  • 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: define("AUTOPTIMIZE_INIT_EARLIER","true");
1.9.3 2015-04-16
  • 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
  • tested with WordPress 4.2 beta 3
1.9.2 2015-01-24

First of all; Happy holidays, all the best for 2015!!

  • New: support for alternative cache-directory and file-prefix as requested by a.o. Jassi Bacha, Cluster666 and Baris Unver.
  • Improvement: hard-exclude all linked-data json objects (script type=application/ld+json)
  • Improvement: several filters added to the API, e.g. to alter optimized HTML, CSS or JS
  • Bugfix: set Autoptimize priority back from 11 to 2 (as previously) to avoid some pages not being optimized (thanks to CaveatLector for investigating & reporting)
  • Bugfix (in YUI-CSS-compressor-PHP-port): don't convert bools to percentages in rotate3D-transforms (cfr. bugreport on Github)
  • Bugfix: background images with a space in the path didn't load, reported by johnh10.
  • Bugfix: SVG image with fill:url broken after CSS optimization as reported by Tkama
  • Updated translation for Swedish, new translation for Ukrainian by Zanatoly of SebWeo.com
  • Updated readme.txt
  • Confirmed working with WordPress 4.1
1.9.1 2014-12-19
  • hard-exclude the sidelink-search-box introduced in WP SEO v1.6 from JS optimization (this broke some JS-optimization badly)
  • bugfix: first add semi-colon to inline script, only then add try-catch if required instead of the other way around.
1.9.0 2014-09-09
  • "Inline and defer CSS" allows one to specify which "above the fold CSS" should be inlined, while the normal optimized CSS is deferred.
  • Inlined Base64-encoded background Images will now be cached as well and the threshold for inlining these images has been bumped up to 4096 bytes (from 2560).
  • Separate cache-directories for CSS and JS in /wp-content/cache/autoptimize, which should result in faster cache pruning (and in some cases possibly faster serving of individual aggregated files).
  • CSS is now added before the -tag, JS before
1.8.5 2014-05-27
  • Updated to lastest version of CSS minification component
  • Improvement: for multi-sites the cache is now written to seperate directories, avoiding one site to clean out the cache for the entire installation. Code contributed by Joern Lund, kudo's Joern!!
  • Improvement: add WordPress plugin header to autoptimize_helper.php_example to make it easier to enable it as a module
  • Improvement: nonce and post_id are added to default configuration for JS exclusion
  • Improvement: explicitely exclude wp-admin from being Autoptimized
  • Bugfix: plupload.min.js, syntaxhighlighter and "adsbygoogle" are excluded from JS aggregation.
  • Bugfix: avoid double closing body-tags when Autoptimize adds JS to HTML as reported by Can
  • Bugfix: make .htaccess compatible with both Apache 2.2 and 2.4 (http://wordpress.org/support/topic/feature-request-support-generating-htaccess-files-for-apache-24?replies=3)
1.8.4 2014-04-02
  • Bugfix: code in inline JS (or CSS) can be wrapped inside HTML-comments, but these got removed since 1.8.2 as part of a bugfix.
1.8.3 2014-03-26
  • Bugfix: avoid useless warnings on is_callable to flood php error log as reported by Praveen Kumar
1.8.2 2014-03-25
  • Improvement: more graceful failure when minifier classes exist but method does not, based on bug-report by Franck160
  • Improvement: deferred CSS is also outputted in noscript-tags
  • Improvement: differentiate between Apache version in .htaccess file as suggested by iMadalin
  • Improvement: also aggregate protocol-less CSS/JS URI's (as suggested by Ross
  • Improvement: disable autoptimization based on parameter in querystring (for debugging)
  • Bugfix: some CSS-imports were not being aggregated/ minified
  • Bugfix: add CSS before to avoid breakage when title includes other attributes (e.g. itemscope)
  • Bugfix: make sure javascript or css between comments is not aggregated as reported by Milap Gajjar
  • Tested with WordPress 3.9 (beta 1)
  • Updates in FAQ
1.8.1 2014-01-28
  • bugfix: CSS in conditional comments was not excluded from aggregation as reported by Rolf and bottapress
1.8.0 2014-01-28
  • 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
1.7.3 2013-12-09
  • 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.
  • smaller changes to readme.txt
1.7.2 2013-11-29
  • improvement: extra checks in CSS @import-handling + move import rules to top of CSS if not imported successfully, based a.o. on bug reports by ozum and by Peter Stolwijk
  • improvement: check if JS and CSS minifier classes exist and only load if they don't to avoid possible conflicts with other themes or plugins that already loaded minifiers
  • tested and approved for WordPress 3.8 (beta1)
1.7.1 2013-11-12
  • New: support for mapped domains as suggested by Michael for tiremoni.com
  • Added an .htaccess to wp-content/cache/autoptimize to overwrite other caching directives (fixing a problem with WP Super Cache's .htaccess really, as reported by Hugh of www.unitedworldschools.org)
  • bugfix: Autoptimize broke data:uri's in CSS in some cases as reported by Joseph from blog-it-solutions.de
  • bugfix: avoid PHP notice if CSS exclusion list is empty
  • moved "do not donate"-image into plugin
1.7.0 2013-10-22
  • New: exclude CSS
  • New: defer CSS
  • Updated minimizing components (JSMin & YUI PHP CSSMin)
  • Updated admin-page, hiding advanced configuration options
  • Updated CDN-support for added simplicity (code & UI-wise), including changing background image url in CSS
  • Updated/ new translations provided for French: wordpress-hebergement.fr, Persian: Hamed Irani, Swedish: Jonathan Sulo, German: blog-it-solutions.de and Dutch
  • Removed support for YUI
  • Flush HTML caching plugin's cache when flushing Autoptimize's one
  • fix for BOM marker in CSS-files as seen in Frontier theme, kudo's to Download Converter for reporting!
  • fix for protocol-less 3rd party scripts disappearing, thanks for reporting p33t3r!
  • fix for stylesheets without type="text/css" not being autoptimized as reported by renzo
  • tested with WordPress 3.7 beta2 (admin-bar.min.js added to automatically excluded scripts)
1.6.6 2013-09-25
  • New: disable autoptimizatoin by putting part of your HTML, JS or CSS in between noptimize-tags, e.g.; <!--noptimize--><script>alert('this will not get autoptimized');</script><!--/noptimize-->
  • Added extra check to prevent plugin-files being called outside of WordPress as suggested in this good article on security.
  • Added small notice to be displayed after installation/ activation to ask user to configure the plugin as well.
  • Added Persian translation, thanks to Hamed T.
1.6.5 2013-08-10
  • new javascript-debug option to force the aggregated javascript file in the head-section of the HTML instead of at the bottom
  • YUI compression & CDN are now deprecated functionality that will be removed in 1.7.0
1.6.4 2013-06-23
  • fix for PHP notice about mfunc_functions
  • fix for strpos warnings due to empty values from the "Exclude scripts from autoptimize" configuration as reported by CandleFOREX
  • fix for broken feeds as reported by Dinata and talgalili
1.6.3 2013-04-30
  • fix for IE-hacks with javascript inside, causing javascript breakage (as seen in Sampression theme) as reported by Takahiro of hiskip.com
  • fix for escaping problem of imported css causing css breakage (as seen in Sampression theme) as reported by Takahiro as well
  • fix to parse imports with syntax @import 'custom.css' not being parsed (as seen in Arras theme), again as reported by Takahiro
  • fix for complex media types in media-attribute as reported by jvwisssen
  • fix for disappearing background-images that were already datauri's as reported by will.blaschko
  • fix not to strip out comments in HTML needed by WP Super Cache or W3 Total Cache (e.g. mfunc)
  • added check to clean cache on upgrade
  • updated FAQ in readme with information on troubleshooting and support
  • tested with WordPress 3.6 beta
1.6.2 2013-04-01
  • 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!
1.6.1 2013-04-01
  • fixed stupid typo in config/delayed.php which broke things badly (april fools-wise); strpos instead of str_pos as reported by Takahiro.
1.6.0 2013-04-01
  • You can now specify scripts that should not be Autoptimized in the admin page. Just add the names (or part of the path) of the scripts in a comma-seperated list and that JavaScript-file will remain untouched by Autoptimize.
  • 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.
1.5.1 2013-01-22
  • bugfix: add CSS before opening title-tag instead of after closing title, to avoid CSS being loaded in wrong order, as reported by fotofashion and blogitsolutions (thanks guys)
1.5 2013-01-07
  • first bugfix release by futtta, thanks for a great plugin Turl!
  • misc bug fixes, a.o. support for Twenty Twelve theme, admin bar problem in WP3.5, data-uri breaking CSS file naming
1.4 2012-04-04
  • Add support for inline style tags with CSS media
  • Fix Wordpress top bar
1.3 2010-07-07
  • Add workaround for TinyMCEComments
  • Add workaround for asynchronous Google Analytics
1.2 2010-04-17
  • Add workaround for Chitika ads.
  • Add workaround for LinkWithin widget.
  • Belorussian translation
1.1 2009-11-14
  • Add workarounds for amazon and fastclick
  • Add workaround for Comment Form Quicktags
  • Fix issue with Vipers Video Quicktags
  • Fix a bug in where some scripts that shouldn't be moved were moved
  • Fix a bug in where the config page wouldn't appear
  • Fix @import handling
  • Implement an option to disable js/css gzipping
  • Implement CDN functionality
  • Implement data: URI generation for images
  • Support YUI CSS/JS Compressor
  • Performance increases
  • Handle WP Super Cache's cache files better
  • Update translations
0.9 2009-07-24
  • Add workaround for networkedblogs.
  • Add workarounds for histats and statscounter
  • Add workaround for smowtion and infolinks.
  • Add workaround for Featured Content Gallery
  • Simplified Chinese translation
  • Update Spanish Translation
  • Modify the cache system so it uses wp-content/cache/
  • Add a clear cache button
0.8 2009-07-23
  • Add workaround for Vipers Video Quicktags
  • Support tags without media.
  • Take even more precautions so we don't break urls in CSS
  • Support adding try-catch wrappings to JavaScript code
  • Add workaround for Wordpress.com Stats
  • Fix a bug in where the tags wouldn't move
  • Update translation template
  • Update Spanish translation
0.7 2009-07-17
  • Add fix for DISQUS Comment System.
0.6 2009-07-15
  • Add workaround for mybloglog, blogcatalog, tweetmeme and Google CSE
0.5 2009-07-12
  • Support localization
  • Fix the move and don't move system (again)
  • Improve url detection in CSS
  • Support looking for scripts and styles on just the header
  • Fix an issue with data: uris getting modified
  • Spanish translation
0.4 2009-07-10
  • Write plugin description in English
  • Set default config to everything off
  • Add link from plugins page to options page
  • Fix problems with scripts that shouldn't be moved and were moved all the same
0.3 2009-07-10
  • Disable CSS media on @imports - caused an infinite loop
0.2 2009-07-10
  • Support CSS media
  • Fix an issue in the IE Hacks preservation mechanism
  • Fix an issue with some urls getting broken in CSS
0.1 2009-07-09
  • First released version.