On this page
- Fix 1: Check that the uploads folder was copied
- Fix 2: Check whether the Media Library is empty
- Fix 3: Re-register the files with a recovery plugin
- Fix 4: Update old URLs inside your content
- Fix 5: Fix HTTP and HTTPS mismatches
- Fix 6: Check file permissions
- Fix 7: Clear caches and rebuild thumbnails
- Quick diagnosis table
- Prevent it on the next move
- WordPress images not showing after migration: common questions
- Conclusion
You moved your site to a new host or domain, and the pages load, but the pictures do not. Blank spaces, broken icons, and an empty Media Library are all signs of the same family of problems. If you have WordPress images not showing after migration, the fix depends on where the chain broke: the files, the database, or the addresses.

Use the seven fixes below in order. Each takes only a few minutes to check.
Fix 1: Check that the uploads folder was copied
WordPress keeps your images in wp-content/uploads, usually in year and month folders. Connect by FTP or your host’s file manager and open that folder on the new server. If it is empty or much smaller than on the old site, the files did not move. Copy them again from the old server or from a backup.
Fix 2: Check whether the Media Library is empty
Go to Media > Library. Two situations look similar but are different.
- The files exist on the server but the library is empty. The database lost the media entries, so WordPress does not know about the files.
- The library lists images but they do not display. The entries exist, but the addresses or files are wrong.
This difference tells you which fix to use. For the first case, read our guide on how to rebuild the WordPress media database.
Fix 3: Re-register the files with a recovery plugin
When files are in the uploads folder but missing from the library, a recovery tool can scan the folder and add them back. Media Library Recovery Free recovers up to 10 images at a time from the default uploads folder.
- Install and activate the plugin.
- Go to Media > Media Recovery.
- Select the images you want back.
- Click recover, and repeat for the next batch.
Large libraries are easier with Media Library Recovery Pro, which has no file-count limit and recovers other media types such as video, audio, and documents. Our Media Explorer guide shows how to filter and select files faster.
Fix 4: Update old URLs inside your content
Posts and pages store full image addresses. After a domain change they may still point to the old site. Open a broken image in a new tab and read the address. If it shows the old domain, you need to replace it in the database.
Use a search and replace tool to swap the old domain for the new one, and take a database backup first. Our post on how to fix broken image links after import explains the steps.
Fix 5: Fix HTTP and HTTPS mismatches
If your new site uses HTTPS but your content still asks for images over HTTP, browsers can block them. Open the browser console with F12 and look for “mixed content” messages. Replace the HTTP addresses with HTTPS versions in your content. The MDN page on mixed content explains why browsers do this.
Fix 6: Check file permissions
If images exist but return a 403 error, the server may be refusing to serve them. Folders usually need permission 755 and files 644. Ask your host to confirm, or check the WordPress file permissions guide.
Fix 7: Clear caches and rebuild thumbnails
Caches can show an old broken version of a page. Clear your browser, caching plugin, host cache, and CDN. If images load at full size but thumbnails are broken, regenerate thumbnails with a thumbnail plugin so each image size exists again.
Quick diagnosis table
| What you see | Likely cause | Go to |
|---|---|---|
| — | — | — |
| Uploads folder empty | Files not copied | Fix 1 |
| Files exist, library empty | Database entries missing | Fix 2 and 3 |
| Broken image shows old domain | Old URLs in content | Fix 4 |
| Console shows mixed content | HTTP on HTTPS | Fix 5 |
| 403 on image address | Permissions | Fix 6 |
| Works for you, not others | Cache | Fix 7 |
Prevent it on the next move
- Copy the database and the uploads folder together.
- Keep a backup of the uploads folder. Our help article on backing up your uploads folder shows an easy way.
- Test on a staging copy before switching DNS.
WordPress images not showing after migration: common questions
Do I have to re-upload all my images?
Usually not. If the files are in the uploads folder, you can fix the addresses or re-register the files. Re-uploading creates duplicates and uses extra space.
Why do the images show for me but not for visitors?
Most often a cache. Your browser may hold a good copy while a CDN or caching plugin serves an old one. Clear all cache layers and test in a private window.
Can I recover images that were never in the library?
If the file is in the uploads folder, a recovery tool can add it. If the file never made it to the new server, copy it over first.
How can I avoid this on my next move?
Move files and database together, keep a separate backup of the uploads folder, and test on a staging copy before you switch DNS.
Conclusion
When you find WordPress images not showing after migration, check the files first, then the Media Library, then the addresses. If the files are safe but the library is empty, a recovery plugin brings them back without re-uploading.
You can try Media Library Recovery Free on your first batch of images and move to Pro for large libraries.

