Why visitor counts mislead course sites
Hosting plans are sold by monthly visits or bandwidth. A course site's bottleneck is different: 100 people logging in, opening a lesson and submitting a quiz in the same five minutes. Kinsta's PHP documentation explains that cached content does not need PHP threads, each thread handles one request at a time, and when all threads are busy additional requests wait. Slow or unoptimized sites can then produce 503 and 504 errors.
Logged-in learners typically get uncached pages because progress, quiz state and access rules differ per person. So the number that matters is how many uncached requests arrive per second and how long each takes.
Rough arithmetic you can do before calling a host
Example, not a measurement: if 100 students submit a quiz within 60 seconds and each submission takes 0.5 seconds of PHP time, that is 50 PHP-seconds of work per minute, or under one busy thread on average. If the same 100 students all click submit within 5 seconds, you need about 10 threads to avoid queueing. If each request takes 2 seconds because of a slow plugin, multiply by four.
Measure your own request time on staging (browser developer tools, or your host's APM) and redo the sum. Bursts, not averages, decide the plan.
| Kinsta plan (listed Oct 29, 2026) | PHP threads | Memory per thread | Listed price |
|---|---|---|---|
| Single 35k / 20GB | 2 | 256MB | $35/month or $350/year |
| Single 65k / 40GB | 4 | 256MB | $50/month or $500/year |
| Single 125k / 65GB | 6 | 256MB | $90/month or $900/year |
| Single 500k / 250GB | 8 | 256MB | $290/month or $2,900/year |
What LearnDash says about app traffic
If you use the LearnDash App, its hosting page gives concrete sizing with API caching enabled and 100% app traffic: up to 150 concurrent users at 16GB+ RAM, 8+ CPU cores, 50GB+ storage; up to 300 users at 32GB+ RAM and 16+ cores. It recommends PHP 8.1, cloud hosting over shared, VPS or dedicated, LiteSpeed Enterprise rather than NGINX, MariaDB 10.1+, and an object cache such as Object Cache Pro or Redis with Relay.
That table is for app API traffic, not browser visits, and it is LearnDash's guidance rather than a guarantee. It does show that 100+ simultaneous active learners is a server-class workload, well beyond an entry shared plan.
Questions to send every candidate host
| Ask | A useful answer looks like |
|---|---|
| How many PHP threads or workers does this plan have, and what does adding more cost? | A number per plan and a written upgrade price. |
| Which LearnDash and membership routes are excluded from page cache? | A list matching your login, course, quiz and account URLs. |
| Is a persistent object cache (Redis) available, and at what cost? | Yes/no plus price; LearnDash recommends one for app traffic. |
| Can we run a load rehearsal on staging? | Written permission, limits, and who watches the server during the test. |
| Who troubleshoots a slow plugin? | A support-scope answer; many hosts exclude third-party code. |
Run a rehearsal before you commit
- Clone the site to staging with synthetic student accounts; disable live payments, outbound email and production webhooks.
- Script your busiest five minutes: login, open lesson, mark complete, submit quiz.
- Set pass thresholds first, for example: zero lost quiz results, under 1% errors, and a response time you would accept as a student.
- Ramp from 10 to your target concurrency and record errors and response times at each step.
- Afterwards log in as two individual students and confirm progress and scores saved correctly. A fast page that drops a quiz result is a fail.
- These are proposed checks. We have not run this load test on any named host.
Questions before you decide
How many PHP threads do 100 students need?
It depends on how tightly their actions cluster and how long each request takes. 100 submissions spread over a minute at 0.5 seconds each need roughly one thread; the same submissions within 5 seconds need about ten. Measure request time on staging and do the arithmetic for your burst.
Can I use my monthly visitor count to choose a course hosting plan?
Only for billing. Visit allowances describe mostly cached public traffic; logged-in learners are uncached, so capacity is set by PHP threads, CPU and database speed during your busiest class.
Is shared hosting fine for LearnDash?
For small, staggered classes it can be. LearnDash's app guidance recommends cloud hosting over shared for app traffic, and any burst of simultaneous logged-in learners should be tested before relying on a shared plan.
Sources & verification
Product details and prices can change. Check the linked provider before buying.
- Kinsta: PHP threads, memory limit and per-plan thread counts Accessed 29 Oct 2026
- Kinsta: WordPress hosting plans and pricing Accessed 29 Oct 2026
- LearnDash: hosting recommendations for the LearnDash App Accessed 29 Oct 2026
Sources link directly to providers. Product buttons may use separately labeled affiliate links. Read our disclosure.