This Magento performance guide is written for all versions of the ecommerce platform (including Magento 2). It is suitable for both Community and Enterprise editions. Additionally, it is useful for php & mysql web applications. Below, you will find all vital Magento performance improvements and optimizations for server and application sides of your ecommerce website, as well as the most popular enterprise class Magento performance solutions.
- Magento Server side performance
- Magento application side performance
- Magento cleaning
- Faster reindex
- Varnish cache
- Improved Magento catalog search
- Enterprise class Magento performance solutions
If you don’t have time to read the following manual but still want to make your Magento store much faster, simply install JS & CSS Compressor + Image Optimization and Full Page Cache modules by PotatoCommerce. These two robust Magento performance extensions will significantly increase store speed within just a few clicks. Techniques utilized by both modules are described below, but you don’t need to implement them manually, or use some complex solutions to get the desired performance enhancement.
JS & CSS Compressor + Image Optimization will compress JS, CSS, HTML files and images making your ecommerce website lightning fast. As for PotatoCommerce FPC, it will app a full page cache module to the platform combined with a wormer which always keeps cache version fresh. Note that everything is fully automated! So, you install only two Magento extensions and get lots of performance improvements. For further information, follow these links:
As for more complex approach to Magento performance optimization, it is described below.
Below, you will find the information about Magento server optimization. We’ve described all core aspects of this process.
With Nexcess, you will get complete hosting options optimized for better performance of your Magento store. The only drawback here is limited number of available countries: US, UK and Australia. The basic price is $19.95 per month, but you should pay for the whole year/ If you choose monthly payment, Nexcess will cost $24.95 per month. For both solutions, you get one IP; 7.5GB of free space; 16GB RAM; 2x Quad Core E5620; 75GB of data per month; 9 additional stores, and 30 accounts per server. For every proposed terms of Nexcess you can launch a demo. Nexcess is the most cheap, stable and reliable solution among all possible Magento optimized hosting services. We highly recommend Nexcess SIP 200 as a perfect Magento hosting solution for both small and middle-sized Magento stores!
Rackspace is another top notch hosting provider that offers solutions designed for outstanding Magento performance. The company exists since 2008 and includes over 1000 Magento clients worldwide. The cheapest Rackspace solution costs $499 per month. It suits best for stores with 100 concurrent visitors and 150 k products. For this money, you will get one quad core processor; 1 x 146GB 10K SAS; 4GB of RAM; Cisco ASA 5505 firewall, and 2TB Bandwidth for every month.
You can always use LAMP as a simple hosting solution for your Magento store, but there are cases when Apache with mod_php is not the optimal idea. For example, if your e-commerce Magento store has a dynamic content generated by PHP scripts additionally to static files. In this situation Nginx with PHP-FPM can be useful in order to improve the performance of Magento.
For simultaneous HTTP/HTTPS connections, Apache uses a large amount of RAM and CPU cycles. The problem is particularly acute for standard Apache configuration and the mod_php prefork. Since each Apache child process requires around 100MB RAM for every request in general, a dedicated 16GB RAM web server is limited to just 150 concurrent requests.
The major advantage of Nginx is that it is event-based while Apache is process-based. Thus, Nginx doesn’t require any new process to increase the level of concurrency. As a result, the memory footprint of Nginx is very low. In addition, we should mention, that Nginx exploits asynchronous and nonblocking I/O.
Moreover, Nginx is operated by a pre-set number of worker processes, and each of them exists in a form of a single isolated process. Thanks to event-driven and non-blocking architecture, Nginx allows every single worker process to handle requests by multiple clients.
You can benefit from Nginx even if you aren’t going to handle thousands requests at the same time. This server solution scales in all possible directions: from the smallest VPS to servers’ clusters, offering rapid Magento performance.
Nginx handles about 10 thousand HTTP/HTTPS requests per second and uses just 10-20 MB of RAM and 10-15% of average CPU. Keep in mind, that in case of HTTPS, the usage of CPU will be higher because of decryption/encryption routines.
The biggest drawback of Nginx is the absence of mod_php or its analogs designed to execute PHP apps directly. Being a static content web server and a reverse HTTP/ FastCGI proxy, Nginx can’t run Magento directly. To do so, it must use another means. The most reliable solution of this problem is
To use a Nginx with your e-commerce Magento store, you need a frontend with:
- Reverse FastCGI proxy which handles all HTTP/HTTP connections
- All static file delivery
In this case, Nginx performs as a reverse FastCGI proxy for all dynamic content requests. All the requests are proxied to a backend PHP-FPM app, and after a response are delivered back to the visitor.
Use Nginx as a load balancer (one Nginx frontend + several PHP-FPM backends) provides backend failover and both high scalability and availability for the Magento installation. In addition, there is no need to use a hardware load balancer or any other associated expenses in this case.
Low Magento performance leads to slow pages and negative user experience which could be a reason for your potential customers to leave the webstore before they even get to the checkout. Luckily, there are a lot of different monitoring tools and analyzers, designed to identify the problem in time.
You can use New Relic to mark different operations as key transactions, which serve as triggers for custom alerting. Another function of this tool helps to observe the slowest queries. Thanks to “app map” feature, New Relic provide a clear view of the application dependencies which occur on your Magento e-commerce site. This feature also works for third-party extensions and external services. With the “app map” feature, you will find the “weakest link” in your application chain with ease. Last but not least are Apdex scoring and Alerting. With the help of Apdex scoring, New Relic evaluates how well Magento app is performing according to an industry standards. The feature is combined with alerting, so you will be always notified when your Magento performance is challenged due to different reasons.
With the AppDynamics platform, you will get a full visibility of the Magento based PHP app performance. The solution provides rapid installation and high scalability. AppDynamics automatically discovers Magento application topology. The tool provides the ability to customize monitoring process by choosing which transactions to include or exclude from real-time view. It also distinguishes web and mobile experience, and expands visibility from the user to the database by correlating performance of the database to originating transaction performance metrics. In addition, you will get a visibility of the errors and exceptions root cause in a real-time.
A proper MySQL configuration is among the most important enhancements to Magento performance. It requires an understanding of your hardware – primarily the available RAM. Below, you will find the most reliable solutions, designed to optimize Magento and enhance your website’s performance with the help of proper MySQL configuration.
## http://dev.mysql.com/doc/refman/5.6/en/innodb-parameters.html ##
## https://raw.githubusercontent.com/rackerhacker/MySQLTuner-perl/master/mysqltuner.pl ##
## https://launchpadlibrarian.net/78745738/tuning-primer.sh ##
## yum install mytop / apt-get install mytop ##
### MyISAM #
key_buffer_size = 16M # keep it low if no myisam data
myisam-recover-options = FORCE,BACKUP
### SAFETY #
innodb = force
max_allowed_packet = 150M
max_connect_errors = 100000
bind-address = 127.0.0.1
### CACHES AND LIMITS #
back_log = 200
interactive_timeout = 7200
wait_timeout = 7200
net_read_timeout = 120
net_write_timeout = 300
sort_buffer_size = 2M
read_buffer_size = 2M
read_rnd_buffer_size = 16M
join_buffer_size = 4M
tmp_table_size = 128M
max_heap_table_size = 128M
query_cache_type = 1
query_cache_size = 128M
query_cache_limit = 4M
max_connections = 150
open_files_limit = 65535
table_definition_cache = 4000
table_open_cache = 4000
### INNODB_ #
innodb_thread_concurrency = 0
innodb_lock_wait_timeout = 7200
innodb_flush_method = O_DIRECT
innodb_log_files_in_group = 2
innodb_log_file_size = 256M
innodb_log_buffer_size = 16M
innodb_flush_log_at_trx_commit = 2
innodb_file_per_table = 1
innodb_io_capacity = 400
innodb_read_io_threads = 8
innodb_write_io_threads = 8
innodb_buffer_pool_instances = 8
innodb_buffer_pool_size = 4G
### LOGGING #
#log_error = /var/log/mysql/mysql-error.log
#log_queries_not_using_indexes = 1
#slow_query_log_file = /var/lib/mysql/mysql-slow.log
### BINARY LOGGING #
#log_bin = /var/lib/mysql/mysql-bin
#expire_logs_days = 14
#sync_binlog = 1
Magento Performance: Know Your Database
MySQL is not a necessity, so you can always move out of it, while trying to improve your Magento performance. These are two popular alternative solutions:
- maintaining a high MySQL compatibility;
- ensuring a “drop-in” replacement capability with library binary equivalency;
- matching with MySQL commands and APIs.
MongoGento by Smile Open Source Solutions
There is also an opportunity to use NoSQL database instead of MySQL database. All you need is MongoGento by Smile Open Source Solutions. This module provides your e-commerce Magento store with the ability to use MongoDB. As a result, you will reduce the size of your database and the impact of Magento EAV model. That is because of heterogeneous catalogues, designed for millions of products. At the same time, you retain the flexibility of the familiar document model.
Another strong point of MongoGento is its performance and consequently the performance of Magento. The combination of a SolR, MageCache, and MongoDB makes both frontend and backend extremely fast. It is also necessary to mention, that MongoGento is open source, scalable and secure alternative to MySQL with a quick installation.
The only drawback is a conflict between MongoGento and some other modules. For example, product catalog rules are not able to handle some attributes. For more detailed information, go to MongoGento’s GitHub or official page.
MySQL and InnoDB optimised configuration
max_connections - the maximum number of connections to allow. Watch this value: max_used_connections
thread_cache - Cache to prevent the creation of excessive thread. The good value is 50-100. Watch threads_created
table_cache/table_open_cache - opened table instances cache. Multiple entries for single table are possible. Watch this status value: opened_tables and start with 4096
open_files_limit - up to 2 file handlers are required for MyISAM tables. Each connection is file handler. It is safe to set to 65535 for the most systems
table_definition_cache - cache table definitions and use only one entry per table. Opened_table_definitions to watch. Set + 10% to the number of tables unless there are 50K+ tables
back_log - adjustment for many connections/sec is required. The reasonable value is 2048
max_allowed_packet - sets a limit for the maximum query size and internal string variable size. The good value is 16MB
max_connect_errors - prevents password brute force attack. Can be a cause of "Host Blocked" error message. The good value is about 1000000.
skip_name_resolve - helps avoid DNS lookup on connection. Don’t use host names for GRANTs
old_passwords - this shouldn’t be enabled. It causes the use of insecure password hash.
log_bin - enable this parameter for replication and point in time recovery. To avoid default naming, you should set it to mysql-bin
sync_binlog - make Binlog durable. Set to 1 for RAID with BBU or Flash. With slow drives it turns to a performance killer.
expire_log_days - purges old binary logs after the set number of days. The good value is 14, and don’t forget about weekly backups.
max_heap_table_size - typically set to same value. Created_tmp_disk_tables status variable. BLOB/TEXT fields cause on disk table of any size.
query_cache_size - enable this parameter only if it is tested to provide considerable gains. It often causes stalls and contention. Remember, you should not set it over 512M
sort_buffer_size - used for sorting in memory buffer. Watch sort_merge_passes. Set within session for large queries. Good value is up to 1MB. Larger values hurt small queries performance.
join_buffer_size - use for better performance of Joins with no indexes. But it is better to get rid of such Joins. The reasonable value is 8MB.
default_storage_engine - it uses Innodb engine for tables if nothing else is specified
read_rnd_buffer_size - buffer for reading rows in sorted offer. It specifies the Maximum Value. Use values around 16MB, because they often make sense. Do not mix with read_buffer_size
Tmpdir - Specifies location of temporary directory. It is often a good choice unless very large temporary space is needed. tmpdir=/dev/shm
key_buffer_size - caches MyISAM Indexes, but doesn’t cache data. Requires up to 30% of memory if using MyISAM only.
myisam_recover - automatically repairs corrupted MyISAM tables after crash. The good value is BACKUP,FORCE
myisam_sort_buffer_size - buffer used for building MyISAM indexes by Sort. Good values are between 8 and 256MB
low_priority_updates - this parameter allows higher concurrency for SELECTs. It may starves update queries
bulk_insert_buffer_size - buffer for Bulk Inserts optimization. Values of 1/4 of key_buffer_size make sense. The value is per connection.
INNODB MEMORY SETTINGS
innodb_buffer_pool_size - this is the most important setting. About 80% of memory is allocated here.
innodb_buffer_pool_instances - reduces contention. Set it to 4+ in MySQL 5.5+
innodb_log_buffer_size - buffer for log files. Good Values are between 4 and 128MB. innodb_ibuf_max_size - controls size of Insert buffer. 1/2 of Buffer pool by default. Smaller values are good for SSD
INNODB IO OPTIONS
innodb_flush_log_at_trx_commit - Controls Durability. Use 1 - flush and sync; 2 - flush; 0 - neither
Innodb_flush_method - this parameter controls how Innodb Performs IO. O_DIRECT is a good value for most servers
innodb_auto_lru_dump - Percona Server Feature designed for quick warm up. The good value is 300 (seconds).
innodb_io_capacity - controls Innodb Assumption about Disk Performance. Increase it for faster drives
innodb_write_io_threads - controls the number of threads by doing reads and writes. Since MySQL 5.5 has async IO, very high values might not be needed. 4 is good default value.
innodb_flush_neighbor_pages - Percona Server feature designed to control how flushing works. Disable it for SSD by setting to 0
OTHER INNODB OPTIONS
innodb_log_file_size - sizes of redoes log file. Larger logs provide better performance but with longer recovery.
innodb_log_files_in_group - leave it at 2
innodb_file_per_table - store each Innodb table in a separate file.
innodb=force - enable so MySQL is disabled to start if Innodb could not initialize. Otherwise it might start but with the error on access to all Innodb tables.
innodb_lock_wait_timeout - waiting time for row level locks before bailing out
innodb_old_blocks_time - use to make buffer pool scan resistant. Good values are around 1000
innodb_file_format - sets which file format Innodb will use. The default legacy format is Antelope. Barracuda allows to use new features
innodb_stats_on_metadata - update statistics on meta data access (Information_schema queries). To disable it for more workloads, set to 0. Innodb will refresh stats when table changes significantly.
performance_schema - enables Performance Schema in MySQL 5.5+ and watches potential overhead
log_slow_queries - enables Slow Query Log
long_query_time - with this parameter set to 0 periodically you can get sample of the load
log_slow_verbosity=full - more data about queries in Percona Server
low_warnings=2 - warnings about disconnects in an error log.
userstat_running=1 - advanced Table and Index usage statistics for both Percona Server and MariaDB
The Tuning Primer shell script allows developers to review the MySQL settings of Magento store and make adjustments to them to increase the stability and performance of a database and as a result current Magento performance. The script analyzes MySQL stats and provide recommendations on how to tune the MySQL server. The uptime required for the correct work of the script is over 48 hours. Tuning Primer script is designed for all MySQL versions starting from 3.23.
There are a lot of articles about the performance of Magento e-commerce stores. They provide all kinds of useful tips, but we recommend you to pay your attention to “Magento on Steroids”. The author shares his best practices. The article is based on his daily work with Magento performance issues, and has a strong emphasis on Magento server optimization.
Being a code caching module, OPcache can significantly improve the PHP performance and at the same time the performance of Magento website. OPcache uses a shared memory to store precompiled script bytecode, eliminating the need for PHP to load and parse scripts on every request. By optimising OPcache settings, you improve your Magento performance. On the below link, you will find the article about the optimization of OPcache settings.
There are a lot of other PHP Accelerators developed to improve Magento performance. You can find the most useful and reliable solutions in our blog. The below link will lead you to the appropriate post.
Redis (REmote DIctionary Server) is an open-source, networked, in-memory data structure server which stores keys with optional durability. Being one of the most popular key-value stores, Redis is suitable for the Magento. E-commerce platform currently provides the support for many cache backends with file systems, but with a growing number of requests, such cache backends provide terrible scaling. Moreover, some of them suffer from other limitations. For example, they don’t have any support for related cache entries grouping. To solve this problem, you can tune your ecommerce website to Redis, improving Magento performance
Nowadays, Memcached has no significant advantages over Redis. Both solutions are extremely fast as volatile caches, but all major features of Memcached are now offered by Redis. In its turn, Redis continues to surpass Memcached. Latest version of Redis offers clustering out-of-the-box. The other useful tools are replication and Sentinel. With their combination, Redis has much more advantages than Memcached. These are the features which turns Redis into a real data storage (not just a cache as Memcached):
- Powerful data types with powerful commands: Sorted Sets, Hashes, Lists, etc
- Default persistence to disk
- Optimistic locking transactions (WATCH/MULTI/EXEC)
- Extremely fast Pub/sub
- Values are limited to 512MB (1MB per key in case of Memcached)
- Built in clustering (as of 3.0)
- Lua scripting (as of 2.6)
Redis is more flexible than Memcached. It provides higher scalability, availability, and administration. Redis is not only a better solution for places where you can use memcached, it is suitable for a lot more types of use cases. Hence, it is a better option to increase Magento performance.
The process of Redis implementing as a cache and session backend within Magento is described at Inchoo:
There is another useful article at magentocommerce.com:
We recommend you to check both articles to find out all the nuances. And don’t miss this PDF tutorial:
There are also two useful projects on a GitHub. First one is Cm_RedisSession. It is a Redis-based session handler designed for Magento. Cm_RedisSession has a lot of useful features. Hit the below link for the detailed description of this tool. You will also find installation tutorial and the example of configuration.
With Cm_Cache_Backend_Redis, you will get a Zend_Cache backend using Redis which provides a full support for tags. The backend make it possible to turn a Redis server into a central cache storage. Keep in mind, that with Cm_Cache_Backend_Redis a tags full support doesn’t require the use of TwoLevels cache. Thus, this backend suits best for use in a cluster or on a single machine. Cm_Cache_Backend_Redis works with any Zend Framework project, all versions of Magento are supported.
Сontent delivery network or CDN is a complex of servers with multiple data centers around the world and across the Internet. The main goal of every content delivery network is to provide content to end-users with the highest possible performance and availability. CDNs work with different web objects and store downloadable content. They also provide faster access to apps, streaming media, and social networks. Thus, CDNs play an important role in a modern online content delivery, and could be a perfect improvement to Magento performance. There are dozens of possible solutions, but we recommend you to pay your attention to CloudFlare.
CloudFlare relies on recent hardware innovations, advanced network routing, and modern web server technology improvements. Being a next-gen CDN, CloudFlare works better than its competitors. It is also more affordable and easier to setup. This CDN provides your website with two times faster load speed, regardless of the location of your visitors. We should also mention, that CloudFlare supports both static and dynamic content. The company guarantees, that your e-commerce Magento store will always be online. Last but not least is the support for IPv6 networks and other CDNs. Use our CloudFlare® control Magento extension to set up your web store for this CDN and improve your current Magento performance.
The speed of your e-commerce Magento store is among key aspects of your success as an online business. Since speed is taken into account by every search engine, it influences rankings. Thus, sites with better performance have the advantage over slower ones. That’s why the Magento application side performance is also important.
There are a lot of full page cache extensions designed to increase Magento performance by improving web store speed and reducing page load time. All the modules from this group are based on the same principle. Magento automatically generates and delivers pages to the first time visitors. These pages are copied and saved to the cache. At some point, all the pages of your e-commerce Magento store have cached copies, and the necessity to generate new pages from scratch is eliminated. As a result, full page cache extension reduces a load from database and server and dramatically decreases page load time. We recommend you to pay your attention to Lesti::Fpc Magento extension.
Full Page Cache by Mirasvit
When it comes to FPC Magento extensions, it is necessary to draw your attention to the Full Page Cache extension by Mirasvit. It is one of the most reliable paid solutions of its kind. The module significantly speeds up default page load time of a Magento website. Besides, it reduces the load on your server. As a result, you get improved website ranking and increased sales conversion. Sounds intriguing, isn’t it?
Full Page Cache by Extendware
Full Page Cache by Extendware is another premium FPC MAgento extension that reduces store’s First Byte Time and increases server request rate. Furthermore, the tool also reduces database load as well as makes your MAgento website much more responsive.
This extension doesn’t require varnish or any other external tools and solutions to provide you with a boost in Magento performance. Lesti::Fpc works with events, replaces dynamic blocks before sending any response to a visitor, and caches cms_page_index, cms_index_index, catalog_product_view, and catalog_category_view pages by default. The module has a support for multiple stores and multiple currencies. Additionally, Lesti::Fpc provides mobile themes and custom price groups. Last but not least is the price – this Magento extension is free. Hit
If you are looking for a reliable cache ststs, try Aoe_CacheStats. This MAgento extension gathers cache statistics.
It’s extremely necessary to enhance Full Page Cache Extension with Magento Cache Warmer/Crawler module in order to leverage the existing Magento performance capabilities. This module will crawl your e-commerce store to ensure that all pages load as fast as possible. In addition, warmer/crawler extensions also refresh old cached pages. Thus, all your customers get the newest content at the fastest speed. Cache warmer/crawler extensions also help to improve website’s cache hit rate by pre-caching uncached site pages. As a result, there are more cached and less uncached requests.
Another solution is represented by Extendware Minify JS / CSS / HTML Magento Extension. The tool has a very intuitive backend section and lets you configure everything in a matter of seconds.
Magento Google Pagespeed Optimization Extension
With the help of this extension, you will fulfill the requirements of
Thanks to an excellent logging system, the details of every request in Magento are logged. This leads to an oversized database, which slows down the e-commerce web store. Fortunately, there are a lot of Magento cleaning solutions. Maintaining the database through log cleaning leads to a dramatic improvement in latency and Magento performance.
Fast reindexing is another aspect of Magento performance optimization. It allows you to reduce loads by speeding up saving of products in a catalog. Consequently, you increase the performance of Magento.
By installing this Magento module, you will significantly increase the performance of Magento and speed of its admin backend. Saving products and categories will be much faster with Improved Indexing. As a result, your administrators will be able to do more work during the less amount of time.
With Fast Asynchronous Re-indexing extension, you will also boost the performance of your Magento website. This module reduces peak loads on the server by speeding up administration work. When someone adds a new product or changes an existing one, the query to produce re-indexing of goods occurs. With Fast Asynchronous Re-indexing extension, cron process performs data re-indexing in the background. As a result, admins can work continuously without any need to wait until the re-indexing will be finished.
Varnish is designed to minimize the number of contentions between threads. It stores data in a virtual memory, and the the task of deciding what gets paged out to disk and what is stored in a memory goes to the OS. As a result, you can avoid the situation where the data is cached by operating system and at the same time moved to disk by the app, improving your current Magento performance.
This extension is designed to improve Magento’s compatibility with Varnish. With the help of Turpentine, you will improve the performance of your Magento store by adding a fast caching reverse-proxy to your ecommerce website. The problem is that the default solution doesn’t cache requests with cookies, so Magento’s frontend cookies cause a near zero hit-rate for Varnish. By installing Turpentine Magento extension, you provide the system with Varnish configuration files or VCLs and improve Magento’s behaviour. As a result Varnish works with Magento.
A reliable searching tool is important for every e-commerce store as it improves user experience. Fortunately, there are a lot of extension designed to provide visitors with the ability to find the desired content faster. We recommend you to pay attention to Sphinx Search Ultimate and Managed Elasticsearch, because they significantely increase Magento performance related to search.
Sphinx Search Ultimate
This extension will help you improve the search quality on your Magento store. Search Sphinx Ultimate by Mirasvit supports over 660 stop words, and understands over 60 thousand synonyms. It provides you customers with the ability to search by category names, tags, and product SKUs. The extension costs $149.
In its turn Managed Elasticsearch Magento extension provides one of the most powerful full text search options available as an open source product. With this Magento module, you will provide your customers with the most precise search results. In addition, Managed Elasticsearch provides you with the ability to configure attribute names, descriptions, and SKUs as searchable attributes.
Dedicated Magento multi-servers/clusters
Enterprise Clusters by Nexcess are built for the highest possible Magento performance. All solutions relies on the latest security and performance enhancements. Each cluster is build, optimized and customized for Magento. All of them include access to Nexcess’ CDN. The basic solution is Two-Node Cluster. It is a web application server and at the same time a database server. With this solution, you will be able to split your Magento store load onto two independent servers. In addition, you will get such features as extra firewalling and staging environments. Two-Node Cluster starts from $1,499 per month.
Rackspace hosts more Magento sites than any other competitors. The company provides simple and powerful templates for self-service management. The other advantages of Rackspace are flexible architecture options, end-to-end support, exceptional customer experience, and of course top-notch performance.
Mgt-commerce provides hosting services as well. By choosing this solution, you will get additional time to manage your business. Mgt-commerce introduces 4 types of Multi Server Environments designed to improve Magento performance. The basic solution starts at €249.
And don’t forget to check Dedicated Magento Cluster by Byte. The basic solution costs €1800 per month and offers amazing speed and productivity.
How to scale Magento on multi hosting environment
Magento without HHVM and Varnish
Check how to get beyond Magento speed limits without HHVM and Varnish:
Layout Compiler for Magento is another useful thing we should mention in this post. It transforms recursive layout xml files into one level php code. Then the code is cached by opcode cache.
Performance is extremely important for every website, and e-commerce web stores are not the exception. Statistic differs from market to market, but the negative impact of slow speed is obvious. According to summit.co.uk, in 2013 slow websites should cost UK online retailers more than £8 billion. At the same time, there is information about $3 billion of lost e-commerce sales for the US market.
Website performance tests by summit.co.uk shoved, that over 90% of 230 leading online retailers were failing to meet the industry’s benchmark of 3-second page load. Furthermore, some were running as much as 8 seconds. But how does this affect visitor’s behavior? 44% of online customers think, that the transaction is failed if the checkout is slow. As a result, many of them (33%) look for e-commerce stores with better performance or abandon their carts. Transaction with a delay of just 2 seconds results in a high shopping cart abandonment rate, which is over 80%.
The below infographic by OnlineGraduatePrograms shows how average US web user reacts on websites with slow speed. Some of the statistics show, that 25% of people abandon a website if its page load time takes longer than 4 seconds. The situation with mobile shopping is even more dramatic. 40% of Americans leave m-commerce sites that won’t load in 3 seconds.
Surprising as this impatience may be, its implications are even more shocking. According to Amazon’s research, a second page load slowdown could cost more than $1.5 billion in sales during the year. In its turn Google tells that by slowing search results by 0.4 of a second the company could lose 8 million searches every day.
There are new and existing consumers on every e-commerce web store. Thus, we can speak about two types of interaction – first view and repeat view. Both have three specific metrics: time to first byte, render start, load time.
With the time to first byte, you measure the amount of time required for the servers to react to the request of a browser to send data. With the render start, you measure the amount of time necessary for the first page element to be displayed on the browser. Load time means the total amount of time required to load all elements of the page.
The above metrics should be measured under both normal conditions and conditions of stress. You can use
- First Byte: 0.285 sec
- Render Start: 0.944 sec
- Load Time: 2.071 sec
These are for the second one:
- First Byte: 0.285 sec
- Render Start: 0.833 sec
- Load Time: 1.346 sec
Such results are the example of top page load speed metrics to some extend.
The full version of this article is available in our “Magento DIY. The complete Guide” book. Besides Magento performance, it describes a lot of other improvements and modifications. For instance, the book shows how to improve SEO, security, and other vital aspects of every ecommerce website, run a successful marketing campaign, and create a top-notch user experience. Furthermore, “Magento DIY” teaches how to get all Enterprise-level features on the basis of the Community Edition platform and implement opportunities which are not available in both editions out-of-the-box. The article is just the beginning, and all robust improvements are described in the book. For further information about “Magento DIY,” follow the link below: