PerfLoad / website load test
Website Load Testing: See How a URL Handles Concurrent Visitors
“Will my site hold up if a lot of people show up at once?” PerfLoad can answer the server-side half of that question. Give it a page URL, choose how many simultaneous visitors to simulate, and it reports how quickly your server responds and how many requests fail. It is worth being precise about what that does and doesn't cover, so this page spells it out.
Load Test a URL →Only test sites you own or have permission to test. Runs in Docker — installation guide.
What a website load test with PerfLoad measures
Each virtual user requests the URL you supply and waits for the response. That tells you how the server, application, database, cache, and CDN behave when many requests arrive together: response time at p95 and p99, requests per second, and how many responses came back as errors.
What it does not measure
- It requests the URL itself, not the images, stylesheets, scripts, or API calls the page loads afterwards.
- It does not run a browser, so there's no JavaScript execution, rendering time, or Core Web Vitals.
That makes it a server-capacity check, not a front-end performance audit. For page-rendering speed, use a browser-based tool alongside it.
How to run one
- Pick the URLs that matter. Usually the home page, a search or listing page, and the most common detail page, rather than every URL.
- Write it as curl. A plain
curl 'https://www.example.com/'is enough. - Send one request first. Run Single shows you the full response, which confirms you're loading the page you meant to, not a login redirect or a bot-challenge page.
- Start small. A few users for a short time, then increase.
- Compare runs. Save each run and compare before and after a change, such as a caching or database tweak.
Avoid testing only your cache
If a CDN or page cache sits in front of the site, repeating one URL mostly measures how fast the cache can answer. To exercise the application behind it, vary the request. A random query value is a simple way:
curl 'https://www.example.com/products?page=${random}''
Whether that bypasses your cache depends on how the cache is configured, so check its behavior first. You may also want two tests, one cache-friendly to see the best case and one varied to see the worst.
Check that the page is the right page
A fast 200 that returns an error page is not a pass. Add a text validation so each response must contain something the real page always has, such as a heading or a product name. PerfLoad then counts responses missing that text as failures, alongside the default 2xx status check.
Read the numbers in context
- A rising p95 with steady throughput often points to a slow database query or an overloaded worker pool.
- A wall of errors right after the load starts can mean rate limiting or bot protection, not a weak server. Check the status codes before tuning anything.
- Results from a small test machine against a large site mostly reflect your test setup. Run PerfLoad near the target, as described in self-hosted load testing.
FAQ
Can I load test a site I don't own?
Don't. Load tests send real traffic, and running one against a third-party site without permission can disrupt it and may breach their terms. Test your own sites, or ones you've been authorized to test.
Will it tell me how fast my page renders in a browser?
No. PerfLoad measures HTTP responses from the server. Rendering, script execution, and Core Web Vitals need a browser-based tool.
Can it handle pages behind a login?
If you can express the request with the right headers, such as an Authorization header or a session cookie header, you can include them in the curl command. Keep credentials for test accounts only.
Related guides
Find out how your server handles a crowd
Start with your most-visited URL and a small number of users.
Load Test a URL →