{"id":8941,"date":"2025-03-05T16:43:29","date_gmt":"2025-03-05T22:43:29","guid":{"rendered":"https:\/\/infiniteuploads.com\/?p=8941"},"modified":"2026-10-23T15:57:35","modified_gmt":"2026-10-23T20:57:35","slug":"how-to-import-images-into-wordpress-from-an-external-url","status":"publish","type":"post","link":"https:\/\/infiniteuploads.com\/blog\/how-to-import-images-into-wordpress-from-an-external-url\/","title":{"rendered":"How to Import Images into WordPress from an External URL"},"content":{"rendered":"<!DOCTYPE html PUBLIC \"-\/\/W3C\/\/DTD HTML 4.0 Transitional\/\/EN\" \"http:\/\/www.w3.org\/TR\/REC-html40\/loose.dtd\">\n<html><body><p class=\"wp-block-paragraph\">You moved a site, pasted in a pile of posts, or inherited a client's old blog. The text came across fine. The images didn't. Every one of them is still loading from the old address, so the day that server changes, moves or goes dark, your posts turn into rows of broken image icons.<\/p>\n\n\n<p class=\"wp-block-paragraph\">I've been there. Downloading hundreds of files just to upload them again is miserable, and the built-in WordPress importer timed out on me. There's a much shorter route: import the images straight from their URLs into your Media Library. Here's exactly how, what it can and can't do, and how to fix the old links afterward.<\/p>\n\n\n<h2 class=\"wp-block-heading\" id=\"how-to-import-images-from-a-url-in-wordpress-the-short-answer-\">How to Import Images from a URL in WordPress (the Short Answer)<\/h2>\n\n\n<p class=\"wp-block-paragraph\">Use the free <a href=\"https:\/\/wordpress.org\/plugins\/url-image-importer\/\" target=\"_blank\" rel=\"noreferrer noopener\">URL Image Importer<\/a> plugin. It fetches images from public URLs and saves them as normal Media Library items.<\/p>\n\n\n<ol class=\"wp-block-list\">\n<li>Install and activate <strong>URL Image Importer<\/strong> from <strong>Plugins &gt; Add New<\/strong>.<\/li>\n\n\n<li>Go to <strong>Media &gt; Import Images<\/strong>.<\/li>\n\n\n<li>On the <strong>URL Import<\/strong> tab, paste your image URLs, one per line or separated by commas.<\/li>\n\n\n<li>Click <strong>Import Images from URLs<\/strong>, check the <strong>Import Preview<\/strong>, then click <strong>Import Selected Items<\/strong>.<\/li>\n\n\n<li>When you see <strong>Import completed<\/strong>, click <strong>Download URL Mapping CSV<\/strong>. It lists every old URL next to its new Media Library URL, which is exactly what you need to fix the links in your posts.<\/li>\n<\/ol>\n\n\n<p class=\"wp-block-paragraph\">Two things to know before you start. The URLs have to be publicly reachable, and the plugin imports images only: JPEG, PNG, GIF, ICO, WebP and SVG, no videos. It also adds the files to your Media Library without editing your posts, so the old links stay in place until you swap them. I cover that in the fixing-links section below.<\/p>\n\n\n<h2 class=\"wp-block-heading\" id=\"why-import-images-from-external-urls-into-wordpress-\">Why Import Images from External URLs into WordPress?<\/h2>\n\n\n<p class=\"wp-block-paragraph\">Hotlinked images look free. They aren't. Here's what you're signing up for when a post leans on someone else's file:<\/p>\n\n\n<ul class=\"wp-block-list\">\n<li><strong>Broken images when the source changes.<\/strong> If the other site renames a file, rebuilds its URLs or shuts down, your post shows an empty box where the image used to be.<\/li>\n\n\n<li><strong>Speed you don't control.<\/strong> A remote image loads at the speed of someone else's server, not yours.<\/li>\n\n\n<li><strong>Blocked requests.<\/strong> Some sites refuse to serve their images to other websites, so an image that works today can stop loading tomorrow.<\/li>\n\n\n<li><strong>Hours of busywork.<\/strong> Saving each file and uploading it again adds up fast on a migration.<\/li>\n<\/ul>\n\n\n<p class=\"wp-block-paragraph\">Importing fixes all four, because you end up with your own copy in your own Media Library. One caution: only import images you have the right to use. A copy on your server is still a copy.<\/p>\n\n\n<h2 class=\"wp-block-heading\" id=\"using-url-image-importer-to-import-images-automatically\">Using URL Image Importer to Import Images Automatically<\/h2>\n\n\n<h3 class=\"wp-block-heading\" id=\"what-is-url-image-importer-\">What Is URL Image Importer?<\/h3>\n\n\n<p class=\"wp-block-paragraph\"><a href=\"https:\/\/wordpress.org\/plugins\/url-image-importer\/\" target=\"_blank\" rel=\"noreferrer noopener\">URL Image Importer<\/a> is a free WordPress plugin that pulls images from external links into your Media Library. You paste links, or hand it a spreadsheet or an export file, and it does the downloading and saving for you. Here's what it does, based on the plugin's own listing and the version I tested (1.2.4):<\/p>\n\n\n<ul class=\"wp-block-list\">\n<li><strong>Bulk import.<\/strong> Paste many URLs at once, upload a CSV, or use a WordPress XML export.<\/li>\n\n\n<li><strong>Preview first.<\/strong> You see the list of URLs and can untick any you don't want before anything is saved.<\/li>\n\n\n<li><strong>Checks each file.<\/strong> Every URL gets validated, and the results screen counts what succeeded, failed or was skipped.<\/li>\n\n\n<li><strong>Normal Media Library items.<\/strong> The filename becomes the title and slug, just like a manual upload.<\/li>\n\n\n<li><strong>A URL mapping CSV.<\/strong> After a batch, you can download a spreadsheet of old URLs and new URLs.<\/li>\n\n\n<li><strong>Public Google Drive images.<\/strong> A share link to a single image file works if anyone can download it without signing in.<\/li>\n<\/ul>\n\n\n<h2 class=\"wp-block-heading\" id=\"step-by-step-guide-on-importing-images-from-external-urls\">Step-by-Step Guide on Importing Images from External URLs<\/h2>\n\n\n<p class=\"wp-block-paragraph\">Hotlinking from another site can slow your page down, break your layout the moment the original disappears, and even cause copyright trouble. Importing means every file lives on your own site. Here's the whole process.<\/p>\n\n\n<h3 class=\"wp-block-heading\" id=\"install-and-activate-url-image-importer\">Install and Activate URL Image Importer<\/h3>\n\n\n<figure class=\"wp-block-image size-full\"><img loading=\"lazy\" decoding=\"async\" width=\"800\" height=\"359\" src=\"https:\/\/infiniteuploads.com\/wp-content\/uploads\/2025\/03\/CleanShot-2025-03-05-at-14.07.20.gif\" alt=\"Searching Plugins, Add New for URL Image Importer, then clicking Install Now and Activate\" class=\"wp-image-8950\"><\/figure>\n\n\n<ol class=\"wp-block-list\">\n<li>Log into your <strong>WordPress dashboard<\/strong>.<\/li>\n\n\n<li>Go to <strong>Plugins &gt; Add New<\/strong>.<\/li>\n\n\n<li>In the search bar, type <strong>&ldquo;<a href=\"https:\/\/wordpress.org\/plugins\/url-image-importer\/\" target=\"_blank\" rel=\"noreferrer noopener\">URL Image Importer<\/a>&rdquo;<\/strong>.<\/li>\n\n\n<li>Find the plugin and click <strong>Install Now<\/strong>.<\/li>\n\n\n<li>Once installed, click <strong>Activate<\/strong>.<\/li>\n<\/ol>\n\n\n<p class=\"wp-block-paragraph\">After activation, a new <strong>Import Images<\/strong> item shows up under the <strong>Media<\/strong> menu.<\/p>\n\n\n<h3 class=\"wp-block-heading\" id=\"import-images-using-external-urls\">Import Images Using External URLs<\/h3>\n\n\n<p class=\"wp-block-paragraph\">Now the part that saves you the afternoon. This is what the current version of the screen looks like.<\/p>\n\n\n<figure class=\"wp-block-image size-full\"><img decoding=\"async\" src=\"https:\/\/infiniteuploads.com\/wp-content\/uploads\/2026\/10\/wordpress-dashboard-screenshot-showing-url-image-importer-interface-with-image-urls.png\" alt=\"The URL Image Importer screen under Media, Import Images, with two image URLs pasted into the URL Import tab and the Import Images from URLs button below them\" class=\"wp-image-14159\"><\/figure>\n\n\n<ol class=\"wp-block-list\">\n<li>Go to <strong>Media &gt; Import Images<\/strong>.<\/li>\n\n\n<li>On the <strong>URL Import<\/strong> tab, paste the image URLs you want. One per line or comma-separated both work.<\/li>\n\n\n<li>Tick <strong>Preserve original dates (if available) instead of importing as current date<\/strong> if you want imported images to keep their original dates. Leave it off to date them today.<\/li>\n\n\n<li>Click <strong>Import Images from URLs<\/strong>.<\/li>\n\n\n<li>Review the <strong>Import Preview<\/strong>, untick anything you don't want, and click <strong>Import Selected Items<\/strong>.<\/li>\n\n\n<li>Watch the progress bar. When it finishes, the results show how many images were a success, failed or skipped.<\/li>\n<\/ol>\n\n\n<figure class=\"wp-block-image size-full\"><img decoding=\"async\" src=\"https:\/\/infiniteuploads.com\/wp-content\/uploads\/2026\/10\/import-preview-interface-displaying-two-image-urls-with-checkboxes-in-grayscale.png\" alt=\"The Import Preview window listing two image URLs with checkboxes, so you can uncheck any you do not want before importing\" class=\"wp-image-14161\"><\/figure>\n\n\n<figure class=\"wp-block-image size-full\"><img decoding=\"async\" src=\"https:\/\/infiniteuploads.com\/wp-content\/uploads\/2026\/10\/wordpress-dashboard-screenshot-showing-media-import-success-with-blue-and-white-interface.png\" alt=\"The finished import showing 2 images imported with 0 errors and 0 skipped, plus a Download URL Mapping CSV button\" class=\"wp-image-14160\"><\/figure>\n\n\n<p class=\"wp-block-paragraph\">Skipped means the plugin passed on that item. The usual reasons are that a file with the same name is already in your Media Library, the URL was empty or invalid, or the file wasn't an image. Failed means the download or save didn't work. The results list shows which is which, so you can fix those and rerun. The import screen also has a <strong>Force re-import<\/strong> checkbox for when you really do want a second copy.<\/p>\n\n\n<figure class=\"wp-block-image size-full\"><img loading=\"lazy\" decoding=\"async\" width=\"800\" height=\"360\" src=\"https:\/\/infiniteuploads.com\/wp-content\/uploads\/2025\/03\/CleanShot-2025-03-05-at-14.05.15.gif\" alt=\"Pasting an image URL into URL Image Importer and clicking Import Images, followed by a success message with an Edit image link\" class=\"wp-image-8949\"><figcaption class=\"wp-element-caption\">An earlier version of the import screen. The current version adds the preview step.<\/figcaption><\/figure>\n\n\n<h3 class=\"wp-block-heading\" id=\"import-images-in-bulk-from-a-csv-or-a-wordpress-xml-export\">Import Images in Bulk from a CSV or a WordPress XML Export<\/h3>\n\n\n<p class=\"wp-block-paragraph\">Pasting works for a handful of links. For a real migration, use the other two tabs.<\/p>\n\n\n<ul class=\"wp-block-list\">\n<li><strong>CSV Import.<\/strong> Upload a .csv file with a <code>url<\/code> column. The optional columns are <code>title<\/code>, <code>description<\/code>, <code>alt_text<\/code> and <code>date<\/code>. Click <strong>Download Sample CSV<\/strong> on that tab to get a template. Filling in <code>alt_text<\/code> here saves you from adding it image by image later.<\/li>\n\n\n<li><strong>WordPress XML Import.<\/strong> Upload a standard export file from <strong>Tools &gt; Export<\/strong> on the old site. The plugin finds the image attachments in the file and downloads them into your Media Library.<\/li>\n<\/ul>\n\n\n<p class=\"wp-block-paragraph\">For long lists, the plugin's listing suggests running 500 to 2,000 URLs per run on a dedicated high-speed server, which keeps speed and reliability balanced. File size is limited by your server's maximum upload size, and <a href=\"https:\/\/infiniteuploads.com\/big-file-uploads\/\">Big File Uploads<\/a> can lift that limit. The full feature list lives on the <a href=\"https:\/\/wordpress.org\/plugins\/url-image-importer\/\" target=\"_blank\" rel=\"noreferrer noopener\">plugin's WordPress.org page<\/a>.<\/p>\n\n\n<h4 class=\"wp-block-heading\">What It Can and Can't Import<\/h4>\n\n\n<ul class=\"wp-block-list\">\n<li><strong>It can import<\/strong> JPEG, PNG, GIF, ICO, WebP and SVG files from public URLs, CSV rows, WordPress XML exports and public Google Drive image links.<\/li>\n\n\n<li><strong>It can't import<\/strong> videos, private or login-protected files, Google Drive folders, or Docs, Sheets and Slides. Those get skipped.<\/li>\n<\/ul>\n\n\n<h3 class=\"wp-block-heading\" id=\"attaching-imported-images-to-blog-posts\">Attaching Imported Images to Blog Posts<\/h3>\n\n\n<p class=\"wp-block-paragraph\">Here's the part people trip on. Importing puts the files in your Media Library. It doesn't edit your posts, so they keep pointing at the old addresses until you swap them.<\/p>\n\n\n<p class=\"wp-block-paragraph\"><strong>For a few posts<\/strong>, do it by hand:<\/p>\n\n\n<ol class=\"wp-block-list\">\n<li>Open the post.<\/li>\n\n\n<li>Find the externally hosted image and click it.<\/li>\n\n\n<li>In the block editor (Gutenberg), choose <strong>Replace<\/strong> and pick the imported file from your Media Library. In the Classic Editor, delete the old image and insert the new one with <strong>Add Media<\/strong>.<\/li>\n\n\n<li>Click <strong>Update<\/strong>.<\/li>\n<\/ol>\n\n\n<p class=\"wp-block-paragraph\"><strong>For hundreds of posts<\/strong>, use the URL mapping CSV. Its two columns are <strong>Old URL (external)<\/strong> and <strong>New URL (local WP)<\/strong>, which is exactly the find-and-replace list a database search and replace tool wants. Take a full backup first, and run a dry run if your tool offers one.<\/p>\n\n\n<h2 class=\"wp-block-heading\" id=\"manual-method-importing-blog-posts-with-external-images\">Manual Method: Importing Blog Posts with External Images<\/h2>\n\n\n<p class=\"wp-block-paragraph\">If you only have a few posts, you can skip the plugin. It takes extra effort, but every image ends up in your Media Library and shows correctly in your content. There are two parts: WordPress's built-in Import tool, and adding images by hand.<\/p>\n\n\n<h3 class=\"wp-block-heading\" id=\"importing-blog-posts-using-the-wordpress-import-tool\">Importing Blog Posts Using the WordPress Import Tool<\/h3>\n\n\n<p class=\"wp-block-paragraph\">WordPress includes a built-in importer that brings in posts from an XML export file. It's handy when you're moving content from another WordPress site. Here's how:<\/p>\n\n\n<ol class=\"wp-block-list\">\n<li>Go to your WordPress dashboard and open <strong>Tools &gt; Import<\/strong>.<\/li>\n\n\n<li>Choose <strong>WordPress<\/strong> and install the importer if it isn't already active.<\/li>\n\n\n<li>Upload your XML file, which contains your blog posts.<\/li>\n\n\n<li>Assign authors so the imported content has the right owner.<\/li>\n\n\n<li>Tick <strong>Download and import file attachments<\/strong> and submit.<\/li>\n<\/ol>\n\n\n<figure class=\"wp-block-image size-large\"><img loading=\"lazy\" decoding=\"async\" width=\"1024\" height=\"558\" src=\"https:\/\/infiniteuploads.com\/wp-content\/uploads\/2025\/03\/CleanShot-2025-03-05-at-16.34.14@2x-1024x558.png\" alt=\"The WordPress Importer's Import Attachments step with the Download and import file attachments box checked\" class=\"wp-image-8954\" srcset=\"https:\/\/infiniteuploads.com\/wp-content\/uploads\/2025\/03\/CleanShot-2025-03-05-at-16.34.14@2x-1024x558.png 1024w, https:\/\/infiniteuploads.com\/wp-content\/uploads\/2025\/03\/CleanShot-2025-03-05-at-16.34.14@2x-980x534.png 980w, https:\/\/infiniteuploads.com\/wp-content\/smush-webp\/2025\/03\/CleanShot-2025-03-05-at-16.34.14@2x-480x261.png.webp 480w\" sizes=\"(min-width: 0px) and (max-width: 480px) 480px, (min-width: 481px) and (max-width: 980px) 980px, (min-width: 981px) 1024px, 100vw\" \/><\/figure>\n\n\n<p class=\"wp-block-paragraph\">That last checkbox matters. WordPress's own documentation says you can import attachments by checking it, so the importer will download media attachments that are in the export file (see <a href=\"https:\/\/wordpress.org\/documentation\/article\/importing-content\/\" target=\"_blank\" rel=\"noreferrer noopener\">Importing Content<\/a> on WordPress.org). What it won't do is grab images that were only hotlinked inside post content with no attachment in the export. Those stay on their old URLs.<\/p>\n\n\n<h4 class=\"wp-block-heading\">Limitations of the WordPress Importer Tool<\/h4>\n\n\n<p class=\"wp-block-paragraph\">It does bring in your posts, but it has two problems:<\/p>\n\n\n<ul class=\"wp-block-list\">\n<li><strong>Slow imports and timeouts.<\/strong> You have to export an XML file and then import it, and a 6 MB XML file (large, to be fair) timed out for us. That was a clean WordPress install with plenty of processing power.<\/li>\n\n\n<li><strong>No control.<\/strong> The only filter is the date range when you export. There's no granular control over what gets imported.<\/li>\n<\/ul>\n\n\n<figure class=\"wp-block-image size-large\"><img loading=\"lazy\" decoding=\"async\" width=\"1024\" height=\"464\" src=\"https:\/\/infiniteuploads.com\/wp-content\/smush-webp\/2025\/03\/CleanShot-2025-03-05-at-16.36.41@2x-1024x464.png.webp\" alt=\"A blank white screen in the WordPress dashboard under Tools, Import after the import timed out\" class=\"wp-image-8955\" srcset=\"https:\/\/infiniteuploads.com\/wp-content\/smush-webp\/2025\/03\/CleanShot-2025-03-05-at-16.36.41@2x-980x444.png.webp 980w, https:\/\/infiniteuploads.com\/wp-content\/smush-webp\/2025\/03\/CleanShot-2025-03-05-at-16.36.41@2x-480x217.png.webp 480w\" sizes=\"(min-width: 0px) and (max-width: 480px) 480px, (min-width: 481px) and (max-width: 980px) 980px, (min-width: 981px) 1024px, 100vw\" \/><\/figure>\n\n\n<h3 class=\"wp-block-heading\" id=\"adding-images-manually\">Adding Images Manually<\/h3>\n\n\n<p class=\"wp-block-paragraph\">When the importer leaves images behind, the fallback is downloading and uploading them yourself. It's the safest way to be sure every image is on your site. I've uploaded content in bulk this way before, and it can take forever and time out. Then I'm left wondering what actually uploaded, what didn't, and where to start again. Drag and drop into the Media Library is even worse.<\/p>\n\n\n<h4 class=\"wp-block-heading\">Steps to Manually Add Images from External URLs<\/h4>\n\n\n<ol class=\"wp-block-list\">\n<li><strong>Download the images<\/strong> from the original source by right-clicking each one and saving it.<\/li>\n\n\n<li><strong>Re-upload them<\/strong> under <strong>Media &gt; Add New<\/strong>.<\/li>\n\n\n<li><strong>Update the image URLs<\/strong> in your posts by replacing each old external link with the new Media Library file.<\/li>\n<\/ol>\n\n\n<h4 class=\"wp-block-heading\">Drawbacks of the Manual Image Upload Method<\/h4>\n\n\n<ul class=\"wp-block-list\">\n<li>It's extremely time-consuming for bulk imports, especially with hundreds of posts.<\/li>\n\n\n<li>It's easy to miss images, which leaves broken links.<\/li>\n\n\n<li>It doesn't scale to large migrations.<\/li>\n\n\n<li>Your server has to process every file as you upload it.<\/li>\n<\/ul>\n\n\n<h3 class=\"wp-block-heading\" id=\"is-there-an-easier-way-\">Is There an Easier Way?<\/h3>\n\n\n<p class=\"wp-block-paragraph\">If you're importing dozens or hundreds of images, yes. The short answer near the top of this page is the quick route. Read on for what to do once the images are in.<\/p>\n\n\n<h2 class=\"wp-block-heading\" id=\"advanced-tips-for-optimizing-imported-images\">Advanced Tips for Optimizing Imported Images<\/h2>\n\n\n<p class=\"wp-block-paragraph\">Images pulled from other sites are often huge, and big files drag your pages down. The importer saves each file through WordPress's standard attachment process, and the auto-compress setting in <a href=\"https:\/\/wordpress.org\/plugins\/wp-smushit\/\" target=\"_blank\" rel=\"noreferrer noopener\">Smush<\/a> runs on that same process. Turn on <strong>Automatically compress my images on upload<\/strong> before you import and your new images get compressed as they arrive.<\/p>\n\n\n<figure class=\"wp-block-image size-full\"><img decoding=\"async\" src=\"https:\/\/infiniteuploads.com\/wp-content\/uploads\/2026\/10\/toggle-switch-for-automatic-image-compression-blue-and-white-screenshot-format.png\" alt=\"The Smush setting Automatically compress my images on upload turned on\" class=\"wp-image-14162\"><\/figure>\n\n\n<h3 class=\"wp-block-heading\" id=\"importing-lots-of-images-\">Importing lots of images?<\/h3>\n\n\n<p class=\"wp-block-paragraph\">Here's the quiet cost of a big import: every file lands on your host's disk. A few thousand images later, your hosting plan is full and the upgrade email arrives.<\/p>\n\n\n<p class=\"wp-block-paragraph\"><a href=\"https:\/\/infiniteuploads.com\/features\/offload-media-library\/\">Infinite Uploads<\/a> keeps those files off your server. It copies your Media Library to cloud storage, rewrites the URLs to point at the copies, and serves them through a CDN with 119+ locations. URL Image Importer can also import straight into a connected Infinite Uploads account. What you get:<\/p>\n\n\n<ul class=\"wp-block-list\">\n<li>Your Media Library offloaded to the cloud, so imports don't fill your host's disk<\/li>\n\n\n<li>A built-in CDN across 119+ locations for faster image delivery<\/li>\n\n\n<li>Unlimited uploads and unlimited sites on every plan<\/li>\n\n\n<li>Fixed plan pricing instead of surprise hosting upgrades<\/li>\n\n\n<li>WordPress video hosting and a player through Infinite Uploads Video Cloud<\/li>\n<\/ul>\n\n\n<h2 class=\"wp-block-heading\" id=\"stop-importing-images-onto-your-own-server\">Stop Importing Images onto Your Own Server<\/h2>\n\n\n<p class=\"wp-block-paragraph\">Plans start at $8.25\/mo billed yearly ($99\/yr) for 25 GB of storage and 50 GB of CDN bandwidth, and you can try any plan free for 7 days.<\/p>\n\n\n<div class=\"wp-block-buttons is-layout-flex wp-block-buttons-is-layout-flex\">\n<div class=\"wp-block-button\"><a class=\"wp-block-button__link wp-element-button\" href=\"https:\/\/infiniteuploads.com\/pricing\/\">See Pricing<\/a><\/div>\n<\/div>\n\n\n<div class=\"wp-block-group iu-topic-cluster is-layout-constrained wp-block-group-is-layout-constrained\">\n\n<h3 class=\"wp-block-heading\" id=\"related-wordpress-image-import-guides\">Related WordPress image import guides<\/h3>\n\n\n<ul class=\"wp-block-list\">\n<li><a href=\"https:\/\/infiniteuploads.com\/url-image-importer\/\">URL Image Importer<\/a><\/li>\n\n\n<li><a href=\"https:\/\/infiniteuploads.com\/blog\/introducing-url-image-importer-for-wordpress\/\">Introducing URL Image Importer<\/a><\/li>\n\n\n<li><a href=\"https:\/\/infiniteuploads.com\/features\/offload-media-library\/\">Offload your WordPress Media Library<\/a><\/li>\n\n\n<li><a href=\"https:\/\/infiniteuploads.com\/features\/image-optimization\/\">WordPress image optimization<\/a><\/li>\n\n\n<li><a href=\"https:\/\/infiniteuploads.com\/big-file-uploads\/\">Big File Uploads<\/a><\/li>\n<\/ul>\n\n<\/div>\n<\/body><\/html>\n","protected":false},"excerpt":{"rendered":"<p>You moved a site, pasted in a pile of posts, or inherited a client&#8217;s old blog. The text came across fine. The images didn&#8217;t. Every one of them is still loading from the old address, so the day that server changes, moves or goes dark, your posts turn into rows of broken image icons. I&#8217;ve [&hellip;]<\/p>\n","protected":false},"author":3787,"featured_media":8956,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"_acf_changed":false,"wds_primary_category":14,"footnotes":""},"categories":[14],"tags":[],"class_list":["post-8941","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-tutorials"],"acf":[],"_links":{"self":[{"href":"https:\/\/infiniteuploads.com\/api\/wp\/v2\/posts\/8941","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/infiniteuploads.com\/api\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/infiniteuploads.com\/api\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/infiniteuploads.com\/api\/wp\/v2\/users\/3787"}],"replies":[{"embeddable":true,"href":"https:\/\/infiniteuploads.com\/api\/wp\/v2\/comments?post=8941"}],"version-history":[{"count":9,"href":"https:\/\/infiniteuploads.com\/api\/wp\/v2\/posts\/8941\/revisions"}],"predecessor-version":[{"id":14177,"href":"https:\/\/infiniteuploads.com\/api\/wp\/v2\/posts\/8941\/revisions\/14177"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/infiniteuploads.com\/api\/wp\/v2\/media\/8956"}],"wp:attachment":[{"href":"https:\/\/infiniteuploads.com\/api\/wp\/v2\/media?parent=8941"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/infiniteuploads.com\/api\/wp\/v2\/categories?post=8941"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/infiniteuploads.com\/api\/wp\/v2\/tags?post=8941"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}