{"id":10683,"date":"2026-06-15T09:45:22","date_gmt":"2026-06-15T07:45:22","guid":{"rendered":"https:\/\/mybox.com\/help\/?post_type=manual_kb&#038;p=10683"},"modified":"2026-06-15T09:45:23","modified_gmt":"2026-06-15T07:45:23","slug":"why-images-are-missing-after-migrating-a-website","status":"publish","type":"manual_kb","link":"https:\/\/mybox.com\/help\/en\/knowledgebase\/why-images-are-missing-after-migrating-a-website\/","title":{"rendered":"Why images are missing after migrating a website"},"content":{"rendered":"\n<div class=\"translation-block translation-block-merged\">\n<p class=\"wp-block-paragraph\">Images may be missing after migration when the website files, database references, domain settings, or permissions do not fully match the new hosting environment.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">This usually does not mean the whole migration failed. In most cases, the website is loading, but the browser cannot find or access some image files. This article explains the most common causes and what to check.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\"><\/p>\n\n\n\n<div id=\"ez-toc-container\" class=\"ez-toc-v2_0_86 ez-toc-wrap-left counter-hierarchy ez-toc-counter ez-toc-custom ez-toc-container-direction\">\n<div class=\"ez-toc-title-container\">\n<p class=\"ez-toc-title\" style=\"cursor:inherit\">Table of Contents<\/p>\n<span class=\"ez-toc-title-toggle\"><\/span><\/div>\n<nav><ul class='ez-toc-list ez-toc-list-level-1 ' ><li class='ez-toc-page-1 ez-toc-heading-level-2'><a class=\"ez-toc-link ez-toc-heading-1\" href=\"https:\/\/mybox.com\/help\/en\/knowledgebase\/why-images-are-missing-after-migrating-a-website\/#Common_causes\" >Common causes<\/a><ul class='ez-toc-list-level-3' ><li class='ez-toc-heading-level-3'><a class=\"ez-toc-link ez-toc-heading-2\" href=\"https:\/\/mybox.com\/help\/en\/knowledgebase\/why-images-are-missing-after-migrating-a-website\/#1_Image_files_were_not_copied_during_migration\" >1. Image files were not copied during migration<\/a><\/li><li class='ez-toc-page-1 ez-toc-heading-level-3'><a class=\"ez-toc-link ez-toc-heading-3\" href=\"https:\/\/mybox.com\/help\/en\/knowledgebase\/why-images-are-missing-after-migrating-a-website\/#2_The_database_still_points_to_the_old_image_URLs\" >2. The database still points to the old image URLs<\/a><\/li><li class='ez-toc-page-1 ez-toc-heading-level-3'><a class=\"ez-toc-link ez-toc-heading-4\" href=\"https:\/\/mybox.com\/help\/en\/knowledgebase\/why-images-are-missing-after-migrating-a-website\/#3_The_domain_still_points_partly_to_the_old_hosting\" >3. The domain still points partly to the old hosting<\/a><\/li><li class='ez-toc-page-1 ez-toc-heading-level-3'><a class=\"ez-toc-link ez-toc-heading-5\" href=\"https:\/\/mybox.com\/help\/en\/knowledgebase\/why-images-are-missing-after-migrating-a-website\/#4_File_or_folder_permissions_block_image_access\" >4. File or folder permissions block image access<\/a><\/li><li class='ez-toc-page-1 ez-toc-heading-level-3'><a class=\"ez-toc-link ez-toc-heading-6\" href=\"https:\/\/mybox.com\/help\/en\/knowledgebase\/why-images-are-missing-after-migrating-a-website\/#5_Mixed_content_after_enabling_SSL\" >5. Mixed content after enabling SSL<\/a><\/li><li class='ez-toc-page-1 ez-toc-heading-level-3'><a class=\"ez-toc-link ez-toc-heading-7\" href=\"https:\/\/mybox.com\/help\/en\/knowledgebase\/why-images-are-missing-after-migrating-a-website\/#6_Cache_still_contains_the_old_version_of_the_website\" >6. Cache still contains the old version of the website<\/a><\/li><li class='ez-toc-page-1 ez-toc-heading-level-3'><a class=\"ez-toc-link ez-toc-heading-8\" href=\"https:\/\/mybox.com\/help\/en\/knowledgebase\/why-images-are-missing-after-migrating-a-website\/#7_Image_optimization_or_WebP_settings_changed_after_migration\" >7. Image optimization or WebP settings changed after migration<\/a><\/li><\/ul><\/li><li class='ez-toc-page-1 ez-toc-heading-level-2'><a class=\"ez-toc-link ez-toc-heading-9\" href=\"https:\/\/mybox.com\/help\/en\/knowledgebase\/why-images-are-missing-after-migrating-a-website\/#What_to_check_first\" >What to check first<\/a><\/li><li class='ez-toc-page-1 ez-toc-heading-level-2'><a class=\"ez-toc-link ez-toc-heading-10\" href=\"https:\/\/mybox.com\/help\/en\/knowledgebase\/why-images-are-missing-after-migrating-a-website\/#What_is_normal_after_migration\" >What is normal after migration<\/a><\/li><li class='ez-toc-page-1 ez-toc-heading-level-2'><a class=\"ez-toc-link ez-toc-heading-11\" href=\"https:\/\/mybox.com\/help\/en\/knowledgebase\/why-images-are-missing-after-migrating-a-website\/#When_to_contact_support\" >When to contact support<\/a><\/li><li class='ez-toc-page-1 ez-toc-heading-level-2'><a class=\"ez-toc-link ez-toc-heading-12\" href=\"https:\/\/mybox.com\/help\/en\/knowledgebase\/why-images-are-missing-after-migrating-a-website\/#Summary\" >Summary<\/a><\/li><\/ul><\/nav><\/div>\n<h2 class=\"wp-block-heading\"><span class=\"ez-toc-section\" id=\"Common_causes\"><\/span>Common causes<span class=\"ez-toc-section-end\"><\/span><\/h2>\n\n\n\n<p class=\"wp-block-paragraph\"><\/p>\n\n\n\n<h3 class=\"wp-block-heading\"><span class=\"ez-toc-section\" id=\"1_Image_files_were_not_copied_during_migration\"><\/span>1. Image files were not copied during migration<span class=\"ez-toc-section-end\"><\/span><\/h3>\n\n\n\n<\/div>\n\n<div id=\"mybox-1623763247\" class=\"mybox-content mybox-entity-placement\"><div class=\"early-access-banner-inpost\">\r\n  <div class=\"banner-left-inpost\">\r\n    <div class=\"icon-box-inpost\">\r\n      <img decoding=\"async\" src=\"https:\/\/mybox.com\/help\/wp-content\/uploads\/2026\/02\/square-info-icon.svg\" alt=\"Info\">\r\n    <\/div>\r\n    <div class=\"text-box-inpost\">\r\n      <span class=\"label-inpost\"><span class=\"translation-block translation-block-banner-text\">Early access<\/span><\/span>\r\n      <h4><span class=\"translation-block translation-block-banner-text\">Still need help?<\/span><\/h4>\r\n      <p><span class=\"translation-block translation-block-banner-text\">Contact our customer service team.<\/span><\/p>\r\n    <\/div>\r\n  <\/div>\r\n\r\n  <div class=\"banner-right-inpost\">\r\n    <a href=\"https:\/\/panel.mybox.com\/helpdesk2\/v\/list\/\" class=\"banner-button-inpost\"><span class=\"translation-block translation-block-banner-text\">Message us<\/span><\/a>\r\n  <\/div>\r\n<\/div><\/div>\n\n<div class=\"translation-block translation-block-merged\"><p class=\"wp-block-paragraph\">Website images are stored as files on the server. In WordPress, they are usually located in the <code>wp-content\/uploads<\/code> directory.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">If this directory was not copied completely, the website may load its pages correctly, but some or all images will be missing.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Check whether the missing images exist in the website files on the new hosting account. If you use FTP, make sure the upload directory and its subfolders are present.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Related article: <a href=\"https:\/\/mybox.com\/help\/en\/knowledgebase\/how-to-create-a-new-ftp-account\/\">How to create a new FTP account<\/a><\/p>\n\n\n\n<p class=\"wp-block-paragraph\"><\/p>\n\n\n\n<h3 class=\"wp-block-heading\"><span class=\"ez-toc-section\" id=\"2_The_database_still_points_to_the_old_image_URLs\"><\/span>2. The database still points to the old image URLs<span class=\"ez-toc-section-end\"><\/span><\/h3>\n\n\n\n<p class=\"wp-block-paragraph\">Many websites store image paths in the database. After migration, the files may exist on the new server, but the website may still reference the old domain, temporary address, or previous hosting path.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">This is common in WordPress migrations, especially when the domain changed during the move.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">For example, the website may try to load an image from:<\/p>\n\n\n\n<figure class=\"wp-block-embed\"><div class=\"wp-block-embed__wrapper\">\nhttps:\/\/old-domain.com\/wp-content\/uploads\/image.jpg\n<\/div><\/figure>\n\n\n\n<p class=\"wp-block-paragraph\">instead of:<\/p>\n\n\n\n<figure class=\"wp-block-embed\"><div class=\"wp-block-embed__wrapper\">\nhttps:\/\/yourdomain.com\/wp-content\/uploads\/image.jpg\n<\/div><\/figure>\n\n\n\n<p class=\"wp-block-paragraph\">In this case, the database needs to be checked and updated carefully.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Related articles:<\/p>\n\n\n\n<p class=\"wp-block-paragraph\"><a href=\"https:\/\/mybox.com\/help\/en\/knowledgebase\/how-to-migrate-a-website-to-mybox\/\">How to migrate a website to mybox<\/a><\/p>\n\n\n\n<p class=\"wp-block-paragraph\"><a href=\"https:\/\/mybox.com\/help\/en\/?post_type=manual_kb&amp;p=7406&amp;preview=true\">How to connect WordPress to another domain<\/a><\/p>\n\n\n\n<p class=\"wp-block-paragraph\"><a href=\"https:\/\/mybox.com\/help\/en\/knowledgebase\/how-to-restore-upload-a-database-from-a-sql-or-sql-gz-file-via-phpmyadmin\/\">How to restore\/upload a database from a SQL or SQL.GZ file via phpMyAdmin<\/a><\/p>\n\n\n\n<p class=\"wp-block-paragraph\"><\/p>\n\n\n\n<h3 class=\"wp-block-heading\"><span class=\"ez-toc-section\" id=\"3_The_domain_still_points_partly_to_the_old_hosting\"><\/span>3. The domain still points partly to the old hosting<span class=\"ez-toc-section-end\"><\/span><\/h3>\n\n\n\n<p class=\"wp-block-paragraph\">After migration, the domain must point to the correct hosting environment. If DNS records are incomplete or still point to the previous server, some resources may load from one place while others are requested from another.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">This can make the website appear inconsistent during or shortly after migration.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">If the domain was recently changed, DNS propagation may still be in progress. During this time, some networks may load the old version of the website while others load the new one.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Related articles:<\/p>\n\n\n\n<p class=\"wp-block-paragraph\"><a href=\"https:\/\/mybox.com\/help\/en\/knowledgebase\/parking-a-domain-in-mybox\/\">Parking a domain in mybox<\/a><\/p>\n\n\n\n<p class=\"wp-block-paragraph\"><a href=\"https:\/\/mybox.com\/help\/en\/knowledgebase\/how-to-launch-a-website\/\">How to launch a website<\/a><\/p>\n\n\n\n<p class=\"wp-block-paragraph\"><a href=\"https:\/\/mybox.com\/help\/en\/knowledgebase\/what-is-the-difference-between-a-domain-and-a-website-and-a-web-server\/\">What is the difference between a domain and a website and a web server?<\/a><\/p>\n\n\n\n<p class=\"wp-block-paragraph\"><\/p>\n\n\n\n<h3 class=\"wp-block-heading\"><span class=\"ez-toc-section\" id=\"4_File_or_folder_permissions_block_image_access\"><\/span>4. File or folder permissions block image access<span class=\"ez-toc-section-end\"><\/span><\/h3>\n\n\n\n<p class=\"wp-block-paragraph\">Images may exist on the server but still not be visible if the website cannot read them.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">This can happen when files or directories have incorrect permissions after being copied from another server. In that case, the browser may show broken images, or the server may return a <code>403 Forbidden<\/code> error for image files.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Related article: <a href=\"https:\/\/mybox.com\/help\/en\/knowledgebase\/error-403-no-permissions\/\">Error 403 \u2014 no permissions<\/a><\/p>\n\n\n\n<p class=\"wp-block-paragraph\"><\/p>\n\n\n\n<h3 class=\"wp-block-heading\"><span class=\"ez-toc-section\" id=\"5_Mixed_content_after_enabling_SSL\"><\/span>5. Mixed content after enabling SSL<span class=\"ez-toc-section-end\"><\/span><\/h3>\n\n\n\n<p class=\"wp-block-paragraph\">If the website uses HTTPS but some images are still loaded through HTTP, the browser may block or mark those resources as insecure.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">This is called mixed content. It often appears after moving a website and activating an SSL certificate, especially if old HTTP links are still saved in the website database.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Related articles:<\/p>\n\n\n\n<p class=\"wp-block-paragraph\"><a href=\"https:\/\/mybox.com\/help\/en\/knowledgebase\/what-is-an-ssl-certificate\/\">What is an SSL certificate?<\/a><\/p>\n\n\n\n<p class=\"wp-block-paragraph\"><a href=\"https:\/\/mybox.com\/help\/en\/knowledgebase\/how-long-does-it-take-to-generate-a-free-lets-encrypt-certificate\/\">How long does it take to generate a free Let\u2019s Encrypt certificate?<\/a><\/p>\n\n\n\n<p class=\"wp-block-paragraph\"><a href=\"https:\/\/mybox.com\/help\/en\/knowledgebase\/why-hasnt-a-lets-encrypt-certificate-been-generated-for-my-domain\/\">Why hasn\u2019t a Let\u2019s Encrypt certificate been generated for my domain?<\/a><\/p>\n\n\n\n<p class=\"wp-block-paragraph\"><\/p>\n\n\n\n<h3 class=\"wp-block-heading\"><span class=\"ez-toc-section\" id=\"6_Cache_still_contains_the_old_version_of_the_website\"><\/span>6. Cache still contains the old version of the website<span class=\"ez-toc-section-end\"><\/span><\/h3>\n\n\n\n<p class=\"wp-block-paragraph\">The website, browser, CDN, or plugin cache may still contain references to the previous hosting environment.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">This is common after WordPress migrations. The new website may be working correctly, but cached pages may still contain old image paths.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Clear the website cache, browser cache, and any cache plugin used by the website. If you use WordPress optimization plugins, check their cache settings as well.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Related articles:<\/p>\n\n\n\n<p class=\"wp-block-paragraph\"><a href=\"https:\/\/mybox.com\/help\/en\/knowledgebase\/how-to-set-up-a-redis-cache-plugin-for-wordpress-cms\/\">How to set up a Redis cache plugin for WordPress CMS<\/a><\/p>\n\n\n\n<p class=\"wp-block-paragraph\"><a href=\"https:\/\/mybox.com\/help\/knowledgebase\/how-to-check-what-is-slowing-down-a-wordpress-website\/\">How to check what is slowing down a WordPress website<\/a><\/p>\n\n\n\n<p class=\"wp-block-paragraph\"><\/p>\n\n\n\n<h3 class=\"wp-block-heading\"><span class=\"ez-toc-section\" id=\"7_Image_optimization_or_WebP_settings_changed_after_migration\"><\/span>7. Image optimization or WebP settings changed after migration<span class=\"ez-toc-section-end\"><\/span><\/h3>\n\n\n\n<p class=\"wp-block-paragraph\">Some websites use image optimization plugins that replace standard images with WebP or AVIF versions. After migration, these generated files may be missing, or the plugin may still reference paths from the old server.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">If only optimized images are missing, regenerate the optimized versions or check the plugin configuration.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Related articles:<\/p>\n\n\n\n<p class=\"wp-block-paragraph\"><a href=\"https:\/\/mybox.com\/help\/knowledgebase\/what-is-webp\/\">What is WebP?<\/a><\/p>\n\n\n\n<p class=\"wp-block-paragraph\"><a href=\"https:\/\/mybox.com\/help\/knowledgebase\/how-to-serve-webp-images-in-wordpress\/\">How to serve WebP images in WordPress<\/a><\/p>\n\n\n\n<p class=\"wp-block-paragraph\"><a href=\"https:\/\/mybox.com\/help\/knowledgebase\/modern-image-formats-optimizing-with-webp-and-avif-in-2026\/\">Modern image formats: optimizing with WebP and AVIF in 2026<\/a><\/p>\n\n\n\n<p class=\"wp-block-paragraph\"><\/p>\n\n\n\n<h2 class=\"wp-block-heading\"><span class=\"ez-toc-section\" id=\"What_to_check_first\"><\/span>What to check first<span class=\"ez-toc-section-end\"><\/span><\/h2>\n\n\n\n<p class=\"wp-block-paragraph\">Start with the simplest checks:<\/p>\n\n\n\n<ol class=\"wp-block-list\">\n<li>Open one missing image in a new browser tab.<\/li>\n\n\n\n<li>Check whether the image URL points to the correct domain.<\/li>\n\n\n\n<li>Check whether the image file exists on the new server.<\/li>\n\n\n\n<li>Check whether the image file returns a <code>403<\/code>, <code>404<\/code>, or SSL-related browser warning.<\/li>\n\n\n\n<li>Clear website and browser cache.<\/li>\n\n\n\n<li>Check whether the website database still contains old domain references.<\/li>\n<\/ol>\n\n\n\n<p class=\"wp-block-paragraph\">These checks usually show whether the problem is caused by missing files, wrong URLs, permissions, SSL, or cache.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\"><span class=\"ez-toc-section\" id=\"What_is_normal_after_migration\"><\/span>What is normal after migration<span class=\"ez-toc-section-end\"><\/span><\/h2>\n\n\n\n<p class=\"wp-block-paragraph\">It is normal for a website to behave inconsistently for a short time after DNS changes. Some visitors may still see the old server while others see the new one until DNS propagation finishes.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">It is also normal for cache to keep old image paths until it is cleared or expires.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">However, if the same images are still missing after DNS propagation is complete and cache has been cleared, the issue should be checked directly in the website files, database, and website configuration.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\"><\/p>\n\n\n\n<h2 class=\"wp-block-heading\"><span class=\"ez-toc-section\" id=\"When_to_contact_support\"><\/span>When to contact support<span class=\"ez-toc-section-end\"><\/span><\/h2>\n\n\n\n<p class=\"wp-block-paragraph\">Contact support if:<\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li>the image files exist, but the browser cannot access them;<\/li>\n\n\n\n<li>many images return <code>403<\/code> or <code>404<\/code> errors;<\/li>\n\n\n\n<li>the website still loads images from the old domain after database updates;<\/li>\n\n\n\n<li>images disappeared after SSL activation;<\/li>\n\n\n\n<li>you are not sure whether the migration copied all website files.<\/li>\n<\/ul>\n\n\n\n<p class=\"wp-block-paragraph\">When contacting support, include one example page URL and one direct URL of a missing image. This helps identify whether the issue is related to files, DNS, SSL, permissions, or database references.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\"><\/p>\n\n\n\n<h2 class=\"wp-block-heading\"><span class=\"ez-toc-section\" id=\"Summary\"><\/span>Summary<span class=\"ez-toc-section-end\"><\/span><\/h2>\n\n\n\n<p class=\"wp-block-paragraph\">Missing images after migration are usually caused by incomplete file transfer, old image URLs in the database, DNS propagation, incorrect permissions, mixed content, or cache.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">The most useful first step is to open a missing image directly and check its URL. That usually shows whether the website is looking in the wrong place, whether the file is missing, or whether access to the file is blocked.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\"><\/p>\n<\/div>\n","protected":false},"author":1,"featured_media":0,"parent":0,"menu_order":0,"template":"","format":"standard","manualknowledgebasecat":[36],"manual_kb_tag":[4266,4267,4268,4269,4270,4271,398,749,1592,2428],"class_list":["post-10683","manual_kb","type-manual_kb","status-publish","format-standard","hentry","manualknowledgebasecat-migration","manual_kb_tag-missing-images","manual_kb_tag-image-migration","manual_kb_tag-image-files","manual_kb_tag-image-paths","manual_kb_tag-uploads-directory","manual_kb_tag-40-forbidden","manual_kb_tag-website-migration","manual_kb_tag-file-transfer","manual_kb_tag-file-permissions","manual_kb_tag-wordpress-migration"],"_links":{"self":[{"href":"https:\/\/mybox.com\/help\/en\/wp-json\/wp\/v2\/manual_kb\/10683","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/mybox.com\/help\/en\/wp-json\/wp\/v2\/manual_kb"}],"about":[{"href":"https:\/\/mybox.com\/help\/en\/wp-json\/wp\/v2\/types\/manual_kb"}],"author":[{"embeddable":true,"href":"https:\/\/mybox.com\/help\/en\/wp-json\/wp\/v2\/users\/1"}],"version-history":[{"count":1,"href":"https:\/\/mybox.com\/help\/en\/wp-json\/wp\/v2\/manual_kb\/10683\/revisions"}],"predecessor-version":[{"id":10684,"href":"https:\/\/mybox.com\/help\/en\/wp-json\/wp\/v2\/manual_kb\/10683\/revisions\/10684"}],"wp:attachment":[{"href":"https:\/\/mybox.com\/help\/en\/wp-json\/wp\/v2\/media?parent=10683"}],"wp:term":[{"taxonomy":"manualknowledgebasecat","embeddable":true,"href":"https:\/\/mybox.com\/help\/en\/wp-json\/wp\/v2\/manualknowledgebasecat?post=10683"},{"taxonomy":"manual_kb_tag","embeddable":true,"href":"https:\/\/mybox.com\/help\/en\/wp-json\/wp\/v2\/manual_kb_tag?post=10683"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}