{"id":6314,"date":"2022-10-11T10:47:43","date_gmt":"2022-10-11T10:47:43","guid":{"rendered":"https:\/\/craighordlow.com\/index.php\/2022\/10\/11\/how-to-complete-a-website-shutdown-with-a-split-migration\/"},"modified":"2022-10-11T10:47:43","modified_gmt":"2022-10-11T10:47:43","slug":"how-to-complete-a-website-shutdown-with-a-split-migration","status":"publish","type":"post","link":"https:\/\/craighordlow.com\/index.php\/2022\/10\/11\/how-to-complete-a-website-shutdown-with-a-split-migration\/","title":{"rendered":"How to complete a website shutdown with a split migration"},"content":{"rendered":"<p>Recently, I have been asked by a major global brand to support a website shutdown project. The company wasn\u2019t making enough to sustain itself and make a profit. The same global brand also owns multiple other similar companies in the niche.<\/p>\n<p>Shutting down a website is easy, but when you have to do that along with redirects, what and how do you do it?<\/p>\n<p>One of the requirements was to make the shutdown smooth and redirect half of the traffic to one website, and the other half to another. The determining factor was the type of product.<\/p>\n<div id=\"ez-toc-container\" class=\"ez-toc-v2_0_81 counter-hierarchy ez-toc-counter ez-toc-grey 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\"><a href=\"#\" class=\"ez-toc-pull-right ez-toc-btn ez-toc-btn-xs ez-toc-btn-default ez-toc-toggle\" aria-label=\"Toggle Table of Content\"><span class=\"ez-toc-js-icon-con\"><span class=\"\"><span class=\"eztoc-hide\" style=\"display:none;\">Toggle<\/span><span class=\"ez-toc-icon-toggle-span\"><svg style=\"fill: #999;color:#999\" xmlns=\"http:\/\/www.w3.org\/2000\/svg\" class=\"list-377408\" width=\"20px\" height=\"20px\" viewBox=\"0 0 24 24\" fill=\"none\"><path d=\"M6 6H4v2h2V6zm14 0H8v2h12V6zM4 11h2v2H4v-2zm16 0H8v2h12v-2zM4 16h2v2H4v-2zm16 0H8v2h12v-2z\" fill=\"currentColor\"><\/path><\/svg><svg style=\"fill: #999;color:#999\" class=\"arrow-unsorted-368013\" xmlns=\"http:\/\/www.w3.org\/2000\/svg\" width=\"10px\" height=\"10px\" viewBox=\"0 0 24 24\" version=\"1.2\" baseProfile=\"tiny\"><path d=\"M18.2 9.3l-6.2-6.3-6.2 6.3c-.2.2-.3.4-.3.7s.1.5.3.7c.2.2.4.3.7.3h11c.3 0 .5-.1.7-.3.2-.2.3-.5.3-.7s-.1-.5-.3-.7zM5.8 14.7l6.2 6.3 6.2-6.3c.2-.2.3-.5.3-.7s-.1-.5-.3-.7c-.2-.2-.4-.3-.7-.3h-11c-.3 0-.5.1-.7.3-.2.2-.3.5-.3.7s.1.5.3.7z\"\/><\/svg><\/span><\/span><\/span><\/a><\/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:\/\/craighordlow.com\/index.php\/2022\/10\/11\/how-to-complete-a-website-shutdown-with-a-split-migration\/#Why_is_it_called_a_%E2%80%98split_migration\" >Why is it called a \u2018split migration\u2019?<\/a><\/li><li class='ez-toc-page-1 ez-toc-heading-level-2'><a class=\"ez-toc-link ez-toc-heading-2\" href=\"https:\/\/craighordlow.com\/index.php\/2022\/10\/11\/how-to-complete-a-website-shutdown-with-a-split-migration\/#Discovery_phase\" >Discovery phase<\/a><\/li><li class='ez-toc-page-1 ez-toc-heading-level-2'><a class=\"ez-toc-link ez-toc-heading-3\" href=\"https:\/\/craighordlow.com\/index.php\/2022\/10\/11\/how-to-complete-a-website-shutdown-with-a-split-migration\/#Set-up_phase\" >Set-up phase<\/a><\/li><li class='ez-toc-page-1 ez-toc-heading-level-2'><a class=\"ez-toc-link ez-toc-heading-4\" href=\"https:\/\/craighordlow.com\/index.php\/2022\/10\/11\/how-to-complete-a-website-shutdown-with-a-split-migration\/#Testing\" >Testing<\/a><\/li><li class='ez-toc-page-1 ez-toc-heading-level-2'><a class=\"ez-toc-link ez-toc-heading-5\" href=\"https:\/\/craighordlow.com\/index.php\/2022\/10\/11\/how-to-complete-a-website-shutdown-with-a-split-migration\/#But_what_went_wrong\" >But what went wrong?<\/a><\/li><li class='ez-toc-page-1 ez-toc-heading-level-2'><a class=\"ez-toc-link ez-toc-heading-6\" href=\"https:\/\/craighordlow.com\/index.php\/2022\/10\/11\/how-to-complete-a-website-shutdown-with-a-split-migration\/#Template\" >Template<\/a><\/li><li class='ez-toc-page-1 ez-toc-heading-level-2'><a class=\"ez-toc-link ez-toc-heading-7\" href=\"https:\/\/craighordlow.com\/index.php\/2022\/10\/11\/how-to-complete-a-website-shutdown-with-a-split-migration\/#Conclusion\" >Conclusion<\/a><\/li><\/ul><\/nav><\/div>\n<h2><span class=\"ez-toc-section\" id=\"Why_is_it_called_a_%E2%80%98split_migration\"><\/span>Why is it called a \u2018split migration\u2019?<span class=\"ez-toc-section-end\"><\/span><\/h2>\n<p>A <a href=\"https:\/\/searchengineland.com\/website-migration-checklist-383201\" target=\"_blank\" rel=\"noopener\">website migration<\/a> is a detailed, procedural process that often involves changing the domain and URLs, redesigning or replatforming. While  tedious even on a small site, the issues that you can run into will only amplify with each additional page of a site.\u00a0<\/p>\n<p>Now, imagine a site with thousands of pages or products that you need to include in the migration. Add in the complexity of having to migrate portions of a single site between two other sites.<\/p>\n<p>How do you handle thousands of pages and products when you have to move them to two different and existing websites? <\/p>\n<p>Before this point, I never did a split migration, but I had a general idea of where to start and how to begin the process.<\/p>\n<p>Unfortunately, migrations are more than a simple redirect. Every migration comes with its difficulties, but this particular one was a little easier because it included only URL redirects from the source to the destination page(s). <\/p>\n<p>However, the process would be more painstaking for a normal migration or replatform that includes:<\/p>\n<ul>\n<li>Metadata<\/li>\n<li>Content<\/li>\n<li>Headings<\/li>\n<li>404 errors<\/li>\n<li>Existing redirects<\/li>\n<li>Images<\/li>\n<li>Etc.<\/li>\n<\/ul>\n<p>In terms of quality assurance (QA), a basic URL redirect is easier to test and verify that everything is working properly. However, we still went through multiple phases to make the process go along smoothly, starting with \u201cdiscovery.\u201d<\/p>\n<h2><span class=\"ez-toc-section\" id=\"Discovery_phase\"><\/span>Discovery phase<span class=\"ez-toc-section-end\"><\/span><\/h2>\n<p>I knew that my biggest challenge was to identify the existing pages on all three websites. For privacy, intellectual property and other legal reasons let\u2019s call them Source, Destination1 and Destination2.<\/p>\n<p>I started off with a Screaming Frog crawl that would go over the source website, identifying all indexable pages. And for an easier decision-making process, I had to pull Google Analytics and Google Search Console data using the APIs.<\/p>\n<div class=\"wp-block-image\">\n<figure class=\"aligncenter size-full\"><img fetchpriority=\"high\" decoding=\"async\" width=\"692\" height=\"518\" src=\"https:\/\/searchengineland.com\/wp-content\/seloads\/2022\/10\/screaming-frog-crawl.png\" alt=\"| Craig Hordlow\" class=\"wp-image-388604\" title=\"| Craig Hordlow\"><figcaption>Make sure you save your configuration file so that your results match up when you do the final check upon going live.<\/figcaption><\/figure>\n<\/div>\n<p>But I was still missing another piece of data. I didn\u2019t have Semrush API access so had to pull the <a href=\"https:\/\/searchengineland.com\/how-to-gain-value-from-broken-backlinks-348104\" target=\"_blank\" rel=\"noopener\">backlinks<\/a> data separately. Once you have the list of URLs you need to work with, make sure to pull backlink data as well.<\/p>\n<p>You can change this to Ahrefs or another source you prefer. The point here is to know how important a URL is in terms of backlinks.<\/p>\n<hr class=\"wp-block-separator has-text-color has-background has-cyan-bluish-gray-background-color has-cyan-bluish-gray-color\">\n<p><!-- START INLINE FORM --><\/p>\n<div class=\"nl-inline-form border py-2 px-1 my-2\">\n<div class=\"row align-items-center\">\n<div class=\"col-12 col-lg-3 col-xl-4 pe-md-0 pb-2 pb-lg-0\">\n<p class=\"inline-form-text text-center mb-0\">Get the daily newsletter search marketers rely on.<\/p>\n<\/p><\/div>\n<div class=\"col-12 col-lg-7 col-xl-6  pe-lg-0\">\n<div class=\"form-nl-inline\">\n<div class=\"row g-0\">\n<div class=\"form-group col-12 col-lg-8 mb-0\"><\/div>\n<div class=\"col-12 col-lg-4 col-xl-4 mb-0\">\n<div class=\"d-none\">\n<p>Processing\u2026Please wait.<\/p>\n<\/div>\n<p>\t\t\t\t\t\t\t<button class=\"btn btn-dark inlineButton w-100 rounded-0 font-weight-bold\" type=\"submit\" name=\"submit_button\">SUBSCRIBE<\/button>\n\t\t\t\t\t\t<\/div>\n<\/p><\/div>\n<\/p><\/div>\n<\/p><\/div>\n<div class=\"col-12 col-lg-2 col-xl-2 ps-1\">\n<p class=\"text-center mb-0\"><a class=\"nl-terms\" href=\"https:\/\/searchengineland.com\/termsofuse\" target=\"_blank\" rel=\"noopener noreferrer\">See terms.<\/a><\/p>\n<\/p><\/div>\n<\/p><\/div>\n<\/div>\n<p><!-- END INLINE FORM --><\/p>\n<hr class=\"wp-block-separator has-text-color has-background has-cyan-bluish-gray-background-color has-cyan-bluish-gray-color\">\n<h2><span class=\"ez-toc-section\" id=\"Set-up_phase\"><\/span>Set-up phase<span class=\"ez-toc-section-end\"><\/span><\/h2>\n<p>Now that I collected all my URLs from the source site I had to work with, I needed a few things to make the process smoother:<\/p>\n<ul>\n<li>Clean up the list to exclude URL parameters or other duplicates.<\/li>\n<li>Identify the owners of the page (to which site should it go \u2013 Destination1 or Destination2).<\/li>\n<li>What is the priority of the page? (Does it have direct traffic? Is it ranking in Google? Does it have backlinks?)\u00a0<\/li>\n<li>What is the status code of the page? (Is it a 200 or a 301 or a 404?)<\/li>\n<\/ul>\n<p>I put my ScreamingFrog data and Semrush data into separate sheets and created a Google Sheets file:<\/p>\n<div class=\"wp-block-image\">\n<figure class=\"aligncenter size-full\"><img decoding=\"async\" width=\"677\" height=\"162\" src=\"https:\/\/searchengineland.com\/wp-content\/seloads\/2022\/10\/screaming-frog-urls.png\" alt=\"| Craig Hordlow\" class=\"wp-image-388605\" title=\"| Craig Hordlow\"><\/figure>\n<\/div>\n<p>Initially, I shared the file with all involved parties and owners, this allowed them to select the URLs that belong to the specific destination. Remember that each URL may have its owner counterpart on each of those websites.<\/p>\n<p>For example, a specific product existed on Source and Destination website, so the final redirect should be to the Destination URL and the same page.<\/p>\n<p>You may also choose to pass parameters. So make sure the Destination is properly filled in.<\/p>\n<p>In my task, I was working with 18,000 URLs, and after some filtering and removing those that weren\u2019t important I ended up with 11,000.<\/p>\n<h2><span class=\"ez-toc-section\" id=\"Testing\"><\/span>Testing<span class=\"ez-toc-section-end\"><\/span><\/h2>\n<p>In most cases, you\u2019d have to test this on a temporary server. This may or may not have a setup of your actual Source URLs, for example, it may be <code>dev.source.com<\/code> instead of <code>source.com<\/code>.<\/p>\n<p>You can easily replace your source URLs temporarily, or use a duplicate of the file.<\/p>\n<p>When testing, make sure you use the same configuration you used during discovery.<\/p>\n<p>Updating the ScreamingFrog export in <em>SF-Internal ALL sheet<\/em> will automatically adjust the data in the <em>URLs sheet<\/em> and show you the ones which have a failed destination URL.<\/p>\n<h2><span class=\"ez-toc-section\" id=\"But_what_went_wrong\"><\/span>But what went wrong?<span class=\"ez-toc-section-end\"><\/span><\/h2>\n<p>Every migration is a learning experience. If you\u2019ve ever performed a migration, you know that a single mistake can lead to 404 errors, images not loading or other issues. Thankfully, the biggest issue we had was with a global server-side cache impacting the testing process.<\/p>\n<p>This migration QA was based on two things:<\/p>\n<ul>\n<li>Targeting.<\/li>\n<li>Checking 301 redirects.<\/li>\n<\/ul>\n<p>We spent more time on the discovery phase than the migration itself. <\/p>\n<p>One thing we take away from this particular migration is that you really need to learn the ins and outs of a site. It takes a lot of time to work with large teams and learn who the owner of each page is and how to manage them (pages or page owners).<\/p>\n<p>Nothing particularly concerning impeded the migration, but we attribute this to the immense amount of time spent in the discovery phase. If we didn\u2019t dedicate a lot of time to this phase, it could have ended badly. <\/p>\n<p>Discovery allowed us to be ready if there were issues during migration so that we could call in the right people and have the error fixed on the spot.<\/p>\n<p>Using the template helped us a lot.\u00a0<\/p>\n<h2><span class=\"ez-toc-section\" id=\"Template\"><\/span>Template<span class=\"ez-toc-section-end\"><\/span><\/h2>\n<p>This <a href=\"https:\/\/www.mazeless.com\/blog\/split-migration\/\" target=\"_blank\" rel=\"noreferrer noopener\">split migration template<\/a> will be updated as new and similar projects come my way. Please make your own copy rather than requesting access. Also, improve or suggest improvements as you work on it.\u00a0<\/p>\n<h2><span class=\"ez-toc-section\" id=\"Conclusion\"><\/span>Conclusion<span class=\"ez-toc-section-end\"><\/span><\/h2>\n<p>Our migration was a success, it took us 5 minutes to go live (including clearing all global cache) and just 15 minutes to run a list crawl to identify all the redirects were functioning properly.<\/p>\n<p>Defining &#8220;success&#8221; is something that every migration needs. In most migrations, there always seems to be something that goes wrong. Even when you spend extra time in the setup phase, there\u2019s always a small detail that is overlooked.<\/p>\n<p>This migration\u2019s success was admittedly easier than others performed in the past because the only real QA required was ensuring the redirects worked. Automation helped here to verify that all redirects were successful.<\/p>\n<p>However, that\u2019s only part of the story. We also waited for the following before deeming the project a win:<\/p>\n<ul>\n<li>Source site pages started to slowly be de-indexed.<\/li>\n<li>Destination page rankings began to increase.<\/li>\n<\/ul>\n<p>We did run into a problem with a server-side cache that impacted the verification process and needed to be cleared a few times. Global caches always seem to pose issues during migrations, so this is definitely something to consider when working on a regular or split migration in the future.<\/p>\n<p>Within one day we started seeing updates in Google\u2019s search results and many of the destination pages spiked because of targeted redirects.<\/p>\n<p>The post <a rel=\"nofollow noopener\" href=\"https:\/\/searchengineland.com\/website-shutdown-split-migration-388603\" target=\"_blank\">How to complete a website shutdown with a split migration<\/a> appeared first on <a rel=\"nofollow noopener\" href=\"https:\/\/searchengineland.com\/\" target=\"_blank\">Search Engine Land<\/a>.<\/p>\n","protected":false},"excerpt":{"rendered":"<p>Recently, I have been asked by a major global brand to support a website shutdown project. The company wasn\u2019t making enough to sustain itself and make a profit. The same global brand also owns multiple other similar companies in the niche. Shutting down a website is easy, but when you have to do that along with redirects, what and how do you do it? One of the requirements was to make the shutdown smooth and redirect half of the traffic to one website, and the other [&hellip;]<\/p>\n","protected":false},"author":0,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"h5ap_radio_sources":[],"cybocfi_hide_featured_image":"","footnotes":""},"categories":[1],"tags":[],"class_list":["post-6314","post","type-post","status-publish","format-standard","hentry","category-best-seo-blogs"],"featured_image_src":null,"featured_image_src_square":null,"author_info":{"display_name":false,"author_link":"https:\/\/craighordlow.com\/author\/"},"_links":{"self":[{"href":"https:\/\/craighordlow.com\/index.php\/wp-json\/wp\/v2\/posts\/6314","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/craighordlow.com\/index.php\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/craighordlow.com\/index.php\/wp-json\/wp\/v2\/types\/post"}],"replies":[{"embeddable":true,"href":"https:\/\/craighordlow.com\/index.php\/wp-json\/wp\/v2\/comments?post=6314"}],"version-history":[{"count":0,"href":"https:\/\/craighordlow.com\/index.php\/wp-json\/wp\/v2\/posts\/6314\/revisions"}],"wp:attachment":[{"href":"https:\/\/craighordlow.com\/index.php\/wp-json\/wp\/v2\/media?parent=6314"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/craighordlow.com\/index.php\/wp-json\/wp\/v2\/categories?post=6314"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/craighordlow.com\/index.php\/wp-json\/wp\/v2\/tags?post=6314"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}