Search Over 30,000 FREE Plugins from the Official WordPress Plugin Directory Repository

Smush Image Compression and Optimization

Compress and optimize image files, improve performance and boost your SEO rank using Smush WordPress image compression and optimization.

Resize, optimize and compress all of your images with the incredibly powerful and 100% free WordPress image smusher, brought to you by the superteam at WPMU DEV!

Now with image resizing! Set a max width and height and large images will scale down as they are being compressed.

Our servers do all the heavy lifting. Strip hidden bulky information from your images and reduce file size without losing quality.

Large image files may be slowing down your site without you even knowing it. WP Smush uses WPMU DEV’s super servers to quickly smush every single one of your images and cuts all the unnecessary data without slowing down your site.

WP 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.

“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

“I optimize my photos in Photoshop, but Smush makes it so easy – it does it automatically. I can just sit back and enjoy the speed.” - helen432

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

WP 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 asyncronously 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.

Features available in WP Smush include:

  • Optimize your images using advanced lossless compression techniques.
  • Set maximum width and height and large images will automatically scale before being added to your media library
  • Process JPEG, GIF and PNG image files.
  • Asynchronously auto-smush your attachments for super fast compression on upload.
  • Manually smush your attachments individually in the media library, or in bulk 50 attachments at a time.
  • Smush all standard web-sized images 1MB or smaller.
  • Smush images with no slowdown using WPMU DEV's fast, reliable Smush API.
  • Global and individual settings for Multisite
  • View advanced compression stats per-attachment and library totals.
Install WP Smush now and find out why it's the most popular image optimization plugin for WordPress available today with over 2.7 million downloads.

If you like WP Smush, you'll love WP Smush Pro

WP Smush Pro gives you everything you'll find in WP Smush and more:

  • Super smush your images with our intelligent multi-pass lossy compression. Get from 2x - 10x more compression than lossless with almost no noticeable quality loss!
  • Get even better lossless compression. We try multiple methods to squeeze every last byte out of your images.
  • Smush images up to 32MB. Now you can smush any image, even one’s that aren’t web optimized.
  • Bulk smush ALL your images with one click - no more rate limiting!
  • Automatically convert PNG files to lossy JPEG if extra savings are found.
  • Keep a backup of original un-smushed images in case you want to restore later.
  • 24/7/365 support from the best WordPress support team on the planet.
  • Includes Hummingbird pagespeed booster, Uptime monitoring and security hardening.
  • 100+ other premium plugins, services and themes included in your membership.

Upgrade to WP Smush Pro and optimize more and larger image files faster to increase your site’s performance.

Contributors WPMUDEV, alexdunae
Tags compress, compress png, image, lossless, lossy, optimize, optimize jpg, performance, photo, pictures, Smush WordPress Compression, smushit
  1. wp-smushit screenshot 1

    Watch as your image library is processed – up to 50 images at a time.

  2. wp-smushit screenshot 2

    Set automatic smush to resize and optomize every image as it is uploaded.

  3. wp-smushit screenshot 3

    Smush will find and optimize images for you.

  1. Upload the wp-smush plugin to your /wp-content/plugins/ directory.
  2. Activate the plugin through the 'Plugins' menu in WordPress.
  3. Configure your desired settings via the Media -> WP Smush settings page.
  4. Done!


  • Fixed:
    • Show a Smush progress message in Grid view for Auto Smush ( A lot of people reported it as Auto Smush not working, which works in background though )
    • Translation domain was incorrect for few strings
    • Translation: Load translation domain in main plugin file
    • Include image size medium_large in smush list
    • Error: Cannot use string offset as an array
    • Error in PNG to JPG conversion ( Pro Feature ), added check for mime_content_type function
    • Pro Status not recognised


  • Added:

    • Filter: wp_smush_image, Boolean, Whether to Smush image or not
    • Async Optimisation for Auto Smush on upload ( Set WP_SMUSH_ASYNC to false to turn off async optimisation )
    • Networkwide settings option in a Multisite
  • Fixed:

    • Double slash in file path causing 403 on some of the sites
    • Localisation error reported by @talgat ( Thank You :) )


  • Fixed:
    • Error "No file content sent" with WP 4.6


  • Fixed:
    • PNG to JPEG conversion not working for Multisite
    • Stats Calculation, Use custom query to retrieve data
    • Fixed warning and notices
    • Added check for invalid membership ( Pro Users )
    • thumbnails not being converted for PNG to JPEG conversion
  • Removed option to convert Transparent PNGs to JPEGs ( Pro Users )


  • Fixed: Image resizing not working on image upload


  • Fixed: PHP 5.2 compatibility


  • Fixed: Conflict with Customizer


  • Compatibility:

    • WPML Media Add-on compatibility, you can smush all the images for all the languages at once from Bulk Smush page
  • Features:

    • Added PNG to JPG - Lossy Conversion for higher savings ( Pro Feature )

*Fixed: * EXIF: Device details were left out for some images, even when opted for stripping it

  • Updated:
    • Minor Tweaks on WP Smush Page ( Bulk Smush )
    • Stats calculation is more accurate
    • Show current image size and image size dimensions in media library after image has been smushed
    • JPEG optimisation - higher savings for JPEGs lossy optimisation ( Pro Feature )


  • Fixed:
    • Stats not updated on resizing images
    • CSS conflict in Media Library


  • Fixed:
    • Tooltip on image edit page
    • Warning and Notices
  • Updated:
    • Improved stats calculation
    • Bulk Smush page optimised for Image heavy sites
    • Cleanup on uninstall
  • Added:
    • Image Resizing option for Media, NextGen(Pro Only) images
    • Total image count on stats page


  • Fixed: JS error causing issue with Editor on some installs, plugin conflict with CoursePress plugin, ACF ( Clear All Caches after plugin upgrade, Cloudflare as well )
  • Fixed: ReSmush count for bulk smushing
  • Fixed: Smush settings accessibility for Screen reader/Keyboard
  • Fixed: WP Admin loading slow ( Load smush stats on required admin pages only )


  • New: Option to resmush image if settings are changed after optimising images
  • New: Added an option to preserve EXIF
  • New: Remove Smush meta on image regeneration, This allows user to manually smush them later, if auto smush is off ( WP Image Editor support )
  • New: Manual Image restore option for Media Library and NextGen Gallery, if "Backup Original Images" was kept on while smushing ( Pro Only )
  • New: Delete Backup Files (Pro Only) on attachment deletion
  • Updated: Upfront Integration
  • Fixed: jQuery tooltip conflict
  • Code Optimisation, Updated Settings page UI


  • Fixed: WP Media Folder Plugin compatibility
  • Fixed: Warning on Plugins Page
  • Updated: Settings Page styling


  • Fixed: Preserve file permission after smushing ( Fix for Images disappearing in Media library on some hosts )
  • Fixed: Styles plugin compatibility
  • Fixed: Append URL params considering the existing arguments ( WPML Compatibility )
  • Fixed: Warning: For settings link in Network admin, Warning: ( Thank you @Maks3w for suggestions )
  • Fixed: Fatal error if both pro version and free version are activated
  • Fixed: NextGen-Smush conflict on plugin activation on a fresh install


  • Fixed: Compatibility with WPMU DEV Dashboard plugin v4.0, was not detecting pro status


  • Fixed: Important fix for transient issue leading to multiple api requests


  • Fixed: Workaround for terrible bug in W3TC file based object caching


  • Fixed: Untranslatable strings in settings
  • Fixed: Increased is_pro() API timeouts
  • Fixed: Remove redundant _get_api_key() cache check
  • Fixed: Some PHP notices on fresh installs

  • Fixed: Bulk Smush button keeps spinning after 50 images for free version
  • Fixed: NextGen Bulk Smush button issue


  • Fixed: Invalid header issue
  • Fixed: Warnings in file functions
  • Updated: Added limit on query results, for sites with higher image count, Use filter wp_smush_media_query_limit to adjust values
  • Added: Sortable WP Smush column in Media Library
  • Added: Filters wp_smush_media_image for Media Gallery, wp_smush_nextgen_image For NextGen gallery, allows to skip a particular image size from smushing
  • Added: NextGen Gallery support (Pro feature)

  • Updated: Skip webp images ( causing ajax error for few sites )
  • Fixed: Warning and Notices ( Media Library not loading )
  • Fixed: Smush full size image if no other sizes are available
  • Added: Detailed text for stats and settings

  • Fixed: Change File permission after replacing image
  • Fixed: Directory path for files
  • Fixed: Workaround for Auto Smush issue on Hostgator
  • Fixed: Smush button doesn't works in media library dialog on post screen, when add media is clicked (
  • New: Show number of images smushed in stats column
  • Added: Support for WP Retina 2x Plugin
  • Added: Filter WP_SMUSH_API_TIMEOUT to change the default time out value from 60s
  • Added: Smush original image option (Pro Only)

  • Use string for text domain instead of PHP Constant ( WordPress Guideline )

  • Updated: Max image size limit to 32Mb for Pro Version


  • Fixed: Conflict with various themes while editing post and page
  • Fixed: Word Count not working
  • Fixed: Notice and Warnings


  • New: Allow Super-smush for existing smushed images (Pro Only)
  • Fixed: IMPORTANT - broken transient caching for is_pro
  • Fixed: Fixed conflict with wp gallery link plugin in grid view
  • Fixed: Other small fixes


  • Fix: Fatal error conflict with some plugins on fronted of site


  • Fixed (Important Update) - Image being corrupted while regenerating thumbnails


  • Check for existing constant definition, before defining new


  • UI changes


  • Complete rewrite to use WPMU DEV's new fast and reliable API service.
  • New: One-click bulk smushing of all your images.
  • New: "Super-Smush" your images with our intelligent multi-pass lossy compression. Get over 2x more compression with almost no noticeable quality loss! (Pro)
  • New: Keep a backup of your original un-smushed images in case you want to restore later. (Pro)
  • UX/UI updated with overall stats, progress bar.


  • Use Ajax for Bulk Smush to avoid timeouts and internal server error
  • Other Notice and bug fixes
  • Settings moved under Media > WP
  • Added debug log file

  • Added settings option to disable check for home url.
  • for PHP 5.4.x reordered class WpSmushit contructors to prevent Strict Standards Exception

  • Removed check for file within local site home path.

  • Corrected issues with Windows paths compare.
  • Added debug output option to help with user support issues.

  • Correct Settings > Media issue causing settings to report warnings and not save.
  • Corrected some processing logic to better handling or image path. Images still need to be within ABSPATH of site
  • Correct image URL passed to API to convert https:// urls to http:// since the API does not allow https:// images


  • Codes reformatted and cleaned up into a php class
  • More texts are translatable now


  • Fixed a bug that prevents execution


  • check image size before uploading (1 MB limit)
  • attempt to smush more than one image before bailing (kind thanks to xrampage16)
  • allow setting timeout value under Media > Settings (default is 60 seconds)


  • about to get a new lease on life notice


  • no longer maintained notice


  • added setting to disable automatic smushing on upload (default is true)
  • on HTTP error, smushing will be temporarily disabled for 6 hours


  • added basic integration for the NextGEN gallery plugin
  • add support for media bulk action dropdown
  • compatibility with WordPress earlier than 3.1
  • added a donate link


  • cleaner handling of file paths


  • bulk will no longer re-smush images that were successful


  • bug fixes


  • bulk


  • bug fixes


  • add debugging output on failure


  • removed realpath() call
  • IPv6 compat


  • handle images stored on other domains -- props to ka-ri-ne for the fix
  • avoid time-out errors when working with larger files -- props to Milan Dinić for the fix


  • removed testing link


  • updated endpoint URL


  • fixed path checking on Windows servers


  • update to workaround WordPress's new JSON compat layer (see trac ticket)


  • updated endpoint URL
  • fixed undefined constant


  • updated endpoint URL


  • removed debugging code that was interfering with the Flash uploader


  • bug fix


  • updated to use Yahoo! hosted service
  • added security checks to files passed to wp_smushit()


  • added support for PHP 4
  • created admin action hook as workaround to WordPress 2.9's $_registered_pages security (see changeset 11596)
  • add savings amount in bytes to Media Library (thx Yoast)


  • added support for WP_Http


  • fixed activation error when the PEAR JSON library is already loaded


  • added test for allow_url_fopen


  • added error message on PHP copy error


  • improved handling of errors from
  • added ability to manually smush images from media library
  • fixed inconsistent path handling from WP 2.5 -> WP 2.7


  • added 'Not processed' status message when browsing media library


  • added i10n functions


  • first edition

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 developer tools in Chrome or Firefox 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.

Tip: you may not be need to scale each image individually. If the images are in your Media Library, you may be able to fix them with a plugin.

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 WP Smush Pro.

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.

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 WP Smush.

I just ran bulk smush and some of my images didn't get compressed?

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 1mb will be skipped. To compress images up to 32mb get WP Smush Pro.

About Us

WPMU DEV is a premium supplier of quality WordPress plugins and themes. For premium support with any WordPress related issues you can join us here:

Don't forget to stay up to date on everything WordPress from the Internet's number one resource: WPMU DEV Blog

Hey, one more thing... we hope you enjoy our free offerings as much as we've loved making them for you!

Contact and Credits

Originally written by Alex Dunae at Dialect (, e-mail 'alex' at 'dialect dot ca'), 2008-11.

Version 2.5.3

Requires WordPress version: 3.5 or higher

Compatible up to: 4.7.2

Last Updated 12 Jan 2017

Date Added: 05 Dec 2008

Plugin Homepage


4.8 stars
2518 ratings


Not Enough Data

Works: 0
Broken: 0