Open menu

Use the expertise of our Magento developers to sell more!

Migrate to Magento 2 Open menu
Magento 2 Migration: The Most Definitive Guide On the Web (Updated for 2020)

Magento 2 Migration: The Most Definitive Guide On the Web (Updated for 2020)

Magento 2 Migration: The Most Definitive Guide On the Web (Updated for 2020)

It has been more than 5 years since the Magento 2 release which generated a huge stir within the developer community. However, despite the fact that the company is going to end support for Magento 1 after June 2020 (this time it is for real), many entrepreneurs are still not in a hurry to migrate to the newest version. 

Magento 2 migration is a painstaking task fraught with various issues. Due to the challenges the process involves, some entrepreneurs are still in doubt whether it’s worth migrating to Magento 2. Well, in point of fact, in some cases, it makes sense to stay on the first version for a while. Nevertheless, this task has to be completed sooner or later.  

Having successfully finished more than 40 major migration projects, we have compiled the most definitive Magento 2 migration guide on the Web. You don’t need to look for other sources, we’ve highlighted all the information you may need to abandon Magento 1.9.x and make use of the second version. 

Read further and you will know:

Use the navigation below to reach the chapter you are interested in:

Why is it Essential to Migrate to Magento 2?

Is Your M1 Store Highly-Customized? Here are Your Reasons to Migrate to Magento 2
1. Reason 1. No More Security Patches
2. Reason 2. Crippling Data Leak Fines
3. Reason 3: Serious Roadblocks or Complete Inability to Build a PWA on Top of a Magento 1 Website

Is Your M1 Store Poorly-Customized? Here are Your Reasons to Migrate to Magento 2
4. Reason 4: Lack of New Functionality
5. Reason 5. Subsequent Technological Lapse
6. Reason 6. Raise of Development and Support Costs
7. Reason 7. New Admin Features and Better Checkouts
8. Reason 8. SEO Improvements
9. Reason 9. Mobile Friendliness

Should I Upgrade to Magento 2 Now?

Magento 2 Migration Duration Breakdown: How Long an Upgrade Really Takes

3 Common Magento Migration Challenges That Have To Be Overcome

The Stages of the Migration Process: How Long Do They Take?
1. Milestone 1. UX and Layout
2. Milestone 2. Mobile/ Tablet/ Desktop Design
3. Milestone 3. Frontend and Backend Work
4. Milestone 4. Data Migration

Magento 2 Migration Checklist: An Actionable Plan to Move Data & Code

Step 1. Assess the Current Environment and Migration Scope
Step 2. Make Up a Customer Journey Map
Step 3. Create UX and UI of the Future Magento 2 Website
Step 4. Develop Custom Functionality for the Magento 2 Store
Step 5. Find Replacements for the Existing Modules or Create New Ones
Step 6. Conduct Magento 2 Plugins Testing
Step 7. Get an Optimal Magento 2 Data Migration Tool
Step 8. Configure the Servers
Step 9. Make Tweaks

Common Issues After Magento 1 to Magento 2 Upgrade and How to Address Them

Magento Performance Issues
Magento 2 Security Issues
Magento 2 UI/UX Issues
Magento 2 SEO Issues

How to Maximize Performance During Magento 1 to Magento 2 Migration

Magento 1 vs 2 Performance: What to Expect
Learn the Key Differences Between Magento 1 and Magento 2
Solve Perceived Performance Slowdown in Magento 2
Add Varnish to Magento 2 to Improve Response Times
Install Elasticsearch to Boost Search Performance
Leverage the Advantage of Native Support and New Server Tech

Final Word

Why is it Essential to Migrate to Magento 2?

When we talk with our potential customers about their need to migrate, they all agree that it’s a good idea and they should be doing it. And yet they don’t. Why?

Well, we’ve found 3 main reasons why store owners don’t rush to migrate their stores right away:

  • merchants fear the cost of migration,
  • they don’t fully understand why they need to move right now,
  • they want things to “just work” and fear change.

All of these are legitimate reasons that need to be addressed. However, unlike most of our competitors, we don’t push every potential client to upgrade if they are not ready yet. At Onilab, we prefer to make value-based considerations of every project, taking into account the level of customization, as well as the current performance of the site. 

Is Your M1 Store Highly-Customized? Here are Your Reasons to Migrate to Magento 2

The fact is that the migration itself will bring you neither better performance than your M1 store already has nor better sales. Besides, M1 stores can work as seamlessly as M2 websites if some adjustments are made. 

As such, some large and middle-sized business owners have already customized their Magento 1 websites so their stores are profitable and have a high conversion rate. So, why do these merchants need this move? 

In practice, highly-customized Magento 1 stores have only three reasons to carry out such a painstaking and expensive process as Magento 2 migration: 

Reason 1. No More Security Patches

E-commerce platform statistics can be all over the place but there are at least 651,000 Magento stores on the Internet. Would you like to take a wild guess how many of them are running on Magento 1.x instead of Magento 2.x?

More than a half.

Now imagine all of these stores lose the ability to get new security updates in one go. Overnight they become one of the most profitable targets for hackers and scammers from all over the world.

This is because any new vulnerability that hackers find from now on will never be officially patched. It will stay with the store forever, making it vulnerable to the same exploit again and again.

E-commerce is already one of the most profitable targets for online criminals. And Magento 1 stores are just too many to not be specifically targeted by hackers (see our Magento security guide or get a complete security audit of your store).

Hackers are not always going for the money. Among other attacks is store defacing, injecting your site with malware to infect customer computers, making your store a part of their DDoS or mail spam botnet, establishing a backdoor for future use, hosting illegal content, etc.

Reason 2. Crippling Data Leak Fines and Inability to Work With Major Payment Systems

Lack of PCI compliance leads to data leaks that take place on Magento 1 websites. And e-commerce stores have a lot of data that hackers are interested in. Among the most frequent attack targets are stolen CC data and personal customer info. Let’s take a closer look at the possible consequences:

  • The leak of CC information will lead to large, potentially crippling fines from Visa, MasterCard, and other payment processors. Depending on the damage done, fines can be as high as $100,000+ or more. There is no upper limit to how much money it can actually cost you.

In addition, payment processors, such as Stripe, will freeze your merchant account during the investigation period, further damaging your bottom line.

  • Customers’ personal data is another major attack target that can lead to loss of business reputation and potential lawsuits. Being on the receiving end of the litigation process is not a fun experience. GDPR laws protecting customers’ personal data use are strict and lead to significant fines (up to €20 million or 4% of the total company turnover).
  • Lack of PCI compliance puts payment security at risk. The Payment Card Industry Data Security Standard is a set of security standards that helps businesses to stay protected from breaches, reduce the risk of fraud, increasing control on cardholders’ data. Being PCI compliant not only gives peace of mind but it also paves the way for working with various payment systems, such as PayPal. In the immediate future, the absence of compliance will deprive the stores of the opportunity to perform transactions via PayPal or other PCI-compliant systems. 

Reason 3: Serious Roadblocks or Complete Inability to Build a PWA on Top of a Magento 1 Website

As the e-commerce industry is constantly changing, one technology replaces the others, and websites become more convenient for users, it is essential to keep up with the industry development. In online retail staying behind can hurt your sales. 

The Magento 2 platform provides great opportunities for e-commerce websites to stay tuned with the latest trends and ensure they deliver the best UX possible.

The second version of Magento has the feature that M1 is lacking, PWA Studio. Progressive Web Applications are considered to be the future of e-commerce. They are extremely fast, responsive, available without an Internet connection, and provide an app-like UX inside a web browser.  

PWA Studio is one of Magento 2’s unique features that uses modern tools and libraries, enabling both developers and merchants to create a fast and engaging user experience. 

You can’t create a PWA on Magento 1 due to the absence of GraphQL compliance, which is essential for building a progressive app. So, if you want a PWA for your site now or eventually, you have to switch to Magento 2 all the same. 

Is Your M1 Store Poorly-Customized? Here are Your Reasons to Migrate to Magento 2

In fact, poorly-customized Magento 1 stores that cede ground to competitors and can boast neither good performance nor high conversions, have a lot more reasons to migrate to Magento 2 apart from those mentioned above. 

Unlike highly-customized Magento 1 stores that need M2 migration mainly for security reasons, for the stores with a low level of customization, this process is something that could not be ignored.  We strongly recommend switching to the latest version of Magento as it offers a huge amount of features available out-of-the-box. As such, the necessity for development services is less, meaning that you won’t have to pay for the developers’ extra hours and save your money. Besides, it is much easier to deal with the second version as everything within the platform is tooled for smooth work.  

Let’s have a look at other reasons to move to Magento 2 (in addition to the reasons stated above):

Reason 4: Lack of New Functionality

Magento 1.9.x is the final version of Magento 1. So in addition to security patches, Magento 1 stopped receiving new feature updates as well. Lack of new functionality in a changing and highly competitive e-commerce environment is a huge setback.

Even though you can easily supplement most features with third-party extensions, in the future it will be harder and harder to find new stuff: independent developers are not going to stick around for long. After all, no one is looking forward to getting stuck on a stagnating platform.

Besides, there are 5,722 third-party extensions on the Magento Marketplace and this number is constantly growing. New extensions and themes get released or updated on a daily basis. But what about Magento 1 extensions? There are still 2,050 of M1 extensions and themes on the Marketplace. Do they get the same amount of attention? Nope.

Got bugs or long-promised features for your favorite extension? Not a chance it will ever get updated again. You are basically stuck with what you have. On the other hand, Magento 2 has a 30% wider selection of themes and extensions.

New extensions will get released for Magento 2, making M1 a desolate and lonely place. Today Magento 2 default functionality gets updated with PWA capabilities, complex warehouse management tools, and other awesome features that will never come to Magento 1. Ever.

Reason 5. Subsequent Technological Lapse

The development and server environment are moving forward too. Right now your hosting provider has to support dozens of configurations to ensure that every website and store runs on its recommended software.

This includes outdated PHP and MySQL versions, certain modules and solutions that are out of date or no longer supported by the development team. Even though right now it might not seem like a huge deal to you, as time goes on, you will notice that your hosting provider will also urge you to move to a more recent server environment.

Reason 6. Raise of Development and Support Costs

The effort to maintain an aging environment and platform is something you have to keep in mind at all times. As new technologies replace old ones, you will find it harder and harder to find skilled developers that are willing to work on an outdated project using an outdated technology stack.

Right now Magento 1 might seem pretty recent but further down the road, and especially this year when the official support ends, Magento 1 will feel older every day.

Take a look at our Magento 2 pricing guide to see how much it will cost you to run the new store on a daily basis.

Reason 7. New Admin Features and Better Checkouts

Magento 2 backend not only looks better, but it also works better:

  • new data safeguards to help multiple users work on the same content simultaneously,
  • native video embedding capabilities,
  • reworked Admin Panel UX and menu logic,
  • step-by-step New Product menu,
  • improvements to grid view for products.

Throughout its lifetime, Magento 1 had to deal with a sluggish and complicated Checkout process. The Magento 2 team managed to rethink how the Checkout should work. They made it faster and simpler. Of course, you could customize your Magento 1 website in such a way to make the checkout better. However, this process requires much time and effort.  

Reason 8. SEO Improvements

Magento 1 gets a bad rap for how it handles SEO, especially how it handles duplicate content and meta tags. The Magento dev team learned their lesson and later made a lot of improvements in how Magento 2 deals with duplicate content. It has become more consistent, Google-friendly, and just easier to cope with (see how to improve it even further in our guide here).

Magento 2 learned how to improve meta tags too. They are now present on all product pages natively (no need to use SEO extensions). By all means, Magento 2 will certainly make an SEO-specialist’s work much easier.

Reason 9. Mobile Friendliness

No need to say mobile is on the rise. The number of mobile users in 2018 reached 4.57 billion as per Statista and is estimated to grow up to 4.78 by 2020.

It is, therefore, crucial that your online store runs perfectly on both desktop and mobile devices. Magento is tailored to run equally well on all phones and tablets and offers an easy experience and properly sized landing pages for all mobile users. 


All those Magento 2 benefits are available out-of-the-box. So, for poorly-customized websites, it makes sense to make use of them by migrating to the second version rather than paying for extra hours when trying to customize their old Magento 1 store. 

Should I Upgrade to Magento 2 Now?

To answer this question, you have to understand how migrating to Magento 2 will affect your business and how much it will cost.

Answer these questions:

  1. Do you lack any features that Magento 1 doesn’t have? Magento 1 is a long-established platform with plenty of extensions, themes, and ready-to-use solutions that you can implement right away. Unfortunately, core Magento will not receive new features after 2020. In addition to that, Magento extension developers will not update their products to add new features. Your only alternative is developing the required functionality yourself.
  2. Will you migrate to Magento 2 eventually? Most businesses will move to Magento 2, they just want to delay this move for some reason. But you have to understand that staying with Magento 1 is going to cost you a lot of money in terms of support and development. 
  3. Does your store design look up-to-date? If your design patterns are outdated and don’t meet online retail requirements anymore, it is reasonable to update your website design on Magento 2, eliminating a huge amount of work.
  4. Are you satisfied with your store’s performance? The illusion of stability was the downfall of a lot of successful businesses. Move with the times.
  5. Do you want to implement new features in the future? Consider investing that money into your new Magento 2 store which will be much more future-proof.
  6. Do you feel concerned about your store and payment data security? You should be. Magento 2 is now more secure, less buggy, and more predictable than Magento 1. Sadly, the focus of the community is long gone and is now on Magento 2. M1 gets less attention every year which means fewer bug fixes, worse security, more liability for you as a business that handles customer data. Besides, in the long run, it will be impossible to use PayPal checkouts, as well as the checkout of other PCI-compliant systems, if your Magento store hasn’t got this feature in the toolkit. 

If you’ve answered YES to any of these questions, it’s better to upgrade sooner rather than later. The longer you wait, the more expensive it becomes. You get fewer developers who offer Magento 1 support, less hosting options for stores that need older PHP versions, more security liabilities, etc.

Magento 2 Migration Duration Breakdown: How Long an Upgrade Really Takes

The duration of your migration will heavily depend on:

  • the number of extensions,
  • design and theme requirements,
  • additional features,
  • third-party extensions,
  • the number of store views.

Invest in the move now to be ready for the June 2020 changes in time. Mitigate large data leak and credit card fines with a timely upgrade from an outdated platform.

Read further to look through our M1 to M2 migration checklist, examine all possible challenges, and prepare for the migration. 

In 4 years, we’ve successfully finished 42 major migration projects and discovered quite a few patterns. First, let’s see which 3 challenges can slow you down and even become roadblocks during the migration progress. After that, we’ll look at the 4 main migration steps and why they can take so long to complete.

3 Common Magento Migration Challenges That Have To Be Overcome

All steps of the migration can be challenging but most of the time we have to deal with 3 most common challenge types:

       1. Architectural challenges.

Magento 1 was released in March 2008. That’s 12 years ago. In software terms, that’s ages. Since then, PHP alone went through 2 major releases, new libraries and technologies have appeared and replaced what Magento 1 uses.

Magento 2 is a completely different platform. The team who released it in 2015 reworked a lot of Magento 1 codebase, creating a weird mix of old and new pieces that are extremely different from what Magento 1 is.

       2. Compatibility challenges.

Magento 2 extensions are not compatible with Magento 1 and vice versa. There are so many differences, that you basically need to build a brand new extension from the ground up. As you might imagine, building a new piece of software is both time-consuming and expensive. And unless you can find the same extension at the Magento Marketplace, you are out of options: you have to build a new extension.

And it gets even more complicated: the more extensions you have, the more compatibility conflicts you get. Sorting them out is a long and expensive process that involves testing, debugging, and more testing.

       3. Migration team challenges.

Let’s face it. Magento 1 and Magento 2 are so different they might as well be two separate products. The development team reworked so many things in Magento 2 that an experienced Magento 1 developer will have to learn how to code for Magento 2 almost from 0.

This also means that it’s hard to find a competent Magento migration team. These developers need to know both Magento 1 and Magento 2 extremely well, understand how both platforms work, and where their differences are. 

The Stages of the Migration Process: How Long Do They Take?

There are 4 major milestones you need to reach in order to migrate from Magento 1 to Magento 2:

  1. UX and layout,
  2. mobile/tablet/desktop design,
  3. frontend and backend work,
  4. data migration.

Milestone 1. UX and Layout

create magento layout

You are going to migrate to a new store. This is a great time to experiment and improve: work on your store’s user experience, get more visibility for your bestsellers and most searched for items, rework product categories, move the UI elements, and in general switch things around.

Look through the analytics to see where you need to make changes:

  • rework your layout in order to improve usability,
  • improve search to allow users faster access to key pages,
  • boost conversions in underperforming categories,
  • direct customers towards certain products or categories.

Migrations take a lot of time and effort specifically because UX analytics and changes are time-consuming and hard to predict. It takes a lot of time to find and fix UI issues, discover flaws in the sales funnel, approve and implement all the changes.

create new ux

Creating a proper mobile/tablet user experience takes a lot of effort simply because of how different users interact with your store on different platforms.

What steps will be needed? Because even with minimal changes we still need to:

  • create separate wireframes for mobile, tablet, and desktop layouts,
  • review store structure and make changes to UI elements,
  • rework navigation logic and the main menu for all 3 platforms.

In terms of raw hours, we are looking at 80-250 hours of UX team effort. The difference between the two values comes from the number of changes you want to make. For example, it’s easy to reach the 250-hour mark when you add in other important goals:

  • analyze the sales funnel and review underperforming sections,
  • make optimizations for Checkout and search capabilities,
  • develop mobile-first features and functionality,
  • implement personalization and remarketing improvements.

Can you make it shorter? Yes, if you do your homework before you contact the development team, you can easily cut the time from 250 to 120 hours or less. The key here is to know exactly what you need, including which changes you want to make and what they are going to look like in the final version of the UX.

Milestone 2. Mobile/ Tablet/ Desktop Design

a customizable magento theme

Customizable themes offer just the right balance between the available options and your actual needs. Just bear in mind that because of the sheer amount of customization code they can slow you down.

Even if you just want your new store to look the same as the old one, there’s still a lot of work to be done. You have to understand that Magento 1 and Magento 2 are extremely different platforms and it’s impossible to just move the old design to the new store without work.

It takes time and effort to carefully export and then import all the graphical elements from one store to another. One of the reasons we recommend that you create a brand-new design is that the amount of effort to simply move the design and to create a new one is comparable here.

You will, of course, save some time if you only want to migrate without changing anything – but it’s not the best option. During the last few years eCommerce has changed a lot:

  • stores get rid of bland or white backgrounds in favor of images that occupy huge parts of your screen,
  • stock photos or just modest-looking images get replaced with highly recognizable photos of brands and their products,
  • these images not only look good, they are designed to produce a bright emotional response from the customers,
  • new store design is not afraid to experiment with extremely bright colors, animations, and eye-catching styles.

There are still a lot of stores that have the old look but there’s no reason to be one of them.

What steps will be needed? Designing a new look takes time and a lot of iterations to get it right. Usually, we offer at least 2 versions of your new store.

Even though that’s not a lot, preparing even two separate themes is time-consuming. Note that you also need to create the design for your mobile and tablet views. Expect this stage to last 80-250 hours depending on the workload.

Can you make it shorter? Yes, if you take a ready-to-use theme from the Magento Marketplace or Theme Forest. Just keep in mind that there are drawbacks to that approach.

These themes are highly customizable and are designed to work with a ton of different store layouts. Because of this, they tend to have a lot more code which makes your store slower. So you basically get a better deal but lose performance speed in the process.

Milestone 3. Frontend and Backend Work

This milestone will take the bulk of your migration budget. This is where you spend 336-672 hours (2-4 months worth of development time) on the following:

  • find and install third-party extensions for your store,
  • check if they are compatible with one another,
  • create new extensions for the functionality you can’t find on the Magento Marketplace,
  • test how they work together and fix incompatibility issues,
  • implement any other frontend and backend changes, make sure the store works well on all devices.

Frontend and backend work is all about applying the design that we developed, then ironing out the compatibility bugs, optimizing old extensions or developing new ones.

Even though it’s the longest milestone of all, it’s hard to precisely measure how much time you’ll need to implement all frontend and backend changes. The longest migrations can last 8-9 months, sometimes more.

What steps will be needed? When we try to figure out how much time it will take to create strong frontend and backend functionality, it all depends on what you need from the store:

  • extensions take a lot of time to develop, install, and test for compatibility,
  • complicated design layout requires skilled and dedicated frontend experts to apply it correctly on all versions of the store,
  • Magento backend tasks depend on how many changes you need,
  • you also have to figure out how to build in all the necessary integrations,
  • and then optimize the store for speed and security.

Can you make it shorter? Yes. Frontend and backend development depends on the number of third-party extensions you need to install in your store, the complexity of the Magento theme, the number of customizations and integrations.

The less customized your store is, the less time you will need to spend to migrate it. It’s completely possible to complete the backend and the frontend parts of the store in 2-3 months.

Expect to spend around 100 hours dealing with extensions and the rest of the time working on frontend layout, backend functionality, and various bug fixing.

Milestone 4. Data Migration

The data migration milestone consists of five data categories that need to be moved in order to complete the process:

  • customer data,
  • product data,
  • orders data,
  • store settings,
  • third-party extensions data.

Each of these 5 entities takes about 8 hours to migrate. It all depends on the number of custom fields that you have in them. The lower the number – the faster you can move them.

What steps will be needed? Each new custom attribute adds to the complexity of the migration. You have to manually take care of their migration process in order to correctly move them from one store to the other. The biggest challenge is how you handle your custom data. Migrating a standard account information table takes one hour tops. Moving the same amount of heavily customized data with the ability to use that customized data in the future will amount to 8 hours of work. Which brings us to 20-40 hours of moving data from Magento 1 to Magento 2.

Can you make it shorter? Yes. If you decide to leave something behind. Or if you don’t import anything and just get an empty store. Maybe you are fine with losing some data from 10 years ago, who knows. After all, it’s up to you. Do you need 5-year-old Magento 1 logs? Maybe it’s cheaper to fill the store by hand. You have options here.

Magento 2 Migration Checklist: An Actionable Plan to Move Data & Code

Migration to Magento 2 is considered to be a complicated process that involves the collaboration of different people: a project manager, designer, developer, QA engineer. We’ve decided to help you a little and created a detailed migration checklist.

With the checklist, we will tell you how the migration process is organized at Onilab, what stages it includes, and how to handle every milestone. Feel free to go through each point and tick them off as soon as you are done. This way you can be sure that you don’t miss anything important.

Step 1. Assess the Current Environment and Migration Scope

First, we need to make sure that both the client and our team understand the complexity of the task ahead and get a clear picture of the amount of work. For this purpose, we analyze the migration scope by estimating the following factors:

  • the current technical functionality of the website (third-party extensions, integrations with different ERPs and CRMs, custom themes, Magento core customizations, etc),
  • the size of the store, as well as the number of storefronts and domains in use,
  • the functional changes that have to be made during migration to Magento 2.

Besides, in order to provide an explicit evaluation of the migration cost to our client, we need to analyze the effort and time the engaged specialists would spend migrating their M1 store to Magento 2. For these purposes, we estimate how much time it takes to:

  • develop code of the new Magento 2 website,
  • develop a new design of the store,
  • build up custom functionality from the ground up or to find proper replacements for the existing third-party modules.

All those factors enable us to provide a rough estimate of the migration cost to our client.

Step 2. Make Up a Customer Journey Map

A customer journey map is a visualization of every experience a customer has with a store from initial engagement to a long-term relationship. The major purpose of customer journey mapping is to understand what stages customers go through and improve the quality of their shopping experience, ensuring both smoothness and consistency at all touchpoints and across all channels. 

Customer mapping is one of the most important stages of the migration process. The information collected on the map helps our designers and developers to minimize negative customer experience and deliver a better product.

Basically, the map includes the following information:

  • the definition of a potential (target customer) of a Magento website,
  • a typical customer lifecycle,
  • touchpoints a customer uses to interact with the company,
  • pain points (points of friction)
  • methods of resolving the friction.

Some companies ignore this stage claiming this method is old-fashioned. However, at Onilab, we consider mapping to be one of the most important milestones of Magento website development. When our potential clients turn to us with migration issues, this means that they already have a website on Magento 1 with the customer experience off and running. As such, we can map this experience to correct mistakes and deliver better UX on the new Magento 2 store. Contact us to get a customer journey map template for e-commerce. 

Step 3. Create UX and UI of the Future Magento 2 Website 

So, the information we’ve collected during the customer journey mapping will be used by our designers to create UX and UI for the new website.

Our clients are free to use one of the out-of-the-box design templates provided by Magento 2 if it meets their requirements. Choosing this way, you can drastically reduce front-end UX/UI design efforts and costs. As well, the designers can customize the existing theme or develop a new one using a combination of custom templates, layouts, styles, or images.

Depending on the points of friction, as well as based on other data, our designers decide what changes should be made in both UX and UI. This can be improving search to provide the users with fast access to target pages, reworking the entire layout for better usability, or whatever.

Significantly, during the process of creating design patterns for a Magento 2 store, our designers consult with the developers to obtain their approval in order to make sure that the new design is convenient to deploy and beneficial for the client. 

We provided a detailed outline of the process of creating UX and UI in the previous chapter.

Step 4. Develop Custom Functionality for a Magento 2 Store

Developing custom functionality for a new Magento 2 store is a good share of the work. On this stage, hiring experienced Magento developers is a “must” to minimize the risk of wasting time on fixing the bugs that appeared due to the work of ham-handed “specialists”.

Even though a major part of the code has to be created manually from scratch, some custom code can be migrated from Magento 1.x to Magento 2.x. To make the process easier, you may use The Magneto Code Migration Toolkit that provides scripts for converting custom M1 code to M2 by handling some of the most time-consuming tasks and reducing the work involved with code migration. 

For instance, the toolkit covers the migration of the following aspects of code:

  • Layout XML files
  • Config XML files
  • PHP files
  • Module directory structure. 

The toolkit converts these aspects to the structure and format recognized in Magento 2. Even though it significantly reduces the amount of work involved in the code migration, one still needs to manually edit some of the generated files. 

Step 5. Find Replacements for the Existing Modules or Create New Ones

When you migrate from a completely different platform, it’s hard to find identical functionality readily available for your store. Be prepared to make a few compromises.

Looking at your existing custom functionality, you have 3 main options in terms of alternatives:

  • extensions that have both M1 and M2 versions in the Magento Marketplace (most Magento 1 extensions have M2 alternatives although the functionality itself can be different),
  • extensions that are exclusive to the previous platform but have third-party alternatives,
  • completely unique customizations that need to be rebuilt for the Magento 2 platform from the ground up.

We encourage you to do a full inspection of all the extensions you have beforehand. Make a list of all the customizations and rank them in the order of priority. Put all extensions into 3 columns ranging from “Essential” to “Nice-to-Have” to “Unimportant”.

Moving from one platform to another is a great opportunity to declutter and clean your store. Try to drop as many unnecessary extensions as you can to both cut migration costs and improve future performance.

Step 6. Conduct Magento 2 Plugins Testing

When we’ve found the proper replacement for the existing functionality (or developed new modules), it is time to verify if they work as expected, without compromising Magento 2 performance and functionality. Magento 2 modules testing is a complex process that involves the engagement of QA engineers and uses specifications or other inner documents. 

At Onilab, this process includes the following stages:

  • testing the functionality of every extension,
  • testing Magento 2 features which can be affected by the modules,
  • load testing (some plugins will potentially deal with a huge amount of visitors and data; as such, it is important to check the response time of the pages with high traffic on the frontend and how these plugins handle big amounts of data on the backend),
  • cross-browser and mobile checking,
  • checking extensions compatibility with other third-party extensions,
  • standard security testing,
  • testing in production mode.

Step 7. Get an Optimal Magento 2 Data Migration Tool

Data migration is the next logical step. Products, users, order history, and custom product types all have to get imported from the old store.

We recommend that you use the standard Magento 2 data migration tool to move your store from Magento 1 to Magento 2. The tool will also be useful for migrations from other platforms to Magento 2. Although keep in mind that you’ll have to write custom logic to correctly move and merge data from the source platform.

It’s capable enough to deal with most migration scenarios. Although you’ll have to make changes to the code in order to move any custom data: tables or columns that are not a part of the Magento 2 standard dataset.

Third-party extensions often create lots of custom data to store new product parameters or other data entries. It’s your decision whether to move that data to the new platform or leave it behind. If you decide to move it, though, take a look at this handy M1 to M2 code migration tool.

Please, feel free to take a look at the official Magento website where you can read how to migrate data to Magento 2 without breaking anything. 

Step 8. Configure the Servers

One of the most important parts of the development phase during the Magento 2 migrating process is the server configuration. Because the second version of Magento is considered to be slower than the first one, some caching tools are essential to provide good performance. 

As such, we recommend Varnish, a tool that creates an extra layer between the web server and the user, it’s used to cache frequently requested files into RAM, prioritizing those files that are requested more often than others. As RAM is faster than an SSD, it is able to return cached files in a second. In other words, Varnish accelerates HTTP traffic, helping the user to see the page almost instantly, instead of long awaiting. Varnish can increase your site speed a thousand times.          

In fact, Varnish, when combined with a CDN, can contribute even more to Magento 2 performance improvement thanks to cached images. 

While Varnish is used to cache HTTP requests in RAM, Redis, another caching tool, does the same for database objects to speed up dynamic database-driven websites. In layman’s terms, Redis is a caching tool for the backend of a Magento store. The tool makes your Magento 2 store faster and more reliable since it optimizes Magento session storage. If you don’t like Redis for some reason, use Memcached as an alternative, these tools are interchangeable. 

Step 9. Make Tweaks

The launch is not the end of development. Often you’ll need to make time for various tweaks, bug fixes, and feature requests from the stakeholders. Also, remember to put aside some resources for feedback and technical emergencies.

In addition to bug fixes, integrations with other systems are often pushed to the after-launch period. This is the time when you need to link Magento 2 with different CRMs, ERPs, and internal corporate software that aren’t considered vital for the initial store launch.

Common Issues After Magento 1 to Magento 2 Upgrade and How to Address Them 

Moving from Magento 1 to Magento 2 can be a challenging project. However, after you’ve migrated your M1 store data, modules, and custom functionality, you still have a lot of work to be done. It’s easy to underestimate the challenges you are up against after moving from Magento 1 to Magento 2.

Magento Performance Issues

The latest version of the platform has its own share of quirks and unclear mechanics that can turn into a stumbling block if you have no idea what you are doing. Performance issues are common after an inexperienced team moves the store from M1 to M2.

Some of the most popular challenges our clients face include:

  • insufficient speed in Magento 2 Admin areas,
  • unacceptable search speed,
  • unoptimized cache configuration,
  • inefficient database setups,
  • poor cron schedules,
  • low store reliability, etc.

Solution: just looking at this list can be intimidating. But it absolutely doesn’t have to be. The Onilab team created a comprehensive Magento 2 Performance Guide to walk you through all the rough patches of Magento 2 optimization. It’s a helpful read that’s complete with code examples and actionable instructions that you can use right away.

Setup Redis and Varnish cache, optimize and tweak your JS code, work on your media delivery, include smart scripts to improve perceived performance, and more. We’ve compiled the most efficient Magento speed optimization techniques to boost your store’s speed.

Magento 2 Security Issues

The Magento 2 default setup offers the best level of security. Actually, this is one of the main reasons to move from Magento 1 to Magento 2 for stores with different levels of customization.

In fact, you don’t need to configure your new Magento 2 store to secure it more as all the features for advanced security (such as enhanced password management or defense from XSS-attacks) are already embedded in the default functionality of the platform. Nevertheless, we’ve included security issues in our list of Magento migration challenges. Why?

The point is that the main security threat for Magento 2 websites is third-party modules. Some custom modules can be real roadblocks for both website performance and security because of pivotal issues that’ve occurred due to unoptimized code. 

Solution: first of all, in order to prevent the loopholes in Magento 2 modules, we recommend purchasing them from trustworthy third-party vendors or addressing Magento experts to develop custom modules for your store. From this perspective, you will be able to eliminate the risks of installing unoptimized extensions. 

Besides, you can fix the critical issues overlooked by developers by performing debugging throughout every extension using a debug tool of your choice. 

For more information on your store security read our comprehensive Magento 2 security guide or get a complete security audit from our security devs. These 20 easy-to-follow security tips will make your Magento 2 store a real fortress of data.

Magento 2 UI/UX Issues

Out of the box, Magento 2 offers a feeble user experience. The default M2 theme, “Luma”, is far from being personable and attractive. Even though the skin was designed to be mobile-friendly, it was primarily made for demonstration purposes. Besides, default Magento 2 is still lacking some crucial shipping and other features. 

As such, if you want your store to look stunning, as well as be user-friendly and conversive, you will have to make unique customization to your website. This includes buying a new Magento 2 layout and some modules to make your navigation perfect and to improve user experience. However, buying an expensive theme, as well as installing all third-party functional modules, will give you no guarantees of great UX/UI. 

Solution: the only solution here is to think through the UX/UI of your Magento 2 store before the execution phase. Do not ignore customer journey mapping and consult with professional designers to make sure that a function or theme that you are going to apply corresponds with your target audience requirements. 

Magento 2 SEO Issues

Upgrading Magento 1 to 2 is a serious challenge that requires a lot of hard work in the SEO department. The biggest questions here are:

  • loss of PageRank due to the redesign and changing URLs,
  • lack of redirects that point from old to new pages,
  • duplicate content due to bad robots.txt screening (filters, sorting, categories, etc.),
  • localization and multi-store SEO issues.

Solution: don’t underestimate the importance of SEO in your store migration. Be prepared that you will lose positions in Google results. It’s inevitable with a large-scale store. Your goal is to mitigate the damage and rebuild as fast as possible.

Read our Magento duplicate content guide on how to deal with the issue, create a robots.txt file that actually makes sense, and improve user behavior in your store.

How to Maximize Performance During Magento 1 to Magento 2 Migration

One of the obstacles of migration is the spike in resource needs. Magento 2 can be several times hungrier for your server resources than M1. While your real system requirements will heavily depend on your usage pattern, we can at least shape your expectations a bit.

Take a look at the specs. PHP M1 – 512 MB. PHP M2 – 2 GB. An x4 growth!

It doesn’t have to be this big, of course. But depending on the functionality (installed extensions and customizations, traffic and store layout, the number of SKUs and product structure) expect the load to rise by at least 30-40%.

So a store that used to work on several servers could migrate to a 3-server setup where for Magento 1 you could do just fine with a simpler hardware solution.

Magento 1 vs 2 Performance: What to Expect

Magento 2 is a platform that was a direct descendant of Magento 1. The development team behind Magento 2 made the decision to build the next version based on the same functionality, only with more advanced design features, scalable architecture, and modern technologies.

Magento 2 is more focused on performance and scalability than Magento 1 which means it’s more suitable for higher loads, featuring better indexing, built-in support of popular caching solutions, various improvements in database and code functionality, faster checkout, and an emphasis on the mobile experience.

Learn the Key Differences Between Magento 1 and Magento 2

One of the distinct differences that shape Magento 1 vs 2 performance is system requirements. These are important because technology defines the breadth of solutions and what you can do to your store.

Magento 1 starts to show its age. It was first released in 2007 which means it’s already 13 years old. In spite of its venerable status, Magento 1.9.x still goes strong and the development team promises to support M1 with quality and security updates until mid-2020.

But the eventual halt of development means Magento 1 will not support new server technology and remain kind of stuck in the last supported versions.

While this is not a decisive factor, it’s something you should keep in mind.

Technology Magento 1.9.x Magento 2.3.x
Web Server Apache 2.x Apache 2.2 or 2.4+
Nginx 1.7.x Nginx 1.x
PHP Version 5.4, 5.5 and 5.6, later versions patched to PHP 7 7.1.3+ and 7.2.x
Database MySQL 5.6 (Oracle or Percona) MySQL 5.6 and 5.7 (also compatible with MySQL NDB Cluster 7.4.*, MariaDB 10.0, 10.1, 10.2, Percona 5.7, etc.)
Cache Management Redis


Varnish version 4.x or 5.2

Redis 3.2 (compatible with 2.4+)


Search Apache Solr (M1 EE only) Solr 4.x (native support ended with M2.1)

Elasticsearch 5.2.x and 2.x

From the get-go, you can notice a few brand new technologies that Magento 1 doesn’t have. The most important here is Varnish.

Don’t get us wrong. Varnish is still available for Magento 1 but it’s only supported through a third-party module (whereas Magento 2 supports Varnish natively from the standard configuration menu).

Magento 2 is better optimized to use Varnish as a caching solution. Tight integration with Magento 2 offers developers a simpler approach to turning Varnish on. Using Varnish for Magento 1 is more cumbersome and involves a more convoluted installation process.

Improperly installed Varnish introduces new stability risks to the system which means Magento 2 is a winner here since M2 installation is way easier.

Solve Perceived Performance Slowdown in Magento 2

M2 performs better than M1 because of access to Varnish, Redis, and even the default full-page cache.

But despite all this, some long-time Magento users still complain that Magento 2 feels sluggish compared to Magento 1. While this is not actually true, it shows why perceived performance is important for user experience.

Depending on the configuration, a Magento 2 site can be 2-3 times faster than a similar Magento 1 store.

The issue is in the fact that Magento 2 loves its frontend dynamic AJAX code. And AJAX will display spinning wheels anywhere on the page where the content is not yet ready for display. This constant spinning can give users the impression that the site has slowed to a crawl when in fact it’s ready for interaction.

A quick workaround would be to change how Magento 2 shows your customers what it’s doing. Instead of using an out of the box busy wheel for every operation, Magento 2 can just pop in new content into the page once it’s ready.

A good addition to this content load approach could be the introduction of a lazy loading pattern. Lazy Loading uses placeholders or blurred pictures instead of real images to improve user experience.

Add Varnish to Magento 2 to Improve Response Times

In stark contrast to Magento 1, Varnish installation for Magento 2 is relatively easy. Varnish as a solution is well integrated into Magento 2 and even gets a recommendation from the Magento development team.

We also advise that you use Varnish instead of Magento’s full-page cache that’s set as the default solution.

Compared to Magento 1 Varnish setup, all you need to do is make sure Varnish is installed on your server, then go to your Magento Admin panel and switch to Varnish cache.

Even though Varnish for Magento 2 is way easier to set up, you still need to be careful:

  1. Take into consideration cacheable=false blocks which will hurt your web store if configured incorrectly
  2. Make sure content with undefined TTL is taken care of as well.

You can turn Varnish on at Stores > Configuration > Advanced > System > Full Page Cache.

Install Elasticsearch to Boost Search Performance

Elasticsearch is an extremely useful search acceleration tool that has only grown in popularity since the M1 release. For Magento 2, you no longer need to purchase a separate extension for it.

Magento 2 supports Elasticsearch natively while for Magento 1 you’ll have to buy a third-party extension to use it.

Native support has 3 main advantages:

  • Native Elasticsearch is obviously free, which is nice
  • Native support means Elasticsearch will update with Magento, no need to worry that something breaks along the way
  • You enjoy enhanced stability with fewer compatibility issues with core Magento

All you need to do is install Elasticsearch, then go to Stores > Configuration > Catalog > Catalog > Catalog Search and turn it on.

Elasticsearch is an integral part of Magento 2. Learn how you can install and configure it on the official Magento 2 portal.

Leverage the Advantage of Native Support and New Server Tech

Magento 2 works much faster with PHP 7 because Magento supports it natively. Magento 1 also got PHP 7 support in version 1.9.3 but it was as an upgrade from the initial PHP 5.x. So for Magento 1, you’ll need to install later-version patches to offer the same functionality that Magento 2 already has out of the box.

When we compare MySQL 5.6 vs MySQL 5.7, it’s preferable for Magento 2 store owners to make the leap to the newer MySQL. Version 5.7.x gives Magento 2 all the benefits of the gradual performance advantages of the new optimizer.

Magento 1 is either locked behind the aging MySQL 5.6.x or needs a thorough migration process with potential troubleshooting along the way.

If you want to boost your Magento 2 further, we recommend you take a look at our Magento 2 speed guide.

Final Word

There you have it, the most definitive Magento Migration Guide on the Web. The goal of this article is to inform you about the scope of a Magento 2 migration process and to direct you to a thorough guide where you can learn more about a specific issue.

And if you need help with a certain migration issue or would like to ask us a question about our Magento 2 migration experience, we’d be glad to help!

Related Articles

Magento tips from real projects
Magento tips from real projects
CALL US 24/7:
& asia
+61 (02) 8005-7494