It's not uncommon for any platform to have clients experience performance issues from time to time. On occasion, there might be something wrong in the software that needs to be fixed, corrections to be made to the implementation, under-powered web/database servers, and there are many other possible causes as well. This article aims at helping you identify what the possible causes might be, so that your support experience might be more streamlined, should you require it.
First and foremost, we haven't found an upper-limit of the number of products, customers, or pages that Hotcakes Commerce can serve. There are sites with hundreds of thousands of any of those. So this alone is not a barometer of whether or not your site can perform at a higher level.
Before we move on, it's worth nothing that if you're experiencing any performance issues on your desktop, then your mobile visitors are experiencing this in a much worse way. Mobile page loads generally end up being much slower than on a desktop in nearly any scenario.
Performance Troubleshooting Checklist
The following checklist will help you outline what the possible causes and potential fixes might be. You should go through this checklist prior to seeking support about performance. It's not incredibly important the order that you follow, but each of these items require attention on a regular basis for any site of any kind.
Our release process always includes a performance review, which will often require updates prior to a release being made public. You can see evidence of this in nearly every release in our release history.
As such, the first thing you should do before anything else is upgrade your Hotcakes implementation to the latest release if you haven't already done so. This will not only bring with it performance updates, but also a number of stabilization updates and enhancements that will make the lives of you and your team better.
If you're in the need of upgrading, be sure to review what it takes to upgrade.
Check for Errors
Sometimes a specific module on your site might be throwing errors of some kind. Every single time an error occurs, it's a very "expensive" process in terms of performance. If there are errors occurring regularly, then your site overall will begin to be regularly impacted.
If you see any errors in your Event Viewer, you should do everything you can to resolve them as soon as possible. This should be one of your first steps in addressing any perceived performance issues.
Check Theme/Viewset Dependencies
Very often when we inspect a client's performance issue, we find that there are numerous calls out to local and third party client libraries that cause issues that affect the perceived performance of a site.
Your site should be built using the most contemporary accepted web standards, such as CSS3 and HTML 5. Use tools like YSlow to help you determine whether any specific client-side library might be halting your page loads.
Utilize the Correct API
Hotcakes has two API's at your disposal, the server-side and REST API's. They are both quite powerful, but the REST API should only be used when it's absolutely necessary. We have had clients that have made this change alone and seen a 100% improvement in performance.
From time to time, we've found that server connections between the web server and database server haven't seen the proper maintenance, and/or have other processes such as a virus scan that adversely impacts performance. Your web server and database server should be doing that and that alone - serving web pages or data, not both and not other things.
Your web and database server also need to have all of their applicable updates. This will not only allow you to ensure that your servers are functioning at optimal speeds, but they'll also be that much more stable and secure against security breaches/attacks. If you haven't already done so, we'd suggest setting your servers to all automatically update using the Windows Update service.
Enable Static/Dynamic Content Compression in IIS
Every website will have unique needs, but you should be able to enable static compression, dynamic compression, or both. Ideally, if you can enable both, it would result in the best overall performance benefit. However, some websites might be deployed in such a way that one of these options might break other website features.
Database Table Sizes
Most tables in your database have a schema where they expect to have large amounts of data present without having any adverse impact on the performance of your site. However, there are a couple that are a regular exception. They include the EventLog, SiteLog, and Exceptions tables. First, the site log should be disabled on nearly every site. You should generally never see data there. The EventLog and Exceptions tables are related to each other. These tables will begin causing performance issues at or before 100,000 rows of data. You should consider either migrating the information found in those tables or delete them on a regular basis.
Uninstall Unnecessary Extensions
It's not unusual for a site to build up a repository of unused extensions over time. You'll probably find yourself installing and testing a new module or theme and forget to uninstall it when you're done. This happens, and it's easily resolved. Every single extension you install adds to the overhead your site has, and so it is necessary to uninstall any that aren't in use.
Remove Build Files and Projects
If you have access, make sure you remove and don't have any PDB files in your Bin folder of your site. You'll find this folder in the root (or parent) folder where your site files are hosted, and the files will have a .pdb file extension.
If you've been developing on this site, you'll also want to remove any code folders and project files from the site entirely.