Getting Started Advanced Usage


Road Map Release Notes


Request Support Log In Sign Up

Release Notes


  • Massive overhaul of Elementor integration. Media Cloud now will support any Elementor addon and running the Elementor Update Task is super safe. Instead of the brute force text search/replace we were doing before, we are now analyzing every installed Elementor widget's properties for images to update and then walking your Elementor post or page's structure to update accordingly.
  • Rewrote the Storage Browser from the ground up. Much much much faster and can now handle buckets of any size and file count.
  • Update Elementor task now generates a report on what was replaced/updated on your Elementor pages/posts.
  • Support for custom sizes in images in Elementor.
  • New integration for Google Web Stories. If you use Google Web Stories, you may need to run the "Update Web Stories" task to make sure all of your URLs are correct. You should only have to run this task once, though you will need to run it again anytime you change Media Cloud's config in such a way that it changes the URLs to your images.
  • Fix for "dynamically" resized images using Imgix that ignored the image's default parameters set in the image editor.
  • Fix for URL replacement where two or more of the same images at different sizes were being replaced by a single size when using the classic editor.
  • When adding media to a post that links to the original media, we are now replacing those URLs as well. You can turn this off in Cloud Storage Settings in the URL Replacement category.
  • Disable optimizers during migrate task to prevent certain images from being skipped.
  • Fix for built-in ShortPixel optimization
  • Fixed Unlink From Cloud task not scrubbing all S3 metadata
  • Fix for imgix urls being double urlencoded
  • Fix for image sizes in gallery blocks in Gutenberg
  • PHP 8 compatibility fixes
  • Fix for direct uploads going to unicode directory names
  • CLI commands have been "namespaced" and some names have changed. For example, what used to be wp mediacloud migrateToCloud is now wp mediacloud:storage migrate.
  • The Update Elementor command line is now wp mediacloud:elementor update
  • Verify Library task can now be accessed from the menu
  • Verify Library task has a new option, Include Local that will verify everything in your Media Library, including items that are not on cloud storage. This is a good first step prior to migrating your library for the first time to see if you are missing any local files which may cause your migration to fail.
  • Added new setting toggle Replace URLs in Cloud Storage Settings that allows you to turn off Media Cloud's realtime URL replacement. If you've been using Media Cloud since day zero of your WordPress site (you haven't migrated an existing site) and haven't changed any settings which would change the URL for your cloud storage since then (for example adding a CDN or enabling imgix), you may be able to turn this setting off. Note that the URL replacement overhead is very minimal to begin with so the potential performance gain won't be noticeable in most cases.
  • When Debugging is enabled, Media Cloud will now log to Query Monitor's log if you have that plugin installed and activated.
  • Added Reset Task Data to the Task Manager to clear out all task data from the database, aka the nuclear option.
  • Added Report Viewer to view the reports that the various tasks that Media Cloud runs produces.
  • Added new CLI command wp mediacloud:storage replace which will search and replace URLs in your database. When used in conjunction with the new Replace URLs toggle in Cloud Storage Settings you can minimize all of the work that Media Cloud is doing on the front end to make sure that URLs are correct. There are a lot of caveats to using this command. Please read this article for more information:


  • Added privacy ACL to cloud storage uploads. Since the first days of Media Cloud, we've been using the authenticated-read ACL for private cloud storage uploads. There was a historical reason for that and functionally there is no difference between authenticated-read and private ACLs for nearly all cloud storage providers. If you are using Scaleway and have private uploads enabled, make sure you change the privacy settings from Authenticated Read to Private. For other cloud storage providers you do not need to do this, but we suggest you do. You will also need to change the privacy on any existing private uploads by going to the Media Library, switching to list view, filtering on Authenticated Read and then doing a bulk action Change Privacy to Private.
  • Added the ability to specify a custom region. Mostly useful for S3 compatible cloud storage providers, but also useful when Amazon released a new region and their is a lag time for us updating our list.
  • Fixed changing ACL on the attachment edit screen to update the ACL for any generated image sizes.
  • Fix for direct uploading non-image files when using the "Add New" page in WordPress admin.
  • Added a new debugging mode that will generate a CSV log file of URL replacements on a given page. Enable it by going to Media Cloud -> Debug Settings and toggle on Debug Content Filtering. Visit a page that you are having issues with and a log file will be generated in your WP-CONTENT/mcloud-reports directory. DO NOT LEAVE THIS RUNNING. Turn it on, load your page, turn it off. Note that this CSV file only logs URL replacements that happen in the content of a post, it will not log URL replacements that happen elsewhere in your page that are the result of calling functions like wp_get_image_src() in your templates.
  • Fixed URL replacements for video and audio shortcodes (videos inserted with classic editor or via the [video] shortcode).


  • Added missing instructions that caused errors on multisite installs.


  • Fix for when using the ShortPixel plugin and have Media Cloud configured NOT to upload PDFs to cloud storage.
  • Fix for unlinking non-image files.
  • Unlink task now generates a report which you can find in your WP_CONTENT/mcloud-reports directory.


  • Updated Freemius SDK to latest
  • Added mcloud-cloud/storage/should-handle-image-upload filter to override image uploading logic when performing uploads with certain other plugins.
  • Fix for open_basedir restriction error messages.
  • Fix for integrated help documentation.
  • Added option to turn off brute force image URL replacement for image tags missing the wp-image-{NUMBER} css class. If you are seeing a lot of database calls on a page with a lot of images, try adding this snippet to your theme's functions.php to insure that Media Cloud has enough "metadata" to do it's job:


  • When Debugging is enabled, a log file will be generated next to the CSV report. This log file includes all the logging that would normally be in the Debug Log, but limited to the time period the task was running. If you are running into issues with a task, make sure to turn on Debugging, re-run the task and then attach both the CSV and the log file to a support ticket
  • Fixed Sync Local, Verify Library and Regenerate Thumbnails to work with Imgix enabled.


  • The report command line command has been renamed to verify
  • You can run the Verify Library task from the WordPress admin by going to Media Cloud -> Task Manager. In the Available Tasks click on Verify Library. When it is done running, a report will be in yourWP_CONTENT/mcloud-reports directory
  • Added a Sync Local task that copies down media from cloud storage to your local server. You can run it from the WordPress admin by going to Media Cloud -> Task Manager. In the Available Tasks click on Sync Local.
  • You can also run the Sync Local task from the command line via wp mediacloud syncLocal report-filename.csv
  • Fixed a bug with direct uploads where the cloud storage provider wasn't being saved in the cloud metadata. If you run the Verify Library task, Media Cloud will fix the issue with any existing direct uploads in your library.
  • Added paging to the syncLocal and verify command line commands, ex: wp mediacloud verify verify.csv --limit=100 --page=1


  • Fix for Regenerate Thumbnails command, it will first attempt to download the original image, if that can't be found then it will use the "scaled" image that WordPress 5.5 generates.
  • Added a new command, wp mediacloud report report-name.csv that iterates through all of the items in your media library and reports on their cloud storage status.
  • The Migrate To Cloud, Import From Cloud, Clean Uploads and Regenerate Thumbnails tasks now generate CSV reports when they run so you can see more details about what they did. The reports are located in your WP_CONTENT/mcloud-reports directory.
  • You can toggle task reporting on or off in the Settings -> Batch Processing settings or through the MCLOUD_TASKS_GENERATE_REPORTS environment variable. The default value is ON.
  • The Migrate To Cloud task has a new toggle Generate Verification Report which causes the task to verify that the media migrated successfully. This will generate a report in the aforementioned reports directory.
  • The migrateToCloud wp-cli command now accepts a --verify flag to force verification.


  • Fix for compatibility with Amp plugin and any other plugin using symfony polyfills.
  • Fix for edge case issue where the S3 library was closing a resource stream causing a fatal error.
  • Added hooks media-cloud/tools/added-tools and media-cloud/tools/added-tools for inserting other tools in other plugins into the media cloud menu.
  • Fix for Mux database tables failing installation on constricted MySQL systems.
  • Only check for Mux database tables if Mux is enabled.
  • Fix for front end uploads with some form plugins.


This is a fairly substantial update in terms of the amount of refactoring and structural changes.

All composer dependencies, except for 1, have been removed. To improve compatibility with other WordPress plugins, the packages that Media Cloud have been using have been re-namespaced to avoid collisions. For example, Guzzle\GuzzleHttp\Client is now MediaCloud\Vendor\Guzzle\GuzzleHttp\Client. That means if you were installing this via composer and relied on any of those packages, you will either need to update your namespaces or include those packages in your project's composer yourself. The composer.lbrary.json contains the packages in use. I wrote a tool to auto re-namespace, if that's of interest to you, that you can find here:

These re-namespaced libraries are located in the /lib folder.

Additionally, the plugin's own namespace has been changed from ILAB\MediaCloud\ to MediaCloud\Plugin\. So if you were using ILAB\MediaCloud\Tools\ToolManager or something, you'll need to update those references.

  • All third party libraries Media Cloud is using have been re-namespaced to avoid errors and issues with any other plugins using the same libraries.
  • IMPORTANT: The old Backblaze driver is being deprecated, use the Backblaze S3 Compatible driver instead. The old one will be removed in the next version.
  • Added Backblaze S3 Compatible cloud storage driver. If you are currently using Backblaze, you should migrate to this asap.
  • If you are installing via composer and relied on any libraries that Media Cloud was using, you will need to install that package with composer yourself in your own project
  • You can now install the premium version via composer. Log into for instructions on how.
  • Re-namespaced the plugin code. If you were using ILAB\MediaCloud\ anywhere, it's now MediaCloud\Plugin\
  • Fixed random "Rekognition requires Amazon S3 Cloud Storage" error notifications
  • Fixed computer vision tags being applied to alt, caption and description
  • Added ability to download video with mux player
  • Mux javascript and CSS is only included if video encoding is enabled
  • Video encoding no longer requires cloud storage to work
  • Mux icon displays in media library when cloud storage is turned off
  • Fix for Mux secure key generation
  • Fix for Mux filmstrip generation failing
  • Fixed Migrate to Mux task