Magento. It’s good. But very bad. Posted on January 16, 2015 by Gary If you are at a point where you are ready to come on board with our drop shipping solution and would rather build your own ecommerce store instead of using one of our in-house ready made solutions. My advice would be to avoid the Magento ecommerce platform unless you have the skill to manage and maintain it yourself or you have money to burn. Magento is a beast. It’s a very powerful beast. It’s a very powerful beast that needs feeding and it needs its own cage. This is how Magento describe their product:- Magento Community Edition is perfect if you’re a developer or tech-savvy merchant that wants to explore the flexibility of the Magento platform. You can modify – and even contribute to – the core code and engage with our passionate community for support and guidance. Developer…. tech-savvy. Many new business owners side step this classification and often require someone to assist with the technical side of things when starting their new venture. If you don’t fall into this category and are using Magento please scroll right to the bottom of this page and see if my optimisation tips can help you out a bit. Now I’m going to try and talk you out of using it, but don’t get me wrong for one second, its good, very good. If you have the time, money, skill and patience it will do you proud. Let’s go over some factors: 1. Magento’s code is an PHP object orientated XML framework. Let me translate that for you. Its going to be expensive to tweak. If you need a module written or if you want to buy a pre-written module on average Magento developers charge 3 times more than any other cart for bespoke coding. If you buy something from the Magento marketplace its likely to be 3 to 4 times more money than the equivalent module if purchased for another cart. 2. A good Magento web designer will have gone through a certified Magento Developer program. This is going to cost you. Now I am not saying if a designer hasn’t gone through this certification they are not going to be any good. But in my world, if you can be certified just to web design on a platform, its not easy. Not easy will mean, more time and more time means more money. I have spoken to drop shippers over the years that have spent 5, 10 and even 40 thousand pounds designing on Magento. Forget it. It’s web design. Any ecommerce platform can be designed to look how you need it to. 3. I joked earlier saying Magento needs its own cage. It actually needs a dedicated server to run correctly. How do I know this? We use a copy. I won’t bore you with the server specs, and advised memory usage configuration headaches required to run it at any decent speed but you need to be spending at least £50 a month. 4. From a new user and admin point of view its very complex. To be honest it comes across as downright complicated. You can do so many things in the admin straight after an install its madness. Very often, the way you do them is not obvious either. It’s going to be a massive learning curve for yourself. Its a lot harder to manage simple things compared to most other carts. A Magento developer once told me. If your expected turnover isn’t at least £1m/year. Magento is almost certainly not right for you. As I said earlier its a great product, but its really not the solution for the new user. The simplest of technical headaches are a mountain compared to the hiccups you may experience when using something else. You need to be investing your time and budget on your new business SEO and marketing plans and not spending time learning how to use a piece of complicated software. If you love Magento and are using it. Here are a few tips that’s we have found invaluable over the years. Give it as much memory as your server will allow. Open php.ini and change the value for memory_limit to at least 256MB (set it higher if your system configuration allows for it) If you can utilise Apache’s keep-alive directive. What this will do is keep the TCP connection open between the server and the user. This will use slightly more memory but its a good trade off against the increase in speed it achieves.To enable it, add the following to your http.conf or .htaccess file:- <IfModule mod_headers.c> Header set Connection keep-alive </IfModule> Move Magento’s cache into your server’s memory using tmpfs. Make sure you mount enough memory as it gets used up fast. I would also advise a nightly cron to clear it as a backup to Magento’s own clearing process. Magento’s cache is a bit bulky and reducing the read and write time to the hard drive is the key. This will speed things up massively by having tmpfs take care of var/cache. Stop Apache:- sudo service apache2 stop Clear the cache:- rm -rf /var/www/magento/var/cache/* Mount var/cache using tmpfs:- mount tmpfs /var/www/html/magento/var/cache -t tmpfs -o size=64m Restart Apache:- sudo server apache2 restart Use a PHP cache: APC for example.Magento uses a 2 level caching system, a fast front end cache (in memory, specialised solutions) and a slower backend cache (database, file system). Install the PHP extension for APC: Stop Apache:- sudo apt-get install php-apc OR sudo apt-get install php5-apc Open the apc.ini configuration file and edit it. A good default Magento tuned apc.ini has the following values:- extension = apc.so apc.enabled = 1 apc.shm_segments = 1 apc.shm_size = 256M apc.num_files_hint = 10000 apc.user_entries_hint = 10000 apc.max_file_size = 5M apc.optimization = 0 apc.ttl = 0 apc.user_ttl = 0 apc.gc_ttl = 600 apc.cache_by_default = 1 apc.filters = "apc\.php$" apc.slam_defense = 0 apc.use_request_time = 1 apc.mmap_file_mask = /tmp/apc-dummy.XXXXXX apc.file_update_protection = 2 apc.enable_cli = 0 apc.stat = 1 apc.write_lock = 1 apc.report_autofilter = 0 apc.include_once_override = 0 apc.rfc1867 = 0 apc.rfc1867_prefix = "upload_" apc.rfc1867_name = "APC_UPLOAD_PROGRESS" apc.rfc1867_freq = 0 apc.localcache = 1 apc.localcache.size = 512 apc.coredump_unmap = 0 apc.stat_ctime = 0 Enable APC in app/etc/local.xml.additional under config > global > cache > backend:- <backend>apc</backend> <prefix>APC_</prefix> Then restart your web server:- sudo service apache2 restart And finally. After having a tinker around with your own server setting we have found through our own experience having a third party caching system is a game changer. We personally like the Cache system from Extendware. It’s a great product and it can be configured to pre-build the cache. Using this in conjunction with my tips should give you a lighting fast shop if you are hosted on a dedicated server.