# My site is slow

> Find out whether the time goes in your app, in the browser or in traffic you did not ask for, using the Analytics tab.

Source: https://veldhost.eu/docs/site-is-slow

Last verified: 2026-11-13

"Slow" can mean the server takes long to answer, or the browser takes long to draw the page once it has the answer. Your site's **Analytics** tab measures the first on our servers, for every request. Start there.

## Why it happens

- **Your app takes long on some pages.** A slow database query, a call to an outside API, or a page that does too much work.
- **Your site is short of CPU or memory.** Each site has its plan's share. On Starter that is 768 MB of memory and 0.5 (burst) vCPU; on Pro, 2 GB and 1 vCPU. A site may use more CPU than its share when the server has room, but not when the server is busy.
- **Traffic you did not invite.** Crawlers and scripts asking for many pages at once take the same workers your visitors need.
- **Nothing is cached.** On WordPress we keep finished pages for a short time and serve them without running PHP, but never to logged-in users or for URLs with a query string. Other PHP stacks have no page cache, because sessions and forms make it unsafe.
- **The page is heavy in the browser.** Large images, many scripts. The server can answer fast and the page still feels slow.

## Fix it

1. **Measure.** Open [Sites](https://manage.veldhost.eu/portal/sites), choose your site, then **Analytics**. Under **Response time** (*server-side, per request*), compare **Median (p50)** with **Slowest 5% (p95)**. The p95 figure turns to a warning colour when it is high.
   - Median and p95 both low, yet the site feels slow? The time goes in the browser. In your app: compress images, lazy-load them, and trim scripts. Test with your browser's developer tools.
   - Median fine, p95 high? A few pages are slow. Go to step 2.
   - Both high? The whole site is short of something. Go to step 3.
2. **Find the slow pages.** **Top pages** shows what is asked for most. Look for errors and timeouts on the **Logs** tab under **Web server errors** (`upstream timed out`) and in **Application**. In your app: enable your framework's slow-query log, add a database index, or cache the result of the slow call.
3. **Check resources.** Further down **Analytics**, **Resources** shows **CPU now**, **Memory** and **Out-of-memory kills**. Switch to **7 days**. If **CPU (cores)** stays high through the slow periods, your site is using all the CPU it can get. Memory near the limit, or kills above zero, means you are short of memory: see ["Allowed memory size exhausted" / out of memory](https://veldhost.eu/docs/out-of-memory).
4. **Check who is asking.** **Visitors vs. bots**, **Search & AI crawlers** and **Why traffic was counted as automation** show how much of the load is automated. In your app: slow crawlers down with `robots.txt`, and block the ones that ignore it.
5. **WordPress: check the cache.** **Cache** shows the **hit ratio** of cacheable requests. **Bypassed** requests skip the cache by design: logged-in users, shop carts, and URLs with a query string. Many **Miss** requests mean pages are not being kept; a plugin that sets a cookie on every page can stop them being stored.
6. **Still short after all that?** A bigger plan gives more CPU and memory. Compare in [Plans and add-ons](https://veldhost.eu/docs/plans-and-add-ons).

## Still stuck?

[Contact us](https://veldhost.eu/contact) with the site name, a page that is slow, and the time you saw it. A **Response time** figure from **Analytics** helps more than a speed-test score, because it leaves out the network and the browser.

## Related

- [Traffic and analytics](https://veldhost.eu/docs/site-analytics)
- [Your site's overview page](https://veldhost.eu/docs/site-overview)
- ["Allowed memory size exhausted" / out of memory](https://veldhost.eu/docs/out-of-memory)
- [Reading your site logs](https://veldhost.eu/docs/site-logs)