New Year Sale!

Days
Hours
Min
Sec

Need Help?

Here are some good places you cant start.

Whats New?

Get updated about all the good stuff!

wordpress-black-friday-deals-2025
Add Schema to Elementor - Featured Blog
ue2
How to Increase Wordpress Memory Limit

How to Increase WordPress Memory Limit

Table of Contents

Quick Summary

  • Resolve WordPress “memory exhausted” errors by increasing PHP RAM via wp-config.php, php.ini, or .htaccess, or by using your hosting control panel. 
  • Automate and script limits with WP‑CLI, leverage environment variables in Docker/12‑factor setups, and distinguish front‑end (WP_MEMORY_LIMIT) from admin/CLI (WP_MAX_MEMORY_LIMIT) caps. 
  • For dedicated servers, tune PHP‑FPM pools and NGINX FastCGI params. 
  • Non‑technical users can adjust memory through dashboard plugins
  • Choose the approach that matches your environment and expertise.

WordPress powers millions of sites, but hitting PHP memory limits can bring your blog, store, or membership site to a standstill. This guide explains why memory exhaustion errors occur and offers precise, step‑by‑step methods to safely raise your WordPress PHP memory limit. 

You’ll learn how to configure wp-config.php, update php.ini, override with .htaccess, and leverage hosting control panels. We’ll also cover advanced techniques WP‑CLI commands, environment‑driven settings for Docker, and PHP‑FPM tuning plus best practices for monitoring usage. 

Whether you run a solo blog or a multisite network, this article equips you with every tool needed to maintain smooth performance under high loads.

4 Methods To Increase PHP Memory Limit

Method 1 - Increasing Memory via wp-config.php in WordPress

When WordPress needs more PHP RAM than your server’s default, the simplest override is in your wp-config.php. By defining WP_MEMORY_LIMIT, you tell WordPress exactly how much memory it can request—no server‑level access required.

      // Open wp-config.php and add this just above "/* That's all, stop editing */"
define( 'WP_MEMORY_LIMIT', '256M' );

    
  • Locate wp-config.php in your site’s root (via FTP, SFTP, or hosting file manager).

  • Edit with a plain‑text editor (VS Code, Sublime, etc.).

  • Paste the define line before the “stop editing” comment.

  • Save & upload, then reload your site to ensure the memory error is gone.

Site TypeDefault WP MemoryRecommended `WP_MEMORY_LIMIT`
Personal Blog40M64M
Content‐Rich Magazine40M128M
WooCommerce Store40M256M
Membership / Multisite40M

512M

Tip – After adjusting, verify in Tools → Site Health → Info → Server that your “PHP memory limit” reflects the new value.

Why This Matters

  • Safety: Limits WordPress to only the RAM you choose, avoiding runaway usage.

  • Flexibility: Works on most shared hosts without touching php.ini.

  • Speed: Instant effect—no server reboot needed.

If your host ignores this setting, you’ll see no change in Site Health. In that case, combine with php.ini or control‑panel methods for full coverage.

Method 2 - Editing php.ini to Raise WordPress PHP Memory Limit

When your host ignores WP_MEMORY_LIMIT, editing the server’s php.ini is the next step. This file controls PHP’s global resource caps raising memory_limit here ensures WordPress can request more RAM across all contexts.

1. Locate the active php.ini

CLI

      php --ini | grep "Loaded Configuration File"

    

PHP script

      <?php phpinfo(); ?>

    

Look for “Loaded Configuration File” in the output.

2. Edit php.ini

Open with your preferred editor (SSH/cPanel File Manager):

      ; Find the existing setting and increase it:
memory_limit = 256M

    
  • Use MB or G suffixes (e.g., 512M, 1G).

  • Avoid values above server RAM—monitor first.

3. Restart PHP process

Apache (mod_php):

      sudo service apache2 restart

    

PHP‑FPM:

      sudo service php7.x-fpm restart

    

NGINX + PHP‑FPM: restart both NGINX and PHP‑FPM.

4. Verify the change

  • Reload Tools → Site Health → Info → Server in WP dashboard.

  • Or rerun phpinfo()/php --ri memory to confirm.

 
Site Type Default `memory_limit` Recommended `memory_limit`
Personal Blog 128M 256M
Content‑Rich Magazine 128M 512M
WooCommerce Store 128M 512M
Membership / Multisite 128M 768M

Tip: If you run on a containerized or PaaS environment, you may need to mount a custom php.ini or set environment variables. Always check with your provider’s documentation. 

By directly editing php.ini, you ensure WordPress and all PHP scripts benefit from the new memory cap an essential step when shared‑host overrides aren’t enough.

Method 3 - Overriding Memory Limits with .htaccess for WordPress

When you can’t edit php.ini and WP_MEMORY_LIMIT has no effect, .htaccess overrides offer a quick PHP‑level boost—if your host permits it.

1. Locate your .htaccess

  • In your WordPress root (where wp‑config.php sits).

  • Backup before editing.

2. Insert the override

      # BEGIN WordPress
<IfModule mod_php7.c>
  php_value memory_limit 256M
</IfModule>
# END WordPress

    

Use your PHP version (mod_php8.c, etc.) or omit <IfModule> if unsure.

3. Save and test

  • Reload your site; clear any server‐level cache.

  • Check Site Health → Info → Server for updated “PHP memory limit.”

4. When overrides fail

  • Hosts may disallow php_value; you’ll see a 500‑error.

  • In that case, remove the directive and switch to php.ini or control‑panel methods.

EnvironmentOverride Allowed?DirectiveRecommended Value
Shared HostingVaries (often yes)php_value memory_limit 128M128M–256M
Managed WordPressNoUse WP‑CLI or host panel
VPS/VagrantYesphp_value memory_limit 512M256M–512M
cPanel PHP SelectorNo (use panel)Panel dropdown

Pro Tip: Pair .htaccess overrides with a small WP_MEMORY_LIMIT definition to cover contexts where Apache directives aren’t parsed.

Method 4 - Adjusting PHP Memory Through Your Hosting Control Panel

hosting control panel

When code edits aren’t ideal, most control panels let you bump PHP’s memory_limit via a GUI. No file access needed—just a few clicks. Here’s how to find and change your PHP memory settings in popular panels:

1. cPanel

  • Go to Software → MultiPHP INI Editor (or “Select PHP Version” → Options).

  • Locate memory_limit, enter your desired value (e.g. 256M), and Save.

2. Plesk

  • Navigate to Domains → Your Site → PHP Settings.

  • Find memory_limit, choose or type in a higher limit, then Apply.

3. hPanel (Hostinger)

  • Open Advanced → PHP Configuration.

  • Adjust memory_limit via dropdown, then Save.

4. DirectAdmin

  • Go to Extra Features → PHP Selector.

  • Click Options, update memory_limit, and Save.

Recommended Values

Control Panel Navigation Path Setting Recommended Values
cPanel Software → MultiPHP INI Editor memory_limit 128M – 256M
Plesk Domains → Site → PHP Settings memory_limit 256M – 512M
hPanel Advanced → PHP Configuration memory_limit 128M – 256M
DirectAdmin Extra Features → PHP Selector memory_limit 256M – 512M

Pro Tip: After saving, revisit WordPress → Site Health → Info → Server to confirm your new PHP memory limit is active—no site reboot required.

Automating WordPress PHP Memory Limits with WP‑CLI Commands

Using WP‑CLI to adjust memory limits lets you script and automate configuration—ideal for CI/CD pipelines or mass deployments.

1. Ensure WP‑CLI Is Installed

      wp --info

    

If not present, follow the official guide.

2. Set Front‑End Memory Limit

      wp config set WP_MEMORY_LIMIT 256M --raw

    
  • --raw writes the value without quotes.

  • Adjust 256M to your site’s needs.

3. Set Admin/Cron Memory Limit

      wp config set WP_MAX_MEMORY_LIMIT 512M --raw

    

Ensures back‑end tasks and WP‑Cron have sufficient RAM.

4. Automate in Deployment Scripts

Embed both commands in your build or deploy workflow to guarantee consistency across environments.

CommandDescriptionUse Case
wp config set WP_MEMORY_LIMIT 256M --rawDefines PHP RAM for front‑end requestsHigh‑traffic blogs, image‑heavy sites
wp config set WP_MAX_MEMORY_LIMIT 512M --rawDefines PHP RAM for admin, cron, CLIWooCommerce stores, multisite networks

Tip: After running, verify in Site Health → Info → Server or via:

      wp eval 'echo ini_get("memory_limit");'

    

This programmatic method eliminates manual file edits, reduces human error, and scales across teams truly the gold standard for automated WordPress memory configuration.

WP_MEMORY_LIMIT vs WP_MAX_MEMORY_LIMIT: Front‑End vs Admin PHP Memory

WordPress exposes two separate constants to control PHP RAM: one for visitor‑facing processes, and one for admin/automated tasks. Using them correctly prevents “memory exhausted” errors without over‑allocating resources.

      // In wp-config.php, before "/* That's all, stop editing */":
define( 'WP_MEMORY_LIMIT', '128M' );        // For front‑end rendering
define( 'WP_MAX_MEMORY_LIMIT', '256M' );    // For admin, cron, WP‑CLI

    
Constant Context Default Single‑Site Default Multisite When to Increase
WP_MEMORY_LIMIT Front‑end (visitor pages) 40M 64M Complex themes, page builders, large media
WP_MAX_MEMORY_LIMIT Back‑end (admin, cron, CLI) 256M 256M Plugin updates, imports, WP‑CLI scripts

Key Differences & Usage

  • Front‑End vs Admin:

    • WP_MEMORY_LIMIT governs public‑facing page requests—keep it as low as feasible to protect server stability.

    • WP_MAX_MEMORY_LIMIT applies when you’re logged in, running CRON jobs, or executing WP‑CLI commands—these tasks often need more RAM.

  • Avoid Conflicts: Always set both if you bump one. Failing to raise WP_MAX_MEMORY_LIMIT can still trigger errors during media imports or theme/plugin activations.

  • Performance Trade‑Off: Don’t set both limits to identical high values; reserve higher RAM only for back‑end operations.

Example: Balanced Configuration

      define( 'WP_MEMORY_LIMIT', '128M' );        // Smooth front‑end for visitors
define( 'WP_MAX_MEMORY_LIMIT', '512M' );    // Extra headroom for admin tasks

    

By separating front‑end and back‑end memory caps, you ensure visitor pages stay performant while complex admin operations complete without failures delivering optimal resource allocation for every WordPress context.

Environment‑Based Memory Configuration: Docker & .env for WordPress

Managing PHP memory via environment variables aligns with 12‑factor principles and scales naturally in containerized setups.

1. Define Memory in Docker

Dockerfile

      FROM wordpress:latest
ENV PHP_MEMORY_LIMIT=512M

    

Docker-compose.yml

      services:
  wordpress:
    image: wordpress:latest
    environment:
      PHP_MEMORY_LIMIT: 512M

    

On build or up, Docker injects PHP_MEMORY_LIMIT into the container environment.

2. Load .env Values in wp-config.php

Place a .env file in your project root:

      # .env
PHP_MEMORY_LIMIT=512M

    

Install a loader (e.g., vlucas/phpdotenv) or add at top of wp-config.php:

      // If using phpdotenv:
$dotenv = Dotenv\Dotenv::createImmutable(__DIR__);
$dotenv->load();

// Then set memory:
ini_set( 'memory_limit', getenv('PHP_MEMORY_LIMIT') ?: '256M' );

    

This ensures WordPress reads the container or file‑based env var first, with a 256M fallback.

3. Comparison of Methods

MethodConfig LocationCode SnippetIdeal Use Case
Docker ENVDockerfile / docker‑compose.ymlENV PHP_MEMORY_LIMIT=512MContainerized WP on Kubernetes, Swarm
`.env` FileProject root `.env`PHP_MEMORY_LIMIT=512M
ini_set(...)
12‑factor WP apps, local dev parity
`wp-config.php` Define`wp-config.php`define('WP_MEMORY_LIMIT','256M');Simple shared hosts without env support

Pro Tip: After deployment, verify via phpinfo() or Site Health → Server to confirm your “PHP memory limit” matches PHP_MEMORY_LIMIT.

By externalizing memory settings to environment variables, you maintain clean separation of config and code exactly what modern WordPress deployments require.

Optimizing Memory for WordPress Multisite & Scheduled Tasks (Cron/CLI)

Multisite networks and scheduled jobs often require higher PHP RAM than single‑site front‑end requests. Without tailored limits, you’ll encounter “memory exhausted” errors on sitewide operations or WP‑Cron hooks.

1. Network‑Wide Memory in Multisite

Place your memory definitions before the MULTISITE constant in wp-config.php to apply across all subsites:

      define( 'WP_MEMORY_LIMIT',       '128M' );    // Visitor‑facing pages
define( 'WP_MAX_MEMORY_LIMIT',   '512M' );    // Admin, cron, CLI
define( 'MULTISITE',             true );

    

This prevents plugin‑activation or theme‑update failures on child sites.

2. WP‑Cron Memory Limit

By default, WP‑Cron runs under the front‑end limit (WP_MEMORY_LIMIT). Hook in a higher cap for scheduled tasks:

      add_action( 'init', function() {
  if ( defined('DOING_CRON') && DOING_CRON ) {
    ini_set( 'memory_limit', '256M' );
  }
} );

    

This bump avoids failures on large imports or automated backups.

3. CLI Cron & WP‑CLI Jobs

Cron jobs triggered via real cron (e.g., wp cron event run --due-now) use the admin constant. Ensure your system cron invokes WP‑CLI with ample RAM:

      * * * * * cd /path/to/site && wp cron event run --due-now
wp config set WP_MAX_MEMORY_LIMIT 512M --raw

    

Recommended Limit

Context Default Limit Recommended Limit Implementation
Multisite Front‑End 40M–64M 128M `define(‘WP_MEMORY_LIMIT’,’128M’);`
Multisite Admin 256M 512M `define(‘WP_MAX_MEMORY_LIMIT’,’512M’);`
WP‑Cron (Web) WP_MEMORY_LIMIT 256M `ini_set(‘memory_limit’,’256M’)` on `DOING_CRON`
CLI Cron / WP‑CLI WP_MAX_MEMORY_LIMIT 512M `wp config set WP_MAX_MEMORY_LIMIT 512M –raw`
By explicitly separating front‑end, admin, WP‑Cron, and CLI contexts, you eliminate “wordpress multisite memory error” and ensure reliable “wp cron memory limit” handling and robust “cli cron memory usage” for all scheduled tasks.

Server‑Level Tuning: PHP‑FPM & NGINX Pools

At the server layer, PHP‑FPM pools and NGINX FastCGI parameters govern the true PHP RAM limits tuning these ensures WordPress can actually use the memory you request.

1. PHP‑FPM Pool Configuration

Edit your pool file (e.g. /etc/php/7.4/fpm/pool.d/www.conf):

      ; Increase memory_limit for PHP‑FPM workers
[www]
php_admin_value[memory_limit] = 256M

    
  • File location: Varies by PHP version (/etc/php/7.x/fpm/pool.d/www.conf).

  • Directive: php_admin_value[memory_limit] sets a hard cap.

  • Reload:

      sudo systemctl restart php7.4-fpm

    

2. NGINX FastCGI Parameter

In your NGINX site block (e.g. /etc/nginx/sites-available/example.com), inside the location ~ \.php$ section:

      location ~ \.php$ {
    include fastcgi_params;
    fastcgi_pass unix:/run/php/php7.4-fpm.sock;
    fastcgi_param PHP_VALUE "memory_limit=256M;";
}

    
  • Directive: fastcgi_param PHP_VALUE injects memory_limit into PHP‑FPM.

  • Reload:

      sudo systemctl reload nginx

    

3. Comparison of Server‑Level Methods

LayerConfig File/BlockDirectiveEffectReload Command
PHP‑FPM Pool/etc/php/7.x/fpm/pool.d/www.confphp_admin_value[memory_limit] = 256MEnforces max RAM per workersystemctl restart php7.x-fpm
NGINX FastCGINGINX site config (`location ~ \.php$`)fastcgi_param PHP_VALUE "memory_limit=256M;"Injects PHP settings at request timesystemctl reload nginx

By tuning php‑fpm pool memory_limit and using nginx fastcgi_param PHP_VALUE, you guarantee WordPress actually receives the increased PHP RAM you define no more hidden caps at the server level.

Monitoring & Best Practices for Memory Usage

Effective memory management in WordPress hinges on understanding resource allocation, predictable workloads, and risk mitigation without immediately jumping into code.

  • Principle of Least Privilege
    Allocate only as much memory as necessary. Over‑allocating hides inefficiencies; under‑allocating triggers failures.
  • Baseline Establishment
    Theoretically, define a “normal” memory footprint under typical traffic. This baseline guides safe limit increases and highlights anomalies.

  • Headroom Planning
    Reserve a buffer (e.g., 20–30% above baseline) to absorb traffic spikes or intensive admin tasks, balancing stability with cost.

  • Cost–Benefit Analysis
    Every additional megabyte carries server‑resource and hosting‑cost implications. Weigh performance gains against overhead.

  • Iterative Feedback Loop
    Conceptually, treat memory limits as parameters in an optimization cycle: set limits, observe behavior, refine allocations, and repeat.

Plugin‑Based UI Solutions for WordPress Memory Limits

For non‑technical users, dashboard plugins offer a friendly interface to tweak PHP RAM without editing files or SSH access. Below are top “wordpress memory plugin” options for “dashboard memory control” and “non‑technical memory tweak.”

  1. Install & Activate – Go to Plugins → Add New, search by name, then Install Now and Activate.
  2. Navigate to Settings – Each plugin exposes a UI under Settings, Tools, or its own menu.

  3. Adjust Memory Limit- Enter the new memory_limit (e.g., 256M), save, and verify under Site Health → Info → Server.

Plugin Dashboard Path Memory Control Pros Cons
WP Config File Editor
by WPDeveloper
Tools → Config Editor Edit WP_MEMORY_LIMIT constant Direct constant edits; no file‑access Typo risk; affects only WordPress constants
PHP Settings
by Caudex
Settings → PHP Settings Override memory_limit and extensions GUI for multiple PHP directives May conflict with host restrictions
WP Server Stats
by Netop
Dashboard → Server Info Displays current limit & usage Excellent visibility Read‑only; no override capability
PHP Tweaks
by DevLabs
Tools → PHP Tweaks Simple field for memory_limit Lightweight; safe defaults Limited to a few directives

Choose the Right Memory Increase Strategy

Raising WordPress’s PHP memory limit isn’t one‑size‑fits‑all. For most sites, a simple wp-config.php tweak or control‑panel adjustment delivers immediate relief. 

Developers can automate in CI/CD via WP‑CLI or harness environment variables in Docker/12‑factor setups. Multisite networks and WP‑Cron jobs benefit from distinct WP_MEMORY_LIMIT vs WP_MAX_MEMORY_LIMIT definitions, while VPS hosts should tune PHP‑FPM pools and NGINX FastCGI params.

Non‑technical users can rely on dashboard plugins to avoid manual file edits. Evaluate your hosting environment, workflow, and scale then apply the method that maximizes performance with minimal risk.

Frequently Asked Questions

How can I check my current PHP memory limit in WordPress?

To check your PHP memory limit in WordPress, go to Tools → Site Health → Info → Server. Look for “PHP memory limit” to see the active cap. Alternatively, insert a temporary phpinfo() script or run wp eval 'echo ini_get("memory_limit");' via WP‑CLI for a quick manual check.

What is the recommended minimum memory limit for WordPress sites?

A baseline minimum for most small WordPress sites is 64M to handle basic themes and plugins. For content‑rich blogs or WooCommerce stores, 128M–256M is recommended. Membership or multisite networks may require 512M or more. Always balance performance needs with available server resources to prevent memory exhaustion errors under peak load.

Why am I still seeing “memory exhausted” errors after increasing WP_MEMORY_LIMIT?

If errors persist after setting WP_MEMORY_LIMIT, your host might block overrides or enforce a lower php.ini cap. Check .htaccess overrides and control‑panel settings. Ensure you also raised WP_MAX_MEMORY_LIMIT for admin and cron contexts. Finally, verify server‑level FPM or FastCGI configurations to remove hidden memory ceilings, and restart services manually immediately.

How do I set different memory limits for visitors and admin tasks?

Use WP_MEMORY_LIMIT for visitor‑facing pages and WP_MAX_MEMORY_LIMIT for admin, cron, and CLI operations. In wp-config.php, define each constant separately

Can I increase PHP memory limits without editing configuration files?

Yes, several WordPress plugins let you adjust PHP memory limits directly from the dashboard. Tools like PHP Settings, PHP Tweaks, and WP Config File Editor provide GUI fields to set WP_MEMORY_LIMIT or memory_limit values. After activating, navigate to the plugin’s settings page, enter your desired limit, and save changes immediately.

View More Related Blog Posts

Download is just a click away

Get instant access to tons of Elementor goodies, completely FREE!

Hurray!

You got FREE access to the worlds leading widgets for Elementor page builder!