Extremely slow web panel

Hi, I’m running HestiaCP with over 700 users (students) and am experiencing several issues; I’ll split them into separate threads to see if you can help.

My second issue concerns the panel itself: navigating between different options—such as listing users or accessing the main panel configuration—is extremely slow. In terms of resources, the server has 32GB of RAM and 8 vCPUs.

Do you have any ideas about what might be causing this, what could be optimized, or if there are any maintenance tasks I should perform?

Thanks

Hi,

Yes, the issue is the function backendtpl_with_webdomains() in web/inc/main.php executing v-list-web-domains once per user, in your case more than 700 times.

I’ve created a new script to avoid this but you must add the new script and modify the main.php.

Execute below commands as root:

sudo -i
mv /usr/local/hestia/web/inc/main.php /usr/local/hestia/web/inc/main.php.ori
curl -fsSL https://deve.dev/jilabaca/main.php.mod -o /usr/local/hestia/web/inc/main.php
curl -fsSL https://deve.dev/jilabaca/v-list-web-domain-backendtpl-all -o /usr/local/hestia/bin/v-list-web-domain-backendtpl-all
chmod 755 /usr/local/hestia/bin/v-list-web-domain-backendtpl-all

Here are the times I’m getting when listing users, for example.

Here, when going to the HestiaCP settings…

Did you try the new script? It only works when accessing Settings, the list of users can’t be enhanced (well, we could add a pagination…).

I just did that and got a 500 error; I just reverted main.php.

I just found this in the nginx-error log.

2026/10/06 17:20:52 [error] 1068802#0: *56360 FastCGI sent in stderr: “PHP message: PHP Fatal error: Uncaught Error: Call to undefined function load_hestia_config() in /usr/local/hestia/web/login/index.php:432
Stack trace:
#0 {main}
thrown in /usr/local/hestia/web/login/index.php on line 432” while reading response header from upstream, client: 10.12.1.193, server: _, request: “GET /login/ HTTP/2.0”, upstream: “fastcgi://unix:/run/hestia-php.sock:”, host: “hosting-01.xxxxxxx:8083”, referrer: “https://xxxxxxxxxx”

Sorry, I shouldn’t use the extension php to download the main.php file

Use this:

curl -fsSL https://deve.dev/jilabaca/main.php.mod -o /usr/local/hestia/web/inc/main.php

It’s still loading slowly, but this time there was no error; however, this other message appeared in the log—one I hadn’t seen before. I know the page mentioned in the log isn’t the one I just modified, but it is strange that this message is showing up now.

2026/10/06 17:35:05 [error] 1068802#0: *57072 FastCGI sent in stderr: "PHP message: PHP Warning:  Undefined variable $panel in /usr/local/hestia/web/inc/policies.php on line 5; PHP message: PHP Warning:  Trying to access array offset on null in /usr/local/hestia/web/inc/policies.php on line 5; PHP message: PHP Warning:  Trying to access array offset on null in /usr/local/hestia/web/inc/policies.php on line 5" while reading response header from upstream, client: x.x.x.x, server: _, request: "GET /list/web/ HTTP/2.0", upstream: "fastcgi://unix:/run/hestia-php.sock:", host: "hosting-01.srv.x.x.x.x.l:8083", referrer: "https://hosting-01.srv.x.x.x.x.l:8083/list/db/"

I’m testing it with 1000 users and Configure loads instantly. As I said, the list of users in main page will load as usual.

Show me the output of these commands:

md5sum /usr/local/hestia/web/inc/main.php
md5sum /usr/local/hestia/bin/v-list-web-domain-backendtpl-all
ls -l /usr/local/hestia/web/inc/main.php
ls -l /usr/local/hestia/bin/v-list-web-domain-backendtpl-all

I don’t see any relation with the modification of main.php

root@hosting-01:/usr/local/hestia/web/inc# md5sum /usr/local/hestia/web/inc/main.php
727fda27aca1002f63fa294df5f01840  /usr/local/hestia/web/inc/main.php
root@hosting-01:/usr/local/hestia/web/inc# md5sum /usr/local/hestia/bin/v-list-web-domain-backendtpl-all
5941fc3327be5741690ea7d7a53c278c  /usr/local/hestia/bin/v-list-web-domain-backendtpl-all
root@hosting-01:/usr/local/hestia/web/inc# ls -l /usr/local/hestia/web/inc/main.php
-rw-r--r-- 1 root root 16464 Oct  6 17:43 /usr/local/hestia/web/inc/main.php
root@hosting-01:/usr/local/hestia/web/inc# ls -l /usr/local/hestia/bin/v-list-web-domain-backendtpl-all
-rwxr-xr-x 1 root root 2848 Oct  6 17:19 /usr/local/hestia/bin/v-list-web-domain-backendtpl-all
root@hosting-01:/usr/local/hestia/web/inc#

List user: 7416 ms

image

Server Setting Edit: 6969 ms, This has changed significantly—the loading… it used to take much longer.

image

Ok, the files are the right ones.

That’s expected.

With 1000 users it takes less than 1 second in my VM but I don’t have a web domain for all the users so that looks normal.

The loading speed changed completely after the server edit—it’s much better than before. Thanks a lot for the help. Regarding pagination, that could be a solution for listing users; though I think my case is a bit unique, as I have a large number of active users.

I’ve created this PR to fix it in main: