• Enhancement: instead of warning about Smart Deletion each time a Smart Delete operation is performed, Media Deduper will now only warn before the first operation. Users can now Smart Delete multiple pages' worth of items on the Manage Duplicates screen without repeatedly clicking through the Smart Delete warning.
  • Fixed a bug that caused multiple copies of the warning message to appear when smart deleting items on the Manage Duplicates screen, when running on WordPress 5.7 and up.
  • Fixed a bug that could, under rare circumstances, cause fatal errors on the Manage Duplicates screen.
  • Updated the version of the Action Scheduler library that comes bundled with Media Deduper Pro.


  • Fixed a bug that caused a warning about a conflict between password protection and WP Cron to persist after the conflict had been resolved.


  • Added support for WooCommerce product variations: featured images, gallery images, and images in product variation descriptions will now be replaced during Smart Deletion.
  • Added support for the Block Editor's newer Cover block format, including Cover blocks using duotone filters and constrained layouts. In previous versions, Smart Deletion could sometimes lead to "This block contains unexpected or invalid content" warnings in the Block Editor.
  • The "Block Duplicate Uploads" feature has been removed for the time being due to incompatibilities with the Block Editor.
  • A rare bug has been fixed that could have caused fatal errors after downgrading WordPress Core from version 6.2 or higher to an earlier version.
  • Various deprecation warnings from WordPress Core have been fixed.


  • The Manage Duplicates screen now contains a search box for searching duplicate items.


  • Addressed a rare fatal error with trying to handle a WP_Error as an array in mdd_basic_auth_check().
  • Improved compatibility with PHP 8.


  • Update Action Scheduler library to 3.4.0 and improve when library is loaded.
  • Only load MDD admin script/styles on MDD-related admin pages.
  • Check if site is running behind HTTP Auth that would break wp-cron and thus MDD Pro.
  • Bugfix regarding showing shared duplicate files.
  • Code formatting improvements.


  • New alt text view under the Media Library view allows users to see media items missing alt text.
  • New alt text tab under the Manage Duplicate screen also allows users to see media items missing alt text.


  • Fix for a php warning.


  • Update background processing to implement Action Scheduler functionality.
  • Add Bulk Processor Class.
  • Update Indexer Class to use the new bulk processor class.
  • Add Bulk Smart Delete options so that it's easier to handle hundreds of duplicate files.
  • Add a Bulk Delete feature for cleaning up unused images.
  • Fix a bug introduced in WordPress 5.4.2 that causes screen options to not work properly on deduper lists.
  • Change the multi url regex to handle a Gutenberg media cover block change and to properly handle http and https protocols.


  • Add REST endpoints for starting, stopping, testing, and checking the status of the indexer.
  • Add a filter to view unused images in the Media Library.
  • Fix a bug introduced in version 1.1.0 that may have caused PHP warnings to appear on some sites.


  • Significantly refactors how plugin and theme specific features are parsed to detect and replace image references.


  • This update addresses difficulty experienced by some users in updating the plugin to the latest version. Plugin functionality is unchanged.
  • Some development-related files that were not used at runtime have been removed from the release version of the plugin.


  • Add support for the "Media & Text" Gutenberg block
  • Fix a conflict with the WPBakery and HubSpot plugins that could cause some pages of the WordPress admin UI to become non-responsive


  • Including the css file globally in the admin to fix missing dismiss button on alerts.


  • After all attachments have been indexed, show the number of duplicate attachments found on the Index tab of the Manage Duplicates screen.
  • If a user attempts to re-upload a file that has already been added to the media library, automatically select the existing copy for insertion where appropriate. Media Deduper Pro used to simply show an error in this scenario, and it was up to the user to find and select the existing attachment in the media library.
  • Improve the clarity of the error messages that are displayed on the Index tab when Media Deduper tries to index attachments whose corresponding files are missing.


  • Improve user experience around licensing: when a user deactivates a licensed copy of Media Deduper Pro, their license key will now be automatically deactivated on the current site, so that if they reactivate the plugin on another site, they won't be told their license key is already in use; and when a user's license key expires, they'll be shown an alert on the WordPress admin dashboard, whereas previously they would simply be unable to successfully update the plugin.
  • Fix an issue that could cause a performance hit or MySQL bottleneck on sites with large numbers of posts during initial activation, or when upgrading from 1.0.5 or earlier to 1.0.6


  • Add Gutenberg support: Smart Delete now detects and replaces references to duplicate attachments in the Image, Cover Image, and Gallery block types. Make sure to rebuild the index!
  • Add a plugin option to only hash the first 5 MB of each file (this speeds up the indexing process on sites whose media library contains lots of large files; values other than 5 MB can be set using the mdd_pro_file_hash_maxlength filter)
  • Add a plugin option to allow users to upload duplicates of files that are already in the media library (the plugin prevents duplicate uploads by default)
  • Add a table column to the Manage Duplicates screen indicating where each attachment is referenced
  • Add a screen containing useful information for diagnosing any issues with the plugin
  • Fix a bug that could caused unnecessary storage of large amounts of data in the options database table
  • Fix a bug in the license key validation functionality that could cause plugin updates to fail on a site whose URL had recently changed


  • In cases where multiple attachments share the same file on the web server, Smart Deleting one or more of those attachments will no longer delete that shared file unless ALL attachments that use that file are Smart Deleted.


  • Fix a bug that could cause PHP errors during post deletion in very specific edge cases
  • Start checking the brand-new mediadeduper.com website for plugin updates, instead of cornershopcreative.com


  • Media Deduper Pro now fully supports the media trash feature (a.k.a. the MEDIA_TRASH constant; see this post for more information). As of Media Deduper Pro 1.0.3, if the media trash feature is enabled:
    • The Manage Duplicates screen will list (and allow the user to delete or Smart Delete) both trashed and non-trashed attachment posts. Previously, only non-trashed attachments were listed on this screen, which caused confusing behavior if, for instance, a site's media library contained two copies of an image, but one was in the Trash.
    • If a user attempts to upload a media file that already exists in the media library, but the existing copy of the file is in the Trash, the user will *no longer* be prevented from uploading the new copy.
  • Bugfix: The "Attach" or "Detach" links in the list table on the Manage Duplicates screen are now working again, after they stopped working in a previous version of the plugin.
  • Bugfix: There was a goofy typo in the instructions for the beta opt-in feature, which has been fixed.


  • Add a button to the Index tab that allows users to stop the indexer if it's running
  • Add a setting to the License Key tab that allows users to opt in to receive beta updates
  • Fix a bug that could cause the indexer to display progress incorrectly in some edge cases


  • Fix a bug that caused the count of indexed/un-indexed items to be calculated incorrectly on some WP installs
  • Calculate count of indexed/un-indexed items more frequently, to reduce the chance of inaccurate counts being displayed
  • Prevent the index of post content from going out of sync if a user deactivates the plugin for a period of time and then reactivates it
  • Improve behavior/language when there are no items (posts or attachments) to index at all
  • Improve notices displayed to users when the index needs to be regenerated (only display to admins/privileged users, link directly to the Index tab)
  • Remind users to enter license keys, so they don't miss out on updates


Initial public release of Media Deduper Pro. Changes compared to the free version of Media Deduper:

  • Replace references in post properties and certain post meta fields (featured image, Yoast FB/Twitter images, WooCommerce product gallery)
  • Perform indexing in the background, so the user doesn't have to stay on the indexer page while the process completes
  • Implement license key system to allow one-click/automatic plugin updates