- Episode 62 - Why Shopify in 2022 - https://jadepuma.com/blogs/the-shopify-solutions-podcast/episode-62-why-shopify-in-2022
- Episode 68 - DNS Overview for Shopify Stores - https://jadepuma.com/blogs/the-shopify-solutions-podcast/episode-68-dns-overview-for-shopify-stores
- Creating Shopify Collections Using the API - https://jadepuma.com/blogs/shopify-tutorials/how-to-bulk-create-shopify-collections-using-the-api
- Google Analytics 404 Dashboard - https://analytics.google.com/analytics/gallery/#posts/search/%3F_.term%3Djadepuma%26_.start%3D0%26_.viewId%3DkdUlZA81QAyBmltkk22hXA/
- Cart2Cart - https://www.shopping-cart-migration.com/
- Matrixify - https://matrixify.app/
Help the Podcast
Hey, Scott Austin here.
In this episode, I'm going to talk about migrating your existing store to Shopify from any other ecommerce platform out there.
To start, I recommend Shopify as the best e-commerce platform for small and medium size business. I've talked about the reasons in past episodes that I'll link to in the show notes, so I won't cover the reasons again. But I will say that after each migration that I've done for a client, the store staff and the owner are all happier with Shopify than they were with their previous platform.
I've done many, many store migrations to Shopify. And from most of the other platforms out there including Big Commerce, Woo Commerce, Volusion, Magento, Yahoo Stores, Drupal and more. Doing a store migration is not an easy task. A migration from any platform is achievable, but it will involve a lot effort and you'll almost always encounter unexpected pitfalls. In the end, the effort is worth it as the business will be on a more user-friendly platform with more capabilities. One thing to equate to is doing a whole house remodel. After the remodel, the family is happy with their new house. But during the remodel, its a stressful time.
The goal for a store migration is the same regardless of what platform we are trying to migrate from. We're trying to get as much information out of the legacy system and into Shopify so that we retain data for continuity in the business. The data we want to transfer falls in these buckets:
- Product. We want the product photos and descriptions, skus, inventory, and configurations or variants.
- Collections. The name, rules and products contained.
- Content. This includes evergreen pages like About Us, Company History, Shipping Policy, etc.
- Customers. Name, email, address and purchase history.
- Orders. The order status along with the connections to know what the products were and who the customer was.
- Reviews. Product and store reviews.
The smoothest store migrations are the ones that start with comprehensive planning. A store migration is going to be moving a lot of data between systems. What data gets moved, how the data gets processed or cleansed and what sequence the operations are done in are going to need to be mapped out. And no two migrations are the same. Each platform is quite different and each business is unique, so I can't give you a strict recipe to follow. What I can and am going to give you is guidance on what you need to consider and some background from my experiences on decisions you may need to make.
To start your planning, I recommend that you use a store migration service to transfer data between the two platforms. In theory, migration can be done manually with CSV files. But paying for a migration service is well worth the money. The migration fees that I've seen range between 200 and $600. It's well worth it for these reasons:
- They have tools and processes already set up that do the work much more quickly and accurately than setting it up from scratch.
- The service will be using platform APIs which give it access to more data than we can extract through the store admin.
- They will maintain many of the data relationships - like who the customer was for an order - that you may loose when transferring data with CSVs.
- These services aren't just software, they have a competentent consulting component. So the staff can get into the particulars of your implementation and keep as much of the information as possible. One particular instance I remember was a store migration from Volusion to Shopify. Many of the products in Volusion had dozens of data elements stored in custom fields. The migration service I used was able to map all of those Volusion fields to Shopify metafields and we were able to keep the data so we could use it in our Shopify product templates.
- Once the connections are created between your legacy store and your new Shopify store, the migration can be run multiple times. I run the migration at least 3 times. Some times more often. The first run is just to get the data into Shopify. Then you'll go into Shopify and set up the store experience using the first run's data. The second run is a test run to see how updating the data from the legacy store impacts the Shopify setup that you've made. And the third run is the final data transfer before transferring traffic from the legacy store to the Shopify store. This run pulls in all of the recent data like new customers and orders since the test data migration.
One thing to note about data migration. Once one is started, it takes a lot of time to run it. And the more data there is to transfer, the longer it will take. Migration time can take hours or even days.
The store migration service that I use is called Cart2Cart, which I'll link to in the show notes. I've used it for every store migration that I've done in the past eight years and I'm very satisfied with them. They are in Ukraine and I don't know if the current war there has impacted their level of support. There are other services out there that I've heard good things about, but I've not used them.
The first thing you'll want to do with your migration service is determine what data is can exchange between your legacy platform and Shopify. The answer will vary by platform. Cart2Cart supports more than 80 carts, so they'll probably support your platform. You'll just need to determine what data will be included. And you will need to make some decisions about ala carte migration features that cost a bit extra. For example, its an extra fee in Cart2Cart to have the migration create 301 redirects from the old URL structure to the Shopify URL structure, and its worth paying for.
You'll also want to make sure you pay in advance for multiple migrations as you can pay for just one. But remember before when I said you'll need to do at least 3 data migrations. You'll want to pay for that upfront as it will cost you more if you add them on later. And you'll want to make sure that you pay for the maximum amount of time that those migrations can be spread across. Most migrations take more than a month, so you'll want to make sure you give yourself enough time to do all of the needed setup and testing.
So, by now you should have a good feel what data the migration service is going to transfer. Next, you'll need to figure what data isn't getting migrated by the service and then determine how you'll migrate it. For example, you may have blog articles in a seperate WordPress site that the migration service doesn't cover. Or maybe your product reviews aren't covered. For each data element, you'll need to determine if the data is desired. The answer for that is ussually yes. Then you need to determine how you'll transfer it. Review systems and email platform ussually have their own built in migration services. Some things like blogs, you may need to migrate manually with spreadsheets or CSVs. And that brings up our next tool, and that is Matrixify, which I'll link to in the show notes. Matrixify allows you to bulk import and export much more easily than Shopify's built in CSV functions. And with Matrixify, you can manage more data than with CSVs. For example, in Matrixify, you can export all of your product data with their metafields. But Shopify's CSVs don't allow metafields. Matrixify is a Shopify app that you pay for monthly. You're going to use the app the whole time that you are working on the migration.
Migration of collections isn't always smooth with the migration service. I often don't migrate collections and just build them manually in the Shopify store. I especially do this when the legacy platform is using manual collections as I prefer automated collections. Now creating collections manually doesn't take too much time if you are creating 20 collections. But I've had stores that required thousands of collections. For those situations, I've developed a process for creating collections in bulk using the Shopify API. I'll include a link to documentation in the show notes.
So, now you've mapped out how all of the data is going to migrate from your legacy platform to Shopify. You'll next plan out any data processing that needs to be done. For example, your product descriptions or blog articles could contain links to other pages under the legacy platform's URL structure. So in the Shopify URL structure, those link will be broken. In this scenario, you can use Matrixify to update the links. Let's say the issue is with links in articles. With Matrixify, you can export all of the article's from Shopify. Then using bulk edit and replace, you can update the links from the old URL structure to the Shopify URL structure. During the planning phase, you probably won't be able to predict all of the instances like this. So plan for extensive testing in Shopify. I recommend looking at every product page, regular page and blog article to look for missing images. And check that all of the links in the description or content of these pages work properly.
Hopefully, this gives you an appreciation for the planning and the work that you'll need to do to migrate and update the data. But that's not all of the work for the migration. You'll also need to set up the new store experience. You are probably not just going to replicate the store experience from the legacy store into the new Shopify store. As the new platform has its own way of doing things and you'll have new tools and features available to you. So you are most likely doing a store redesign as part of the migration. And you'll find that once the data is migrated, there are going to be a number of things that need to be setup as the migration doesn't cover them. This includes elements like navigation menus, shipping rules, payment methods and tracking codes. All of these store setup and redesign topics are covered by me extensively in other podcast episodes so I won't repeat them here.
So let's talk about a few more migration-specific things you need to consider.
DNS. I like to come up with the plan for DNS as one of the earliest tasks in the project. I want to do it early as when it goes badly, which doesn't happen that often, it can take a while to get resolved. One of the last steps of a migration is to edit the DNS servers for your domain to stop pointing to your legacy platform and to now point to your Shopify servers. One of the problems that can happen here is that the store staff doesn't remember how to access the DNS server or they've forgotten the user name and password. So I get access to the DNS server and create a DNS entry for test.store-domain.com to point to the Shopify store that I'm building out. That way, I've verified that DNS is working end-to-end and I'm testing the Shopify store build-out on the store's domain instead of the myshopify.com domain. Another issue could be that the DNS is currently hosted by the legacy platform as part of their store hosting package. In this case, the DNS server is going to need to be moved back to the domain registrar like GoDaddy. And this can take some time to get in place. When the DNS server does need to be moved, I try to get that done as soon as possible so it doesn't hold up the project. I've done a whole episode on DNS that I'll link to in the show notes.
Redirects. Let's dig into redirects a bit. You've properly heard the terms 404 and 301. In case you don't already know, here's what they mean.
A 404 is a server error that occurs when a web browser asks for a URL or page that does not exist in the website. Shopify creates what is called a friendly 404 page when this happens. To see your store's friendly 404 page, just type any random text after your URL. For example, I'll type https://jadepuma.com/chihuahua. Once you do this for your store, you'll see your friendly 404 page. It properly says Page Not Found and has your site header and footer.
And that's where 301s come in. A 301 is a permanent server-side redirect. A redirect tells the browser that the page has moved and redirects the browser to the new home of the page. And because this is a permanent redirect, Google will change the URL of the page in its index. This way Google and the customer do not end up seeing the 404 error page. Instead, they see a smooth, consistent user experience. And in the case of Google, the 301s allow Google to apply any inbound links to the old page to the new page instead. Inbound links are important to getting ranked so keeping them working helps your SEO.
Your migration service will create many redirects for you, but it won't create them all. You can see the ones the migration service created in your Shopify admin under Sales Channels > Online Store > Navigation > View URL Redirects. You can also import and export redirects here in bulk.
Our main goal here is to use 301 redirects to eliminate customers from getting 404 errors. The cause for a bulk of the 404 errors is old links to pages where the URL has changed. Those links can come from the Google index, which will update itself over time. Or from other sites linking to you. It would be hard for you to get all these other websites to update their links to your store. And another source of 404s is from your own internal links whether on your website or in emails.
I use Google Analytics to create a list of URLs that need to be redirected, proactively and reactively. By proactively, I mean determining ahead of the store migration what redirects will be needed. Here I use the Landing Pages report in Google analytics. Its found under Behavior > Site Content > Landing Pages. It shows every page that has started a session for your store. I usually set the time frame to the past 90 days. Then I export this report to Excel where I edit the information. So this gets you the list of pages to redirect from. You'll still need to determine where to redirect to by determining the best page in the Shopify store to redirect this traffic to.
For the reactive side of things, this means seeing where 404s are happening once your Shopfy store is live. I have created a Google Analytics dashboard for this that you can easily add to your Google Analytics account. I've included a link to it in the show notes. When I first launch the new Shopify store, I'll have this report emailed to me every day for the first 30 days. That way, I am reactively catching all the inbound links that didn't get covered in the proactive process.
Clean up. When I move my home, I find that I do alot of clean up with my possessions as I am unpacking them. It's a good time, when you have to touch everything, to ask yourself if you need this item. I recommend using a store migration as an opportunity to clean up your store. For example, if you store has been around for over a decade you probably have a lot of content that is out of date. It's for old marketing campaigns or products you no longer carry. Its easy to keep it thinking that you may reuse the content some day. But in my experience, most stores don't reuse content that's over a year old. And all of the unused content makes the store more difficult to maintain especially for newer store staff that don't know the store's history. So please use a migration as an opportunity to clean things up. Delete unused pages, products, articles and images.
The Cut Over. The cut-over is done by changing your DNS to now point customers to your Shopify store. Any change to DNS can take some time to propogate out across the internet. That time ussually takes a few hours. During that time, customers will be going to both your legacy store and your Shopify store. So you'll need to manually update the Shopify store with any purchases that were made on the legacy store. As you are making the DNS changes, you'll want to ensure that you create a DNS setting that points to the legacy store. Otherwise, you won't be able to log into the legacy store admin and see the order activity.
In this episode, I've given you an overview of what it takes to migrate a store from another eCommerce platform to Shopify. It is a ton of work. The benefits of being on Shopify are worth the effort. But it is effort. I'm a big fan on store's doing things on their own. Building out products, adding on app, setting up email, etc. One of the purposes of The Shopify Solutions Podcast is to give store staff the knowledge they need to be able to do it themselves. But I don't recomend that with store migrations. These are so complex and the learning curve is pretty steep. You should hire a Shopify Expert that has experience in store migrations to help you. Please, do not try this at home. As this is a complex project, it is going to cost you some money. I'd recommend budgeting between 5,000 and $15,000 depending on the size and complexity of your store.
Well, that's it for migrating your store to Shopify.
Thanks for listening.