As a blogger, I know how critical it is to have complete control over the images I upload to my website. Of course, there have been times where I want to update some old photos for a blog post and I have to go into the old post, upload new photos, delete the old photos, and replace all the old files with the new links, etc. This is tedious work and takes a lot of time.
Isn’t there a simpler way?

Why, Yes! I am so glad you asked!
Enter the Enable Media Replace plugin. This plugin lets you upload new files for all the images in your media library without having to go through the post editor, remove old photos, add new ones, re-name, etc. This plugin does all that with just 3 clicks!
So let’s dive right into how to do all that!
Install and Activate the Enable Media Replace Plugin [FREE]
Go to the plugins page of your WordPress dashboard and search Enable Media Replace. Then install and activate per usual.
This plugin works out-of-the-box, meaning there are no settings to configure for it to work properly.
Choose File to Replace
Once activated go to your media library and make sure you are in the ‘list view’. Locate the image you would like to replace and when you hover your mouse over the image you’ll see a new setting that says ‘Replace media’ like in the picture below.

When you click the new ‘Replace media’ link, it will take you to the replace media page.
Choose File to Replace with
When on that page, you will choose the file you would like to use to replace the old file.
There are also 2 options: Replace the file without replacing the file name, or replace the file and update the filename and all links pointing to the old file.

Personally, I just replace the old file without updating the name and links because I have a separate plugin [find that post here] that I use to change all the filenames and update links.
Upload and Done!
After you click the ‘Upload’ after choosing your file, WordPress will upload your new file and the plugin will replace the old media file with the new one. If you opted to use the new filename and update links, then the plugin will take care of that too.
You can now visit the post or page where the media was located and you will see the new image in place of the old one.
Note: if you use browser caching or use CloudFlare CDN, you need to temporarily disable your CloudFlare CDN before upload the new file for the changes to take effect and then clear your browser cache. You can then reload the page and you will see your changes. Re-enable your CDN and you’re all set!













I just just hug you for this tutorial!!!
Thanks, Kat! *hug*
Glad you found it useful!
Followed all steps as described above but no image is getting replaced! What could be the reason?
1. Do I need to make sure the dimension of my new image file exactly matches the old one?
2. Do I need to make sure the file extension of new image file must be the same
as of the old one?
3. I don’t see any permission issue as old images got uploaded from CPT forms in front end.
4. I am using a independent custom theme built from scratch. There is no parent theme associated. I am almost certain this cannot be an issue but just mentioning in case there is any relation.
5. OS: Ubuntu 14.04 LTS. WordPress version: 4.7.2
Am I missing something?!
Hi Subrata, without getting into your WordPress installation and replacing an image myself, I cannot tell you the reason that it isn’t working. I would recommend contacting the plugin developer to help with your problem as it could be caused by any number of factors. Also, if you have a cache plugin, CDN active, or are using AWS to offload images from your site… you need to clear your cache and disable your CDN before you will see the changes to the image.
Hi Jenifer, thank you very much for your reply. Actually I got this resolved! It was complete a cache issue which is always a nightmare for developers! However, there is a scope of validation for file upload control which is definitely missing in this plugin. I can submit the page even without selecting an image, which is a bug! I have contacted the plugin developer already with this problem. Hope he will do something to correct this. 🙂