The busy holiday shopping season is only a month away and the National Retail Federation forecasts 12 percent growth in online sales over last year. Sounds like good news, doesn’t it? It is, if you can keep your virtual doors open and sales flowing around the clock. Recently, Rackspace offered up five tips to prep your e-commerce site for the holiday crunch. We invited some of our e-commerce partners to provide a guest blog post looking at those tips and offering further advice.
Something Digital is a New York-based technology services boutique that offers interactive design, software and IT services. Here, Something Digital Director of Software Development Jon Tudhope discusses optimization through configuration.
Is your ecommerce site ready for that traffic volume increase this holiday? Be sure to review your application and server configuration settings to ensure you get the most out of your hosting infrastructure. Here are some steps we've taken in the past to improve store responsiveness specifically on the Magento applications we maintain.
*Note - The best approach to implementing configuration changes is to experiment with changes in your development/staging environment under load. Your service provider should be able to assist in this process.
The flexibility and extensibility of Magento affords us a significant means to customize. The problem is that customizations inevitably introduce risk of inefficiencies. The good news is that several out-of-box Magento features - when configured correctly - can really improve a store's performance. Most of the performance optimization features relate to caching and indexing in some form. Below we'll cover five of the most important Magento-configurable features available out of box.
1. Full Page Caching
This configuration has one of the biggest impacts on store performance. Essentially, Magento runs a lot of code to determine which HTML to serve to your client's browser - the full page cache mechanism stores the emitted HTML the first time each page is requested and resends that response for all subsequent requests. The Magento cache feature takes care to ensure that dynamic content (e.g., cart count, Welcome message, etc.) still varies by customer although the remaining majority of the page is served without reprocessing the code. For non-enterprise editions there are excellent caching extensions available on the Magento Connect store. Keep in mind that the introduction of page cache means that store administrators must refresh the cache when any content changes (e.g., product details, CMS pages/blocks, etc). Cache management is accessible through the Magento admin panel.
2. Enabling Flat Catalogs
As per Magento, performance improvement from enabling flat catalogs only becomes evident in stores with over 1,000 SKUs. Technically, the flexible EAV (Entity Attribute Value) model employed by Magento gives users the ability to completely customize product attributes but at a performance cost. The flat catalog serves to condense the EAV attributes into a single table and row, reducing the number and complexity of catalog queries being executed, and thereby improving the application response times. You should enable this setting in conjunction with your service provider as there could be minor application development changes required to take full advantage of the feature. In addition, implementing this change has an operational impact - requiring that you rebuild the product catalog when product attributes change.
3. Magento Compilation
Magento code is arranged within hundreds of directories on a server's file system. For each page request the server expends considerable effort to locate the correct files, which amounts to higher disk I/O that can be a bottleneck in high-traffic scenarios. Pre-compilation stores the code in a single folder and consolidates it into a smaller number of files on disk, reducing the potential for an I/O bottleneck and improving page response times.
This setting can be found in System - Tools - Compilation, and your service provider should be able to assist. Take care to proceed with some caution here - this enhancement can have some unintended consequences. It's best to test in a staging environment before turning it on, and remember that for each code deployment the compiled code will need to be refreshed.
4. Front-end Optimizations
Enabling server-side compression can reduce the size of your store pages (excluding images), significantly reducing the time to return data from the server and making a web server process available sooner. You can work with your service provider to enable compression in the Magento .htaccess file.
Below is a consolidated checklist of potential performance-related configuration changes for both Magento and LAMP. Having your service provider carefully research and review these settings can help put you on track to get the most out of your infrastructure this holiday season.