Quick answer: A Magento 2 migration is not a simple upgrade. Your data (products, customers, orders, settings) can be moved with Magento’s official Data Migration Tool, but your theme, extensions and custom code have to be rebuilt or replaced, because Magento 2 has a different architecture. Plan it like a new build: audit what you have, decide what to keep, rebuild on a staging site, move the data, protect your URLs and rankings, and only then switch over.
Magento 2.0 became generally available in November 2015, and Magento 2.1 followed in June with improvements to the admin, content staging for Enterprise Edition and better performance. Many store owners running Magento 1 are now asking the same question: when should we move, and how much work is it? Magento has committed to supporting Magento 1 for some years yet, so there is no need to panic. There is, however, every reason to start planning, because a migration done in a hurry is where stores lose sales and search traffic.
Why Magento 2 is a rebuild, not an upgrade
Moving from one Magento 1 version to another usually meant running an upgrade script and fixing a few extensions. Magento 2 is different. It was rewritten with a new structure:
- New code architecture. Magento 2 uses Composer for dependencies, dependency injection, plugins (interceptors) in place of many class rewrites, and a different module layout.
- New front end. Themes use LESS for styles, RequireJS for JavaScript and Knockout.js in the checkout. A Magento 1 theme cannot be copied across.
- New extension format. Extensions written for Magento 1 do not run on Magento 2. Each one needs a Magento 2 version from its developer, or a replacement.
- Updated technical requirements. Magento 2 runs on PHP 5.6 or 7.0 and MySQL 5.6, and works well with Varnish and Redis for caching.
So the honest answer to “how hard is it?” is: about as hard as building a new store, except that the data comes with you.
Step 1: Audit your current store
Before anyone writes code, write down what your store does today. This is the most useful hour you will spend on the project.
Extensions and custom code
List every installed extension and every piece of custom code. For each one, note:
- What it does and whether you still need it
- Whether a Magento 2 version exists, from the same developer or another
- Whether Magento 2 now does the job natively (layered navigation, full page cache and some checkout features are much better out of the box)
Most stores find that a good share of their extensions can be dropped. Older stores often have modules that were installed for a promotion years ago and never removed.
Data and settings
Check the size and health of your catalogue, customer list and order history. Look for duplicate products, broken attributes, abandoned test accounts and unused store views. Cleaning these before the move is much easier than after.
Integrations
Note every system the store talks to: ERP, accounting, stock feeds, shipping, email marketing, marketplaces and payment gateways. Each integration needs a Magento 2 connector or a rebuilt link. If you rely on custom connections, ask whoever built them whether they can be rebuilt against Magento 2’s REST and SOAP APIs.
Step 2: Decide Community or Enterprise, and hosting
Magento 2 comes in Community Edition (free) and Enterprise Edition (licensed, with extras like content staging, advanced customer segments and support). Most small and medium stores run happily on Community. If you are already on Enterprise, check your licence terms for Magento 2.
Hosting matters more with Magento 2. It is heavier than Magento 1 and needs a server set up for it: PHP 7.0, enough memory, Varnish for full page caching and Redis for sessions and cache. Shared hosting is rarely suitable. Budget for a proper VPS or managed Magento host.
Step 3: Build the new store on staging
Set up a clean Magento 2 install on a staging server. This is where the real work happens.
Theme
You have two options:
- Start from Luma or Blank. Magento 2 ships with these themes. You can build a child theme on top and restyle it to match your brand.
- Buy a Magento 2 theme. The marketplace is still growing, so choice is smaller than for Magento 1. Check that the theme is actively maintained and compatible with 2.1.
Either way, treat it as a chance to fix things that annoy customers. Look at your analytics for pages with high exit rates, and at how the store performs on phones. A migration is the cheapest time to improve the design, because you are rebuilding anyway.
Extensions
Install only the Magento 2 extensions you confirmed in the audit. Test each one on its own before adding the next. Conflicts between extensions are a common cause of bugs, and they are easier to find one at a time.
Custom features
Rebuild any custom functionality as proper Magento 2 modules. Do not try to port Magento 1 code line by line. The patterns are different, and a straight port tends to carry old problems across.
Step 4: Move the data with the Data Migration Tool
Magento provides an official Data Migration Tool for moving data from Magento 1 to Magento 2. It runs from the command line and works in three modes:
- Settings mode moves configuration such as store views, tax settings and payment options.
- Data mode moves products, categories, customers, orders, CMS pages and other database records.
- Delta mode moves only what has changed since the last run, such as new orders and new customers.
A typical sequence is to run settings and data migrations early to fill the staging store, then run delta migrations close to launch so that recent orders come across.
What does not move
The tool moves database records, not files or code. You still need to copy product images and other media across separately. Data created by Magento 1 extensions may need custom mapping files, and some extension data will not have an equivalent in Magento 2 at all.
Customer passwords
Customer accounts move across, and Magento 2 can read the old password hashes, so customers can log in with their existing passwords. Test this carefully with a few real accounts before launch.
Test with real data
Run the migration several times on staging. Check product counts, prices, special prices, configurable products, tier prices, customer groups and order totals. Spot check a sample of products against the live store. Mistakes in pricing and stock are the ones customers notice first.
Step 5: Protect your search rankings
A store migration is also an SEO migration. Magento 2 can generate different URLs from Magento 1, especially for category paths and product URLs with suffixes. If URLs change without redirects, rankings and traffic drop.
Work through this checklist:
- Crawl the old store and export every URL that gets traffic or has links pointing to it.
- Match URL structure where possible. Set the same URL suffixes (such as .html) and category path settings in Magento 2.
- Map 301 redirects for anything that changes, from old URL to the closest new page.
- Carry over titles and meta descriptions. Check that the migration brought them across for products, categories and CMS pages.
- Keep canonical, robots and layered navigation settings consistent so you do not open thousands of filter URLs to Google.
- Submit a new XML sitemap in Search Console after launch.
Our guide to SEO migration covers the process in more detail, and our ecommerce SEO article explains the category and product page basics worth fixing while you are at it.
Step 6: Test everything that touches money
Before launch, run a full test plan on staging:
- Place orders with every payment method, including refunds and partial refunds
- Test shipping rates for each region and method
- Check tax calculations, coupon codes and gift cards
- Confirm order emails, invoices and credit memos look right
- Check stock updates and any ERP or accounting sync
- Test on phones and tablets, not just desktops
- Confirm Google Analytics ecommerce tracking records transactions correctly
Step 7: Launch and the first weeks after
Pick a quiet trading period. Avoid the weeks before Black Friday or your busiest season.
On launch day:
- Put the Magento 1 store into maintenance mode.
- Run a final delta migration to bring across the latest orders and customers.
- Reindex and flush caches on Magento 2.
- Switch DNS or the live server to the new store.
- Test a live order straight away.
For the first few weeks, check Search Console daily for crawl errors, watch 404s in your logs, compare conversion rates with the same period before and keep the old database backed up in case you need to look something up.
How long does a Magento 2 migration take?
It depends on the size and complexity of the store. As a rough guide, a small store with a standard theme and few extensions can move in a matter of weeks. A larger store with custom features, several integrations and multiple store views can take several months. The audit in Step 1 is what lets you give a realistic estimate, so do it before setting a launch date.
FAQ
Do I have to move to Magento 2 now?
No. Magento 1 is still supported, and Magento has said it will continue to support it for some years. Starting to plan now gives you time to budget and avoid a rushed move later.
Can I keep my Magento 1 theme?
No. Magento 2 uses a different theme structure, so the design has to be rebuilt, either from the default Luma theme or a new Magento 2 theme.
Will my customers need new passwords?
Usually not. The Data Migration Tool moves customer accounts, and Magento 2 can validate the old password hashes. Test it before launch to be sure.
Should I consider another platform instead?
It is worth asking, because a migration costs about as much as a rebuild. Our comparison of WooCommerce vs Shopify is a good place to start if you are weighing alternatives.
Plan the move properly
A careful Magento 2 migration protects your sales and rankings and gives you a faster, more modern store to grow on. If you would like help auditing your current store or planning the switch, see how we help shops turn visitors into customers.