ShortPixel Image Optimizer – WordPress plugin
Deal Score0
Deal Score0

A freemium easy to use, comprehensive, stable and frequently updated image compression plugin supported by the friendly team that created it. 🙂

Increase your website’s SEO ranking, number of visitors and ultimately your sales by optimizing any image or PDF document on your website.
ShortPixel is an easy to use, lightweight, install-and-forget-about-it image optimization plugin that can compress all your past images and PDF documents with a single click. New images are automatically resized/rescaled and optimized on the fly, in the background. It’s also compatible with any gallery, slider or ecommerce plugin.

Ready for a quick DEMO? Test here or here.

Short Pixel uses minimal resources and works well with any shared, cloud, VPS or dedicated web hosting. It can optimize any image you have on your website even the images that aren’t listed in Media Library like those in galleries like NextGEN, Modula or added directly via FTP!

Both lossy and lossless image compression are available for the most common image types (JPG, PNG, GIF and WebP) plus PDF files.
We also offer glossy JPEG compression which is a very high quality lossy optimization algorithm. Specially designed for photographers!
Optimized images mean better user experience, better PageSpeed Insights or GTmetrix results, better Google PageRank and more visitors.

Make an instant image compression test on your site or compress some images to make sure they are to your liking.

Why is ShortPixel the best choice when it comes to image optimization or PDF compression?

  • popular plugin with over 200,000 active installations according to WordPress
  • compress JPG, PNG, GIF (still or animated) images and also PDF documents
  • option to automatically convert PNG to JPG if that will result in smaller images. Ideal for large images in PNG format.
  • no file size limit
  • option to freely convert any JPEG, PNG or GIF (even animated ones!) to WebP for more Google love. How to enable WebP?
  • option to include the generated WebP images into the front-end pages by using the <picture> tag instead of <img>
  • compatible with WP Retina 2x – all retina images are automatically compressed. How to benefit from Retina displays?
  • optimize thumbnails as well as featured images. You can also select individual thumbnails to exclude from optimization.
  • ability to optimize any image on your site including images in NextGEN Gallery and any other image galleries or sliders
  • integrates with Gravity Forms post_image field type optimizing the images upon upload
  • featured images can be automatically resized before being optimized with 2 different options. No need for additional plugins like Imsanity
  • CMYK to RGB conversion
  • 24h stellar support (24/7) directly from developers.
  • easily test lossy/lossless versions of the images with a single click in your Media Library
  • great for photographers: keep or remove EXIF data from your images, compress images with lossless option
  • works well with both HTTPS and HTTP websites
  • uses progressive JPEG for larger images in order to speed up the image display
  • you can run ShortPixel plugin on multiple websites or on a multisite with a single API Key
  • it is safe to test and use the plugin: all the original images can be restored with a click, either one by one or in bulk
  • ‘Bulk’ optimize all the existing images in Media Library or in any gallery with one click
  • works great for eCommerce websites using WooCommerce or other plugins
  • works great with NextGEN gallery, Foo Gallery and any other galleries and sliders
  • compatible with WP Engine hosted websites and all the major hosting providers
  • compatible with WPML and WPML Media plugins
  • skip already optimized images
  • compatible with watermarking plugins
  • option to deactivate auto-optimizing images on upload
  • images that are optimized less that 5% are bonus
  • WooCommerce, WP offload S3 and WP Stateless compatible
  • 30 days optimization report with all image details and overall statistics
  • We are GDPR compliant! Read more.
  • free optimization credits for non-profits, contact us for details

How much does it cost?
ShortPixel comes with 100 free credits/month and additional credits can be bought for as little as $4.99 for 5,000 image credits.
Check out our prices.

★★★★★ A Super Plugin works very well 62% reduction overall. robertvarns
★★★★★ The secret sauce for a WordPress website. mark1mark
★★★★★ A must have plugin, great support! ElColo13
★★★★★ Excellent Plugin! Even Better Customer Service! scaliendo
★★★★★ Great image compression, solid plugin, equally great support. matters1959
more testimonials

Help us spread the word by recommending ShortPixel to your friends and collect 100 lifetime monthly additional image credits for each referred active user. Make money by promoting a great plugin with our 50/50 affiliate program.

Get in touch!

Actions and Filters for Developers

The ShortPixel Image Optimiser plugin calls the following actions and filters:

do_action( 'shortpixel_image_optimised', $post_id );

upon successful optimization;

do_action("shortpixel_before_restore_image", $post_id);

before restoring an image from backup;

do_action("shortpixel_after_restore_image", $post_id);

after succesful restore;

apply_filters("shortpixel_backup_folder", $backup_folder, $main_file_path, $sizes);

just before returning the ShortPixel backup folder, usually /wp-content/uploads/ShortpixelBackups. The $sizes are the sizes array from metadata;

apply_filters('shortpixel_image_exists', file_exists($path), $path, $post_id);

post ID is not always set, only if it’s an image from Media Library;

apply_filters('shortpixel_image_urls', $URLs, $post_id);

filters the URLs that will be sent to optimization, $URLs is a plain array;

apply_filters('shortpixel/db/chunk_size', $chunk);

the $chunk is the value ShortPixel chooses to use as number of selected records in one query (based on total table size), some hosts work better with a different value;

In order to define custom thumbnails to be picked up by the optimization you have two options, both comma separated defines:


will handle custom thumbnails like image-100x100_tl.jpg;


will handle custom thumbnails like image-uae-100×100.jpg;


will tell the plugin to create double extensions for the WebP image counterparts, for example image.jpg.webp for image.jpg;

define("SHORTPIXEL_NOFLOCK", true);

don’t use flock queue, only activate this when you have flock() denied errors on your installation;


adds timestamps to URLS, to prevent hitting the cache. Useful for persistent caches.

Hide the Cloudflare settings by defining these constants in wp-config.php:

define('SHORTPIXEL_CFTOKEN', 'the Cloudflare API token that has Purge Cache right');
define('SHORTPIXEL_CFZONE', 'The Zone ID from the domain settings in Cloudflare');


Release date 7th May 2020
* Added a warning for the case when Imagik library isn’t available and “Keep EXIF data is enabled”;
* Added a check to prevent the bulk process to be called in multiple browsers in order to decrease the load on admin-heavy sites;
* Fix for the situation when the bulk process would enter a loop in certain situations;
* Fix for the notices after bulk restore that would duplicate the files missing form backups;
* Fix for multisite when DB tables were created even for sub-sites without the plugin being active;
* Language – 1 new strings added, 0 updated, 0 fuzzied, and 5 obsoleted.


Release date: 22nd April 2020
* Fix 400 errors response on admin-ajax.php when using a fontend uploader plugin;
* Language – 0 new strings added, 0 updated, 0 fuzzied, and 0 obsoleted.


Release date: 16th April 2020
* Added a collapsable details feature to notifications, in order to avoid filling up the screen with them;
* Added a filter to completely disable the plugin, when necessary (for certain user roles for example);
* Hide the API key from the support chat module in settings, when the API key is entered via wp-config.php;
* Prevent fatal errors if multiple versions of the plugin are active simultaneously;
* Fix for API key that could be leaked in the frontend through JS;
* Fix for situations where the plugin was crashing if the API key was added via wp-config.php;
* Fix missing optimize button on Edit Media screen;
* Fix for time stamp in Other Media screen when the server is set on another time zone than UTC;
* Fix for JSON parsing errors when set_time_limit function is forbidden;
* Fix for notifications not showing correctly the number of credits available;
* Fix for images stuck in “Pending Restore” in Other Media, when there was no backup for them;
* Fix for hamburger menu in Other Media not displaying options centered;
* Language – 4 new strings added, 2 updated, 0 fuzzied, and 4 obsoleted.


Release date: 10th April 2020
* Fix for Over Quota notification that didn’t go away even if there were enough credits;
* From now on other ShortPixel notifications will only show up on ShortPixel related pages (Media Library, ShortPixel settings, Other Media page, Bulk Optimize page);
* Added a constant which can be used to completely disable all ShortPixel notifications. To be used with care as in certain cases it can hide important notifications;
* Language – 0 new strings added, 0 updated, 0 fuzzied, and 0 obsoleted.


Release date: 6th April 2020
* Fix for MySQL index errors for MySQL 5.6;
* Language – 0 new strings added, 0 updated, 0 fuzzied, and 0 obsoleted.


Release date: 2nd April 2020
* Complete rewrite of the Other Media part of the plugin. It now looks closer to the standard Media Library, having thumbnails and actions like Compare, Re-optimize and Restore from backup for all images when you have Backups activated;
* Added notification to activate the integration with NextGen Gallery, when the plugin is active and the integration is not activated;
* Improved the way Other Media folders are added and it should not crash anymore for folders with a very large number of images;
* Fix for the extra information (i) next to each Other Media folder in the Advanced Settings;
* Fixes for multiple issues reagrding the NextGen Gallery plugin integration;
* Fix for notififcations showing up when they’re not supposed to show up;
* Fix for multiple notifications when backup files are not found. These are now merged together;
* Fix for notifications that were crashing outside ShortPixel screens;
* Fix for the report that was wrongly stating 40 days, when actually the report is only for 30 days;
* Fix for the exclude regex section that was returning true even if no matches were found;
* Removed from the plugin the files that are not used anymore;
* Language – 15 new strings added, 0 updated, 0 fuzzied, and 8 obsoleted.


Release date: 26th March 2020
* Fix for some notices that could not be dismissed
* Fix for “Confirm new credits” notification
* Language – 0 new strings added, 0 updated, 0 fuzzied, and 0 obsoleted


Release date: 9th March 2020
* Fix missing button to choose a plan when running out of credits.
* Language – 0 new strings added, 0 updated, 0 fuzzied, and 0 obsoleted


Release date: 27th February 2020
* Fix notices javascript.
* Language – 0 new strings added, 0 updated, 0 fuzzied, and 0 obsoleted


Release date: 14th February 2020
* Fix non-dismissable alerts.
* Reference to the Website Speed Optimization service.
* Fixed: deleteItemCache in wrong place ( before save ) thus resetting data
* Fixed: NextGen integration
* Language – 3 new strings added, 0 updated, 0 fuzzied, and 0 obsoleted


Release date: 4th February 2020
* New – Token support for Cloudflare via config constant or settings.
* Backup setting – add orange warning when backups are off.
* Button to dismiss the top bar notification of missing files.
* Shortpixel now loads scripts with ‘defer’ on front site, if it’s configured to be loaded there.
* Hiding Cloudflare details via wp-config.php.
* Hide the option “Process in front-end” when “Optimize media on upload” is not checked.
* Fixes for multibyte filenames with mixed locales.
* Fixes for combination of S3-offload, webp pictures and cnames.
* Reworked Notifications.
* Fixed – PNG2JPG Retry button didn’t work, now properly resets retry counter.
* Fixed – Realpath in directory model throws off installations with symlinks.
* Fixed – Thrown Exception in API with corrupted images now caught.
* Fixed – Debug window link was visible when it should not.
* Fixed – ExcludePattern without value would result in notices.
* Language – 7 new strings added, 0 updated, 0 fuzzied, and 0 obsoleted


Release date: 29th January 2020
* Change the Help beacon to V2.
* Language – 0 new strings added, 0 updated, 0 fuzzied, and 0 obsoleted


Release date: 20th December 2019
* Hide the “Process in front-end” option if “Optimize media on upload” unchecked
* Add ALT text for plugin images in Admin
* Moved CSS for the admin bar to the actual admin bar stylesheet, other css no longer loading on those pages
* Fixes for windows specific paths
* Fixed: warning flood when using old version of S3-offload
* Fix for frontend and error shortpixel in top toolbar
* Fixed: Pancake menu now showing proper actions ( none ) if backup is not there.
* Fixed: Windows paths in wp-short-pixel getBackupFolderInternal
* Language – 4 new strings added, 0 updated, 0 fuzzied, and 0 obsoleted


Release date: 28th November 2019
* Fix for is_null error and “Call to undefined method ShortPixelShortPixelPlugin::alterHtaccess” in some cases.
* Language – 0 new strings added, 0 updated, 0 fuzzied, and 0 obsoleted


Release date: 27th November 2019
* Fix the infamous T_PAAMAYIM_NEKUDOTAYIM error on PHP 5.3 with WP Offload Media compat. module.
* Language – 0 new strings added, 0 updated, 0 fuzzied, and 0 obsoleted


Release date: 27th November 2019
* Ask if WebP files should be created before bulk optimization : checkbox added in Bulk page.
* Added filters for optimal chunk size when selecting records from wp_postmeta while bulk processing: ‘shortpixel/db/chunk_size’.
* Optimize images also on edit-media screen.
* Experimental support for static cache firewalls, and sending images w/ timestamp: SHORTPIXEL_EXPERIMENTAL_SECURICACHE.
* Limit loading of JS / CSS to pages we do work on.
* Refactoring & speed optimizations: – new external class for gravity forms, nextgen and visual composer, new controller for global admin hooks, new front controller, updated plugin init, clean(ish) root file, database optimization(reduced number of queries), unlistedThumbs checker only fires when the optimize unlisted check is active, optimizations for filesystem and findFileByPattern.
* WPML Duplicates – Don’t mark empty GUID’s as duplicate.
* Fix broken styles on WP 5.3.
* Fix in case meta_value in processCountable has a WP_Error object instead of normal metadata.
* Fix on WP Engine when large wp_postmeta table: limit to 16K the size of the query with ID list.
* Fixed: error when log path is not writeable
* Fixed: double sends within the same images, can happen with something like WPML and it’s duplicated media.
* Fixed: bug when searching unlisted images, in some circumstances.
* Fixed: max_execution_time when time is set lower than 0.
* Fixed: directories with no permission would give PHP error
* Fixed: pathToUrl now also works for paths outside wp uploads
* Fixed: check for DOING_AJAX on redirect to settings.
* Fixed: Shortpixel icon + exclamation mark in toolbar showing on every page load.
* Fixed: Add Custom media browser doesn’t display files anymore
* Fixed: WebP option adds an extra border if image already has a border -> borders will not be replicated to tags.
* Fixed: Validating empty key doesn’t show any message.
* Fixed: on Nginx writes .htaccess files.
* Fixed: Bug with safeGetAttachmentUrl for URLs that start with //.
* Fixed: New S3-Offload version breaks Shortpixel and offloading.
* Fixed: get_attached_file when S3-Offload is active, breaks other plugins.
* Fixed: crash when doing .htaccess files ( WP 5.3 specific ).
* Fixed: double file occurences on png2jpg in conjunction with s3offload.
* Language – 1 new strings added, 0 updated, 0 fuzzied, and 0 obsoleted


Release date: 9th October 2019
* Don’t convert to <picture> the <img>s with backgrounds.
* Remove unused eval() call.
* Restore the validate button next to API Key but change label to “Save and validate”
* Fixed: PNGtoJPG issue with already uploaded images
* Fixed: finding wrong unlisted thumbnails due to regex.
* Fixed: fatal error when trying to delete crashed attachement ( without proper URL )
* Fix for S3 offload – PNG2JPG , doesn’t remove old JPG files
* Fixed: S3Offload will not offload anymore when ‘Copy files to bucket’ is off ( and object was not previously offloaded )
* S3Offload doesn’t offload via optimiser anymore if this setting is off
* Fixed: cutting out initial offload if optimization needs to be done, when autolibrary is on
* Fix for PNG2JPG – JPG files remained in backupdir.
* Small fix for remote download thumbnails
* Fixed: notice in filemodel due meta-facade feeding array
* Fixed: bug in File2Url in filesystemcontroller
* Fixed: download issue in attempt to remote download
* Language – 0 new strings added, 1 updated, 0 fuzzied, and 0 obsoleted


Release date: 29th August 2019
* If constant SHORTPIXEL_USE_DOUBLE_WEBP_EXTENSION is defined as true, use double extension for WebP (.jpg.webp)
* Fixed: Javascript – String.prototype causes errors on React apps
* Fixed: Undefined page load when using ShortPixel and Divi preloaded images
* Fixed: Offload Media – When removing PNG2JPG converted file, the files / folder are not removed.
* Fixed: When the constant that enables using double extensions for WebP (.jpg.webp) is active, the webp’s are found as unlisted thumbnails and sent to optimization.
* Fixed: missing call to apply_filters(‘shortpixel_image_exists’…) on a particular case.
* Language – 0 new strings added, 1 updated, 0 fuzzied, and 0 obsoleted


Release date: 19th August 2019
* Check if unlisted thumbnails present for already optimized images (in case the thumbnails were added later) in Media Library list and when doing bulk. This also integrates with the Unicode plugin.
* If JSON PHP module not present, add a proper error
* Fixed: bulk error “WordPress database error You have an error in your SQL syntax” on some installs
* Fixed: Warning: count() Parameter must be an array.
* Language – 0 new strings added, 0 updated, 0 fuzzied, and 0 obsoleted


Release date: 22nd July 2019
* Compatibility with Flywheel hosting by not using flock if Flywheel detected
* When using the PICTURE tag to deliver WebP, keep the width and height at <IMG> level
* Refactoring of the API Key settings page, refactoring of Other media
* Performance improvements for selecting from large wp_posts and wp_postmeta tables when doing bulk optimization
* Display a message when bulk is skipping many processed images, if bulk processing is ran again.
* Fixed: Other media – Recompress adds “Preserve CMYK”
* Fixed: duplicate error message when validating wrong API key
* Conflict message: align the text vertically and provide space between text and button when displayed on any admin page
* Fixed: Other media Restore fails when original file is readable, not writable


Release date: 1st July 2019
* add the possibility to define custom infixes for thumbnails (like image-uai-150×150.jpg for image.jpg) – comma separated define SHORTPIXEL_CUSTOM_THUMB_INFIXES


Release date: 17th June 2019
* Fix errors when DOMDocument not present


Release date: 17th June 2019
* Add new filters proposed by WP Stateless: shortpixel_backup_folder, shortpixel_image_exists, shortpixel_image_urls
* Better placement of the elements on the Other Media page
* Fix custom bulk for PDFs when the pdf thumbnails are not activated
* Fix selecting items from DB twice for bulk in some circumstances
* Warn user that converting PNG to JPG while keeping EXIF in options doesn’t keep it (no EXIF for PNGs).
* When SHORTPIXEL_DEBUG=x get parameter is provided, display a floating link to the shortpixel_log file
* Adaptive Max execution time and capped to 90 sec. for the bulk background AJAX calls. (Kinsta has a max_execution_time of 300 sec. in PHP but the HTTP connection is cut after 180 sec.)
* Fix custom 404 page for missing images not working when using .htaccess for WebP
* Fix WebP picture tag with relative URLs not working in some circumstances
* Fix replacing the <img> inside an existing <picture> tag with another <picture> tag.
* Clear SP optimization cache in order to be able to optimize an image which initially had permissions error, after changing the permissions.
* Fix being able to list the contents of ShortpixelBackups on some badly configured servers.
* Fix error when inputting D’Artagnan in the AUTH pass field of settings.
* Add the Quriobot for support.


Release date: 16th April 2019
* fix thumbnail optimization when a thumbnail was replaced with another one
* better integration with Regenerate Thumbnails Advanced


Release date: 10th April 2019
* Bulk restore for the Other Media
* make the filename extension be updated when manually optimizing a PNG from Media Library, if the convert to JPG is active, without refreshing the page
* Integration with Regenerate Thumbnails Advanced new 2.0 beta version
* Add the rules for WebP in the WP-CONTENT .htaccess
* ShortPixel Other Media – display the time of optimization in the grid and offer option to sort by it
* Keep sort order when optimizing / refreshing page on Other Media
* offer the visual comparer for Other Media too
* resolve the Settings inconsistency in Other Media (settings displayed were from when adding the folder not from when actually optimizing)
* Make pressing Escape or clicking outside of any popup close it.
* Fixed: Restoring an Other Media item and then Optimizing it again optimizes it Lossless
* fix generating the WebP <picture> tags when the images are either on a subdomain or on a CDN domain having the same root domain as the main site.


  • please refer to the changelog.txt file inside the plugin archive.

Source link

We will be happy to hear your thoughts

      Leave a reply

      Wordpress Tutorials, Tips, Themes and Plugins.
      Register New Account
      Reset Password
      Shopping cart