Step 1: confirm the requirements match
The LearnDash requirements page in Nexcess's documentation lists WordPress 6.6 or later, PHP 7.4 or later, MySQL 5.6 or MariaDB 10.1 or later, a PHP memory limit of at least 128 MB and HTTPS, and states that LearnDash does not support multisite. WordPress.org itself recommends PHP 8.3 or greater and MySQL 8.0 or MariaDB 10.11.
Kinsta's PHP documentation lists PHP 7.4 through 8.5 as available and sets the memory available to each PHP thread at 256 MB on lower plans and 512 MB on higher tiers. Both comfortably exceed LearnDash's 128 MB floor. The one requirement that changes your plan is multisite: if you planned a network of course sites, LearnDash will not support it, so budget for separate single sites instead.
| Requirement | LearnDash minimum | WordPress.org recommendation | What Kinsta documents |
|---|---|---|---|
| PHP | 7.4 or greater | 8.3 or greater | 7.4, 8.0, 8.1, 8.2, 8.3, 8.4 and 8.5 offered |
| Database | MySQL 5.6+ or MariaDB 10.1+ | MySQL 8.0+ or MariaDB 10.11+ | Not stated on the pages reviewed; confirm in MyKinsta |
| Memory | 128 MB PHP memory limit | Not specified | 256 MB per thread on lower plans, 512 MB on higher tiers |
| HTTPS | Required | Recommended | Confirm the certificate in MyKinsta before launch |
| Multisite | Not supported | Not applicable | Use separate single sites for separate academies |
Step 2: set permalinks before building courses
LearnDash says it works best with a custom permalink structure and that the default Plain setting can cause broken links and 404 errors. Its documentation also advises setting LearnDash permalinks during initial configuration, because switching them repeatedly after content exists can break links.
This matters for caching too. The cache exclusions in the next step are written as URL paths, so decide whether you will use nested URLs, where lessons, topics and quizzes sit inside the course URL, before you send those paths to support. LearnDash notes that nested URLs turn on automatically if Shared Course Steps is enabled.
Step 3: request cache exclusions from Kinsta support
Kinsta's server cache is full-page caching that expires every 24 hours by default. Its documentation says dynamic pages that are ineligible for caching are not cached, using a checkout page as the example, and that the Kinsta Support team can configure rules to bypass the cache for specific pages, with /login, /account and /register given as examples. There is no self-service exclusion field described on that page.
For LearnDash, WP Rocket's membership documentation lists /courses/(.*) as the LearnDash pattern to exclude, notes that you may need to add other pages your plugin uses, and says that on Kinsta and several other managed hosts you must ask the host's support to exclude those patterns for exclusions to work. That last point is the trap: adding exclusions in a caching plugin alone does nothing for Kinsta's server-level cache.
- List your course, lesson, topic and quiz base paths from Settings, Permalinks (for example /courses/, /lessons/, /topic/, /quizzes/ if you kept defaults).
- Add login, registration, profile and any custom dashboard pages.
- Send the list to Kinsta support and ask which paths they applied and whether logged-in cookies already bypass cache on your site.
- Test as a logged-in learner in one browser and logged-out in another: progress, Mark Complete buttons and quiz results should never show another user's state.
Step 4: choose a plan by PHP threads
Logged-in learners mostly bypass page cache, so their requests are handled by PHP. Kinsta's documentation says each PHP thread handles one request at a time, and if all threads are busy, additional requests wait; unoptimized sites can see timeouts or 503 and 504 errors. That makes thread count, not monthly visits, the number to compare for a course site.
Kinsta's PHP page includes a table of threads per plan. Read as a flattened table, it lists the following for lower tiers; Kinsta also lets you change thread count per site under Info, PHP performance. Prices are from Kinsta's pricing page, monthly with the annual-billing equivalent in brackets.
| Plan | Price per month | PHP threads | Memory per thread | Fit for LearnDash |
|---|---|---|---|---|
| Single 35k visits | $35 ($30 annual) | 2 | 256 MB | Building and pre-launch; small cohorts that rarely overlap |
| Launch | $35 ($30 annual) | 4 | 256 MB | Listed at 75,000 estimated visits; a better starting point if learners take quizzes at the same time |
| Single 65k visits | $50 ($42 annual) | 4 | 256 MB | Same thread count as Launch at a higher price; compare storage and bandwidth |
| Single 125k visits | $90 ($75 annual) | 6 | 256 MB | Live cohorts and scheduled quiz sessions |
| WP 2 | $70 ($59 annual) | 2 | 256 MB | Two sites sharing two threads; tight for a live academy |
Step 5: rely on Kinsta's server cron
WordPress schedules tasks with WP-Cron, which the plugin handbook says only runs on page load; a task due at 2pm may not run until the next visit. Any scheduled work on a course site, such as timed releases or emails sent by add-ons, can be delayed by an idle night.
Kinsta's knowledge base says it runs a server cron job on all sites every 15 minutes by default, and that you can go straight to disabling WP-Cron with define('DISABLE_WP_CRON', true); in wp-config.php, after which scheduled tasks continue to run. Verify with the WP Crontrol plugin or wp cron event list after the change.
Pre-launch checklist
| Check | How to confirm | Done when |
|---|---|---|
| PHP version | MyKinsta site settings | 8.3 or newer selected |
| Permalinks | Settings, Permalinks and LearnDash permalink fields | Custom structure set before content is built |
| Cache exclusions | Support ticket reply | Course, lesson, topic, quiz and account paths listed as bypassed |
| Cache isolation | Two browsers, two learner accounts | No progress or quiz state leaks between users |
| PHP threads | MyKinsta, Info, PHP performance | At least 4 threads if quizzes run in scheduled sessions |
| Cron | wp cron event list or WP Crontrol | WP-Cron disabled and events still running on schedule |
| Multisite | Site architecture | Not used for LearnDash |
Questions before you decide
Can I add LearnDash cache exclusions myself on Kinsta?
Kinsta's server caching documentation says its support team configures rules to bypass cache for specific pages. WP Rocket's documentation also says that on Kinsta, plugin-level exclusions need the host to add the same patterns.
How many PHP threads does LearnDash need on Kinsta?
Neither vendor publishes a number. Kinsta says each thread handles one request at a time and extra requests wait, so if learners take quizzes together, start at 4 threads (Launch or Single 65k) rather than 2.
Do I need a real cron job for LearnDash on Kinsta?
Kinsta says it already runs a server cron on all sites every 15 minutes, so you only need to disable WP-Cron in wp-config.php and then confirm scheduled events still run.
Sources & verification
Product details and prices can change. Check the linked provider before buying.
- LearnDash documentation: Requirements Accessed 30 Oct 2026
- LearnDash: Permalinks settings Accessed 30 Oct 2026
- WordPress.org: Requirements Accessed 30 Oct 2026
- Kinsta Docs: PHP settings and PHP threads Accessed 30 Oct 2026
- Kinsta Docs: Server caching Accessed 30 Oct 2026
- WP Rocket Docs: Using membership and community plugins Accessed 30 Oct 2026
- Kinsta: Pricing Accessed 30 Oct 2026
- Kinsta Knowledge Base: Disable WP-Cron Accessed 30 Oct 2026
- WordPress Plugin Handbook: Cron Accessed 30 Oct 2026
Sources link directly to providers. Product buttons may use separately labeled affiliate links. Read our disclosure.