Why speed matters
Time is money. In e-commerce, that is even more true. Shoppers expect an entertaining customer experience and speed is a massive part of that. Never before have customers been more impatient and less forgiving. If an e-commerce site does not provide the expected quality of service, they will find another place to shop whatever they desire.
Optimizing a page for speed makes even more sense considering mobile traffic surpassed desktop traffic over a year ago and is still massively growing in traffic shares. Mobile conversion rates on the other hand are still much lower than their desktop counterparts and speed is a big factor in this as well. According to Google 40% of mobile users leave shops if the page takes longer than 4 seconds to load. Amazon had already discovered in 2006 that another 100ms in loading times result in a 1% drop in revenue. The equation is a no-brainer: Faster e-commerce sites equals more revenue. On desktop and on mobile.
What is good page speed then?
Unfortunately, there is no clear answer to what decent page speed actually is. It depends on the customer, their current context, the desired product and many more parameters. According to Pingdom the top 50 e-commerce websites took on average approximately 2.51 seconds to load, with the fastest being done less than half a second, while the slowest took more than 8 seconds. From my experience, most of the e-commerce platforms out there perform even worse than the average top e-commerce websites when it comes to page speed.
How can you improve our loading times then? To do this, we have to understand how pages on the web are actually generated and what loading times are made up of.
- The browser requests the current page from the server. E-commerce pages generally don’t consist of static files that can download on demand. They are rather made of dynamically generated files produced by a programming language like PHP. The web server uses these programming languages to gather all needed information to put together information about products, the cart, the current user and whatever is interesting on that particular page. That may involve a considerable amount of complexity that takes time to produce and deliver.
Since most of the platforms are not fast enough in dynamic content generation, they introduce front-end caching based on software like Varnish or other full-page caching tools. These systems help because content is generated once - which is slow -, and then saved to the system’s memory. This means the page reacts pretty slowly for the first customer and much faster for everybody afterwards who loads the the page in its saved form.
Full-page caching comes with a couple of downsides that are show stoppers for modern e-commerce:
- Full-page caching makes dynamic content for personalization much harder. Sure, there are mechanisms like Ajax or ESI, but they won’t help a lot if the overall performance of a system sucks.
- Additionally, adding another level of complexity often results in a lot of extra development time. Developers have to make sure, the generated contents comply with context-specific outputs. From my experience, this can add a few days of work to a feature of less than a couple of hours.
- Full-page caching sounds really nice at first, but according to most statistics the efficiency is generally pretty low. This is due to an extremely high number of pages in an e-commerce website that have to be generated at some point in time and the amount of regular updates caused by changes in prices or availability that invalidate cached versions.
- In the end, there are a lot of things that can’t be cached at all. Adding products to the cart or letting the customer checkout are the most obvious cases. I experienced a lot of situations, where Varnish could handle the customer rush on product pages but the system would then not be able to handle the amount of add-to-cart operations. I mean, really? That’s your ultimate goal. You did everything perfectly and then the platform fumbles the ball on the 1 yard line.
In the end, a full-page cache empowered ecommerce system is exactly the opposite of a modern shop that provides customer-specific optimized contents. This includes, providing promoted products on the homepage, individually sorted category listings, customizable filters or dashboards and customer-specific prices. A state of the art shop, is not cacheable by definition. If you cache your output, it will come back to bite you in the future when it comes to conversion rate optimization.
Lightning-fast ecommerce solutions powered by Spryker
Whenever I talk to some of my good old buddies from my Magento times about how Spryker provides response times of a split second, I get those lovely letters of disbelief: “WTF?”. They can’t even believe that’s possible with a native PHP application. And I promise you: it is possible. I just used Pingdom to test some of our publicly available customers for page speed. Here is how they performed:
(for clarification: I tested the homepages, a couple of category pages as well as product detail pages for a quick test. And yes, the response times are compared to all websites, even though most of them are much less complex than e-commerce!)
The numbers speak for themselves: Spryker enables you to provide lightning fast e-commerce applications to your customers. We can do that because of our modern architecture that is built for flexibility, performance and scalability. Without the downsides of full-page caching. Pure e-commerce 2018-style with all the personalization you can imagine. Leverage that speed, provide your services in no time.
Because you know: Time is money.