=== Imagify – Optimize Images & Convert WebP ===
Contributors: wp_media
Tags: optimize images, convert webp, webp converter, image optimization, compress images, resize images, webp, performance, image optimizer, pagespeed, core web vitals
Tested up to: 5.8
Stable tag: 1.10

Optimize images in one click: compress images, reduce image file sizes, convert WebP… and speed up your website!

== Description ==

Optimize images in one click: compress images without losing quality, convert WebP and speed up your website!

Imagify is the most advanced tool to optimize images. You can now use this power directly in WordPress.

After enabling it, all your images including thumbnails will be automatically optimized when uploaded into WordPress. Not only will Imagify compress your images, you can also use it to convert WebP images, which will additionally reduce the size of your website making it faster.

WooCommerce and NextGen Gallery compatible.

= Why is it Important to Optimize Images? =

A fast site is important primarily for visitors who may leave a website that is too slow, but also for SEO performance since search engines consider website speed as a ranking factor.

Website size is one of the most important factors that affect the website performance: images can account for 50% of your loading time.

By optimizing images you will quickly gain precious seconds and make your website faster.

Learn more about image compression, check that: [https://imagify.io/images-compression](https://imagify.io/images-compression).

= WHY USE IMAGIFY TO OPTIMIZE IMAGES? =

Imagify, our image compressor, can optimize all images: jpgs, pngs, pdfs and gifs (whether animated or not).

You already have lots of unoptimized images? Not a problem, you will love the Bulk Optimizer to optimize all your existing images in one click.

Imagify can directly resize your images, **you won't have to lose time anymore on resizing your images before uploading them**.

There are three optimization levels available - Normal, Aggressive and Ultra.

- Normal, a lossless image compression algorithm. The image quality won't be altered at all.
- Aggressive, a lossy image compression algorithm. Stronger compression with a tiny loss of quality most of the time this is not even noticeable at all.
- Ultra, our strongest image compression method using a lossy algorithm.

With the backup option, you can change your mind whenever you want by restoring your images to their original version or optimize them to another image compression level.

= HOW ABOUT WEBP IMAGES? =
For each image you optimize with the Imagify plugin, you will also get its **WebP version** (if you tick the option in the settings); in your Media library, this will result in the following image versions:
- full-sized optimized image,
- full-sized WebP image,
- optimized thumbnails,
- WebP thumbnails.

The optimization will also work for images included in your themes, plugins, and any images located outside of your Media Library folders via our "Custom Folders" setting.

If you want, Imagify can also display WebP images on your front-end using two methods that also provide fallback support for browsers that can't display WebP images yet:
- `<picture>` tag,
– rewrite rules in the .htaccess file (Apache) or nginx.conf (NGINX - must be added manually)

If you keep a backup copy of the original images, you have the possibility to **create their WebP version separately** (one by one or via the bulk optimization feature).

= WHY IS IMAGIFY THE BEST CHOICE WHEN IT COMES TO OPTIMIZING YOUR CORE WEB VITALS? =

Did you know that using our image compressor will also make Google PageSpeed Insights happy?

When it comes to the impact of images on Core Web Vitals, Google recommends serving images in next-gen formats (WebP, JPEG 2000/XR) and properly sized images. Imagify does just that!

After enabling Imagify, all your images, including thumbnails, will be automatically optimized when uploaded into WordPress. By reducing the weight of your images (without sacrificing their quality!), you will boost your loading time and your Largest Contentful Paint performance. Imagify also addresses Google’s recommendation by converting your images to the next-gen WebP format.

By compressing your images and converting them to next-gen formats, Imagify can help you get your PageSpeed Insights score into the green.

= WHAT DO OUR USERS THINK OF IMAGIFY? =

Here’s what our users have to say about us after optimizing their images with Imagify:

> "Imagify is an awesome tool that is powerful & easy to use. It's fast, rivals and surpasses other established plugins/software. Awesome!" — [Simon Harper](https://twitter.com/SRHDesign/status/663758140505235456)
>
> "If you want to "squeeze" your images as much as possible and "trim out" your website on the highest professional level... Imagify" — [Ivica Delic](https://twitter.com/Free_LanceTools/status/685503950909476865)
>
> "Clearly Imagify is the most awesome WordPress plugin to compress images on your website! A must try" — [Eric Walter](https://twitter.com/EricWaltR/status/679053496382038016)
>

= IS IMAGIFY FREE? =

You can optimize for free 20MB of images (that’s about 200 images) every month. You can also convert to the next-gen WebP format for free.

Need to compress more images? Have a look at our plans: [https://imagify.io/pricing](https://imagify.io/pricing)

= WANT IMAGE OPTIMIZATION TIPS? =

If you want to know more about using WebP images on WordPress, improving your PageSpeed score with Imagify, or compressing multiple images online, take a look at our blog: [https://imagify.io/blog/](https://imagify.io/blog/)

It’s packed with advice on image compression and so much more!

= WHO ARE WE? =

We are [WP Media](https://wp-media.me/), the startup behind WP Rocket, the best caching plugin for WordPress.

= GET IN TOUCH! =

* Website: [Imagify.io](https://imagify.io)
* Contact Us: [https://imagify.io/contact](https://imagify.io/contact)
* Twitter: [https://twitter.com/imagify](https://twitter.com/imagify)

= Related Plugins =
* [WP Rocket](https://wp-rocket.me/): Best caching plugin to speed-up your WordPress website.
* [Lazy Load](https://wordpress.org/plugins/rocket-lazy-load/): Best Lazy Load script to reduce the number of HTTP requests and improves the website's loading time.

License: GPLv2 or later
License URI: http://www.gnu.org/licenses/gpl-2.0.html

== Installation ==

= WordPress Admin Method =
1. Go to you administration area in WordPress `Plugins > Add`
2. Look for `Imagify` (use search form)
3. Click on Install and activate the plugin
4. Optional: find the settings page through `Settings > Imagify`

= FTP Method =
1. Upload the complete `imagify` folder to the `/wp-content/plugins/` directory
2. Activate the plugin through the 'Plugins' menu in WordPress
3. Optional: find the settings page through `Settings > Imagify`

== Frequently Asked Questions ==

= How can I measure the impact of Imagify on speed score? =

You can use GTMetrix and Google PageSpeed Insights to check the relevant suggestions. It is recommended to test the following metrics before and after the image optimization:

* Total Page Size (GTMetrix)
* Optimize images (GTMetrix)
* Serve images in next-gen formats (PageSpeed Insights)
* Efficiently encode images (PageSpeed Insights)

= What makes Imagify better than other image optimizer tools? =

Imagify is an extremely powerful image optimizer: our advanced compressing algorithm will compress images, reduce their weight without sacrificing their quality.

Imagify is also super easy to use. Thanks to its intuitive design, you can easily get familiar with the interface and services without thinking about it.

And our dedicated customer support will help you fix any issue with your image optimizing process. Support is available via contact form, either on our website, or directly on your Imagify plugin settings page.

= How many websites can I optimize with Imagify? =

You can use Imagify on as many websites as you wish. Your image optimization quota to compress images will be shared evenly across all of the websites.

If you need more control over how your Imagify subscription is used, you should create sub-accounts to allocate a quota for each.

= How does the WebP feature work on non-supported browsers? =

Imagify will deliver images in the original format for browsers that don’t support the next-gen WebP format automatically, so there is nothing further to be done.

= Is Imagify compatible with NextGEN? =

Yes, Imagify is fully compatible with NextGEN Gallery, the most popular photo gallery plugin for WordPress. All Imagify optimization features related to NextGEN Gallery images are located and usable within the NextGEN Gallery menus and pages. So when you add images to your NextGEN galleries, you’ll be able to optimize them as well.

= Which formats can be optimized? =

Imagify can optimize JPG, PNG, PDF files and GIFs (whether animated or not).

When you optimize JPG, PNG, and GIF files, Imagify will also create WebP versions of your original images and all your thumbnail sizes (if you have this option enabled).

= How should I know which image compression level is best for me? =

There are three image compression levels available - Normal, Aggressive and Ultra.

Normal compression is a "lossless" image optimization. This means there is no loss of image quality after compression.

Aggressive and Ultra compression are more powerful, so the picture quality will be somewhat reduced. The weight of the compressed image will be much less.

We recommend Aggressive as the best balanced level that reduces the size of the image but does not affect the quality.

It would be best, however, to test the 3 levels of compression on a smaller amount of images and see how it affects the quality of your image. Once you see which compression level suits your needs, you can easily run the others via Bulk optimization or Media Library page.

=How does the optimization process work?=

The image optimization process is performed on our servers. Once done, Imagify returns the optimized image to your server. We do not edit images’ titles or any other information, so there is nothing further to be done on your end than to compress images. Your original images will be moved to a dedicated backup folder (just make sure to keep the Backup option active in Imagify settings).

=How long are images stored by Imagify?=

Once your images have been optimized via the WP plugin, compressed images stay on your end forever (even if you delete the Imagify account).

During the optimization process, compressed images sent via the API or WordPress plugin are stored for one hour on our server (they are already sent back to your site and stay there safely).

Using the online application, compressed images are stored for 24 hours (with a free account) and for unlimited time if you have a paid subscription.

=Can I restore images after compression?=

Yes, as long as the Backup option is active in Imagify settings (it is active by default when you activate the WP Plugin).

=If I remove Imagify, will my images stay compressed?=

Yes, your images will stay compressed even after removing Imagify (and even after you delete your Imagify account).

=If I use Imagify, do I need to continue optimizing and resizing my images with Photoshop?=

Do not waste your time resizing and optimizing your images in Photoshop. Imagify takes care of everything to compress your images!

=Is the EXIF data of images removed?=

By default EXIF data is removed. It is possible to keep it with the WordPress plugin by enabling the option in the Imagify Settings page.

=I used Kraken, Optimus, EWWW or WP Smush, will Imagify further optimize my images?=

Absolutely. Most of the time, Imagify will still be able to optimize your images even if you have already compressed them with another tool.

= Will the original images be deleted? =

No. Imagify automatically replaces the original images with an optimized image. The backup option allows you to keep the original images and restore them with one click.

= Is it possible to re-optimize images with a different level? =

Yes. By activating the backup option in the plugin, you can re-optimize each compressed image with a different image compression level.

= What happens when the plugin is disabled? =

When the plugin is disabled, your existing images remain optimized. Backups of the original images are still available if you have enabled the images backup option.

= On which web hosts can the plugin be used? =

The plugin can be used on all hosts including "managed hosting" providers like WP Engine.

= Is Imagify compatible with Multi-Site? =

Yes, Imagify is 100% compatible with multi-site.

= Can we use Imagify on WordPress.com? =

It is possible to use the Imagify plugin on WordPress.com if you have a Business account.

=Do you offer support?=

Yes, the Imagify team offers full email support for image optimization questions. You can contact us via [https://imagify.io/contact/](https://imagify.io/contact/).

= When is support available? =

Our support is currently available Monday-Friday 8AM-10PM CET. We answer every email so you can expect the answer from us within 24h max (unless during the weekends).

=Is registration free?=

Yes, and no credit card is required.

= Do you offer a trial version? =

No. However, you get 20MB of quota per month for free to optimize your images (around 200 images).

== Screenshots ==

1. Bulk Optimization

2. Settings Page

3. Media Page

4. Other Media Page

== Changelog ==
= 1.10 - 2021/07/15 =
* The plugin minimum compatible versions are now PHP 7.0 and WordPress 5.3
* Enhancement: Correctly display WordPress cover blocks when WebP and picture tag replacement is enabled (#546)
* Enhancement: Update our jQuery code to be compatible with the new jQuery version included in WordPress (#545)
* 3rd party compatibility: Correctly display WooCommerce variable products images when WebP and picture tag replacement is enabled (#495)
* Bugfix: Prevent nested picture tags when picture tag replacement is enabled (#537)
* Bugfix: Prevent a fatal error related to get_current_screen() in some cases (#567)
* Bugfix: Fixes some display issues related to the promotions in the checkout process (#556, #557)
* Bugfix: Fixes some display issues on the settings & bulk optimization pages on mobile (#566)
* Bugfix: Prevent PHP warning in some cases on the bulk optimization process (#565)
* Bugfix: Prevent PHP notice in somes cases for the $images_count variable (#573)

= 1.9.14 =
* Fix: cURL not connecting to Imagify API when using PHP 8.
* Fix: Display issue in Chrome on scrollable check groups on Imagify admin page.

= 1.9.13 =
* Improvement: Update readme with new quotas, FAQ and description info.

= 1.9.12 - 2020/11/09 =
* Improvement: Enable plugin to work with new app pricing API.

= 1.9.11 - 2020/09/09 =
* Fix: Fix settings error on multi-sites with WordPress 5.5
* Fix: Write the correct conf file for use with WebP rewrites on nginx
* Improvement: Namespace composer dependencies to avoid possible naming collisions.
* Security: Add blank index.php to imagify-created backup folders to disable public access.

= 1.9.10 - 2020/05/26 =
* Fix: Correctly optimize thumbnails during auto-optimization of image upload
* Fix: Fix broken compatibility with Enable Media Replace plugin after WordPress 5.3

= 1.9.9 - 2020/02/13 =
* Fix: do not warn that all the quota has been consumed when it is not the case.
* Fix: fix a "chunky upload" error that some users experienced.
* Fix: php notices that could happen when optimizing.

= 1.9.8.1 - 2019/11/15 =
* Fix: WebP image not showing when using the `<picture>` method and the original `<img/>` does not have a `srcset` attribute.
* Fix: a fatal error with WP Offload Media 2.3.

= 1.9.8 - 2019/11/11 =
* Improvement: compatibility with WordPress 5.3!
* New: among other things, WordPress 5.3 automatically resizes large images on upload, using a predefined threshold value that can be changed only by filter (no setting fields are provided). Imagify’s "Resize larger images" setting field is now used to tweak this threshold.
* Caution: to be able to work on WordPress 5.3, some adjustments have been made to our compatibility with Enable Media Replace and Regenerate Thumbnails. However, these plugins must be updated to work with WordPress 5.3: do not use them until then.
* Improvement: moved the `width` and `height` attributes from the `<picture>` tag to the `<img>` tag to be valid HTML markup.
* Fix: added a missing descriptor in `srcset` attribute when using `<picture>` tags to display WebP images. This should also fix an issue with LasyLoad.
* Fix: fixed an issue with the user capacity used for "Other Media" menu item.
* Fix: a php notice `stripos(): Non-string needles will be interpreted as strings in the future.`.

= 1.9.7 - 2019/10/08 =
* Improvement: prevent greedy antiviruses from crashing the website by renaming our highly dangerous php file with a ".suspected" suffix.
* Improvement: on the settings page, display the "Save & Go to Bulk Optimizer" button only if the user has the ability to bulk optimize.
* Fix: display the "Welcome" banner correctly when it is shown on the WP Rocket’s settings page.

= 1.9.6 - 2019/07/22 =
* Improvement: now images that are "already optimized" can also get WebP versions.
* Fix: progress bar height in the admin bar for Chrome and Safari.

= 1.9.5 - 2019/07/16 =
* Improvement: Basic Authentication support. If it does not work automatically, you can still define the constants `IMAGIFY_AUTH_USER` and `IMAGIFY_AUTH_PASSWORD` in your `wp-config.php` file.
* Improvement: WebP images are not created for animated gif images by default anymore. Use the filter `imagify_pre_can_create_webp_version` if you still want to create an unanimated WebP version of them.
* Improvement: when creating WebP images from the settings page, we made more clear when all the images are missing a backup copy.
* Improvement: clear the 5 minutes data cache when buying quota from the plugin.
* Improvement: when displaying WebP images with the `<picture>` tag, allow to use relative URLs (starting with `/`).

= 1.9.4 - 2019/07/10 =
* Improvement: if a WebP image is larger than its non-webp version, it is now possible to not keep it. This can be done by using the filter `imagify_keep_large_webp`.
* Improvement: compatibility with Pressable.
* Improvement: renamed a php class to prevent some hosts to wrongly flag it as "suspicious" and trigger a fatal error.
* Improvement: better compatibility with WP Real Media Library plugin.
* Fix: rewrite rules for WebP could not work on some servers.
* Fix: when using `<picture>` tags for WebP, some attributes could disappear if they were written on multiple lines.
* Fix: the bulk method would not work in the NextGen Gallery list.
* Fix: php notice `Trying to get property "namespace" for a non object`.

= 1.9.3.1 - 2019/07/03 =
* Fix: conflict with plugins using an ancient version of Composer.

= 1.9.3 - 2019/06/17 =
* Improvement: better compatibility with CDNs when displaying WebP images with `<picture>` tags. There is now a new setting field to fill in the CDN URL in use.
* Improvement: don’t use Heartbeat anymore. This speeds up the optimization process and prevents other plugins to break everything when they remove Heartbeat.
* Fix: a fatal error upon plugin deactivation.
* Fix: an occasional fatal error preventing the optimization process to work.
* Fix: conflict with plugins using an ancient version of Composer.
* Fix: php notices displayed on the bulk optimization page on rare cases.
* Fix: a php notice about "Non-string needles" with php 7.3.
* Fix: a php notice displayed when restoring a custom file.

= 1.9.2 - 2019/05/16 =
* Fix: don’t display support bubble anymore.

= 1.9.1 - 2019/05/09 =
* Improvement: prevent "Generating missing WebP versions" being stuck at 0% in the settings page by displaying a "done/total" label instead.
* Improvement: improved our "re-registering" of the Heartbeat library, that some plugins may deactivate.

= 1.9.0 - 2019/05/06 =
* New: WebP support. For each image or thumbnail, Imagify can create a WebP version of it. But since creating these images without using them does not make really sense, Imagify can also display your WebP images on your site. All of this can be enabled in the settings. For the images that are already optimized, you get the possibility to create the WebP versions separately (one by one or in the settings page), but only if you kept a backup copy of the original images.
* Improvement: the optimization process has been entirely rebuilt. This new process allows you to optimize as many thumbnail sizes that you want. It also implies that many classes, functions, and hooks have been deprecated.
* Improvement: compatibility with Flywheel.
* Improvement: some error messages are now more accurate.
* Fix: made sure to stop the optimization process if the backup process fails. Since the optimization process has been rebuilt, some other bugs have been fixed along the way.
* Fix: an issue preventing directory creation.
* Fix: a fatal error when uploading an image in NextGen Gallery, due to a recent change in NGG.
* Imagify now requires WordPress 4.0+ and php 5.4+.
* Support for the plugin WP Retina 2x has been dropped (maybe temporarily).

= 1.8.4.1 - 2018/12/18 =
* Improvement: prevent "unknown error" messages that some users are getting since yesterday.

= 1.8.4 - 2018/11/12 =
* Improvement: automatic optimization is delayed further, it now happens after the image original data is stored in the database. This new process should be more reliable.
* Improvement: compatibility with wordpress.com.
* Improvement: some wording and typos in the plan suggestion tool.
* Improvement: improved wording and added a link to a new documentation entry for the case when no php extension are available for image manipulation.
* Improvement: prevent plugins from accidentally overwriting the header containing the API key when contacting our servers.
* Bug Fix: the handle in the original/optimized image comparator was a bit shy, but after some personal work it should stick to the cursor hopefully.
* Bug Fix: a php notice in the WP Retina 2x compatibility code.
* Bug Fix: handle a specific error case when contacting our servers fails.

= 1.8.3 - 2018/10/24 =
* Improvement: compatibility with new version of WP Offload Media plugin.
* Improvement: some wording about EXIF Data and the 2MB limit.
* Bug Fix: the lock icon now displays correctly.
* Bug Fix: a text encoding issue with some server configurations.

= 1.8.2 - 2018/09/12 =
* New: display partnership links (can be removed).
* Improvement: display a small spinner when opening a folder in the custom folders selector.
* Improvement: visual for the admin toolbar option has been updated and localized for some languages.
* Bug Fix: two errors that prevented to create the backup folder (and other things).
* Bug Fix: improved uninstall cleanup.

= 1.8.1.1 - 2018/07/31 =
* Bug Fix: an open_basedir error that prevented some users to use the custom folders browser.
* Bug Fix: an error that prevented to create the backup folder (and other things) on multisite.

= 1.8.1 - 2018/07/18 =
* Imagify now requires WordPress 4.0 at least! This value may increase in the future, like required php version.
* Bug Fix: improved support of sites having the "wp-content" folder outside WordPress folder.
* Bug Fix: improved the plan recommendation tool: better choices, and pre-select only what is needed.
* Bug fix: fixed a wrong color on a quota bar.
* Lots of various small fixes and code improvements.

= 1.8.0.1 - 2018/06/19 =
* Bug Fix: issue on some sites displaying a "no php extension available".

= 1.8 - 2018/06/19 =
* New: you can now optimize pdf files.
* Improvement: custom folders, you can now optimize files located in the *uploads* folder.
* Improvement: support for thumbnails dynamically generated by NextGen Gallery plugin.
* Bug Fix: revamped support for WP Retina 2x plugin.

= 1.7.1.3 - 2018/04/12 =
* Bug Fix: a fatal error with outdated versions of php.

= 1.7.1.2 - 2018/04/12 =
* Improvement: reset OPcache after Imagify being updated.
* Bug Fix: a fatal error upon Imagify update.
* Bug Fix: a case where the bulk optimizer wrongly says that all images are already optimized.

= 1.7.1 - 2018/04/10 =
* New: compatibility with Regenerate Thumbnails (v3) plugin.
* Improvement: better performance of the bulk optimization on sites with huge media library. This is done by not updating the statistics display periodically, but only when the job is done.
* Improvement: SiteGround cache testing is not blocked anymore.
* Improvement: proxies are now handled.
* Improvement: test for ImageMagick or GD availability.
* Dev stuff: improved the way we use the filesystem. This should solve few edge cases.

= 1.7 - 2018/03/13 =
* New: you can now optimize the images from your themes and plugins, or from any other folder in your site!
* Improvement: compatibility with old and new versions of WP Offload S3 plugins.
* Improvement: don't start the bulk optimization process if cURL is not available.
* Bug Fix: image dimensions not being stored sometimes after it is resized.
* Bug Fix: the comparison tool could display multiple handles.
* Bug Fix: issue with php 7.2.
* Dev stuff: lots of internal changes, many things have been rewritten.
* Dev stuff: the default options can now be filtered.

= 1.6.14.2 - 2018/01/15 =
* Improvement: force browsers not to use the old version of our script for the charts.

= 1.6.14.1 - 2018/01/11 =
* Bug Fix: no more conflicts between our script used for the charts and theme builders, or plugins that use an outdated version of this script.

= 1.6.14 - 2018/01/10 =
* New: added compatibility with partners' plugins.
* Improvement: updated the script used for the charts, it will lower the risk of conflicts with other plugins (that are also up-to-date).
* Improvement: the comparison tool button is now also inserted when clicking the next/previous buttons in the media modal.
* Bug Fix: the comparison tool button should not be inserted several times anymore.
* Bug Fix: the images wouldn't appear in the comparison tool sometimes.

= 1.6.13.1 - 2017/11/08 =
* Bug Fix: fixed a php error with php 5.2.

= 1.6.13 - 2017/11/07 =
* New: added links to the documentation in Imagify' settings and bulk optimization pages.
* Improvement: better compatibility with NextGen Gallery plugin. Imagify no longer resizes NextGen images nor removes exif, to let NextGen Gallery do its job peacefully.
* Improvement: better compatibility with WP Real Media Library plugin, our modal wasn't working correctly.
* Improvement: better compatibility with plugins that use cookies, like Duo Two-Factor Authentication and Shield Security, to prevent being disconnected.
* Improvement: better compatibility with SiteGround. A "security" measure was preventing Imagify to work correctly.
* Improvement: better compatibility with hosts that limit some SQL queries, it prevented our bulk optimization to work.
* Improvement: better compatibility with Heartbeat Control plugin, it prevented our bulk optimization to work.
* Improvement: better compatibility with Formidable Forms Pro plugin, the bulk optimizer was never satisfied.
* Bug Fix: fixed a few bugs when optimizing in NextGen Gallery.

= 1.6.12 - 2017/10/18 =
* New: added links to the documentation in the plugin's admin bar item and the plugin's row (plugins page). There is more to come.
* Improvement: image attachments that don't have some mandatory WordPress metadata are not included in Imagify stats anymore.
* Fix: the "Optimized size" progress bar in the bulk optimization page now behaves like the "Original size" one does.
* Dev stuff: auto-optimization can be disabled on an attachment basis with the new filter `imagify_auto_optimize_attachment`. For example it can be used to disable auto-optimization for a specific file extension.
* Dev stuff: classes are now auto-loaded. Some constants have been removed.

= 1.6.11 - 2017/10/12 =
* Improvement: Imagify now works with the iOS app, and with XML-RPC in general.
* Improvement: we harmonized and improved how user roles are handled.
* Improvement: prevent optimized image to be cached by the browser in the comparison tool.
* Fix: sometimes the comparison tool's button wouldn't show on the attachment edition page.
* Fix: the bulk optimization button works again.

= 1.6.10 - 2017/10/05 =
* New: if new thumbnail sizes appear after activating a new theme or plugin, you can now optimize only these missing sizes instead of restoring and re-optimizing all images.
* Improvement: CSS and JS files have been split and are loaded only when needed.
* Improvement: in each NextGen Galleries you now have "Optimize" and "Restore" bulk actions.
* Improvement: better banner placements with languages with long sentences (looking at you, Germany).
* Improvement: messages like the "WELL DONE" one can now be translated.
* Bug Fix: the account infos in the admin bar now works properly on front-end.
* Bug Fix: some thumbnail sizes with curious name were not listed in the settings page.
* Bug Fix: improved library size calculation for "What plan do I need?". Some thumbnail sizes were missing, lowering the result.
* Regression fix: the issue with Imagify's popup on WP Rocket options screen is now also solved when WP Rocket is white-labelled.
* Lots of various small fixes and code improvements.

= 1.6.9.1 - 2017/08/12 =
* Regression fix: don't load Imagify's popup files on WP Rocket options screen to avoid conflicts.

= 1.6.9 - 2017/08/11 =
* Improvement: the bulk optimization now stops as soon as the quota is fully consumed, instead of trying to optimize more images and getting error messages one after the other.
* Improvement: updated (almost) all JavaScript libraries we use. SweetAlert won't conflict with new versions anymore. Few code improvements.
* Improvement: in the medias list, improved the Imagify column behavior on small screens.
* Improvement: when optimizing in NextGen Gallery, update some NGG data.
* Bug Fix: revamped the whole Enable Media Replace plugin compatibility. Optimization, restoration, and backup should work properly now.
* Bug Fix: revamped the way to restore images in NextGen Gallery to prevent deletion of alt text, description, and tags.
* Regression fix: fixed optimization and restoration not working in NextGen Gallery.
* Regression fix: fixed the bulk optimization not working with PHP 5.2.

= 1.6.8 - 2017/07/26 =
* Improvement: don't display the restore bulk action in the medias list if there is nothing to restore.
* Improvement: you can know select and unselect all image sizes at once in the settings page.
* Improvement: detect when the backup directory is not writable. A warning is displayed dynamically under the backup setting, a notice is also displayed on some pages.
* Improvement: some strings were still not translated in the bulk optimization page.
* Bug Fix: the "Save & Go to Bulk Optimizer" button now redirects you even if no settings have been changed.
* Lots of various small fixes and code improvements.

= 1.6.7.1 - 2017/07/13 =
* Bug Fix: Fixed the "Unknown error" during a bulk optimization.

= 1.6.7 - 2017/07/12 =
* Improvement: Compatibility with the plugin WP Offload S3 Pro, and fixed a few things for both Lite and Pro versions.
* Improvement: Improved performance on the bulk optimization page for huge image libraries.
* Improvement: When performing a bulk optimization, moved the attachments with the "WELL DONE" message at the end of the queue, it helps to speed up things.
* Improvement: Use cURL directly only to optimize an image. It helps when cURL is not available: less things will break in that case.
* Bug Fix: Fixed a bug with the plugin Screets Live Chat, prior to version 2.2.8.
* Regression fix: Fixed the buffer size on the bulk optimization page.
* Dev stuff: Added a hook allowing to filter arguments when doing a request to our API. It can be used to increase the timeout value for example.

= 1.6.6 - 2017/06/27 =
* New: Compatibility with the plugin WP Offload S3 Lite. Your images now will be sent to Amazon S3 after being optimized. Also works when you store your images only on S3, not locally.
* Improvement: Added a filter to the asynchronous job arguments.
* Bug fix: Compatibility with Internet Explorer 9 to 11.
* Regression fix: The comparison tool stopped working in the medias list since the previous version.

= 1.6.5 - 2017/06/22 =
* Improvement: Code quality of the whole plugin has been improved to fit more WordPress coding standards.
* Improvement: Lots of internationalization improvements. Now the plugin's internationalization fully rely on the repository system.
* Bug Fix: Fixed an error with php 7.1: `Uncaught Error: [] operator not supported for strings in /wp-content/plugins/imagify/inc/functions/admin.php:134`.

= 1.6.4 - 2017/04/06 =
* Improvement: Provide a link to optimize in higher level when an image is already optimized.
* Improvement: Add a dedicated message for 413 HTTP error when the image is too big to be uploaded on our servers.

= 1.6.3 - 2016/12/16 =
* Improvement: The discount is now automatically applied in when you buy from the plugin and a promotion is active

= 1.6.2 - 2016/11/22 =
* Bug Fix: Correctly display the modal when clicking on the plan suggestion button on bulk optimization page

= 1.6.1 - 2016/11/22 =
* Bug Fix: Better offer suggestion when your medias library is bigger than 3GB

= 1.6 - 2016/11/21 =
* New: Knowing how many MB/GB you need to optimize your existing and future images is complicated. We love to make things easier, so Imagify will do it and advise you the best plan.
* New: You can now buy all the plans without leaving your WordPress administration
* Improvement: Some styles fixed in the interface

= 1.5.10 - 2016/10/05 =
* Improvement: Set to 1 the Bulk buffer size when there are more than 10 thumbnails to avoid "Unknown error" on the Bulk Optimization

= 1.5.9 - 2016/09/27 =
* Bug Fix: Don't delete the thumbnail when the maximum file size is set to one of the thumbnail size
* Bug Fix: Don't strip the image meta data if possible (only with Imagick)
* Bug Fix: Fix persistent "WELL DONE" message because of "original_size" meta value was 0

= 1.5.8 - 2016/08/24 =
* Regression fix: Check if the backup option is active before doing a backup when an image is resized

= 1.5.7 - 2016/08/23 =
* Improvement: Resize images bigger than the maximum width defined in the settings using WP Image Editor instead of Imagify API

= 1.5.6 - 2016/07/29 =
* Improvement: Dynamically update from the API the maximum image size allowed in bulk optimization
* Improvement: Updated SweetAlert to SweetAlert2

= 1.5.5 =
* Bug Fix: Fix issue with "original_size" at 0 in "_imagify_data" to be able to re-optimize an image with a "Forbidden" error.

= 1.5.4 =
* Improvement: Increase to 4 the number of parallel queries during a bulk optimization
* Improvement: Don't display Intercom chat if the user turned off the option in the web app

= 1.5.3 =
* Regression Fix: Display the Original File size in "View Details" section

= 1.5.2.1 =
* Bug Fix: Fix JS error: Uncaught ReferenceError: imagify is not defined in /assets/options.min.js
* Bug Fix: Don't show "Optimize" button during optimizing process in "Edit Media" screen

= 1.5.1 =
* Bug Fix: Thumbnail sizes in settings page aren't reset anymore on plugin update
* Bug Fix: Fix PHP Warning: Cannot unset offset in a non-array variable in /inc/functions/admin-stats.php on line 23
* Bug Fix: Fix PHP Warning: Invalid argument supplied for foreach() in /inc/functions/admin-stats.php on line 233

= 1.5 =
* New: NextGen Gallery compatibility - Optimize all your images uploaded with NextGen Gallery
* New: Asynchronous Optimization - No more latency when you upload new images, Imagify will optimize them in background!
* Improvement: Bulk Optimization: Interface improvements for a better experience

= 1.4.7 =
* Bug Fix: Fix issue between Bulk Optimization & WP Engine. The query to get unoptimized images is limited to 2500 images to be able to use the Bulk Optimization on this hosting.
* Bug Fix: Fix SSL certificate problem: unable to get local issuer certificate

= 1.4.6 =
* Bug Fix: Fix the "All your images have been optimized by Imagify" issue when images still need to be optimized. This issue occurred only since 1.4.5 for some users. Sorry for the inconvenience!

= 1.4.5 =
* Improvement: Bulk Optimization: optimize all SQL queries and improve by 65% the process time \o/
* Improvement: Chart.js library updated
* Improvement: Media List JS notice removed

= 1.4.4 =
* Improvement: Visual fix: CSS prefixed in notices to avoid class conflicts
* Improvement: Visual fix: improve Imagify Notices CSS to avoid issue with WP Engine CSS
* Improvement: Medias: new "Compare Original VS Optimized" action link in grid view mode
* Improvement: Settings: new sample images for visual comparison of compression levels (removes unused sample images)

= 1.4.3 =
* New: Medias: new "Compare Original VS Optimized" action link in list view
* Improvement: Visual fix: CSS prefixed in notices to avoid class conflicts
* Improvement: Medias: comparison are now available for image from 36Opx wide
* Improvement: Settings: new sample images for visual comparison of compression levels

= 1.4.2 =
* New: Add German translation
* New: You can define the `IMAGIFY_HIDDEN_ACCOUNT` constant in wp-config.php to hide all your Imagify account infos in the Admin Bar and Bulk Optimization
* Bug Fix: Fix PHP Notice: Undefined index original_size in /inc/functions/admin-stats.php on line 185
* Bug Fix: Fix PHP Notice: Undefined index optimized_size in /inc/functions/admin-stats.php on line 186

= 1.4.1 =
* Improvement: Medias: better comparison for big portrait images
* Improvement: Medias: Don't display the "Compare Original VS Optimized" button for images without backup
* Bug Fix: WPML: Fix AJAX error caused by WPML to avoid issue during the API key validation process
* Bug Fix: Yoast: Remove JS error caused by Yoast SEO on the attachment edit screen to avoid issue with our "Compare Original VS Optimized"

= 1.4 =
* New: Medias: Click a button to open images comparison between Original and Optimized (available for big enough images)
* Improvement: Add async method to optimize resized images

= 1.3.6 =
* Improvement: Optimize attachments resized with the WordPress editor tool
* Improvement: Compatibility with the "Replace the file, use new file name and update all links" option from "Enable Media Replace" plugin
* Improvement: Add a notice message during the Bulk Optimization if the quota is consumed
* Improvement: Better styles for compression details next to your images
* Bug Fix: No freeze anymore during the Bulk Optimization if an unknown error occurred with an image
* Bug Fix: Add a notice message if we can't get all unoptimized images during the Bulk Optimization process
* Bug Fix: Fix PHP Warning: set_time_limit(): Cannot set time limit in safe mode in ../inc/admin/ajax.php on line 137
* Bug Fix: Details about compressed images in modal media box are now closed by default
* Regression Fix: Get all attachments with the message "You've consumed all your data" during the Bulk Optimization process to be able to optimize them

= 1.3.5.2 =
* Regression Fix: Check mark displayed better on certain settings pages

= 1.3.5 =
* Bug Fix: Check box display issue fixed on Imagify settings page: SVG Icons cleaning

= 1.3.4 =
* New: Add Italian translation

= 1.3.3 =
* Bug Fix: Fixed behavior in multisite networks where Imagify options would not get saved when the plugin wasn't network-activated, but only activated for specific sites within the network.

= 1.3.2 =
* New: Add Spanish translation
* Bug Fix: Avoid lack of performance in the WordPress administration if the Imagify's servers are down.

= 1.3.1 =
* Bug Fix: Remove a notice message which causes a lack of performance in the administration. (thanks Kevin Gauthier to warn us)

= 1.3 =
* New: Add GIF support
* New: You can now decide to keep EXIF data on your images

= 1.2.4 =
* Bug Fix: Don't duplicate Imagify data in the attachment edit screen (wp-admin/post.php)

= 1.2.3 =
* Improvement: Use AJAX to display the quota in the admin bar to avoid a call to our API on each pages.

= 1.2.2 =
* Bug Fix: Bulk Optimization: Fix issue when the backup option isn't activated. The compression level applied was "Normal" instead the one saved in the settings.
* Bug Fix: Bulk Optimization: Don't try to re-optimize an image already optimized which has the same compression level than the one saved in the settings.

= 1.2.1 =
* Regression fix: Fix the Bulk Optimization issue when you never optimized any images and avoid the message "All your images have been optimized by Imagify. Congratulations!".

= 1.2 =
* New: compression level: Ultra
* New: You can now choose to display Admin Bar Imagify's menu, or not.
* New: See the differences between Ultra, Aggressive and Normal option inside Imagify Options page.
* Bug Fix: Admin Bar: Styles are now included in front-end too.
* Bug Fix: Admin Bar: Better styles in certain cases.
* Bug Fix: Deactivate a conflict plugin doesn't return a blank page anymore!
* Bug Fix: Display the right original image size after a resize (meta data)
* Regression Fix: Bulk Optimization: update in live the unconsumed credit during a bulk optimization.

= 1.1.6 =
* Improvement: Quick access to your profile informations (quota) in Admin Bar > Imagify
* Improvement: More precise information about global size saved using Imagify (bulk optimization page)
* Improvement: When your bulk optimization is over, success message isn't inside the table anymore
* Improvement: To quit the bulk optimization processing you have to confirm your action
* Bug Fix: JS: `console` undefined on some IE browsers
* Bug Fix: PHP Warning: `Illegal string offset 'sizes' in ../inc/functions/admin-stats.php on line 180`
* Bug Fix: Don't count GIF & SVG in the Imagify statistics

= 1.1.5 =
* Improvement: Display a default preview to avoid issues with 404 images and a security restriction on SSL websites on the Bulk Optimization page
* Improvement: Don't count all exceeded images to avoid lack of speed on the Bulk Optimization page
* Bug Fix: Don't try to re-optimize images with an empty error message or with an already optimized message on the Bulk Optimization
* Bug Fix: Don't generate special chars in the password to avoid issue on the Imagify app log in

= 1.1.4 =
* Improvement: Don't add the WP Rocket ads if this plugin is activated
* Bug Fix: Ignore thumbnails with infinite width like 9999 to avoid an issue with the "Resize larger images" option

= 1.1.3 =
* Bug Fix: Fix PHP Warning: `curl_setopt() [function.curl-setopt]: CURLOPT_FOLLOWLOCATION cannot be activated when safe_mode is enabled or an open_basedir is set in ../inc/api/imagify.php on line 218`

= 1.1.2 =
* Regression fix: Fix the "%undefined%" and the overview chart issues on the Bulk Optimization page
* Regression fix: Fix PHP Warning: Illegal string offset 'sizes' in ../inc/classes/class-attachment.php on line 347
* Regression fix: Fix PHP Notice: Uninitialized string offset: 0 in ../inc/classes/class-attachment.php on line 347
* Regression fix: Fix PHP Warning: Illegal string offset 'file' in ../inc/classes/class-attachment.php on line 410

= 1.1.1 =
* New: Add a notice on the Bulk Optimization & Imagify Settings page when the monthly free quota is consumed
* Bug Fix: Fix issue on Chrome & Opera on the Bulk Optimization: images are optimized from the newest to the oldest.

= 1.1 =
* New: Add new option "Resize larger Images"
* Improvement: Bulk optimization: results table is not shrinkable to the infinite anymore (scrollable)
* Improvement: Better visual in options page
* Bug Fix: Check if an attachment exists to avoid an issue which is stopped the Bulk Optimization
* Bug Fix: Really Fix PHP Notice: Undefined offset: 1 in imagify/inc/functions/formatting.php on line 17
* Bug Fix: Double animation in Progress Bar

= 1.0.3 =
* Bug Fix: Fix PHP Notice: Undefined offset: 1 in ../inc/functions/formatting.php on line 16

= 1.0.2 =
* Improvement: Add error descriptions on the Bulk Optimization results
* Improvement: Add a notice to switch to the list view in the media library page

= 1.0.1 =
* New: Add Intercom Live Chat on Imagify Settings and Bulk Optimization pages
* Improvement: Better user informations
* Bug Fix: PHP 5.2+ compatibility

= 1.0 =
* Initial release.
