Magento Site Issue:
Our client had complained of slow site speed for a few months. The long load times were significant enough to warrant concern that valuable sales were being lost.
It was clear the issue lie in lengthy queries to the database, specifically when loading category pages. We were in agreement with the host (another Magento Silver partner) that installing a robust caching application would merely be throwing money at a band-aid and not a full-fledged solution.
Discovery:
We began by investigating which particular database calls were taking the longest, and found a problem in the getFinalPrice function on the catalog page.
It seems that in order to get the price to display on category pages, Magento loads every simple product associated with a configurable product. For checkout and billing, this is necessary, but when displaying a simple price, it’s completely overkill.
The category pages in question were filled with configurable products, most having over 100 associated simple products. This meant that even loading as few as 9 products on a page made over 1,000 database calls. This caused a far too lengthy load time.
In our client’s case it took over 12 seconds to load one of their most popular categories.
Magento Solution:
We commented out the database calls within the getFinalPrice function, which gave us an immediate improvement on page load time.
There were still a few kinks to work out in this solution, however.
We discovered that this code was responsible for loading super product attribute pricing. Disabling this code meant disabling the ability to upcharge based on configurable product attributes.
Also, simply commenting out this line of code would be a modification to the Magento core code.
In resolution, our Magento Certified Developer created a module that creates a new, optimized version of getFinalPrice called getFinalBasicPrice for configurable products. It also updates the price.phtml used on the catalog list pages to use the new call.
This module lives outside the Magento core code, and also allows the site to retain the function of super product attribute pricing.
Results:
We were able to push this new module to the client’s site, and immediately saw a 75% decrease in category page load time
For an immediate result, the day after their site enjoyed a 43.97% increase in their eCommerce conversion rate.