Quick start
- 1InstallIn the admin area, go to Plugins → Add New Plugin, search for “Replace External Images” and activate it.
- 2SelectUnder Posts or Pages, select the entries and choose the bulk action “Replace External Images”.
- 3ReviewThe import dialog shows every image. Skipped images are listed in the log along with the reason.
Installation
Replace External Images is available for free on WordPress.org and requires WordPress 5.0 and PHP 7.4.
- In the admin area, go to Plugins → Add New Plugin.
- Search for Replace External Images.
- Click Install Now and then Activate.
The first time you open it, the plugin asks whether you’d like to share anonymous usage data. This is optional; if you click Skip, the plugin works exactly the same. You’ll then find the new External Images menu item in the sidebar.
Importing a single post
- Open the post or page in the editor.
- In the sidebar, you’ll find the Replace External Images box.
- Click Import external images.
- The import dialog opens and shows the progress for each image.
Save the post first if you have unsaved changes. The plugin works with the saved content.
Many posts at once
- Open Posts or Pages (with Pro, also products and custom post types).
- Select the entries you want. Use Screen Options to show more entries per page.
- Under Bulk actions, choose Replace External Images and click Apply.
- Keep the tab open until the import is finished.
The import dialog shows the overall progress at the top and, below it, which images were imported, reused or skipped for each entry. Problems only hides everything that succeeded, and Copy log copies the entire log to your clipboard.
What happens during an import
- Finding images: The plugin searches the content for images that aren’t on your own domain. An external featured image is included as well.
- Downloading: Each image is downloaded and checked to make sure it really is an image. Pages with error messages or login screens are not saved.
- Avoiding duplicates: If an image has already been imported from the same address, it’s reused. Identical file names from different sources get their own names.
- Replacing: The old image address in the content is replaced with the address in your Media Library.
- Featured image: If the entry doesn’t have a featured image yet, the first imported image is set.
Import history
Under External Images → Import history, every import is listed with its date, user and result. Show entries and import log shows which posts were affected and what happened to every single image. Copy log gives you the complete log, e.g. for support. The history is kept for 90 days; under External Images → Settings you can choose 30 to 365 days.
Undoing an import Pro
In the Import history, each import has an Undo button. After a quick confirmation, the following happens:
- All entries get back the content they had before the import.
- The previous featured image is restored.
- Images added by the import are deleted from the Media Library, provided they aren’t used anywhere else.
If an entry was edited after the import, it’s skipped at first so your changes aren’t lost. You’ll then see a notice and can deliberately revert those entries with Revert anyway.
Activating Pro
- Download Pro: In WordPress, go to External Images → Help & support and click Download Pro in the “Your license” box. You’ll also find the download link in your purchase email and in your customer account.
- Upload and activate: Under Plugins → Add New Plugin → Upload Plugin, select the zip file, install it and activate it. The free version is switched off automatically; your settings and import history are kept.
- License: If you bought from within the plugin, the license is already connected to your website. If you bought on our website, Pro asks for the license key from your purchase email the first time you open it.
You can find your licenses, invoices and downloads in your customer account at any time. You can also transfer a license to another website there. Test and development environments such as localhost or staging don’t count as separate websites.
WP-CLI Pro Unlimited
For large migrations, you can control the plugin from the command line. It runs without a browser and without a time limit.
| Command | What it does |
|---|---|
wp replexim scan | Lists all entries with external images. |
wp replexim import | Imports all external images. |
wp replexim runs | Shows recent imports with their run ID. |
wp replexim undo <run-id> | Undoes an import. |
Useful options:
wp replexim scan --post_type=product --format=csv
wp replexim import --post_type=post,page --limit=500
wp replexim import --ids=12,15,99 --dry-run
wp replexim undo cli-20261018-150943-wzsvde --force
--dry-run only shows what would happen. With undo, --force also reverts entries that were edited after the import.
When images aren’t imported
Some images simply can’t be imported for technical reasons. That’s not a bug in the plugin: the other server won’t hand over the image. The plugin skips these images, doesn’t save anything broken and states the reason in the log.
| Message | Meaning | What you can do |
|---|---|---|
| Blocked by the source (HTTP 403, 401, 451) | The server refuses the download, often because of hotlink protection. | Download the image manually and upload it to the Media Library. |
| Not an image (text/html) | Instead of the image, a web page is returned, e.g. a login or verification page. | Open the address in your browser and check it; replace the image manually if needed. |
| Could not be downloaded | Server unreachable, timeout or SSL error. | Try again later; if the domain has been shut down, the image is lost. |
| Empty response | The server returns an empty file. | Try again later or replace it manually. |
You can run the import again at any time. Images that were already imported are reused and not stored twice.
Languages
The plugin follows the language of your WordPress installation. Included are German, English, French, Spanish and Italian. Regional variants such as German (Austria) or French (Canada) use the main language; all other languages use English.
Frequently asked questions
Do I have to re-save every post?
No. The bulk import processes existing posts directly from the list.
Are existing images in the Media Library overwritten?
No. Only external images are imported. Images that were already imported are reused.
Does it work with Gutenberg and the Classic Editor?
Yes, with both. The plugin works directly with the saved content.
Does it work with WooCommerce products?
Yes, with Pro. Pro supports WooCommerce products and all custom post types.
Does the plugin collect data?
Only if you agree when you first start it. In that case, basic information such as your WordPress and PHP version is transmitted via our licensing service, Freemius. Without your consent, no data is sent.
I bought an add-on in the past. What now?
Pro includes all former add-ons. You get Pro for free; just email us at plugins@hansandfriends.de.
Support
Free version
Ask your question in the support forum on WordPress.org. We check it regularly.
Pro and Pro Unlimited
Send us an email. We usually respond within two business days.
To help us help you quickly: Include the address of the affected post and the import log (the “Copy log” button in the import dialog). Support covers everything related to the plugin, but not general WordPress help or theme or hosting problems.