My last post covered the benefits of Magento, so I figured it would only be fair to discuss the other side of the coin.

What are the limitations of Magento?

You didn’t think you were going to get all of this awesome functionality and endless extensibility without a few catches did you?

1) Speed

We’re just going to tackle the big one right off the bat.  Yeah, Magento is slow, really slow.  I’m sure that’s what you’ve heard anyway.  The truth is, that it’s only really slow in the wrong hands.  Let’s start from the beginning.

Magento was designed to be the most extenisble system ever made.  And the original developers definitely made it happen.  To accomplish this, the system had to be architected by isolating each feature so that changing (extending) that feature wouldn’t affect the rest of the system.  The result is a whooole lot of files.  Magento is reading hundreds if not thousands of different files in hundreds of folders for every single visitor that’s on your site.

So with Magento’s biggest strength, it also inherited its biggest weakness.  I’m pretty sure that if Magento hadn’t gotten so popular so rapidly with tens of thousands of feature requests piling up on their site, then they would’ve gotten around to this speed problem.

What is one to do?  Based on our extensive experience on the subject, there’s actually a lot you can do.  First and foremost, GET A GOOD HOST.  And by good, I also mean that specializing in Magento.  If you throw just default magento onto a Godaddy dedicated server, it’s going to be very slow.  We’ve worked with at least a dozen different hosts, and have had our biggest success with a company called MageMojo — top notch hardware, Magento knowledge, and service.

Next you’re going to want to check out 101 Ways to Speed up your Magento.  It’s a very comprehensive guide.

The hosting is probably 80% of the problem, then the tweaks in the guide should make up the other 20%.  If you have a custom theme, and you’re site’s still really slow after both of those suggestions have been explored, then your problem most likely lies in one of two areas: 1. Your Extensions or 2. A custom Query.

Often times an extension developer will release something that works on a demo store, but is crippling when throwing traffic at it or a DB or more than 10 products.  A great example is a shop by brand extension that we once used that queried every single brand to see if it had products in it just to build a dropdown menu of the active brands.  It added a full second or more to the site’s load time.  That’s one of the reasons that we built our own Shop by Brand Extension.

Similarly, a query written by your site’s development team, may be seemlingly innocent, but under load it kills you.  Usually it’s a very small, simple query that ends up being repeated hundreds of times to build a menu or find bestsellers.

2) Documentation

Well, there really is none.  The code isn’t really documented at all, and the manual that Magento has for sale isn’t really that useful.  To be honest, most open source platforms have been very poorly documented, but Magento hasn’t really even given it a shot.

For administration of your magento site, you’re best bet is to get your staff some Magento training, whether by webinar or 1 on 1.  The system has its fair share of quirks and unique terminology that take getting used to.  On the development front, it’s incredibly important to use a firm or developer that has extensive Magento experience.  More on that in #4.

3) Upgrades

Again, one of the main benefits of Magento, regular updates, is also a bit of a curse.  Magento’s never really had a good upgrade path, meaning a documented and well thought out process to go from one version to another.  And it doesn’t seem like that’s ever going to be a priority.  The result is that, when upgrading, things tend to break.  Most of the time it’s because a site wasn’t developed using Magento best practices.  But often it’s actually because Magento changed the name of something that was even being properly extended.  I remember one upgrade that Magento removed like 18 DB tables and added 30 new ones.  That was annoying…

There’s no real great way to overcome this limitation other than just ensuring that your site is always properly extended and properly developed with Magento best practices. That’s definitely a great start and will avoid most of your problems.  Anytime you upgrade, though, do it on a separate development environment with some Magento experts on hand.  There’s a great chance that something will break and need to be patched up before you can go live with the new version.

4) Complexity of theming and development, Cost of development

Developing a Magento takes about 5 times as long as your old OSCommerce, Zen Cart, CRE Loaded, or similar.  The theming system is, well, tedious.  However, the extra time put in in the beginning is well worth it.  Since Magento is a modern system built to modern standards, you won’t end up with the crazy hack job that you used to get customizing an older shopping cart.  This means that the total cost of the site over time will actually be much cheaper.

About 30% of our projects that come into our office are recoveries from other developers or other firms that have screwed it up.  About 70% of the sites that we have touched, that weren’t built by us, were not built with Magento best practices.  Although, to be fair, that’s usually why the end up in our lap in the first place.

5) Search

The out of the box search is, well, awful.  It’s pretty much as basic as it gets, and is totally useless in this age of e-commerce.  It does have some built in tweaks that you can play with, but still, useless.  You do have some options though.  Firstly, there’s Better Store Search, a well established Magento Extension that’s pretty popular.  Then there’s Blast Search Lucene, which upgrades your search to use the Lucene library.  If you want to get really fancy and compete with the big boys, you’ll need a Semantic Search like Celebros for Magento.  (Shameless plug: Redstage is the first certified solutions provider of Celebros for Magento).

————————————

I think that about covers it.  Hopefully I haven’t scared you all off!

In my opinion, Magento’s strengths far outweigh its weaknesses.  Magento is really one of the most powerful and extensible e-commerce platforms that I’ve ever worked with.  It’s important, though, to at least know what you’re getting yourself into.

For more information on Magento, please call us at 888.335.2747.