{"id":16267,"date":"2025-05-05T09:21:31","date_gmt":"2025-05-05T07:21:31","guid":{"rendered":"https:\/\/dits.md\/?p=16267"},"modified":"2025-05-06T08:31:18","modified_gmt":"2025-05-06T06:31:18","slug":"website-migration-from-wordpress-to-shopify","status":"publish","type":"post","link":"https:\/\/dits.md\/en\/website-migration-from-wordpress-to-shopify\/","title":{"rendered":"How Not to Migrate a Website from WordPress to Shopify: A Cautionary Tale"},"content":{"rendered":"<p>[et_pb_section fb_built=&#187;1&#8243; admin_label=&#187;\u0420\u0430\u0437\u0434\u0435\u043b&#187; _builder_version=&#187;4.24.2&#8243; background_image=&#187;https:\/\/dits.md\/wp-content\/uploads\/fon-1.png&#187; background_enable_pattern_style=&#187;on&#187; background_pattern_style=&#187;tufted&#187; min_height=&#187;126px&#187; custom_padding=&#187;35px|0px|40px|0px|false|false&#187; global_module=&#187;2594&#8243; locked=&#187;off&#187; collapsed=&#187;off&#187; global_colors_info=&#187;{}&#187;][et_pb_row admin_label=&#187;\u0421\u0442\u0440\u043e\u043a\u0430&#187; _builder_version=&#187;4.27.0&#8243; _module_preset=&#187;default&#187; global_colors_info=&#187;{}&#187;][et_pb_column type=&#187;4_4&#8243; _builder_version=&#187;4.27.0&#8243; _module_preset=&#187;default&#187; global_colors_info=&#187;{}&#187;][\/et_pb_column][\/et_pb_row][et_pb_row _builder_version=&#187;4.27.0&#8243; _module_preset=&#187;default&#187; global_colors_info=&#187;{}&#187;][et_pb_column type=&#187;4_4&#8243; _builder_version=&#187;4.27.0&#8243; _module_preset=&#187;default&#187; global_colors_info=&#187;{}&#187;][et_pb_post_title author=&#187;off&#187; date=&#187;off&#187; comments=&#187;off&#187; featured_image=&#187;off&#187; _builder_version=&#187;4.27.0&#8243; _module_preset=&#187;default&#187; title_text_align=&#187;center&#187; title_text_color=&#187;#FFFFFF&#187; title_font_size=&#187;39px&#187; text_orientation=&#187;center&#187; custom_margin=&#187;||9px|||&#187; title_font_size_tablet=&#187;&#187; title_font_size_phone=&#187;30px&#187; title_font_size_last_edited=&#187;on|phone&#187; global_colors_info=&#187;{}&#187;][\/et_pb_post_title][et_pb_text _builder_version=&#187;4.27.0&#8243; _module_preset=&#187;default&#187; global_colors_info=&#187;{}&#187;]<\/p>\n<p style=\"text-align: center;\"><span style=\"color: #ffffff;\">Author &#8212; <a style=\"color: #ffffff;\" href=\"\/en\/constantin-nacul\/\">Constantin Nacul<\/a><\/span><\/p>\n<p>[\/et_pb_text][\/et_pb_column][\/et_pb_row][\/et_pb_section][et_pb_section fb_built=&#187;1&#8243; _builder_version=&#187;4.22.2&#8243; _module_preset=&#187;default&#187; global_colors_info=&#187;{}&#187;][et_pb_row _builder_version=&#187;4.22.2&#8243; _module_preset=&#187;default&#187; global_colors_info=&#187;{}&#187;][et_pb_column type=&#187;4_4&#8243; _builder_version=&#187;4.22.2&#8243; _module_preset=&#187;default&#187; global_colors_info=&#187;{}&#187;][et_pb_text _builder_version=&#187;4.27.0&#8243; _module_preset=&#187;default&#187; custom_margin=&#187;||13px|||&#187; global_colors_info=&#187;{}&#187;]<\/p>\n<p><b>Migrating a website<\/b><span style=\"font-weight: 400;\"> \u2014   from one platform to another is always a complex process \u2014 one that requires careful planning and execution. If done hastily or without a proper strategy, it can lead to disastrous consequences.\u00a0<\/span><\/p>\n<p><span style=\"font-weight: 400;\">In the case of our client, an online store specializing in home appliances, the website consistently received between 8,000 and 14,000 visits per month before the migration. It ranked at the top for key search queries and had a high Domain Rating (DR). The <a href=\"https:\/\/dits.md\/en\/wordpress-sajty-i-woocommerce-internet-magaziny\/\">Online store<\/a> was originally built by our team on the <\/span><b>WordPress<\/b><span style=\"font-weight: 400;\"> using <\/span><a href=\"https:\/\/dits.md\/en\/rukovodstvo-po-rabote-s-woocommerce\/\"><b>WooCommerce<\/b><\/a><span style=\"font-weight: 400;\"> and supported two language versions, carefully optimized for SEO and user experience.<\/span><\/p>\n<p>[\/et_pb_text][et_pb_image src=&#187;https:\/\/dits.md\/wp-content\/uploads\/unnamed.png&#187; title_text=&#187;unnamed&#187; align=&#187;center&#187; _builder_version=&#187;4.27.0&#8243; _module_preset=&#187;default&#187; global_colors_info=&#187;{}&#187;][\/et_pb_image][et_pb_text _builder_version=&#187;4.27.0&#8243; _module_preset=&#187;default&#187; custom_margin=&#187;||13px|||&#187; global_colors_info=&#187;{}&#187;]<\/p>\n<p><span style=\"font-weight: 400;\">However, due to internal corporate decisions, the client opted to migrate the website to <\/span><b>Shopify<\/b><span style=\"font-weight: 400;\">That\u2019s when the problems began.The migration was not coordinated with our team, and the preparation for the transition was, unfortunately, inadequate. Instead of a structured and strategic approach, the products were simply uploaded to the new Shopify site via an XLSX file \u2014 and the site was launched as-is.<\/span><\/p>\n<p><span style=\"font-weight: 400;\">The results were nothing short of catastrophic: <b>traffic and conversions plummeted to nearly zero<\/b>there was a partial loss of data in<a href=\"https:\/\/dits.md\/en\/advertise-on-youtube\/\"> GA4 analytics<\/a>and a complete loss of configured events in GTM, along with a drop in search engine rankings. In addition, the location-based landing pages we had previously created\u2014targeting local search queries by city\u2014were lost, even though they had been generating stable traffic for key product categories. <\/span><span style=\"font-weight: 400;\">The situation was further worsened by serious issues with advertising campaigns, which were not paused during the migration. Due to significant URL changes and the inability to track conversions, ad performance suffered heavily. As a result, we faced a prolonged recovery process for an already functioning online store\u2014one that required substantial effort from our content managers and <a href=\"https:\/\/dits.md\/en\/seosem\/\">SEO specialists<\/a>.<\/span><\/p>\n<p>[\/et_pb_text][et_pb_image src=&#187;https:\/\/dits.md\/wp-content\/uploads\/unnamed-1.png&#187; title_text=&#187;unnamed (1)&#187; align=&#187;center&#187; _builder_version=&#187;4.27.0&#8243; _module_preset=&#187;default&#187; global_colors_info=&#187;{}&#187;][\/et_pb_image][et_pb_text _builder_version=&#187;4.27.0&#8243; _module_preset=&#187;default&#187; custom_margin=&#187;||13px|||&#187; global_colors_info=&#187;{}&#187;]<\/p>\n<h2><strong>Mistakes Made During the Website Migration:<\/strong><\/h2>\n<ol>\n<li style=\"font-weight: 400;\" aria-level=\"1\"><b>Page URLs Were Not Preserved, and Redirects Were Not Set Up<\/b><span style=\"font-weight: 400;\"> \u2014 Old URLs were not redirected to their new counterparts, which led to a significant drop in traffic and a loss of search engine rankings.<\/span><\/li>\n<li style=\"font-weight: 400;\" aria-level=\"1\"><b>Meta Tags, Texts, and Translations Were Not Transferred<\/b><span style=\"font-weight: 400;\"> \u2014 Without properly migrating meta-data and content in both languages, important SEO elements were lost.<\/span><\/li>\n<li style=\"font-weight: 400;\" aria-level=\"1\"><b>The Blog Was Not Migrated<\/b><span style=\"font-weight: 400;\"> \u2014 Content blocks, articles, and valuable materials remained on the old site, which negatively affected SEO.<\/span><\/li>\n<li style=\"font-weight: 400;\" aria-level=\"1\"><b>Analytics and Conversion Tracking Systems Were Not Migrated<\/b><span style=\"font-weight: 400;\"> \u2014 The analytics system used on the old website was not integrated into the new one, leading to data loss.<\/span><\/li>\n<li style=\"font-weight: 400;\" aria-level=\"1\"><b>Internal Linking Was Lost<\/b><span style=\"font-weight: 400;\"> \u2014 All internal links between website pages disappeared, which harmed navigation and reduced the site\u2019s visibility to search engines.<\/span><\/li>\n<li style=\"font-weight: 400;\" aria-level=\"1\"><b>Pages Created for Local Search Queries Were Lost<\/b><span style=\"font-weight: 400;\"> \u2014 As a result, a significant amount of traffic from local keywords was lost.<\/span><\/li>\n<li style=\"font-weight: 400;\" aria-level=\"1\"><b>robots.txt Was Not Configured Properly<\/b><span style=\"font-weight: 400;\"> \u2014 The robots.txt file was not set up correctly, which made it difficult for search engines to index the website.<\/span><\/li>\n<\/ol>\n<p><span style=\"font-weight: 400;\">So, What Should Be Done to Ensure a Smooth Migration?<\/span><\/p>\n<p>[\/et_pb_text][et_pb_text _builder_version=&#187;4.27.0&#8243; _module_preset=&#187;default&#187; custom_margin=&#187;||13px|||&#187; box_shadow_style=&#187;preset1&#8243; global_colors_info=&#187;{}&#187;]<\/p>\n<p style=\"text-align: center;\"><b><i>\u201cThe fewer structural changes you make during a migration, the better your chances of preserving search rankings.\u201d<\/i><\/b><\/p>\n<p>[\/et_pb_text][et_pb_text _builder_version=&#187;4.27.0&#8243; _module_preset=&#187;default&#187; custom_margin=&#187;||13px|||&#187; global_colors_info=&#187;{}&#187;]<\/p>\n<h2><strong><b>What You Should Do to Ensure a Smooth Website Migration:<\/b><\/strong><\/h2>\n<ol>\n<li><b> 1. Back Up the Old Website<\/b><b><br \/><\/b><span style=\"font-weight: 400;\"> Before starting any migration, always create a full backup of your current site and keep it for at least one month after the migration is complete. Ideally, make the old version accessible via a separate IP address (or keep it live temporarily) so you can quickly revert if <a href=\"https:\/\/dits.md\/en\/pochemu-seo-ne-rabotaet-kak-proverit-rendering-stranic-na-sajte\/\">SEO issues arise.<\/a>.<\/span><\/li>\n<li><b> 2. Block the Unpublished Version from Indexing<\/b><b><br \/><\/b><span style=\"font-weight: 400;\"> The staging domain where your new website is hosted should be blocked from being indexed by search engines. This can be done via the robots.txt file, server settings, or the CMS admin panel. For extra protection, consider using a login screen or password protection.<\/span><\/li>\n<li><b>3. Minimize Structural Changes<\/b><b><br \/><\/b><span style=\"font-weight: 400;\"> The fewer changes to site structure, the greater the chance of maintaining current search engine rankings.<\/span><\/li>\n<\/ol>\n<p>[\/et_pb_text][et_pb_text _builder_version=&#187;4.27.0&#8243; _module_preset=&#187;default&#187; custom_margin=&#187;||13px|||&#187; global_colors_info=&#187;{}&#187;]<\/p>\n<h2><strong><b>Preparing for the Migration:<\/b><\/strong><\/h2>\n<ol>\n<li><b> Page URLs:<\/b><\/li>\n<\/ol>\n<ul>\n<li style=\"font-weight: 400;\" aria-level=\"1\"><span style=\"font-weight: 400;\">Whenever possible, keep existing URLs for key pages and categories.<\/span><\/li>\n<li style=\"font-weight: 400;\" aria-level=\"1\"><span style=\"font-weight: 400;\">If URLs were already changed previously, make sure all existing redirects are transferred to the test site.<\/span><\/li>\n<li style=\"font-weight: 400;\" aria-level=\"1\"><span style=\"font-weight: 400;\">If URL preservation isn\u2019t feasible, define a clean new URL structure (use Latin characters, avoid dates).<\/span><\/li>\n<li style=\"font-weight: 400;\" aria-level=\"1\"><span style=\"font-weight: 400;\">Create a 301 redirect map and implement it on the new site. For pages that won\u2019t be migrated, redirect to the most relevant new equivalents.<\/span><\/li>\n<\/ul>\n<ol start=\"2\">\n<li><b> Content Migration:<\/b><\/li>\n<\/ol>\n<ul>\n<li style=\"font-weight: 400;\" aria-level=\"1\"><span style=\"font-weight: 400;\">Transfer all main content \u2014 including text, images, and videos \u2014 to the corresponding pages on the new site.<\/span><\/li>\n<li style=\"font-weight: 400;\" aria-level=\"1\"><span style=\"font-weight: 400;\">If you\u2019re creating new pages, build and populate them on the staging site in advance to boost visibility after launch.<\/span><\/li>\n<\/ul>\n<ol start=\"3\">\n<li><b> Meta Data Migration:<\/b><\/li>\n<\/ol>\n<ul>\n<li style=\"font-weight: 400;\" aria-level=\"1\"><span style=\"font-weight: 400;\">Move meta titles and descriptions from the old site to their corresponding new pages.<\/span><\/li>\n<li style=\"font-weight: 400;\" aria-level=\"1\"><span style=\"font-weight: 400;\">For any new pages, prepare optimized meta-data ahead of time.<\/span><\/li>\n<\/ul>\n<ol start=\"4\">\n<li><b> Basic Technical Recommendations:<\/b><\/li>\n<\/ol>\n<ul>\n<li style=\"font-weight: 400;\" aria-level=\"1\"><span style=\"font-weight: 400;\">Optimize page load speed.<\/span><\/li>\n<li style=\"font-weight: 400;\" aria-level=\"1\"><span style=\"font-weight: 400;\">Compress images and ensure proper server response codes.<\/span><\/li>\n<li style=\"font-weight: 400;\" aria-level=\"1\"><span style=\"font-weight: 400;\">Set up canonical URLs and structured data.<\/span><\/li>\n<li style=\"font-weight: 400;\" aria-level=\"1\"><span style=\"font-weight: 400;\">Apply 301 redirects as needed.<\/span><\/li>\n<\/ul>\n<ol start=\"5\">\n<li><b> Robots.txt File:<\/b><\/li>\n<\/ol>\n<ul>\n<li style=\"font-weight: 400;\" aria-level=\"1\"><span style=\"font-weight: 400;\">Create a new robots.txt file that ensures proper indexing.<\/span><\/li>\n<li style=\"font-weight: 400;\" aria-level=\"1\"><span style=\"font-weight: 400;\">After conducting a site audit, adjust the file to block dynamic or unnecessary pages.<\/span><\/li>\n<\/ul>\n<ol start=\"6\">\n<li><b> Sitemap.xml:<\/b><\/li>\n<\/ol>\n<ul>\n<li style=\"font-weight: 400;\" aria-level=\"1\"><span style=\"font-weight: 400;\">Generate a new sitemap and verify its content (pages, categories, posts).<\/span><\/li>\n<li style=\"font-weight: 400;\" aria-level=\"1\"><span style=\"font-weight: 400;\">Ensure it's set up for automatic updates.<\/span><\/li>\n<\/ul>\n<ol start=\"7\">\n<li><b> Analytics Setup:<\/b><\/li>\n<\/ol>\n<ul>\n<li style=\"font-weight: 400;\" aria-level=\"1\"><span style=\"font-weight: 400;\">Install tracking codes (Google Analytics, Google Tag Manager).<\/span><\/li>\n<li style=\"font-weight: 400;\" aria-level=\"1\"><span style=\"font-weight: 400;\">Transfer and reconfigure analytics and conversion tracking on the new site.<\/span><\/li>\n<\/ul>\n<ol start=\"8\">\n<li><b> Thorough Testing of the Staging Site:<\/b><\/li>\n<\/ol>\n<ul>\n<li style=\"font-weight: 400;\" aria-level=\"1\"><span style=\"font-weight: 400;\">Perform a full technical audit and fix any detected issues.<\/span><\/li>\n<li style=\"font-weight: 400;\" aria-level=\"1\"><span style=\"font-weight: 400;\">Check the design, UX, functionality, and mobile responsiveness.<\/span><\/li>\n<\/ul>\n<ol start=\"9\">\n<li><b> Notify Your Advertising Team:<\/b><\/li>\n<\/ol>\n<ul>\n<li style=\"font-weight: 400;\" aria-level=\"1\"><span style=\"font-weight: 400;\">Inform your <a href=\"https:\/\/dits.md\/en\/paid-advertising-on-google-ppc-adwords\/\">advertising specialists<\/a> about the URL changes and the need to reconfigure conversion goals.<\/span><\/li>\n<\/ul>\n<p>[\/et_pb_text][et_pb_text _builder_version=&#187;4.27.0&#8243; _module_preset=&#187;default&#187; custom_margin=&#187;||13px|||&#187; global_colors_info=&#187;{}&#187;]<\/p>\n<h2><strong><b>What to Check After Migrating a Website to a New Version<\/b><\/strong><\/h2>\n<ol>\n<li style=\"font-weight: 400;\" aria-level=\"1\"><b>\u00a0Backup of the Old Website<\/b><b><br \/><\/b><span style=\"font-weight: 400;\"> Before migration, a full backup of the old website must be created and stored for at least one month after the transition. Ideally, keep the old version accessible via a different IP address (or the original one), so you can quickly revert to it in case of serious SEO issues.<\/span><\/li>\n<li style=\"font-weight: 400;\" aria-level=\"1\"><b>Notify Your Advertising Specialist<\/b><b><br \/><\/b><span style=\"font-weight: 400;\"> Inform your advertising specialist about the website migration so they can check the ad accounts and update campaign settings according to the new URLs.<\/span><\/li>\n<li aria-level=\"1\"><b>Block the Old Version from Indexing<\/b><b><br \/><\/b><span style=\"font-weight: 400;\"> The old version of the website must be blocked from being indexed by search engines. This can be done via the robots.txt file, server settings, or CMS settings. It's also recommended to block the site with a placeholder or password protection to prevent it from being re-indexed.<\/span><\/li>\n<\/ol>\n<p>[\/et_pb_text][et_pb_text _builder_version=&#187;4.27.0&#8243; _module_preset=&#187;default&#187; custom_margin=&#187;||13px|||&#187; global_colors_info=&#187;{}&#187;]<\/p>\n<h2><strong><b>Post-Migration Website Checks<\/b><\/strong><\/h2>\n<ol>\n<li style=\"font-weight: 400;\" aria-level=\"1\"><b>URL Check<\/b><b><br \/><\/b><span style=\"font-weight: 400;\"> Verify that all URLs are present on the new site. Ensure no pages are missing, and that there are no duplicate or broken links. Also, check that URLs are being generated correctly.<\/span><\/li>\n<li style=\"font-weight: 400;\" aria-level=\"1\"><b>Redirects Check<\/b><b><br \/><\/b><span style=\"font-weight: 400;\"> After the migration, test whether 301 redirects are working properly. Visit key pages on the site and randomly test pages across all categories.<\/span><\/li>\n<li style=\"font-weight: 400;\" aria-level=\"1\"><b>Robots.txt File:<\/b><b><br \/><\/b><span style=\"font-weight: 400;\"> Check the robots.txt file. The site should be open for indexing, but low-value or technical pages must be blocked. After conducting an audit, add the necessary rules and update the file in Google Search Console.<\/span><\/li>\n<li style=\"font-weight: 400;\" aria-level=\"1\"><b>Search Engine Indexing Permissions<\/b><b><br \/><\/b><span style=\"font-weight: 400;\"> In the CMS, ensure that the site is allowed to be indexed by search engines. Check the robots meta tags on each page type to confirm they are correctly set up.<\/span><\/li>\n<li style=\"font-weight: 400;\" aria-level=\"1\"><b>Sitemap.xml:<\/b><b><br \/><\/b><span style=\"font-weight: 400;\"> Check the functionality of the sitemap.xml file. Make sure there are no links pointing to the staging site. Update the sitemap to include only live site pages, and configure it to auto-update daily. Ensure there are no redirect URLs in the sitemap.<\/span><\/li>\n<li style=\"font-weight: 400;\" aria-level=\"1\"><b>Forms, Phone Numbers, and Messengers<\/b><b><br \/><\/b><span style=\"font-weight: 400;\"> Test all contact forms, phone numbers, and messenger integrations to confirm they are working without issues.<\/span><\/li>\n<li style=\"font-weight: 400;\" aria-level=\"1\"><b>Internal Links<\/b><b><br \/><\/b><span style=\"font-weight: 400;\"> Make sure that no internal links point to the staging site (including in menus and internal linking). Confirm that canonical tags are up to date and do not reference the staging site.<\/span><\/li>\n<li style=\"font-weight: 400;\" aria-level=\"1\"><b>Analytics:<\/b><b><br \/><\/b><span style=\"font-weight: 400;\"> Verify that all analytics are working correctly. Make sure all tracking codes were properly transferred and that all events are being tracked as expected.<\/span><\/li>\n<li style=\"font-weight: 400;\" aria-level=\"1\"><b>Site Audit<\/b><b><br \/><\/b><span style=\"font-weight: 400;\"> After migration, perform a full technical audit of the new site. Confirm that everything is functioning properly and that there are no technical errors.<\/span><\/li>\n<li style=\"font-weight: 400;\" aria-level=\"1\"><b>Sitemap.xml in Google Search Console<\/b><b><br \/><\/b><span style=\"font-weight: 400;\"> Once the site is live and all checks are complete, update the sitemap in Google Search Console so search engines can crawl and index your site more efficiently.<\/span><\/li>\n<\/ol>\n<p>&nbsp;<\/p>\n<p><span style=\"font-weight: 400;\">Website migration requires careful preparation to avoid traffic loss, drops in search engine rankings, and other negative consequences. When done correctly, the transition to a new platform can go smoothly, allowing your site to continue growing while maintaining its visibility and traffic.<\/span><\/p>\n<p>[\/ et_pb_text] [\/ et_pb_column] [\/ et_pb_row] [\/ et_pb_section]<\/p>","protected":false},"excerpt":{"rendered":"<p>Website migration is always a complex process that requires careful preparation; otherwise, it can lead to disastrous consequences. We'd like to share a real-life case that clearly demonstrates the kinds of issues that can arise...<\/p>","protected":false},"author":4,"featured_media":16288,"comment_status":"closed","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"_et_pb_use_builder":"on","_et_pb_old_content":"","_et_gb_content_width":"","footnotes":""},"categories":[31],"tags":[],"class_list":["post-16267","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-blog"],"_links":{"self":[{"href":"https:\/\/dits.md\/en\/wp-json\/wp\/v2\/posts\/16267","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/dits.md\/en\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/dits.md\/en\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/dits.md\/en\/wp-json\/wp\/v2\/users\/4"}],"replies":[{"embeddable":true,"href":"https:\/\/dits.md\/en\/wp-json\/wp\/v2\/comments?post=16267"}],"version-history":[{"count":15,"href":"https:\/\/dits.md\/en\/wp-json\/wp\/v2\/posts\/16267\/revisions"}],"predecessor-version":[{"id":16311,"href":"https:\/\/dits.md\/en\/wp-json\/wp\/v2\/posts\/16267\/revisions\/16311"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/dits.md\/en\/wp-json\/wp\/v2\/media\/16288"}],"wp:attachment":[{"href":"https:\/\/dits.md\/en\/wp-json\/wp\/v2\/media?parent=16267"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/dits.md\/en\/wp-json\/wp\/v2\/categories?post=16267"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/dits.md\/en\/wp-json\/wp\/v2\/tags?post=16267"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}