Title: Replace External Images
Author: Hans &amp; Friends
Published: <strong>जुलाई 21, 2025</strong>
Last modified: फरबरी 13, 2026

---

Search plugins

![](https://ps.w.org/replace-external-images/assets/banner-772x250.png?rev=3331060)

![](https://ps.w.org/replace-external-images/assets/icon-256x256.png?rev=3331060)

# Replace External Images

 By [Hans & Friends](https://profiles.wordpress.org/hansandfriends/)

[Download](https://downloads.wordpress.org/plugin/replace-external-images.1.2.0.zip)

 * [Details](https://mai.wordpress.org/plugins/replace-external-images/#description)
 * [Reviews](https://mai.wordpress.org/plugins/replace-external-images/#reviews)
 *  [Installation](https://mai.wordpress.org/plugins/replace-external-images/#installation)
 * [Development](https://mai.wordpress.org/plugins/replace-external-images/#developers)

 [Support](https://wordpress.org/support/plugin/replace-external-images/)

## Description

“Replace External Images” lets you import externally hosted images used in post 
content directly into your WordPress media library — either one by one or now with
the new bulk import feature across multiple posts at once.

The plugin automatically replaces external URLs in the content with local media 
URLs, shows a live progress view, supports any image host, and updates featured 
images where needed.

Ideal for:
 – site migrations – pasted content from other sources – cleaning up 
hotlinked images – processing many posts in one go with the bulk importer

Full documentation available here: [Replace External Images Docs](https://hansandfriends.de/docs/replace-external-images/)

## Screenshots

 * [[
 * A post with an externally hosted image. The “Replace External Images” panel appears
   in the editor sidebar. One click imports the image into the media library and
   updates the post to use the local version.
 * [[
 * Successful import confirmation with summary and return link.
 * [[
 * Works in both Classic Editor and Gutenberg, including multi-image posts.
 * [[
 * Respecting protected content — import fails cleanly for non-image or restricted
   resources.
 * [[

## Installation

 1. Go to your WordPress dashboard.
 2. Navigate to “Plugins > Add New”.
 3. Search for “Replace External Images”.
 4. Click “Install Now” and then “Activate”.

Alternatively:

 1. Download the plugin as a ZIP file.
 2. Go to “Plugins > Add New > Upload Plugin”.
 3. Select the ZIP file, click “Install Now”, then “Activate”.

Once activated:

 * Open a post that contains externally linked images.
 * Click “Replace External Images” in the Tools section.
 * Watch the live progress bar and wait for completion.

## FAQ

### Does it overwrite existing media?

No — it only imports external images and skips media already in the library.

### What happens to the image URLs?

They are updated to local media paths after import.

### Can I undo the import?

Not automatically. Please make a backup before running the importer if you need 
to restore content later.

### What happens with protected or blocked images?

Some image sources actively block hotlinking or automated downloads by returning
a different content type (e.g. `text/plain` instead of `image/jpeg`).
 This plugin
detects such cases and skips the import gracefully — no image is saved, and the 
log explains why.

### What if the post doesn’t have a featured image?

If a post has no featured image, the plugin will automatically set the **first successfully
imported image** as the featured image.

## Reviews

There are no reviews for this plugin.

## Contributors & Developers

“Replace External Images” is open source software. The following people have contributed
to this plugin.

Contributors

 *   [ Hans & Friends ](https://profiles.wordpress.org/hansandfriends/)

[Translate “Replace External Images” into your language.](https://translate.wordpress.org/projects/wp-plugins/replace-external-images)

### Interested in development?

[Browse the code](https://plugins.trac.wordpress.org/browser/replace-external-images/),
check out the [SVN repository](https://plugins.svn.wordpress.org/replace-external-images/),
or subscribe to the [development log](https://plugins.trac.wordpress.org/log/replace-external-images/)
by [RSS](https://plugins.trac.wordpress.org/log/replace-external-images/?limit=100&mode=stop_on_copy&format=rss).

## Changelog

#### 1.2.0

 * Improved prefix consistency across AJAX, JS globals, script handles, and importer
   internals
 * Hardened nonce and request sanitization in admin and AJAX flows
 * Improved download handling and clearer logging for blocked sources (e.g. HTTP
   403 responses)
 * Improved post-type aware back navigation after single and bulk imports

#### 1.1.0

 * NEW: Bulk import for external images across multiple posts

#### 1.0.0

 * Initial public release
 * Live importer for external images
 * Works on individual post basis
 * Tested up to WordPress 6.8.1 and PHP 8.2

## Meta

 *  Version **1.2.0**
 *  Last updated **2 months ago**
 *  Active installations **70+**
 *  WordPress version ** 5.0 or higher **
 *  Tested up to **6.9.4**
 *  PHP version ** 7.4 or higher **
 *  Language
 * [English (US)](https://wordpress.org/plugins/replace-external-images/)
 * Tags
 * [external images](https://mai.wordpress.org/plugins/tags/external-images/)[hotlinking](https://mai.wordpress.org/plugins/tags/hotlinking/)
   [images](https://mai.wordpress.org/plugins/tags/images/)[import](https://mai.wordpress.org/plugins/tags/import/)
   [media](https://mai.wordpress.org/plugins/tags/media/)
 *  [Advanced View](https://mai.wordpress.org/plugins/replace-external-images/advanced/)

## Ratings

No reviews have been submitted yet.

[Your review](https://wordpress.org/support/plugin/replace-external-images/reviews/#new-post)

[See all reviews](https://wordpress.org/support/plugin/replace-external-images/reviews/)

## Contributors

 *   [ Hans & Friends ](https://profiles.wordpress.org/hansandfriends/)

## Support

Got something to say? Need help?

 [View support forum](https://wordpress.org/support/plugin/replace-external-images/)