# Extremely slow web panel

**URL:** <https://forum.hestiacp.com/t/extremely-slow-web-panel/22258>\
**Category:** Community Support\
**Created:** [October 6, 2026, 3:44pm UTC](https://forum.hestiacp.com/t/extremely-slow-web-panel/22258 "2026-10-06T15:44:45Z")\
**Posts on this page:** 13\
**Page:** 1

<div class="post-metadata">

**Author:** ![jilabaca](https://forum.hestiacp.com/user_avatar/forum.hestiacp.com/jilabaca/32/9135_2.png) [@jilabaca](https://forum.hestiacp.com/u/jilabaca)\
**Post date:** [October 6, 2026, 3:44pm UTC](https://forum.hestiacp.com/t/extremely-slow-web-panel/22258/1 "2026-10-06T15:44:45Z")

</div>

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

---

<div class="post-metadata">

**Author:** ![sahsanu](https://forum.hestiacp.com/user_avatar/forum.hestiacp.com/sahsanu/32/9318_2.png) [@sahsanu](https://forum.hestiacp.com/u/sahsanu)\
**Post date:** [October 6, 2026, 8:14pm UTC](https://forum.hestiacp.com/t/extremely-slow-web-panel/22258/2 "2026-10-06T20:14:39Z")

</div>

Hi,

> [@jilabaca](#):
>
> Do you have any ideas about what might be causing this

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:

```t
sudo -i

```

```t
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

```

---

<div class="post-metadata">

**Author:** ![jilabaca](https://forum.hestiacp.com/user_avatar/forum.hestiacp.com/jilabaca/32/9135_2.png) [@jilabaca](https://forum.hestiacp.com/u/jilabaca)\
**Post date:** [October 6, 2026, 8:17pm UTC](https://forum.hestiacp.com/t/extremely-slow-web-panel/22258/3 "2026-10-06T20:17:19Z")

</div>

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

 ![image](https://forum.hestiacp.com/uploads/default/original/2X/6/6f277daa46cf97995b58515ba97145558b7bd36f.png)

Here, when going to the HestiaCP settings…

 ![image](https://forum.hestiacp.com/uploads/default/original/2X/0/01941b78a3b751783cd82ee848cb44d030a4535e.png)

---

<div class="post-metadata">

**Author:** ![sahsanu](https://forum.hestiacp.com/user_avatar/forum.hestiacp.com/sahsanu/32/9318_2.png) [@sahsanu](https://forum.hestiacp.com/u/sahsanu)\
**Post date:** [October 6, 2026, 8:26pm UTC](https://forum.hestiacp.com/t/extremely-slow-web-panel/22258/4 "2026-10-06T20:26:26Z")

</div>

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…).

---

<div class="post-metadata">

**Author:** ![jilabaca](https://forum.hestiacp.com/user_avatar/forum.hestiacp.com/jilabaca/32/9135_2.png) [@jilabaca](https://forum.hestiacp.com/u/jilabaca)\
**Post date:** [October 6, 2026, 8:26pm UTC](https://forum.hestiacp.com/t/extremely-slow-web-panel/22258/5 "2026-10-06T20:26:29Z")

</div>

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

 ![image](https://forum.hestiacp.com/uploads/default/original/2X/e/e2114c131e70a208c47c53fcdce7a935501e9f04.png)

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](https://xxxxxxxxxx)”

---

<div class="post-metadata">

**Author:** ![sahsanu](https://forum.hestiacp.com/user_avatar/forum.hestiacp.com/sahsanu/32/9318_2.png) [@sahsanu](https://forum.hestiacp.com/u/sahsanu)\
**Post date:** [October 6, 2026, 8:30pm UTC](https://forum.hestiacp.com/t/extremely-slow-web-panel/22258/6 "2026-10-06T20:30:52Z")

</div>

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

Use this:

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

```

---

<div class="post-metadata">

**Author:** ![jilabaca](https://forum.hestiacp.com/user_avatar/forum.hestiacp.com/jilabaca/32/9135_2.png) [@jilabaca](https://forum.hestiacp.com/u/jilabaca)\
**Post date:** [October 6, 2026, 8:36pm UTC](https://forum.hestiacp.com/t/extremely-slow-web-panel/22258/7 "2026-10-06T20:36:07Z")

</div>

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.

```auto
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/"

```

---

<div class="post-metadata">

**Author:** ![sahsanu](https://forum.hestiacp.com/user_avatar/forum.hestiacp.com/sahsanu/32/9318_2.png) [@sahsanu](https://forum.hestiacp.com/u/sahsanu)\
**Post date:** [October 6, 2026, 8:45pm UTC](https://forum.hestiacp.com/t/extremely-slow-web-panel/22258/8 "2026-10-06T20:45:38Z")

</div>

> [@jilabaca](#):
>
> It’s still loading slowly

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:

```t
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

```

> [@jilabaca](#):
>
> it is strange that this message is showing up now.

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

---

<div class="post-metadata">

**Author:** ![jilabaca](https://forum.hestiacp.com/user_avatar/forum.hestiacp.com/jilabaca/32/9135_2.png) [@jilabaca](https://forum.hestiacp.com/u/jilabaca)\
**Post date:** [October 6, 2026, 8:59pm UTC](https://forum.hestiacp.com/t/extremely-slow-web-panel/22258/9 "2026-10-06T20:59:23Z")

</div>

```auto
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#

```

---

<div class="post-metadata">

**Author:** ![jilabaca](https://forum.hestiacp.com/user_avatar/forum.hestiacp.com/jilabaca/32/9135_2.png) [@jilabaca](https://forum.hestiacp.com/u/jilabaca)\
**Post date:** [October 6, 2026, 9:03pm UTC](https://forum.hestiacp.com/t/extremely-slow-web-panel/22258/10 "2026-10-06T21:03:03Z")

</div>

List user: 7416 ms

![image](https://forum.hestiacp.com/uploads/default/optimized/2X/e/e7b5d10fd11085a59cc2039625c463b3fb0e97fb_2_690x21.png)

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

![image](https://forum.hestiacp.com/uploads/default/optimized/2X/2/21db3cbbd6e3826d960db65597377e79ee37d4e9_2_690x20.png)

---

<div class="post-metadata">

**Author:** ![sahsanu](https://forum.hestiacp.com/user_avatar/forum.hestiacp.com/sahsanu/32/9318_2.png) [@sahsanu](https://forum.hestiacp.com/u/sahsanu)\
**Post date:** [October 6, 2026, 9:06pm UTC](https://forum.hestiacp.com/t/extremely-slow-web-panel/22258/11 "2026-10-06T21:06:59Z")

</div>

Ok, the files are the right ones.

> [@jilabaca](#):
>
> List user: 7416 ms

That’s expected.

> [@jilabaca](#):
>
> Server Setting Edit: 6969 ms,

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.

---

<div class="post-metadata">

**Author:** ![jilabaca](https://forum.hestiacp.com/user_avatar/forum.hestiacp.com/jilabaca/32/9135_2.png) [@jilabaca](https://forum.hestiacp.com/u/jilabaca)\
**Post date:** [October 6, 2026, 9:25pm UTC](https://forum.hestiacp.com/t/extremely-slow-web-panel/22258/12 "2026-10-06T21:25:02Z")

</div>

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.

---

<div class="post-metadata">

**Author:** ![sahsanu](https://forum.hestiacp.com/user_avatar/forum.hestiacp.com/sahsanu/32/9318_2.png) [@sahsanu](https://forum.hestiacp.com/u/sahsanu)\
**Post date:** [November 3, 2026, 10:49am UTC](https://forum.hestiacp.com/t/extremely-slow-web-panel/22258/13 "2026-11-03T10:49:53Z")

</div>

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

> <https://github.com/hestiacp/hestiacp/pull/5890>
>
> The goal of this change is to drastically improve the load time of Server Settin…gs -\> Configure when the system has dozens or hundreds of users, since that page relies on backendtpl\_with\_webdomains() to group web domains by backend template.
> 
> \`bin/v-list-web-domain-backendtpl-all\`: new script that lists all web domains grouped by backend template and owner, parsing all users' web.conf files in a single PHP invocation via new \`func/object-parser.php\` instead of spawning a parser per user/domain.
> \`web/inc/main.php\`: modified \`backendtpl\_with\_webdomains()\` to call \`v-list-web-domain-backendtpl-all\` once, removing the \`v-list-users\` + per-user \`v-list-web-domains\` loop (N+1 execs).
> docs/docs/reference/cli.md: added documentation for the new \`v-list-web-domain-backendtpl-all\` command.
> 
> I used a simulated test with 700 users with 1 domain:
> 
> Results (700 users × 1 domain = 700 domains, 5 runs):
> Old (v-list-web-domains per user, N+1 execs): avg 27.3549s over 5 run(s)
> New (v-list-web-domain-backendtpl-all): avg 0.1398s over 5 run(s)
> 
> ~195x faster.
> 
> In a real Hestia installation (700 users × 1 domain = 700 domains):
> Old: Server Settings -\> Configure: ~61 seconds
> New: Server Settings -\> Configure: ~1.37 seconds
> 
> \*\*~45x faster\*\*.
> 
> Fixes #5889
