Step zero: what each host allows
| Host | Published position | What to do |
|---|---|---|
| Kinsta | Load testing (stress testing your site with simulated traffic) is prohibited on the MyKinsta platform | Do not load test a Kinsta site; use single-user speed tests and ask support about capacity |
| WP Engine | Acceptable use policy does not mention load testing; bars excessive burdens on systems and requires prior written approval for any vulnerability or penetration testing | Ask support in writing before testing and keep the reply |
| DigitalOcean | Acceptable use policy prohibits any deliberate attempt to overload a system and flooding techniques | Ask support for written confirmation before testing even your own Droplet |
| SiteGround | Fair-use article sets CPU-seconds red-flag values and says extreme or repeated over-usage may lead to limited access | Ask support first; a test can trip the same limits your students would |
Why membership sites need logged-in scenarios
A test that only requests the home page measures the page cache, not your capacity. Logged-in members, lesson pages with progress tracking, quizzes and checkout all run PHP and database queries on every request. Kinsta's site caching documentation, for example, says its server cache does not cache dynamic pages that are ineligible for caching, and that support can configure rules to bypass the cache for specific pages such as login, account and registration pages.
k6 handles this well: its documentation says cookies are managed automatically by default in the virtual user's cookie jar, so a script that logs in once per virtual user and then walks lesson pages behaves like real members. Create dedicated test accounts on the staging copy, never real student accounts, and use the payment gateway's test mode.
| Scenario | Share of virtual users | What it exercises |
|---|---|---|
| Anonymous sales page | Small | Page cache and CDN |
| Log in and open dashboard | Medium | Authentication, session cookies, uncached dashboard |
| Open lesson and mark complete | Largest | Course plugin queries and progress writes |
| Submit a quiz | Small | Write-heavy requests and grading |
| Checkout in test mode | Small | Uncached cart and payment flow |
A safe staging method
- Clone production to staging and confirm staging has the same PHP version, object cache and plugins as the plan you are evaluating.
- Disable outbound email and webhooks on staging so test enrollments do not mail anyone or hit live payment endpoints.
- Run a smoke test first: very few virtual users for a minute or two to prove the script works. Grafana's k6 guide describes smoke tests as minimal load for seconds to minutes.
- Run an average-load test at your expected concurrent members for 5 to 60 minutes, which is the range k6 documents for average-load and stress tests.
- Only with written permission, step load upward in stages and stop at the first sustained error increase; do not run open-ended breakpoint tests on shared infrastructure.
- Encode pass criteria as k6 thresholds, for example http_req_failed below 1% and p(95) of http_req_duration below a target; k6 exits with a non-zero code when a threshold fails.
Numbers to record at every step
| Metric | Source | Why it matters |
|---|---|---|
| Concurrent virtual users | k6 output | The load level for that step |
| Requests per second | k6 output | Throughput you can compare across hosts |
| p95 response time per scenario | k6 http_req_duration | What slow members experience |
| Error rate | k6 http_req_failed | First sign of exhausted PHP workers or timeouts |
| Cache status header per scenario | Response headers | Confirms logged-in pages were really uncached |
| CPU and memory, or CPU seconds | Host dashboard or server monitoring | Maps the test to plan limits |
Comparing results against plan limits
Shared plans publish resource ceilings you can compare against. SiteGround's fair-use article sets CPU-seconds red-flag values of 1,000 per hour and 10,000 per day on StartUp, 2,000 and 20,000 on GrowBig, and 4,000 and 40,000 on GoGeek, plus inode limits of 200,000, 400,000 and 600,000 and a recommendation to keep databases up to 1,000MB.
Worked example with an assumed figure: if your staging monitoring showed a logged-in lesson view costing 0.3 CPU seconds (an illustration, not a measurement), 4,000 lesson views in a peak hour would use about 1,200 CPU seconds, above StartUp's hourly red-flag value and within GrowBig's. Measure your own per-request cost; course plugins, quiz settings and object caching change it a lot.
On a VM such as a DigitalOcean Droplet there is no published CPU-seconds ceiling; the limit is the Droplet's vCPU and memory. The useful output is the concurrency at which p95 time or errors start rising, which tells you whether to size up before a launch.
When not to load test
- On any host that prohibits it, including Kinsta per its documentation.
- Against production during enrollment periods or when real members are online.
- When you have not disabled outbound mail, webhooks and live payment keys on the copy.
- When a simpler check answers the question: a single logged-in page timed with caching bypassed often shows the bottleneck without any load.
Questions before you decide
Can I load test a site hosted on Kinsta?
Kinsta's speed and load testing documentation says load testing is prohibited on the MyKinsta platform and refers to its terms of service.
Which k6 test type should I start with?
A smoke test with minimal load to validate the script, then an average-load test at expected traffic. Grafana's k6 documentation describes average-load and stress tests as typically 5 to 60 minutes.
Sources & verification
Product details and prices can change. Check the linked provider before buying.
- Kinsta: Speed and load testing Accessed 29 Oct 2026
- Kinsta: Site caching Accessed 29 Oct 2026
- WP Engine: Acceptable use policy Accessed 29 Oct 2026
- DigitalOcean: Acceptable use policy Accessed 29 Oct 2026
- SiteGround KB: Fair use of SiteGround hosting Accessed 29 Oct 2026
- Grafana k6: Load test types Accessed 29 Oct 2026
- Grafana k6: Thresholds Accessed 29 Oct 2026
- Grafana k6: Cookies example Accessed 29 Oct 2026
Sources link directly to providers. Product buttons may use separately labeled affiliate links. Read our disclosure.