Performance issues are a pressing subject of audits and a matter of the website owner’s concerns. The performance significantly affects the user-friendliness and is a significant factor of the website’s rank in the search engines.
In this article, we will consider the main issues of the Bitrix websites’ performance and reveal insights into the methods and tools using which they can be fixed.
Why a website runs slow
On the Internet, you can oftentimes see someone bash Bitrix, call it slow and underperforming, but in the real life, most often than not, the issue is caused by other things: weak server configuration, incorrect Bitrix settings, bad quality of code, etc.
Those causes may be broken down into two groups: those that take place on the server side and those that take place on the client side, i.e., processed by the user’s browser.
Let us consider those groups and causes in greater detail.
Issues on the server side
Any audit of the website begins with the analysis of the server side of the website because it influences the other subsystems. Unlike the client side, it involves much more analysis.
The major causes on the server side are the following:
- Weak hosting and incorrect server configuration.
- Errors of the system environment settings.
- Low quality of code and development errors.
- Suboptimal architecture of a project.
Hosting and server configuration
Bitrix has quite a lot of requirements for the server’s resources and optimality of its settings. The correct operation of the entire website depends on it, so it should be checked first.
You can check the performance of the server configuration on Settings / Performance / Performance panel.
The values of all subsystems cannot be below the reference level and should be configured optimally. The mere fact that the configuration performance and the average response time is below the reference value is not yet a reason for panic. Check the values of the other subsystems, and, if they are within the reference level, the issue is, most likely, the backend code of the website.
The decrease in the configuration threshold value and the decrease in the response time are often caused by the code of the event handlers, the code of the third-party developers’ solutions, and even by the system modules. The decrease also takes place during the execution of certain operations on the website, such as exchange with 1C, execution by the agents. So, this should be taken into account.
To solve the issues related to the event handlers, you will need a professional, but you can disable the unnecessary modules yourself. However, do not forget to make a backup of the website before doing so, in case you delete something important and disrupt the website operation.
You can disable the system modules using the administrator panel on Settings / Product settings / Modules, and the third-party developers’ solutions loaded to the website on Marketplace / Installed solutions.
Almost every website has a candidate for disabling, namely the Web analytics module.
If the server values are low, we recommend moving to another hosting. Syncweb hosting meets all the requirements of the 1С Bitrix system: Site management.
Errors of the system environment settings
The procedure of work involves many modules, extensions and programs of the server. You can learn if their work is correct or not on the page of the complete website check: Settings / Tools / System check.
The best case is the absence of any issues, and if there is an issue, the button with the question mark beside will contain recommendations on how the issue can be solved.
Besides that, we recommend switching the work of agents to cron. This will decrease the server load and improve the precision of the task.
Also, the key part of the performance is caching. So, make sure to check how it works. This can be learned on the page of the performance check on Settings / Performance / Performance panel of the Bitrix tab.
Besides caching, all settings are to be optimally configured.
Besides caching, all settings are to be optAnother important part of the system is the database server. The report on the database work can be found on Settings / Performance / Database server.
There are many parameters, and the best case is the absence of red-colored values. Besides, it can be dangerous to change the MySQL configuration on your own, it is better to seek a professional’s help.
Low quality of code and development errors
Bitrix has a tool designed to check the pages’ load, speed of their work and errors of those pages’ components. Since the same is true for the key performance factors, it is on the page of Settings / Performance / Performance panel.
The tool only displays the report on the pages’ work at an actual loading through the performance test. It is deemed that the standard average page response time is less than 0.5 seconds. If you have heavy pages, the next step is to use the Debugging mode in the publicly available part of the website.
Using it, you can see which components produce the most load on the page where the cache and other things do not work.
Oftentimes, those measures are enough to identify the «enemy» and correct the error, but sometimes the issue lies deeper. In such a case, a good professional checks the quality of the code, searching the cause of the bad performance of the component.
Suboptimal architecture of a project
Such errors can affect significantly the work of a website, especially if it is an expansion that processes the products’ data. Basically, a developer could, due to its incompetence, write a too complex logic of the solution algorithm. In time, such a code can gradually make a website run slower in proportion to the increase of the amount of data on the website until it becomes evident.
Such issues are labor-intensive, and, in some cases, it is simpler to just rewrite everything from scratch rather than to scrutinize the current solution and wonder why the developer did things a certain way and not the other or why a certain solution was made.
Another example is the placement of scripts for the call to external services, such as currency rate query, request to a delivery service, etc., in the code. Call to services can sometimes take a long time, and the page will run slow in such a case. The best way available is to move such a code to the agent and record the data to a separate database table, otherwise to make an AJAX query and to put a stub instead of display.
Issues on the client side
Since such issues concern the rendering in the browser, the tools such as Google PageSpeed Insights are used in such cases. In the PageSpeed Insights report, you can find issues with the desktop and mobile versions of the website. Those errors also concern the quality of the frontend code, the developed coding of the project, and its design, i.e., everything that concerns display.
The causes of the bad performance on the client’s side are the following:
- Non-optimized graphics.
- Excessive styles and scripts.
- Large tag tree.
- No required level of resources compression.
- Heavy third-party connections.
Non-optimized graphics
Usually, the ready-made solutions have optimized graphics and do not require any improvements. On the contrary, if a website is made by a developer, the latter can easily forget about this consideration. The idea of how to solve this issue is to compress the graphics to the size at which they will be used for display on the website instead of full size. For this purpose, the programmers use special functions.
Another issue is the display of images right after the page is open. The images will take a long time to load altogether, thus making difficulties for the user’s work on the website. However, the state-of-the-art websites use the lazyload technology. Thanks to this, a website loads very quickly, and images are displayed smoothly and gradually, not all at once.
Excessive styles and scripts
The excess is caused by redesign and improvements of the website coding in the form of commented code that they forgot about, or not-in-use plugins and scripts. This creates some kind of chaos and disorder in the code that affects the speed of a page rendering. Unfortunately, we cannot recommend any solution better than the manual check of the scripts and styles.
Large tag tree
A too deep tag tree affects the speed of page opening. While the other issues can be simply dealt with, this particular instance seems to require analysis and coding of the website. The procedure is difficult and has to be done manually.
No required level of resources compression
For the solution of this issue, Bitrix has settings that include the creation of a compressed version of CSS and JS files, the scripts and styles paste functionality, as well as JS moving to the end of the page. This can be done on the page of Settings / Product settings / Modules settings / Main module.
In the settings, you need to at least enable the combination and creation of a compressed copy of scripts, but if you move something to the end of the page, you can break it. So, it is at your own peril and risk, you have to check everything.
It should be noted that those settings can only debug the scripts and styles that are connected using special methods, such as SetAdditionalCSS and AddHeadScript or their equivalents in the d7 core. The other connections will be ignored.
Heavy third-party connections
The third-party plugins and scripts are such as Yandex.Metrics, Google Analytics, as well as various widgets and online chats. Such scripts can influence significantly the speed of the website loading. Note that some of them are adapted to loading through the lazyload functions, but there are others, that cause issues.
To solve this problem, we create a lazyload function for loading a plugin or a script. Otherwise, you have to consider removing the plugin or let it be.
Conclusion
With these recommendations and instructions, you can make your website run faster and solve the performance issues on your own. Otherwise, if there are any difficulties, or if you feel that the issue lies deeper, you will need a specialist familiar with the platform. For this purpose, you can contact us and commission an audit of the website.