
Your WordPress dashboard throws a white screen. The error log says “Allowed memory size exhausted.” You’re on a plan with 256 MB of PHP memory—more than most blogs need. So what’s using it all?
Memory limits aren’t storage. They’re the ceiling for how much RAM a single PHP process can consume while executing a request. When a plugin loads data, processes images, or runs a bulk operation, it eats into that budget. Cross the line and PHP kills the request.
Most hosts default to 128 MB or 256 MB. That works fine until it doesn’t. Here’s when plugins push past the standard ceiling, what triggers the spike, and how to fix it without upgrading your whole server.
What actually consumes plugin memory
Memory spikes happen when plugins hold large datasets in RAM instead of querying the database in smaller chunks. The most common culprits:
- Image optimization plugins processing high-resolution uploads—especially batch operations that resize 50+ images at once
- Export tools generating CSV files from thousands of rows without pagination
- SEO crawlers building internal link graphs across hundreds of posts in a single pass
- Page builders loading every block, widget, and custom field into memory when rendering complex layouts
- Backup plugins compressing full-site archives without streaming to disk
A single 8,000-pixel JPEG can temporarily consume 180 MB during processing. If your image optimizer batches five at once, you’ve blown past 256 MB before the first thumbnail renders.
The deceptive part: memory use is per-request, not per-plugin
You can’t see cumulative memory use in a dashboard widget. PHP allocates memory when a request starts and releases it when the request ends. A plugin that uses 40 MB on one page might use 300 MB on another, depending on what data it loads.
That’s why your site runs fine most of the time, then crashes during a specific action—importing a batch of products, regenerating thumbnails, or exporting a year of form submissions. The plugin isn’t broken. It’s trying to process more data than your memory ceiling allows in a single execution.
Check your server’s error log (usually in wp-content/debug.log or your host’s control panel). Look for lines containing Allowed memory size of X bytes exhausted. The timestamp tells you which request triggered it. Match that to your activity log and you’ll find the operation that spiked.
How to raise the limit (and when not to)
You can increase PHP memory in three places, listed by override priority:
1. wp-config.php
Add this line above the “stop editing” comment:define('WP_MEMORY_LIMIT', '512M');
This sets the ceiling for front-end and dashboard requests. Some hosts ignore it if their server-level cap is lower.
2. php.ini or .user.ini
If your host gives you access, set:memory_limit = 512M
This applies to all PHP scripts, not just WordPress. Shared hosts often lock this file.
3. Host control panel
Most managed WordPress hosts let you adjust PHP memory via a slider or dropdown. BigScoots and similar performance-focused hosts typically allow 512 MB or 1 GB on mid-tier plans.
Before you raise the limit, confirm the spike is legitimate. If a lightweight contact form is consuming 400 MB, the plugin is likely inefficient or conflicting with another script. Throwing more RAM at bad code just delays the next crash.
When to re-architect instead of raising the ceiling
If you’re hitting memory limits on routine operations—publishing a post, loading the media library, saving a page—something’s wrong with your stack. Raising the limit to 1 GB might make the error disappear, but you’re masking a structural problem.
Consider:
- Switching to chunked processing. Many backup and image plugins offer “process in batches of 10” settings. Turn them on.
- Offloading heavy tasks to cron jobs. Instead of regenerating 500 thumbnails in one click, schedule the plugin to process 50 every hour overnight.
- Using a dedicated service for resource-intensive jobs. Image optimization works better when handled by an external API like ShortPixel or Imagify, which never touch your server’s memory.
- Profiling which plugin is the hog. Deactivate half your plugins, test the operation, then narrow it down. Replace the offender if possible.
Memory limits exist to prevent a single runaway script from crashing your entire server. If your site genuinely needs 1 GB per request, you’ve outgrown shared hosting and should move to a VPS where you control resource allocation per process.
Want more infrastructure breakdowns like this? Subscribe to One Two Three Send for one operator-focused article every morning—no fluff, no affiliate spam, just the mechanics of running an online business.

















