=== Smush - Lazy Load Images, Optimize & Compress Images ===
Plugin Name: Smush - Lazy Load Images, Optimize & Compress Images
Version: 3.9.8
Author: WPMU DEV
Author URI: https://wpmudev.com/
Contributors: WPMUDEV, alexdunae
Tags: optimize images, convert webp, lazy load, resize images, compress images, webp, performance, optimization, photography, optimizer, image optimizer, image compress, image optimize, webp format
Requires at least: 5.3
Tested up to: 5.9
Stable tag: 3.9.8
Requires PHP: 5.6
License: GPL v2 - http://www.gnu.org/licenses/old-licenses/gpl-2.0.html

Compress images & optimize images with lazy load, WebP conversion, and resize detection to make your site load amazingly fast.

== Description ==

**Optimize images, turn on lazy load, resize, compress & improve your Google Page Speed with the incredibly powerful and 100% free WordPress image smusher, brought to you by the superteam at WPMU DEV!**

And whether you spell it 'optimise' or 'optimize', Smush will compress images without a visible drop in quality.

Image optimization is the easiest way to make your site load super fast!

### Award Winning Image Optimizer
Smush has been benchmarked and tested number one for speed and quality. It is also the [award-winning](https://torquemag.io/2018/04/smush-image-compression-wins-2018-plugin-madness/), back-to-back proven crowd favorite image optimization & image compression plugin for WordPress.

- Lossless Compression – Strip unused data and compress images without affecting image quality.
- Lazy Load - Defer offscreen images with the flip of a switch.
- Bulk Smush – Optimize & compress up to 50 images with one click.
- Image Resizing – Set a max width and height and large images will scale down as they are being compressed.
- Incorrect Size Image Detection – Quickly locate images that are slowing down your site.
- Directory Smush – Optimize images even if they are not located in the media library.
- Automated Optimization – Asynchronously auto-smush your attachments for super fast compression on upload.
- Without Monthly Limits – Optimize all of your images up to 5MB in size, free forever (no daily, monthly, or annual caps).
- Gutenberg Block Integration – View all Smush stats directly in image blocks.
- Multisite Compatible – Offers both global and individual Multisite settings.
- Process All Your Files – Smush will process PNG, JPEG, and GIF files for optimum results.
- Super Servers - Smush images with no slowdown using WPMU DEV's fast, reliable Smush API.
- Convert to WebP (Pro Only) - Upgrade and automatically serve images in Next-Gen WebP format.
- Configs – Set your preferred Smush settings, save them as config, and instantly upload to any other site.
- And many, many, more!

### Learn The Ropes With These Hands-On Smush Tutorials

- [How to Get the Most Out of Smush Image Optimization](https://wpmudev.com/blog/how-to-get-the-most-out-of-smush/)
- [How To Ace Google’s Image Page Speed Recommendations With Smush](https://wpmudev.com/blog/smush-pagespeed-image-compression/)
- [How To Bulk Optimize Images With Smush](https://wpmudev.com/blog/smush-bulk-optimize-images/)
- [How To Optimize Elementor for Free Using Smush and Hummingbird](https://wpmudev.com/blog/optimize-elementor-wordpress-smush-hummingbird/)
- [How To Optimize WPBakery Sites Using Smush And Hummingbird](https://wpmudev.com/blog/optimize-wordpress-wpbakery-free-plugins/)

### Compress Image While Preserving Image Quality

Some image compression tools destroy images with as much as a 30% loss in quality. Our servers strip hidden bulky information from your images and reduce file size without affecting the appearance.

[youtube https://www.youtube.com/watch?v=Z1kTcyLFE2g&feature=youtu.be]

Smush meticulously scans every image you upload – or have already added to your site – cuts all the unnecessary data and scales it for you before adding it to your media library. And it can serve images in the WebP format.

### Compress any Image in any Directory

In addition to smushing your media uploads, you may want to compress the images stored in other folders. Smush now lets you compress any image in any directory so that you can optimize all the images on your site – including [NextGEN](https://wordpress.org/plugins/nextgen-gallery/) images, images stored on Amazon S3 using [WP Offload Media](https://wordpress.org/plugins/amazon-s3-and-cloudfront/) and images in EVERY WordPress plugin and theme package!

### Compatible with Your Favorite Themes, Page Builders and Media Library Plugins

No matter what theme or plugins you use to better manage your WordPress media library, Smush has you covered. Check out just a few of the popular products Smush is working with to help make your site faster and more efficient:

- [WP All Import](https://wordpress.org/plugins/wp-all-import/)
- [WP Offload Media](https://wordpress.org/plugins/amazon-s3-and-cloudfront/)
- [WP Media Folder](https://www.joomunited.com/wordpress-products/wp-media-folder)
- [WP Retina 2x](https://wordpress.org/plugins/wp-retina-2x/)
- [NextGen Gallery](https://wordpress.org/plugins/nextgen-gallery/)
- [WPML](https://wpml.org/)
- [Envira Gallery](https://enviragallery.com/)
- [Avada Fusion Builder](https://theme-fusion.com/products/fusion-builder/)
- [Styles](https://wordpress.org/plugins/styles/)
- And many, many, more!

### Incorrect Size Image Detection
Smush includes a wrong size image finder. Activate and your images will be highlighted with smart tips for scaling your images. Quickly locate the images that are keeping you from getting that perfect 100 on your Google PageSpeed test.

### Defer Offscreen Images
Smush has lazy load built-in. If your page has a bunch of images below the fold, lazy loading will drastically speed up your page by serving only the images being viewed and delaying others further down the page.

### Save time with Smush Configs
Configs allow you to save your preferred Smush configuration settings and apply them to your other sites in a few clicks. You can create unlimited configs.

★★★★★
> “I had no idea that my page load time was being dragged down by the images. The plugin nearly halved the time it took.” - [karlcw](http://profiles.wordpress.org/karlcw)

★★★★★
> “I optimise my photos in Photoshop, but Smush makes it so easy – it does it automatically. I can just sit back and enjoy the speed.” - [helen432](https://profiles.wordpress.org/helen432)

★★★★★
> “Smush helped reduce the total files size on my site and increased browsing speed. Well done guys!” - [pdci](https://wordpress.org/support/users/pdci/)

★★★★★
> “It’s very discrete and does not bother me with an API key or other additional installation steps. The main dashboard of the plugin gives me nice insight. Overall it really fits my needs and I’ll be willing to upgrade to pro if my needs change. I’d recommend it to clients/friends without hesitation. Keep it up!” - [tarkan_](https://wordpress.org/support/users/tarkan_/)

### What about Multisite?

Smush can be used to optimize all the images across your entire network! Use global settings or configure each site individually.

Smush is super easy to use – no confusing compression software settings. Smush images in your library one at a time or bulk smush up to 50 images at a time.  Plus, configure auto-smush to asynchronously scale and compress some or all of your images as they are being uploaded – it's incredibly fast.

The faster your site loads, the more Google, Bing, Yahoo, and other search engines will like it. Your site will load faster and rank higher.

### Shameless Plug(ins)

- [Hummingbird](https://wordpress.org/plugins/search/Hummingbird/) - Page Speed Optimization
- [Hustle](https://wordpress.org/plugins/wordpress-popup/) - Pop-ups, Slide-ins and Email Opt-ins
- [SmartCrawl](https://wordpress.org/plugins/smartcrawl-seo/) - SEO Optimizer
- [Defender](https://wordpress.org/plugins/defender-security/) - Security, Monitoring, and Hack Protection
- [Forminator](https://wordpress.org/plugins/forminator/) - Form, Poll, and Quiz Builder
- [Beehive](https://wordpress.org/plugins/beehive-analytics/) - Customizable Google Analytics Dashboards

Smush can take care of all your image compression needs, for free!

However, if you’d like Super Smush lossy compression, fast CDN image delivery, WebP conversion, automatic resizing, the ability to optimize (or optimise) images up to 32MB, bulk smush optimization for all your images in just one-click, auto-convert PNG to JPEG, the ability to Smush and make a copy of your full-sized images (to restore them at any point), you can always take the next step with [WP Smush Pro](https://wpmudev.com/project/wp-smush-pro/?utm_source=wordpress.org&utm_medium=readme&utm_campaign=smush-readme&utm_content=wp_smush_pro#trial). And get even more with her whole team of WordPress optimization hero friends (security, SEO, performance, support, and maintenance automation) – trusted by thousands of agencies and freelancers offering site maintenance services.

### Privacy

Smush does not interact with end users on your website. The only input option Smush has is to a newsletter subscription for site admins only.

Smush uses a third-party email service (Mailchimp) to send informational emails (Opt-in) to the site administrator. The administrator's email address is sent to Mailchimp and a cookie is set by the service. Only administrator information is collected by Mailchimp.

Smush sends images to the WPMU DEV servers to optimize them for web use. This includes the transfer of EXIF data. The EXIF data will either be stripped or returned as it is. It is not stored on the WPMU DEV servers.

== Frequently Asked Questions ==

= I just finished running Smush and Google PageSpeed still says my images need compressing and resizing. How do I fix it? =

This means your images were not properly scaled for where they are being displayed. Scaling images before uploading them can be time-consuming but can save space and speedup load time. First, determine what size your image needs to be. You can use the built-in images size detector included in the free version of Smush to find what height and width your image should be. Once you know how large the image should be, scale your images to the right size.

= PageSpeed Insights is telling me to defer offscreen images. Can Smush fix that?

Lazy Load will defer your offscreen images from loading until they are needed. From the Smush Dashboard, select Lazy Load and click Activate. Smush Lazy Load works out of the box or can be customized based on your needs.

*Tip:* If you're having any issues or want to save a ton of time, the Smush Pro CDN includes auto-resizing.

= Does Smush delete or replace my original full-size images? =

Nope. WordPress crops and resizes every image you upload for embedding on your site. By default, Smush only compresses these cropped and resized images, not your original full-size images. To compress your original full-sized images, use [Smush Pro](https://wpmudev.com/project/wp-smush-pro/?utm_source=wordpress.org&utm_medium=readme&utm_campaign=smush-readme&utm_content=smush_pro#trial).

= What type of file should I use for my images (GIF, PNG, JPG)? =

GIF files are large and can’t be optimized much. They should only be used if the image is animated.


PNG is best for computer generated graphics (vectors, logos, fonts, etc.), images with few colors or images with transparency.


JPG should be used for photography or images with a lot of color variation.

*Tip:* The Smush Pro CDN includes WebP compression - sharper images that are 25 to 30 percent smaller than JPEG and PNG files.

= I’m a photographer. Can I keep all my EXIF data? =

Yes! EXIF data stores camera settings, focal length, date, time, and location information in image files. EXIF data makes image files larger but if you are a photographer, you may want to preserve this information. We have included the option to preserve EXIF image data in Smush.

= I just ran Bulk Smush and some of my images didn't get compressed. Why would this happen? =

First, check to see if you're receiving any server errors. If your images seem to be processing correctly, check the file size of the images being skipped. Images over 5mb will be skipped. To compress images up to 32mb, get [Smush Pro](https://wpmudev.com/project/wp-smush-pro/?utm_source=wordpress.org&utm_medium=readme&utm_campaign=smush-readme&utm_content=wp_smush_pro#trial).

= I activated Smush and I don’t see any difference in image quality. How am I supposed to know if Smush is working? =

Great question! It is important to understand Smush is an optimization tool that uses lossless image compression to save disk storage space and speed up your site. Smush squeezes data from your image files that will save space, resize huge images, and improve speed without changing quality.

You can track file size changes in your media library, individual image savings, directory savings, and Smush total savings with Smush stats. If you want to see some additional magic, run before-and-after page-speed tests with WP Checkup or Google PageSpeed Insights. Every little bit of resource savings is important when it comes to page-speed!

= Can't I just use Photoshop or another image editing application to optimize my images? =

Optimizing all the image sizes generated by WordPress, images being imported from plugins and themes, and images from other web sites is a painful and time-consuming process.

Smush automatically handles optimizing all your images no matter where they come from and can be used as a standalone tool or alongside Photoshop.

= My Google PageSpeed test is telling me to serve images in Next-Gen formats. Can Smush do that? =

WebP and other Next-Gen formats are not supported on all browsers and require fallback images. For that reason, WebP conversion is only available in Smush Pro. Smush Pro converts images to WebP for a 25-30% savings over JPEG and PNG and serves fallback images on unsupported browsers.

= Is it optimize or optimise? =
It depends what side of the pond you live on...but whether you say optimize, optimise, optimizer, or Smush goddess of speed, this plugin will make sure your images are loading lightning fast.

== Screenshots ==

1. Simple to get started with the Smush setup wizard.
2. Watch as your image library is processed – up to 50 images at a time.
3. Set automatic smush to resize and optimize every image as it is uploaded.
4. Smush will find and optimize images for you.

== Changelog ==

= 3.9.8 ( 2022-03-22 ) =

- New: Add expiry header to Nginx template for WebP
- New: Add `wp_smush_webp_dir` filter to customize WebP directory
- Fix: XSS vulnerability
- Fix: Disable submit button on Integrations page when no integrations available
- Fix: CDN bandwidth limit status message
- Fix: Text alignment issue on Bulk Smush page
- Fix: Highlighting selected lazy load spinner with color accessibility
- Fix: Compatibility issue with WP Offload Media 2.6.0
- Fix: Undefined offset notice with certain WooCommerce themes

= 3.9.7 ( 2022-03-01 ) =

- Fix: Local WebP is not activated on applying config after reset settings
- Fix: Missing WebP file for WP scaled images
- Fix: Fatal error on PHP 5.6
- Fix: Compatibility issue with WP Offload Media

= 3.9.6 ( 2022-02-09 ) =

- Enhance: Do not close the Directory Smush modal in case of error
- Enhance: Tooltips in CDN module
- Fix: Compatibility issue with PHP 8.1
- Fix: "Choose Directory" button loading state in case of error
- Fix: PNG to JPG conversion leaves behind some thumbnails after deleting the image
- Fix: PNG images that need resizing don't get converted to JPG
- Fix: Issue creating the WebP test files
- Fix: Incorrect unique file names during PNG to JPG conversion
- Fix: Duplicate thumbnails while converting PNG to JPG
- Fix: Auto refresh API status when updating to Pro version

= 3.9.5 ( 2022-01-25 ) =

- Fix: Translation strings
- Fix: Remove upsells
- Enhance: Update admin menu icon

= 3.9.4 ( 2021-11-29 ) =

- Fix: Errors in media library with WP Offload Media and backups
- Fix: CDN not activated if the WPMU DEV Dashboard plugin folder is renamed
- Fix: Missing hover effect for video on the Smush Pro page
- Fix: Incorrect number of compressed images when WooCommerce plugin is active
- Fix: View stats not working when adding an image from a page/post
- Fix: Wrong "Images smushed" count on NextGen Gallery Smush page
- Fix: Duplicate stats are added by WPML media translations.
- Fix: Regenerated thumbnails not detected as pending for Smush
- Fix: CDN status when pushing production to staging on WPMU DEV hosting
- Fix: Translation strings

= 3.9.3 ( 2021-11-04 ) =

- Enhance: White label support

= 3.9.2 ( 2021-11-01 ) =

- Fix: Code and stability improvements

= 3.9.1 ( 2021-10-05 ) =

- New: Option to compress uploaded images
- New: Option to disable WordPress scaled images
- New: Compressing uploaded and backups are now free for all users
- Enhance: Detect and warn about other potentially conflicting lazy load plugins
- Fix: Deprecated jQuery deprecated warnings
- Fix: CDN 'wp_smush_cdn_before_process_src' filter
- Fix: Remove HTML markup in Local WebP wizard
- Fix: PHP Fatal error - cannot use object of type stdClass as array
- Fix: PHP warnings when optimization fails via WP CLI
- Fix: Missing CDN upsell meta box
- Fix: Ignored images not being skipped from image re-check process

= 3.9.0 ( 2021-08-24 ) =

- New: Wizard for setting up the local WebP conversion
- Enhance: Wrong tooltip title showing up on configs on hover
- Enhance: WPBakery detection when the base directory is custom named
- Fix: CDN status not getting updated when enabling the CDN via configs
- Fix: Local WebP rules path getting truncated in some environments
- Fix: WooCommerce gallery thumbnails not being served from the CDN
- Fix: Failing to restore PNG images that were converted to JPG
- Fix: "Save" button on the Bulk Smush page changing its size when saving
- Fix: Some options not being removed on uninstall
- Fix: Image size names overflowing their container in the Gutenberg blocks stats table

= 3.8.8 ( 2021-07-22 ) =

- New: Allow serving locally stored WebP images through the CDN
- New: Allow excluding WebP from the media types to lazy load
- New: Add a widget for handling configs to the Dashboard page
- New: WP CLI will now properly detect and convert images to WebP
- Enhance: Prevent uploading config files across plugins
- Enhance: Whitelabel support
- Enhance: Lazy load integration with Divi theme
- Enhance: Lazy load integration with GiveWP donation form
- Enhance: Redirect to module page after activating on the dashboard
- Fix: Local Webp says that the Amazon S3 integration is enabled although it's not
- Fix: Images not loading in embedded posts and pages when lazy load is enabled
- Fix: Replace WP_SMUSH_API_TIMEOUT by the correct constant WP_SMUSH_TIMEOUT in error messages
- Fix: Bulk Smush progress not starting from zero after a Smushing took place
- Fix: Images without Smush backups being included in the bulk-restore list
- Fix: Lazy load parsing issue with forums AJAX requests from BuddyBoss
- Fix: Disable CDN on WPMU DEV hosting staging sites
- Fix: Configs in the free version not syncing with the Hub

= 3.8.7 ( 2021-06-18 ) =

- Enhance: Display a message when local WebP creation fails due to directory permissions
- Fix: Error when applying a config from the Hub and the WebP module gets toggled
- Fix: Compatibility issue with WP < 5.7
- Fix: Wrong count of images to re-smush when the 'big_image_size_threshold' filter return false
- Fix: Thumbnail images not being converted to JPEG on upload

= 3.8.6 ( 2021-06-15 ) =

- New: Dashboard page
- New: Global configurations
- New: Add tutorials to dashboard
- New: Integration with Buddyboss theme and Buddyboss Platform plugin
- Enhance: Move out Smush modules to dedicated pages
- Enhance: Documentation links now link to correct sections on documentation page
- Fix: Issue with scrolling to originals & backup section
- Fix: Avoid creating backup files for SVGs
- Fix: Display of "Settings" link appearing when plugin is deactivated for network
- Fix: Incorrect number of total images during bulk smush with NextGen Gallery plugin activated
- Fix: Super smushed count on Nextgen Gallery Smush page
- Fix: Directory Smush fails when a directory has spaces
- Fix: Uploading image over the max width was creating backup file when "Store my small originals" is enabled
- Fix: Table "smush_dir_images" was failing to create when deleted manually
- Fix: Settings not showing up on subsites after the plugin has been deactivated for network
- Fix: Stuck "re-smush" status on the free version

= 3.8.5 ( 2021-05-13 ) =

- Enhance: Allow filtering the resulting image markup after the Lazy Load processing
- Enhance: Prevent the description text next to the "Update settings" button from saving
- Enhance: Use the shared module for Tutorials
- Fix: Incompatibility issue with WPBakery Page Builder
- Fix: Total savings value loosing decimal point on image re-check
- Fix: Inability to unselect all thumbnail sizes
- Fix: Lazy loading on Avada (use 'WP_SMUSH_LAZY_LOAD_AVADA' define in case of conflicts on Avada 6.x)
- Fix: Icons in Directory Smush modal
- Fix: Links in summary meta box on multisite
- Fix: Warning: count(): Parameter must be an array or an object that implements Countable
- Fix: Uploading images to Gutenberg blocks
- Fix: Styling issue in Smush's network-admin upgrade page
- Fix: Undefined offset in multisite when smushing the "uploads" directory
- Fix: Wrong directories listed in "Directory Smush" under Windows

= 3.8.4 ( 2021-03-18 ) =

- Enhance: Compatibility with WordPress 5.7
- Enhance: Lazy load compatibility with Slider Revolution
- Enhance: Apache rules for local WebP on multisite
- Enhance: Apache rules for local WebP on subdirectory installs
- Enhance: Local Webp description texts
- Fix: Backups not properly removing from S3 containers
- Fix: Compatibility with Jetpack Site Accelerator
- Fix: Compatibility with WordPress native lazy loading
- Fix: UI inconsistencies in local WebP module
- Fix: Browser console errors on upgrade page
- Fix: Menu not working on mobile views
- Fix: PHP warnings with images offloaded to S3 buckets
- Fix: Image preview on WPML Media Translation screen
- Fix: Directory Smush empty folder detection
- Fix: Image resize detection UI
- Fix: PHP Notice:  Trying to access array offset on value of type bool
- Fix: Translation strings

[Changelog for previous versions](https://wpmudev.com/project/wp-smush-pro/#view-changelog).

== About Us ==
WPMU DEV is a premium supplier of quality WordPress plugins, services and support. Learn more here:
[https://wpmudev.com/](https://wpmudev.com/?utm_source=wordpress.org&utm_medium=readme&utm_campaign=smush-readme&utm_content=wpmu_dev_link)

Don't forget to stay up to date on everything WordPress from the Internet's number one resource:
[WPMU DEV Blog](https://wpmudev.com/blog/?utm_source=wordpress.org&utm_medium=readme&utm_campaign=smush-readme&utm_content=wpmu_dev_blog_link)

Hey, one more thing... we hope you [enjoy our free offerings](http://profiles.wordpress.org/WPMUDEV/) as much as we've loved making them for you!

== Contact and Credits ==

Originally written by Alex Dunae at Dialect ([dialect.ca](http://dialect.ca/?wp_smush_it), e-mail 'alex' at 'dialect dot ca'), 2008-11.
