Replace External Images
by Hans & Friends on WordPress.org
Easily import externally hosted images found in post content into your media library and replace them with local copies.

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.
“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