Case Study: VivaTerra Load Time Improvements
Slow-performing website requires close look at database call, extensions
VivaTerra is an online retailer with a passion for creating and selling products in a sustainable, ethical way. The result is a socially conscious, global-inspired, quality, and one-of-a-kind offering. The company began in 2004 on the coast of California with the goal to provide an eco-friendly decor option in a seemingly dry market. It has since moved to Virginia where its headquarters, customer care center, and distribution facility are all located. Although much of the company exists in Virginia,it sources from and supports artisan communities in more than 20 countries across the globe. And it does this all while seeking out fair-trade partners and sustainable production methods.
Speed up load times on website’s pages
According to Kissmetrics, 47% of consumers expect a web page to load in two seconds or less. In addition, if a page takes more than three seconds to load, 40% of users will abandon a site. Needless to say, it is crucial for webpages have fast load times. When VivaTerra experienced speed problems on its site, it turned to Razoyo for help. The company thought the problem was with its web host, but Razoyo found the problem did not lie with hosting. Rather, the problem was far more complex. For one, there were too many database calls. VivaTerra’s PHTML template called upon the database multiple times to deliver a certain page, whereas it could have just made one database call. Think of it like this: if you wanted 10 gallons of milk, it would make the most sense to get them all in one trip to the grocery store. When you compare this to how VivaTerra’s site operated, it was as though it was making 10 separate trips to the store to get 10 gallons of milk. In addition to the database call issue, several extensions caused problems resulting in the longer load times.
Razoyo combines deep Magento developer experience with a tool called New Relic to identify and remove/fix issues
Utilizing its experience, the development team at Razoyo first conducted site reviews and identified issues utilizing their experience. Also, the team looked at the most commonly abused templates and searched for loops inside them. Then, Razoyo’s development team turned to software from New Relic to track down harder-to-identify issues like extensions.
One problematic extension the development team found was the Simple Configurable Products Extension for Magento. In Magento 1, prices for configurable products were set as percentages. However, VivaTerra wanted to pull prices for configurables from simple products instead, and the Simple Configurable Products Extension allowed it to do this. Although Magento 2 automatically does this now, VivaTerra wasn’t ready to migrate its site to the new platform. Because the extension significantly slowed down VivaTerra’s site, the company agreed to let Razoyo’s developers remove it. In other words, this meant VivaTerra would still have to set prices for configurables as percentages, but its page load times decreased drastically, so the trade off worked out in the company’s favor.
The extension Product Labels by Amasty also caused site speed problems. Product Labels lets you configure in the admin little labels to put in the corner of product images on category pages. Then, you can define certain rules about when to show the labels. Razoyo went in and figured out which parts of the extension were really slow and optimized them. To do this, the team rewrote some of the code so it wouldn’t find each label one at a time but rather all at once.
Razoyo's team of developers also cached the Amasty extension. If you set up rules to say show a certain label under defined conditions, the code has to figure out what products it’s going to show on the page. Then, it has to go through and check every condition. However, after the code does that once, it shouldn’t have to do it again. By caching the extension, Razoyo made it so the code would calculate everything one time and show what was cached from there on out. And if VivaTerra made a change to the rules, it would just have to clear the cache again.
Razoyo improves site speed
The work Razoyo’s team did on VivaTerra’s site resulted in significantly reduced load times. In the graph below, you can see how average page response time improved.
For most pages, the load time went from about 1200 milliseconds to 600 milliseconds, thereby improving the time by 50%. Category pages improved as well, although they have slightly longer load times than other pages. This is normal, because category pages have much more content.
"This year (2016), we've seen a 26% decrease in bounce rate and a 30+% increase in conversion rates year over year, largely because of Razoyo’s optimizations. And on Cyber Monday, we were able to support 10x the typical amount of traffic and site revenue, only because Razoyo was so thorough in the months leading up to our holiday season. We've definitely recouped all of the investment of having the code properly optimized by members of [their] development team. It's great to see the immediate ROI from their projects and to have the peace of mind of stable, well-written code that will support our store's growth."
VivaTerra's eCommerce Business Manager, Kristen Perkins