Moving off OpenCart without losing your customers or your rankings

E-commerce21 October 20268 min

A great many Greek e-shops still run on OpenCart, often on a version that is no longer maintained and a commercial theme that has not been updated in years. The reasons to leave are usually clear to the owner. The reason they stay is fear, and it is a reasonable fear: that the new store will launch without its customers, without its order history and without the Google positions the old one took years to earn.

That fear is about the right things. The design of a store is replaceable; its customers, its records and its search positions are not. A migration should be judged on whether those three arrive intact, and this year we moved two stores off OpenCart onto NEXTCOMMERCE where that was the brief: Topharmakeio.gr, the online pharmacy of three pharmacies in southern Athens, and Rellas Jewellery, a jeweller in Patras since 1935.

The catalogue comes first, straight from the database rather than from an export file. At Topharmakeio.gr that was 9,804 products with their photographs, 398 categories and 259 brands; at Rellas, 1,629 products with 2,075 photographs. Reading the database directly means nothing is lost to a spreadsheet's idea of what a column is, and it is also the moment to correct what the old store got wrong. At the pharmacy, 44 products had been filed under the wrong brand, and they were put right on the way in.

A migration is also the cheapest moment the store will ever have to improve its data. At Rellas, the specifications of each watch had been written inside its description as text, so none of them could be filtered or searched. The spec tables of 1,134 watches and rings became structured fields — dial, case, diameter, movement, water resistance, metal, finish, carat — with one spelling for each value. Customers can now filter by them, and they feed the landing pages described below.

Customers come next, and here the test is simple: can someone who bought from the old store sign in to the new one and find what they expect? At Topharmakeio.gr, 12,509 customers were carried over, and returning customers who sign in, including with Google or Apple, find their old address and order history waiting. A store that asks its regular customers to register again has thrown away the most valuable list it had.

Orders are where most migrations cut corners. Importing past orders is optional in a technical sense and essential in every other one: they are the customer's history, the basis for returns and questions, and the record the business itself relies on. The pharmacy's 5,125 past orders were imported under their original OpenCart numbers, so a customer calling about an order quotes a number the new store recognises, and new orders carry on from the last one instead of starting again at one.

Then the rankings, which live in addresses. Every URL Google has indexed has a position attached to it, and a new store that answers those URLs with an error gives the positions away. Every old address needs a permanent redirect to the page that now holds the same thing. At Topharmakeio.gr that meant 3,175 search-friendly addresses plus every index.php link; at Rellas, where every product had lived at an index.php address, more than 1,600 old URLs. Products that are no longer on sale lead to their category rather than to a dead end. This is unglamorous, line-by-line work, and it is the part that decides whether traffic carries over.

With the data in place, a migration can add pages the old store could never have had. Because the catalogue is now structured, the new stores build landing pages from real combinations in it — a brand within a category, a type with a key ingredient, a dial colour within a brand — each with its own title, heading and copy. Rellas has around 4,600 of them, and combinations that would only repeat another page are kept out of the index. At the pharmacy, the sitemap now holds around 13,700 pages, most generated from product attributes.

The switch itself should be the least eventful day of the project. At Rellas, the new store ran on a staging address with the real catalogue until the day of the change, and the domain moved in minutes, with email untouched. The owner had already placed orders, checked prices and read the emails on staging, so launch day held no surprises.

And after launch, the work that a new engine makes possible. At Rellas, page caching, limits on aggressive crawlers and a lighter homepage film took the server's first response from about 2.4 seconds to about 0.3. At the pharmacy, reviews are now requested from real buyers a few days after delivery and marked as verified purchases. Neither was realistic on the old store; both were small jobs on the new one.

The things that used to live in plugins have to arrive somewhere too. On the old pharmacy store, shipping, cash on delivery and card instalments were separate plugins, each with its own rules. On the new one they are settings of the same checkout: courier charges worked out from each product's weight, free collection from any of the three pharmacies, card instalments through the shop's existing merchant account, cash on delivery and bank transfer. Listing every plugin on the old store before the move, and deciding where each one's job goes, is how nothing quietly stops working on launch day.

The same goes for what the old store sent. Order confirmations, notices to the owner and messages to customers should leave from the store's own address, signed and authenticated, so they arrive in the inbox rather than in spam. At both stores, email now goes out that way, and at the pharmacy it also reaches customers who hide their address behind Apple.

If you are weighing a move off OpenCart, ask any agency the same four questions. Are customers migrated so they can sign in? Are past orders migrated under their original numbers? Is every old address, including the index.php ones, redirected to its new page? Will we test the new store with our real catalogue before the domain moves? If all four answers are yes and written down, the fear that kept the old store running is mostly answered.

Common questions

Will I lose my Google rankings if I move off OpenCart?
Not if every old address is redirected permanently to the page that now holds the same content. TWENTYONE redirected 3,175 search-friendly addresses plus every index.php link when moving Topharmakeio.gr, and more than 1,600 old addresses for Rellas Jewellery, so their positions carried over.
Can customers and past orders be moved from OpenCart?
Yes. Customers, their addresses and past orders can be imported from the OpenCart database. When Topharmakeio.gr moved to NEXTCOMMERCE, 12,509 customers and 5,125 past orders were carried over, with every order keeping its original OpenCart number.
How is downtime avoided when an e-shop changes platform?
The new store runs on a staging address with the real catalogue until it has been tested, and only then is the domain moved. For Rellas Jewellery the switch took minutes, with email untouched.
What can a migration improve beyond moving the data?
It is the cheapest moment to clean and structure the catalogue: fixing wrong brands, turning specifications written as text into filterable fields, and generating landing pages from real product combinations. Rellas Jewellery gained around 4,600 such pages after its specifications were structured.

The service behind it

Bespoke E-commerce Development

E-commerce development in Athens: bespoke stores with custom checkout and real-time ERP integration on NEXTCOMMERCE, built to scale without a rebuild.

Initiate the blueprint

Tell us what you are building.

The stack, the timeline, the thing that is currently in the way. We reply to every briefing within two working days.

Honestly? You’re going to regret switching tabs.

Finding top-tier custom developers who actually care about your business scale is nearly impossible.

We are the best at what we do, and we’ve got the track record to prove it. Don’t waste time and money with second-best options.

You convinced me.
Let’s talk!