Magento 1 to Magento 2 Migration: A Complete, Non-Developer’s Guide
So, you’ve decided it’s time to migrate your site to Magento 2, but aren’t sure exactly what the process entails…
Well, as someone who has managed over 100 Magento 1 to Magento 2 migrations, I can walk you through a typical migration.
Before even starting to think about the project, it needs to be said that a site migration is best done by a development agency. By doing so you can give visitors the best shopping experience, and empower your company to thrive.
This resource is designed to lay out the steps involved, answer timing questions, and allow you to effectively manage and control the process.
Magento 1 End of Life Issues
If you still are on Magento 1, either using Magento Open Source or Commerce, you likely haven’t noticed a huge difference. Your site didn’t spontaneously go offline or self-destruct, but over time the lack of support from Adobe and not having regular updates will become a huge problem.
Because everyone has been moving on from Magento 1, you’re going to encounter a lot of issues until you do eventually upgrade. And you will have to upgrade at some point because if you don’t, without any of the security or extension updates, your site will become vulnerable to hackers and will not function properly.
Here’s a quick overview of some of the issues you are facing by staying on Magento 1:
End of Security Updates
Magento 1 security risks are definitely the most important reason to switch over as soon as possible, you don’t want your site open to hackers. Patches and updates are constantly coming out that prevent malicious actors from exploiting vulnerabilities, but not for Magento 1.
Common tactics used by hackers are known as web skimming or Magecart, where they are able to steal payment data as customers check out. This is a very real threat, as hackers have been exploiting Magento bugs and security flaws for years.
As time goes on, you’re going to fall further and further behind with the updates. Hackers will see your site as an easy target. Once you have a data breach, your customers are likely not going to be confident in your security, even after you update. You’ll have to do a lot of heavy lifting just to recover from a PR nightmare like a hack. Not only that, but you’ll also have some steep fines to contend with. On average, it costs about $3.9M per data breach.
Magento 1 Hack
It didn’t take too long after M1 End of Life for hackers to swoop in and take advantage of several thousand vulnerable sites.
Read the full story here: Magento 1 Stores Hacked
Losing PCI Compliance
If you’re using a third-party payment gateway on your website, which is something you should be doing, you’re at a lower risk of losing your PCI Compliance than those who don’t. However, a big part of staying PCI compliant is maintaining and securing your website. Once Adobe stopped making updates in June, your Magento 1 site was no longer protected from the most recently discovered vulnerabilities.
MasterCard and Visa both issued warnings recently about security breaches happening primarily on sites that have older versions of Magento and that haven’t been keeping up-to-date with the security updates and patches. Visa explicitly told vendors that if they didn’t upgrade to the newest version of Magento, Magento 2.4 at the time of writing, they will eventually fall out of compliance with PCI standard.
Losing this accreditation is harmful to your company. It lowers customer trust and also means your company could become directly liable for any damages to customers.
Website UX is Going to Get Worse
In addition to security problems you are also facing user experience issues. Security updates aren’t the only thing that ended with Magento 1 EOL, your extensions won’t be supported either. While your site may be fine now, over time without patches, your site is going to get buggy and slow.
Performance upgrades, patches, and other maintenance are needed to keep everything on a complex eCommerce site working smoothly. And if you think you can just hire a developer to keep it all up-to-date for you, well, they’re going to be getting pricier as time goes on.
Most of the good developers have been working on Magento 2 for years and not focusing on Magento 1. You’ll have a much smaller, and shrinking, pool of experts to choose from and they know it. They will be setting their prices accordingly.
Case Study: Migrating from M1 to M2 boosted site performance and enhanced overall functionality
Site Security on M2
All the above problems are taken care of when you migrate. Magento 2 prioritizes security with the following capabilities:
- Magento offers Security-Only Patches. This allows merchants to install time-sensitive security fixes without applying the hundreds of functional fixes and enhancements that a full quarterly release provides.
- One of the most important security features included in Magento 2 is the implementation of default 2-factor authentication (2FA). 2FA is one of the most powerful ways to prevent unauthorized access to Magento administrator accounts.
- Unique admin URL- using an admin URL in place of the standard default URL can minimize exposure to scripts attempting unauthorized access to your site.
- Magento 2 supports CAPTCHA checks related to order placement and payment, allowing for better security and protection against brute-force carding attacks – with CAPTCHA protection, bots will have a more difficult time attempting to use stolen payment information.
- SameSite cookies help limit the sharing of cookie information with third-party websites, and protect user data and security.
- And more than 30 security enhancements have been added to M2 to fight back against Remote Code Execution (RCE)
And with each Magento 2 version that is rolled out, more security enhancements are added.
Who Should do a Magento 2 Migration
It’s important to keep in mind that switching from M1 to M2 is not simply an upgrade, it’s a migration.
Think of it as a re-platforming. It involves migrating data, themes, extensions, and any custom code, for a start.
You don’t necessarily need a developer to convert your data from M1 to M2. But code, design, and functionality cannot be platformed from M1 onto M2 without the expertise of a Magento developer.
Development Cost: every eCommerce site is built with its own needs in mind and therefore no two sites are the same. The cost of migrating is highly dependent on your sites’ complexity and desired functionalities. As a Magento agency that has worked on hundreds of Magento 1 to Magento 2 migrations, we have seen costs ranging from $40,000 to $80,000. But that is just a generalization- there have been sites that cost more and sites that cost less. The only way to give an actual cost estimate for any migration would be to review the site details.
Questions to ask before hiring a developer
How Long Does a Magento Migration Take?
BEFORE YOU START: PLAN YOUR MIGRATION
Planning
1 MONTH
Migration
2-4 MONTHS
QA & Launch
1-2 MONTH
Before any migration begins, you must determine your ideal time to launch. While this may seem like a minor detail, timing your launch is critical to avoid any delays or unnecessary risks.
Start by crossing out your peak season or seasonality within your business. Now work backward to create a reasonable timeline. It generally takes 3-6 months, depending on extensions, additions, and functionality to complete the migration process and go live.
With your launch date in hand, count back at least five months to determine a start date for your migration. (For example, if your slow season is September, plan to start your migrations in April.)
Once you have your launch date set, you’re ready for the first step of your migration: Preparation
Steps to Migrate From Magento 1 to Magento 2
Preparation
Theme Review
Extension Evaluation
3rd Party System Integrations
Data Migration
CMS Migration
Site Launch
Step 1- Preparing for a Magento 1 to Magento 2 Migration
Your store will need to be rebuilt on the new Magento platform. That’s a good thing. It’s a rare opportunity to take stock of your current website and add the functionality you’ve always wanted to.
Take advantage of it. Review your wish list of site features and functionalities.
Before beginning the actual migration process, there are a few measures to take and points to consider:
Clean up your store
Remove unused customer, order, or product attributes.
Fix database issues such as unlinking child’s or missing constraint registries.
Back up Magento 1 store
Make a full backup of your Magento 1 store including all files, folders, and the database and then create a clone of your M1 store. Do not use the live store for the migration process.
Hosting
Although often overlooked, hosting is a critical factor when migrating to Magento 2. While your hosting provider may have served you well on a Magento 1 website, a Magento 2 website has an entirely different set of technical requirements. Staying with your current hosting provider may actually do more harm than good.
Four Reasons to Leave Your Magento 1 Hosting Behind:
- Your Magento 1 hosting account is not configured or optimized for Magento 2. Magento 2 has unique hosting software requirements, such as Composer and additional PHP extensions. Magento 2 is also built to run in a more modern hosting environment with newer versions of MySQL, PHP, and other server software. For a successful launch and strong performance, such as fast loading speeds, you’ll want a hosting environment that’s tailored to your Magento 2 website.
- Your server software isn’t up-to-date: If you’re on an old version of Linux, PHP, or other required server software, you may be suffering from speed and security issues. Rather than try to make your Magento 1 site compatible with these updates, it’s safer and easier to simply launch your M2 site in a fresh environment.
- You don’t want to bring along baggage: Your Magento 1 site has probably been live for a few years. What’s actually lurking in its hosting account may be questionable. Leave the clutter behind and start fresh with an account where you’re not worried about who had access three years ago, and what those strange files are doing in the root directory.
- Your hardware may be outdated: If you’re on a server that’s using conventional spinning hard disks instead of solid state drives, you’re going to be bottlenecking your site. This is your chance to move to a newer, faster environment.
SEO
Replatforming and changing servers are both factors which can impact SEO. If old URLs are not directed to the new pages, you could lose ranking. Google may even penalize you by removing pages from search results and it will take time before your pages are re-indexed.
SEO safeguards to put in place:
- Identify “core URLs” for a successful domain migration.
- Analyze each backlink index (including Moz, Majestic, Ahrefs and SEMRush) to identify any URLs that are recipients of backlinks. All linking pages listed in Google Search Console should be crawled to determine link destination.
- Pull your site pages from your XML sitemap. Anything that won’t exist on the new site needs to be redirected to the most appropriate page. After redirect destinations are determined and implemented on the development site, crawl the site to confirm redirects are properly set up.
- Submit an updated sitemap to Google post migration.
- Review keyword ranking results to determine what pages are currently ranking and driving organic traffic.
- Review canonical tags to ensure duplicate pages are to the main page you want indexed and showing on search.
- Set up Google Analytics and Google Search Console.
Expert Tip: Don’t rush this step. Although you may want to dive head-first into design… don’t. Take your time to evaluate your current site. If you have years of web performance data, use it. Analyze it. Build on it. Use this hindsight as foresight to create a better performing website.
Step 2: Magento 1 to Magento 2 Theme Review
Magento 2 is a completely different platform than Magento 1 so you can’t directly migrate your existing theme to the new system. Your Magento 2 store will have to be built on a new theme.
When choosing a theme keep in mind not all are responsive. A responsive theme will detect browser ID’s and adjust the page layout to fit the view of the device it is displayed on. Magento 2 includes a default theme- “Luma”- that is fully responsive.
You are not bound by Luma and can choose from many options. However, our recommendation is to stick to Magento 2’s default theme as it offers more functionality than most others.
Before deciding on a theme, it’s a good idea to review your store design from the user experience.
Ask yourself these questions:
- What features are never used or are confusing my customers?
- Where am I losing customers in the sales funnel?
- How are my customers searching for products?
- What info do my customers want to see on product pages?
- How do customers use filters to view products?
Step 3: Magento 1 Extension Evaluation
Magento 1 extensions, just like themes, cannot be migrated to Magento 2. You will have to replace your current extensions with a Magento 2 version or use native Magento 2 functionality.
Before just replacing all your current extensions with Magento 2 versions, take the time to evaluate all extensions currently on your Magento 1 site. Pinpoint the extensions you are actually using, any that are outdated or no longer functional, and finally those that may be negatively affecting site performance.
Many extensions can be replaced with native Magento 2 features such as:
- Two-step checkout
- Product attachments
- Elasticsearch
- Amazon Pay
- Drag-and-drop page builder
- B2B functionality
- Customer Review Module
Magento Marketplace offers thousands of extensions for Magento sites. There are far more options for Magento 2 stores than for Magento 1 stores. Extensions can be filtered based on category or searched for based on a specific need. Your development team should be familiar with the extensions in offered in Magento Marketplace and can provide recommendations on best picks.
This is also the time to review any custom code you may have on your site. In most cases, the custom code written for your Magento 1 store should be
compatible with Magento 2. However, since Magento 2’s platform is structurally different, additional coding may be required.This is not a complicated process but is necessary to ensure your custom code integrates successfully with your new Magento 2 platform.
How to choose the right extensions for your site
Expert Tip: It’s best practice to avoid using too many extensions. Using only those that are required for your business will simplify future upgrades and keep your site running smoothly.
Step 4: Magento and 3rd Party System Integrations
Next step is to identify your third-party system integrations. This includes order management system (OMS), customer relationship management (CRM), enterprise resource planning (ERP), point-of-sale (POS), product information management (PIM), and party logistics (3PL).
These systems hold important data and their proper integration is critical to the performance of your site. Without compatible integration, your new website could lack key data points such as information on orders, products, and customers. As well as price updates, out-of-stock notifications, and shipping information.
Direct third party system integration is essential for your Magento 2 site. It will ensure your website is user friendly as well as allow you to maintain control over your back-end operations.
Put simply, it means you ship the right items and hit your guaranteed delivery dates. It gives you more control over new promotions or flash sales while keeping the data synced for accounting purposes. And you’ll resolve any inventory issues and avoid overselling.
Here are some important questions to answer before integrating:
- What systems does my site need to integrate with?
- What data flows do I want to automate between my systems?
- Can I leverage my existing connectors to connect with Magento 2?
- Do I need to add any new capabilities through integration to improve business processes or customer experience?
The good news is Magento can easily integrate with nearly any 3rd party integration, including:
Step 5: Magento 1 to Magento 2 Data Migration
This step in the migration process is perhaps the most time-intensive. You may think it’s as simple as exporting CSV’s from Magento 1 and importing those onto Magento 2. The fact is there are multiple steps with massive amounts of data being inputted and mapped.
Data migration can be broken down into three categories:
- Customer Migration– this will allow your customers to log into the new site and still have all their account information and passwords already saved. To do this you must verify consistency between database structures (tables and fields) of Magento 1 and 2. You must also track the data migration status and create log files, and then execute data verification tests.
- Order Migration- this ensures that both admin and customers are able to access all previous order information as well as any that need to be fulfilled. All orders are matched with the corresponding customer.
- Catalog Migration- this will pull all the product information and images onto the new Magento 2 site. The complete category tree is migrated and then reviewed to ensure it matches the tree from your previous site. All product information is migrated to the new platform including, name, description, category, price, and images.
Catalog Evaluation
Since making modifications during the migration process is far easier than once your site is live, this is a good time to evaluate your catalog:
- Have you defined and entered all your attributes?
- Have you capitalized on setting up related products?
- Can you bundle products?
- Are you taking advantage of up-selling and cross-selling?
- How’s your taxonomy?
If you are aware of what the core catalog management of Magento 2 will allow you to do, you can make the most of the catalog on your new site. Here’s a list of several capabilities that will be available to you:
- Define unlimited product attributes.
- Create simple, configurable, bundled, and grouped products.
- Include downloadable/digital products and product samples.
- Mass-assign a value to multiple products for batch updates.
- Efficiently batch import and export catalog information at scheduled times.
- Create predefined product templates to quickly set up new products with a specific set of attributes.
- Automatically assign products to specific categories based on their attributes.
- Receive notifications when inventory needs to be replenished. Choose out-of-stock messaging and display options.
- Moderate reviews and product tags.
Step 6: Magento 1 CMS Migration
The last step before launching your Magento 2 site is to move all CMS pages and CMS blocks from Magento 1 to Magento 2.
This is typically done in a four-step process:
- The Magento 1 database is cleaned up. This includes the removal of any unused or inactive CMS pages and blocks.
- A clean migration of blocks, pages, and widgets is performed.
- Because Magento 1 and Magento 2 have a different XML format for layout, any CMS content with custom layout updates must be fixed manually.
- The final migration is done again before the site is launched.
Step 7: Magento 2 Site Launch
After completing all the steps above, it’s time for the final step of your Magento 1 to Magento 2 migration- a thorough QA process culminating with the launch of your site.
Your new site should be tested on the latest version of all major browsers to ensure a consistent look regardless of the user’s browser. Testing should also be performed on Windows and Mac desktops and across multiple devices including Apple and Samsung.
Before your site goes live, you should take the time to test out your new fully-functional website to ensure everything is in order and as you expected.
When all QA and testing is completed it’s time for launch! Your site will be down for 2-3 hours while the launch is initiated. Ideally, your development team should maintain constant communication throughout the process. In most cases, new sites are launched without any major hiccups and your customers will be able to place orders as soon as the site is live.