Case Study: Migrating from Joomla 1.5 to 2.5
Last month we completed the migration of our main OSTraining.com site to Joomla 2.5.
We learned so much during the migration that we decided to turn it into a case study for others who also wanted to move to 2.5.
Our site is a fairly large one with arond 10,000 users, 7000 articles and 60,000 forum posts. Here's an overview of the process we went through to move the site to Joomla 2.5.
Core: SP Upgrade
Our team have done several other Joomla 1.5 to 2.5 migrations before and they uniformly recommended SPUpgrade. It does a great job of moving all Joomla's core features from articles and menus to components and modules.
We've written a detailed tutorial on using SP Upgrade before so I'd recommend reading that for a detailed explanation of what we did.
We did find one thing in this migration that we hadn't seen before. Because our site is large, there were quite a few duplicate menu links, articles and users. Joomla 2.5 is less tolerant of this than 1.5, so SP Upgrade inserts sp- into the alias whenever it found a duplicate link. It took us a while to untangle these duplicates.
It was $30 to purchase SP Upgrade.
Forum: Moved from Ninjaboard to Kunena
After the migrating the core, the biggest decision we had to make was the forum. We've been using Ninjaboard for the last couple of years, but development on it had stopped.
The only tricky part was that we wanted to keep the same URLs that we had with Ninjaboard. To do so, we had to re-write the router.php for Kunena.
Kunena has turned out to the best part of the site move. It's powerful but easy-to-use. We've heard almost no complaints from our users so far and our support staff love it. Kunena is the best forum add-on I've tried for any platform.
Search: Stayed with Advanced Site Search
Joomla's basic search wasn't very good in Joomla 1.5 and didn't get much better in Joomla 2.5. We also tried the Smart Search extension but it wasn't working as well as we would have liked.
So, we used Advanced Site Search in Joomla 1.5 and we chose it again for Joomla 2.5. It has a few bugs and hasn't yet been able to pick up our forum posts, but overall it's working very well.
Migrating Advanced Site Search simply involved installing the 2.5 version and recreating our settings from the 1.5 site. It did cost us around $50 to buy the 2.5 version.
URLs: Stayed with SEF Advance
This was a tricky decision. We've been using SEF Advance for our site for years now, since it was the only viable solution for Joomla URLs.
The main problem with SEF Advance that it is encrypted. That's obviously not something we're comfortable using on a site called "Open Source Training" and as with all encrypted software, our developers find it very hard to fix problems.
However, there SEF Advance did have several advantages that convinced us to keep using it.
- Simplicity. SEF Advance is straightforward whereas most URL extensions are not.
- Familiarity. We'd been using it for years and worked out how best to use it with our existing extensions.
- Support. The developer, Emir, is friendly and very quick to help out.
Migrating SEF Advance mainly involved installing the 2.5 version and recreating our settings from the 1.5 site. SEF Advance costs €40 for a Joomla 2.5 site.
Tutorials: Stayed with Guru
We never seriously considered moving our training videos away from Guru.
Guru is generally well-written software and we don't find our users have many problems with it. We're also working with the developers to roll out some exciting new features to our training in the next couple of months.
Migration was easy, but did involve purchasing a migration tool for around $100.
Security: Stayed with Admin Tools and Akeeba Backup
This was also a move that we never seriously considered. Admin Tools Professional is the best protection you can get for your Joomla site and Akeeba Backup is a very efficient way to make daily backups.
Migrating Admin Tools and Akeeba Backup mainly involved installing the 2.5 version and recreating our settings from the 1.5 site.
Admin Tools Professional costs €20 and Akeeba Backup costs €35.
Users: Slowly Replacing Community Builder
Since the launch of our site, we've been using Community Builder for our user management. Over the last year, we've been reducing the ways in which we use it. Our payments now run through Recurly.com and our user profiles are mainly in Kunena. Still, we haven't fully replaced it on our site yet, so we needed to migrate it over.
For moving Community Builder, we used SP Upgrade which handles the Joomla core, but also some popular extensions.
Comments: Stayed with JComments
Although we use JComments, we did briefly consider moving our comments to Disqus. Disqus is a modern system, but has a major flaw in that all our users would have had to login to the main site and then login separately to post comments.
Moving JComments from 1.5 to 2.5 was as simple as moving over the JComments database tables.
Payment System: Custom Code
We rely heavily on three custom extensions: one for the OSToolbar, one for site membership and one for classroom training.
It took around a week for our developer to move these to 2.5, test them thoroughly and migrate the data.
Template: Moved from Chameleon to Code
During four years of the previous site, we had built up a very messy and convoluted template system. We used the excellent Chameleon to control which templates appeared on which pages, but we needed something simpler.
What we did for Joomla 2.5 was create one template for all our needs.
First, we set up our CSS that we can use Joomla's page classes. We can decide that part of the site has no sidebar columns by adding a Page Class to the menu link for that page:
The old 1.5 template had huge CSS files that loaded on every page. With the new Joomla 2.5 design we've set it up so that each component has its own CSS that loads only for that component. This has resulted in noticeably faster load times.
When it came to extensions, our final task was moving or replacing a variety of smaller extensions. These included:
- Joomla Content Editor
- OBRSS for our RSS feeds
- Codecitation for display code
- Nonumber extensions
- Xmap for our sitemap
With the exception of one of two Nonumber extensions, we simply downloaded the 2.5 version of these and re-created our 1.5 settings.
Time and Cost
We totaled up the costs of moving such a large site as ours. Here's an approximate breakdown:
- Actual time: it took 6 weeks to complete the migration. We started at the beginning of September and moved in mid-October.
- Work time: between 3 people, working on and off, we spent about 150 hours on the move.
- Cost: besides staff time, we spent around $300, mainly on renewing subscriptions for various extensions.
The Moving Process
Here's how we actually did the migration:
- Phase 1: Development. Form the beginning of September to mid-October we built our Joomla 2.5 site on a development server. We moved over all the extensions, built the new site and tested.
- Phase 2: Launch preparation. The day before the launch, we moved the 2.5 site over to our main server and placed it into a sub-folder. We checked for any discrepancies or problems on the new server.
- Phase 3: Launch. We chose Sunday night to launch the site as it's our quietest time of the week. Our team got together and ran some final tests. When we were ready we ran through a checklist of tasks. First, we shut down registration and forum posting on the 1.5 site. Then, we did the final data migration. Lastly, we moved the 1.5 site to a sub-folder and made the 2.5 site live. All in all, launch took around an hour. Users were only unable to post for a few minutes and the site was offline for only seconds.
- Phase 4: Bug-shooting. You can catch a lot of bugs during development, but there's some you'll only catch once thousands of users are crawling over the new site. It's been a couple of weeks now and we've finally elimiated nearly all the bugs in the new site.
With this migration, we didn't aim to make a big splash. Our main goal is was complete the migration smoothly and set us up on the new platform, ready to roll out new features in the next couple of months.
So, how did it go?
Traffic was my biggest concern. We paid a lot of attention ot making sure our URLs didn't change and that our metadata was correctly setup. It worked. Our traffic in the two weeks after the move was down only 0.03%
Site speed has increased by around 10%. That's good, but made more impressive by the fact that we haven't turned on Joomla's system cache or any CSS compression yet. Initially we didn't turn them on in order to reduce the likelihood of bugs on the site. And in the end, we found some bugs, so we still haven't turned them on.
User experience has been good so far. Despite the new forum, we haven't seen any reduction in the number of forum posts. We've also seen a large number people suggest classes via the new Ideas area. One problem has been the "viewed" feature for videos. With the Joomla 2.5 version of Guru that feature became tied into new features that are about to launch. Our apologies to those people who have been using it. That feature is coming back soon.
Bugs have been a problem, but not overwhelmingly so. We mentioned the cache issue already. To be specific, it wasn't playing well with our SSL certificate and so the cache is disabled for now. The main remaining bug is a menu issue. We've found that, only on migrated sites, menu ordering has glitches on 2.5: the menu items sometimes reset again after their order has been changed. This is because the menu ordering is done slightly differently in 2.5. Otherwise, nearly all the bugs we fixed were in extensions or of our own making.
Overall, I'm glad we made the move. I'm also glad the move is over!
2.5 gives our site a solid platform for the next couple of years and will allow us to roll out several new features in the coming months.
Still, I won't lie ... I'm glad the move from Joomla 2.5 to Joomla 3 will be much easier and quicker.
I hope this case study helps you. If you have any questions, please feel free to ask. Look out for our full class on migrating from Joomla 1.5. It's coming later this month.
If you're not ready to make the move yet, read our complete guide to staying with older versions.