How to Migrate an E-commerce Store to a New Server
In our line of work, we often have to migrate e-commerce stores (typically Magento) from one server to another. This may be due to a hardware upgrade requested by the client, or if a client is moving hosting provider. We offer our own fully managed Magento hosting solution, so most of our Magento clients come on board with this for the best end-to-end Magento service.
This article is designed to collect together information on a typical store migration process. Here at BeSeen, we encourage transparency and we want to help demystify the world of “Digital” and all things Web. #DigitalDemystification
Required Login Details
Make sure you have the following details:
- Domain name control panel login details so that DNS can be updated when required.
- Payment gateway admin panel login details – certain settings will likely need to be changed before the website goes live on a new server.
- (S)FTP and database access for the live site so that a full backup can be taken for deployment onto the new server.
- Get the TTL (Time To Live) duration set to a low value at least a day or two before the DNS switchover will take place. This will help the DNS settings propagate quickly throughout the Internet once they have been changed.
- Ensure you have the IP address of the new web server, and get these added to any external systems integrated with your site that require IP address settings. This especially applies to payment gateways e.g. SagePay.
- Have a fully working clone of the live site (files and database) deployed onto the new server on a temporary URL.
- Make sure SSL certificate is purchased and installed on the new server (if applicable).
The Migration Process
Here are the typical steps we undertake when migrating an e-commerce store from one server to another:
- Disable current live site with an “Undergoing Maintenance” page – using the .htaccess server file, we implement a global redirect rule so that all web traffic can be redirected to this maintenance page to ensure no orders are processed on the old server from this point forward.
- Take a fresh backup of the live site database.
- Restore this database backup to the new server.
- Switch the DNS (blank “” and “www” A records) to point to the new server IP address and wait for it to propagate – ideally a low TTL will help with speedy propagation.
And here is the most important part:
- Monitor the DNS propagation to ensure it has taken effect
- Ensure checkout and payment gateway settings are working – run a dummy order payment through the live system (and then void the payment assuming it goes through ok)
We don’t just abandon sites once we’ve gone to all that hassle of giving them a nice new habitat. On-going monitoring and maintenance is what we prefer to offer as standard.
Sure there’s always the issue of whether customers can “afford” a monthly maintenance contract, but really the issue is whether they can afford not to have this in place.
As part of our monitoring toolkit, we tend to deploy NewRelic for each new server we provision. NewRelic gives us essential visibility on server and application performance and as well as mobile/email alerts when performance thresholds are not met. We are also partnered with StopTheHacker for malware / reputation / vulnerability monitoring.
As part of our ongoing maintenance, we will maintain a separate development version of the ecommerce store. This is used for deploying upgrades / patches / new features to before rolling out to live. As a rule, we only deploy non-trivial application changes to live once they have been approved on the dev site. We also prefer to deploy to live outside of UK working hours, typically early morning between 5-8am.
So if you’re looking for help to migrate your Magento store to a new server, feel free to get in touch. If you found this article useful, I’d love to hear from you too. Reach out with a tweet, a comment or whatever method of communication takes your fancy!
That’s all for now.