This is a research guide based on cited documentation. It is not a report of firsthand testing. Our editorial method

Two settings with similar names

PHP's memory_limit is a server setting. The PHP manual defines it as "the maximum amount of memory in bytes that a script is allowed to allocate", with a default of 128M, and notes that -1 removes the limit. Every request, whether a lesson page, a quiz submission or an admin report, runs under this cap.

WordPress adds its own constants in wp-config.php. The developer handbook says WordPress will attempt to raise memory to 40MB for a single site and 64MB for multisite, and that WP_MEMORY_LIMIT lets you ask for more. WP_MAX_MEMORY_LIMIT applies in the admin area, where heavier tasks run, and defaults to 256MB.

The handbook adds that WordPress first checks whether PHP already has more memory than you requested, and that some hosts do not allow increasing the PHP limit automatically. In plain terms: WP_MEMORY_LIMIT cannot lift you above the host's memory_limit. If the server cap is 256MB, defining 512M in wp-config.php changes nothing.

SettingWhere it livesDefaultWhat it controls
memory_limitServer PHP configuration (php.ini or host panel)128M in the PHP manual; hosts set their ownHard ceiling for every PHP request
WP_MEMORY_LIMITwp-config.php40MB single site, 64MB multisiteMemory WordPress requests for front-end requests, up to the server ceiling
WP_MAX_MEMORY_LIMITwp-config.php, before wp-settings.php is loaded256MBMemory WordPress requests in wp-admin, up to the server ceiling

What LMS plugins publish

LMS vendors are more specific about PHP versions than about memory. LifterLMS lists PHP 8.3, WordPress 6.7 and MySQL 8.0 or MariaDB 10.6 as recommended minimums and says it "has no additional requirements other than those required to run WordPress", pointing to WordPress's own requirements. It adds that sites with heavy traffic and many concurrent logins should expect to spend at least $30 per month on hosting.

Tutor LMS's WordPress.org listing requires WordPress 5.3 or higher and PHP 7.4 or higher and mentions no memory figure. A LearnDash requirements page in Nexcess's documentation lists PHP 7.4 or greater, WordPress 6.6 or later and a PHP memory limit of 128 MB or greater, and says LearnDash does not support multisite; it is published by Nexcess rather than LearnDash, so confirm against LearnDash before relying on it.

The practical reading: 128MB is a floor some guidance mentions, not a target. Memory demand comes from the whole stack: LMS, membership, e-commerce, page builder, reporting add-ons. Exports, gradebook reports, bulk enrolments and certificate PDFs are typical heavy jobs on a course site, and most of those run in wp-admin under WP_MAX_MEMORY_LIMIT.

What each host lets you change

The hosts differ in whether you can touch the server cap at all, and in what raising it costs.

HostServer PHP memory limitCan you change it?WP_MEMORY_LIMIT guidance
Kinsta256MB default on lower tiers, 512MB on higher tiersYes, in MyKinsta under PHP performance, up to 1024MB per thread; memory and thread count share one poolNot stated on the pages reviewed; set it no higher than the per-thread value
WP EngineNot published on the pages reviewed; server-wide PHP settings cannot be changedNo php.ini changesUp to 512MB; WP Engine recommends 256M for WP_MEMORY_LIMIT and up to 512M for WP_MAX_MEMORY_LIMIT
SiteGround shared768MB on all shared plansConfigurable on Cloud depending on setupDefault 256MB on all servers; up to 512MB on shared accounts
cPanel/WHM VPS (Liquid Web managed VPS with cPanel, or KnownHost managed VPS with its optional cPanel)Whatever you setYes, in WHM MultiPHP INI Editor, per PHP versionYour choice, within the server cap and the server's RAM

Worked example: the Kinsta memory pool trade-off

Kinsta treats memory and PHP threads as one pool. Its documentation gives a 2GB pool as an example: 2 threads at 1024MB, 4 at 512MB, 8 at 256MB, 16 at 128MB or 32 at 64MB. Raising per-thread memory with the pool unchanged cuts the number of requests the site can process at once.

For a course site that matters. Logged-in students bypass page cache, so each lesson view, quiz answer and progress update needs a PHP thread. Doubling memory to fix a once-a-week report export, and halving concurrency during every live cohort session in the process, is a poor trade. The better fix is usually to run the heavy job off-peak, through WP-CLI, or to find the plugin that leaks memory on a staging copy, which is also what WP Engine recommends when errors persist after raising limits.

Diagnosing an "allowed memory size exhausted" error

The error message reports the cap in bytes. WP Engine's example shows 536870912 bytes, which is 512MB. If that number matches your WP_MEMORY_LIMIT, raising the constant may help. If it matches the server memory_limit, only the host setting can change it.

  • Note the byte figure in the error and convert it: 268435456 is 256MB, 536870912 is 512MB, 805306368 is 768MB.
  • Check whether the error happens on the front end or in wp-admin; the latter uses WP_MAX_MEMORY_LIMIT.
  • Reproduce on staging with plugins disabled one at a time.
  • Move large exports and bulk operations to WP-CLI or off-peak cron.
  • Only then raise limits, and on pooled hosts check what you lose in concurrency.

Who needs more than the default

Kinsta describes its 256MB default as more than enough for most sites. Raise limits deliberately if you run large gradebook or enrolment exports, generate PDF certificates in bulk, run page builders on very long lesson pages, or combine LMS, membership and WooCommerce on one install. Skip the change if you have never seen a memory error: a higher cap does not make pages faster, and on Kinsta it can reduce how many students the site serves at once.

Questions before you decide

Does setting WP_MEMORY_LIMIT to 512M give WordPress 512MB?

Only if the server PHP memory_limit is at least that high. WordPress checks PHP's allocation first, and the WordPress handbook notes some hosts do not allow the limit to be increased automatically.

Can I change the PHP memory limit on WP Engine?

WP Engine says server-wide PHP settings cannot be changed, but you can define WP_MEMORY_LIMIT up to 512MB in wp-config.php. It recommends 256M for WP_MEMORY_LIMIT and up to 512M for WP_MAX_MEMORY_LIMIT.

What is SiteGround's PHP memory limit?

SiteGround says the memory limit on all shared hosting plans is 768 MB. The WordPress memory limit defaults to 256 MB and can be raised to 512 MB on shared accounts.

Why would raising memory hurt a Kinsta site?

Kinsta divides one memory pool between PHP threads. In its 2GB example, 8 threads get 256MB each but only 4 threads get 512MB, so higher memory per thread means fewer simultaneous requests.

Sources & verification

Product details and prices can change. Check the linked provider before buying.

  1. PHP manual: core php.ini directives (memory_limit) Accessed 30 Oct 2026
  2. WordPress developer handbook: editing wp-config.php Accessed 30 Oct 2026
  3. Kinsta docs: PHP Accessed 30 Oct 2026
  4. Kinsta docs: PHP performance Accessed 30 Oct 2026
  5. WP Engine: platform settings Accessed 30 Oct 2026
  6. WP Engine: fix PHP allowed memory size errors Accessed 30 Oct 2026
  7. SiteGround KB: PHP memory limit Accessed 30 Oct 2026
  8. SiteGround KB: increase the WP memory limit Accessed 30 Oct 2026
  9. SiteGround KB: fair use of server resources Accessed 30 Oct 2026
  10. LifterLMS: minimum system requirements Accessed 30 Oct 2026
  11. WordPress.org: Tutor LMS plugin listing Accessed 30 Oct 2026
  12. Nexcess documentation: LearnDash requirements Accessed 30 Oct 2026
  13. Nexcess documentation (Liquid Web): setting PHP memory_limit with EasyApache 4 Accessed 30 Oct 2026
  14. Liquid Web: Managed VPS hosting Accessed 30 Oct 2026
  15. KnownHost: Managed VPS hosting comparison Accessed 30 Oct 2026

Sources link directly to providers. Product buttons may use separately labeled affiliate links. Read our disclosure.

Your decision at a glance

Compare the options

Full comparison

Documentation-based guidance. No tested ranking or performance score.

Managed WordPress

Kinsta

Consider it for
Use Kinsta Single 20GB, listed at $35/month, when a WordPress course site needs published PHP-capacity controls and a staging rehearsal.
Starting cost
Single 20GB listed $35/month on 2026-09-15; first-month promotions and annual billing change the cash invoice
Before you choose
Do not treat visitor allowances as class concurrency. No plan here is verified for a specific learner count.

Checked 15 Sep 2026 · Pricing source

View Kinsta plans

Direct provider link; no affiliate tracking added by this publication. Link disclosure

Managed WordPress

WP Engine

Consider it for
Use WP Engine Essential when the quoted plan covers your plugin stack, membership cache rules, and an isolated staging copy.
Starting cost
Essential 1-site card displayed $336/year on 2026-09-15 with promotional first-year pricing; confirm undiscounted checkout
Before you choose
Skip if you cannot rehearse membership access and payments at the destination. No measured speed advantage is claimed.

Checked 15 Sep 2026 · Pricing source

View WP Engine plans

Direct provider link; no affiliate tracking added by this publication. Link disclosure

Shared hosting

SiteGround

Consider it for
Use SiteGround StartUp, advertised at $2.99/month for a prepaid first 12 months then $17.99/month, when one WordPress site needs shared hosting rather than a server you administer.
Starting cost
StartUp first-term $2.99/mo prepaid 12 months, renews $17.99/mo on 2026-09-15 (world page: ex. VAT); 1 website, 10GB, ~10,000 visits marketing estimate
Before you choose
Visit marketing estimates are not class concurrency. Renewal is $17.99/mo after the prepaid term. No course-capacity test is claimed.

Checked 15 Sep 2026 · Pricing source

View SiteGround plans

Affiliate link: we may earn a commission on an eligible purchase. Link disclosure