Optimize WordPress memory limits to boost site performance and prevent errors. Learn how to adjust settings and resolve memory-related issues effectively.
You hit publish, or you open a bloated admin page, and the screen goes white. Or worse: “Fatal error: Allowed memory size of 41943040 bytes exhausted.” That number, 40MB in bytes, is WordPress telling you it ran out of room to work.
The fix is usually one line in a config file. But before you paste that line, it helps to know what memory limits actually are, why they run out, and when raising the number is the wrong move. Let’s walk through it.
Table of Contents
- What is WordPress Memory Limit?
- Why Memory Limits Matter
- Checking Your WordPress Memory Usage
- Adjusting WordPress Memory Limit
- Common Memory Usage Issues
- Tips for Optimizing Memory Usage
- The Bottom Line
What is WordPress Memory Limit?
The memory limit is the ceiling on how much RAM a single WordPress request (PHP script) is allowed to use before PHP kills it. Every plugin that loads, every database query, every image resize draws from that pool. Run out, and PHP stops mid-request with the fatal error above.
By default, WordPress tries to give itself 40MB on a single site and 64MB on multisite. That is enough for a lean setup, but a busy stack of plugins, a page builder, or WooCommerce can burn through it fast.
One thing to get straight now, because it saves a lot of confused evenings: WordPress can only ask for memory up to whatever your host allows in PHP’s memory_limit. If the server caps you at 128MB, setting WP_MEMORY_LIMIT to 512M does nothing. The host cap wins. More on that below.
Why Memory Limits Matter
When the limit is too low, the symptoms are ugly and inconsistent:
- Fatal “memory exhausted” errors: a script hits the ceiling and dies, often on the exact page you needed.
- Plugins and themes that misbehave: heavier tools, import routines, and builders assume more headroom than the default gives.
- Flaky admin screens: the dashboard and bulk actions tend to need more memory than the front end, so they break first.
- Room to grow: as traffic and features pile on, yesterday’s comfortable limit becomes today’s bottleneck.
Checking Your WordPress Memory Usage
Don’t guess at a number. Find out what you’re actually using first, then set the limit with intent.
1. Check via WordPress Debug Information
Turn on debugging by adding these lines to your wp-config.php file, above the “stop editing” line:
Example of the code
<?php
/**
* Enable WordPress debugging.
*/
define('WP_DEBUG', true);
define('WP_DEBUG_LOG', true);
Errors then log to wp-content/debug.log, where you can see what’s failing and when.
2. Use a Plugin
For a live picture, install Query Monitor. It shows peak memory per page and, more useful, which plugins and queries are eating it. That is how you find the real culprit instead of just raising the ceiling and hoping.
Adjusting WordPress Memory Limit
Once you know you genuinely need more, here are the ways to raise it, roughly in order of what most people can reach.
1. Modify wp-config.php
Add this to wp-config.php. Put it above the line that reads “That’s all, stop editing! Happy blogging.” Anything below that line is ignored for this purpose.
Example of the code
<?php
/**
* Increase WordPress memory limit.
*/
define('WP_MEMORY_LIMIT', '256M');
WP_MEMORY_LIMIT covers the front end. The admin area is separate: it’s controlled by WP_MAX_MEMORY_LIMIT, which already defaults to 256M. You only need to touch it for heavy back-end jobs like large imports:
Example of the code
<?php
/**
* Increase memory limit for WordPress admin.
*/
define('WP_MAX_MEMORY_LIMIT', '512M');2. Update php.ini
If you have server access, this is the real ceiling. Raise it in php.ini and WordPress can then request up to it:
Example of the code
<?php
memory_limit = 256M3. Adjust .htaccess
On some Apache hosts you can set it here, if they haven’t locked it down:
Example of the code
php_value memory_limit 256M4. Contact Your Hosting Provider
If none of the above sticks, the host has capped memory_limit at the server level and there’s no way around it from your side. Open a ticket and ask them to raise it, or look at a plan with more headroom. Remember: their number is the hard limit, and your wp-config.php can’t exceed it.
Common Memory Usage Issues
Here’s the honest part. Raising the limit often just hides the symptom. If your site suddenly needs way more memory than it used to, something is usually wrong, and a runaway plugin or theme is the most common cause. Chase these before you keep bumping the number:
- A plugin leaking memory: use Query Monitor to spot the heavy one, then test with it deactivated. A single bad plugin can double your footprint.
- Expensive database queries: a bloated
wp_optionstable or unindexed queries pull huge result sets into memory. Clean up with WP-Optimize. - A heavy theme: if the footprint drops sharply on a default theme, yours is the problem. Consider something lighter.
- Shared hosting ceilings: if you legitimately need more than the plan allows, VPS or managed hosting gives you the room shared plans won’t.
Tips for Optimizing Memory Usage
The best way to stay under the limit is to need less memory in the first place. A few habits that pay off:
- Run fewer plugins: deactivate and delete what you don’t use. Every active plugin loads on every request.
- Cache aggressively: a cache plugin like WP Super Cache or W3 Total Cache serves static pages so PHP doesn’t rebuild them each time.
- Offload with a CDN: a CDN like Cloudflare serves static assets from its own network, keeping that load off your server.
- Compress images: a tool like Smush shrinks files before they hit a page.
- Keep watching: check memory now and then with Query Monitor or your host’s control panel, so a new plugin doesn’t quietly push you back to the edge.
The Bottom Line
Raising the memory limit is a valid fix, and one line in wp-config.php gets most sites back on their feet. Just remember the two catches: your host’s memory_limit is the real ceiling, and a sudden spike in memory use usually points at a leaky plugin or theme, not at a number that’s too small.
So set a sensible limit, then spend five minutes in Query Monitor finding out where the memory actually goes. Fix the cause once and you won’t be back here every few weeks nudging the number higher.


