Magento / Web Apps

Magento 1.9 Performance Checklist

by , , revisited on

We have by far the largest RPM repository with NGINX module packages and VMODs for Varnish. If you want to install NGINX, Varnish, and lots of useful performance/security software with smooth yum upgrades for production use, this is the repository for you.
Active subscription is required.

Magento 1.9 is still an active and widely adopted E-commerce solution, but it is still a large framework with many files. If installed on a misconfigured server, Magento 1.9 performance can lead to a store that your customer will leave immediately.

How about security checklist? Our Magento security checklist is available as well.

Let’s review the best practices and software required to run Magento 1.9 with excellent performance.

1. Use caching plugin

Lesti FPC and Turpentine are the most prominent freeware solutions. Be sure you know how Turpentine is bad, if you want to go with that route.

Your Magento theme has to be fixed if it has incompatibilities with FPC. One incompatbility example would be:

<?php if ($this->getChildHtml('global_messages')) { ?>

And it must be changed to:

<?php if (Mage::getSingleton('core/session')->getMessages()->count()) { ?>

1.a. PotatoCommerce FPC

Our recommendation is with Potatocommerce Full Page Cache, official GTMetrix partner.

Note that, as with any other cache, this FPC plugin is vulnerable to increased cache size because of bad bots requests. This is not cache poisoning because the bad cache is not used, but the issue will cause your cache to grow and bad requests will consume cache size.


1.b. Lesti FPC

Lesti FPC is easy to install and configure. It allows you to store its cache to Redis.

1.c. Turpentine

This caching plugin stands superior to other full page cache plugins. It works coupled with the Varnish caching server. If you’re looking into serving dozens of customers at the same moment, you might want to give Varnish a go.

However, Turpentine has a major flaw – it is not a real full page cache. It works as an FPC only in old Magento versions. Read more about why Turpentine is not FPC.

2. Cleanup Magento database. Reduce your database size

Magento database size will always affect store’s performance. If your Magento database is huge, make sure it doesn’t contain useless data and optimize its size.

3. WDSL cache

Ensure the WDSL cache is enabled. This is especially useful in case you have a use of Magento Core API.
Go to System > Configuration > Services > Magento Core API.
Select ‘yes’ to Enable WSDL Cache.

4. Speed up your search

By default Magento search is slow. No need to worry, as you can leverage open-source Sphinx search engine which will not only index your products and provide very accurate results. It will also increase the speed of searches a lot! We recommend Magento 1 Sphinx Search for implementing Sphinx support in your Magento 1.

5. Use Redis

Redis is a powerful software for storing data in memory. If you expect to serve many customers in your store with load balancing setup, Redis will come in handy for centralized cache storage.

Using Magento 2? Have a look at Magento 2 Performance Checklist

6. Dynamic ETags

You can save bandwidth and improve performance by adding conditional GET feature to your NGINX.

7. Solve deadlocks

Make sure that indexing does not lock your database tables. This is an important one. Apply patch for this, more details here

8. Solve deadlocks again

transaction-isolation = READ-COMMITTED

READ-COMMITTED reduces database table locks and is suitable for Magento workloads (requires citing).

9. Avoid PHP session garbage collector.

Use a cron job for cleaning up PHP sessions.
See this issue

Cleanup sessions like a PRO

Leave a Reply

This site uses Akismet to reduce spam. Learn how your comment data is processed.

%d bloggers like this: