Trying to upload a theme, plugin or large image and WordPress says “The uploaded file exceeds the upload_max_filesize directive in php.ini” or shows a tiny limit like 2MB? That limit comes from your server’s PHP settings, not WordPress itself, so it is easy to raise once you know where to look. I manage WordPress sites on cPanel hosting for clients, and here are the 6 methods I use to increase the WordPress upload limit, from the easiest to the most technical.
Key Takeaways
- The WordPress upload limit is set by PHP: upload_max_filesize, post_max_size and memory_limit.
- Check your current limit in Media → Add New: “Maximum upload file size”.
- On cPanel hosting, the easiest fix is Select PHP Version → Options or the MultiPHP INI Editor.
- post_max_size must be equal to or larger than upload_max_filesize, or uploads still fail.
- The wp-config.php memory setting does not raise the upload limit by itself.
Table of Contents
- How to Check Your Current Upload Limit
- Why WordPress Has an Upload Limit
- Method 1: cPanel Select PHP Version (Options)
- Method 2: cPanel MultiPHP INI Editor
- Method 3: Create or Edit php.ini / .user.ini
- Method 4: .htaccess (Only on Some Servers)
- Method 5: WordPress Multisite Setting
- Method 6: Ask Your Host (or Upload Another Way)
- Still Not Working? Quick Checklist
- Frequently Asked Questions
- Conclusion
Free presentation for students & teachers
14 slides · PowerPoint (.pptx), opens in Google Slides & Keynote · free to use with credit
How to Check Your Current Upload Limit
Go to Media → Add New Media File in your dashboard. Under the upload box you will see “Maximum upload file size: 2 MB” (or similar). You can also open Tools → Site Health → Info → Server to see the PHP max upload size and post max size.
Why WordPress Has an Upload Limit
| PHP setting | What it controls | Suggested value |
|---|---|---|
| upload_max_filesize | Largest single file you can upload | 64M or 128M |
| post_max_size | Largest total form submission (must be ≥ upload size) | 64M or 128M |
| memory_limit | Memory PHP can use per request | 256M |
| max_execution_time | How long an upload can run | 300 |
Tip: Pick values your site really needs. Raising limits far beyond that (for example 2G) can make it easier to overload a small hosting plan.
Method 1: cPanel Select PHP Version (Options)
- Log in to cPanel and open Select PHP Version (CloudLinux hosts).
- Click the Options tab.
- Set upload_max_filesize and post_max_size to 64M or 128M, and memory_limit to 256M.
- Changes save automatically. Reload Media → Add New to confirm.
Method 2: cPanel MultiPHP INI Editor
- In cPanel, open MultiPHP INI Editor.
- Choose Basic Mode and select your domain.
- Edit upload_max_filesize, post_max_size and memory_limit.
- Click Apply, then check the new limit in WordPress.
Method 3: Create or Edit php.ini / .user.ini
If your host doesn’t offer those tools, create a file named .user.ini (or php.ini, depending on your host) in your site’s root folder with:
upload_max_filesize = 128M
post_max_size = 128M
memory_limit = 256M
max_execution_time = 300Changes to .user.ini can take a few minutes to apply because PHP caches it.
Method 4: .htaccess (Only on Some Servers)
On Apache servers running PHP as an Apache module, you can add this to .htaccess:
php_value upload_max_filesize 128M
php_value post_max_size 128M
php_value memory_limit 256MTip: On many modern hosts (PHP-FPM, LiteSpeed or CGI), php_value lines cause a 500 Internal Server Error. If your site breaks, remove the lines immediately and use Method 1, 2 or 3 instead.
Method 5: WordPress Multisite Setting
On a multisite network, there is also a network limit. Go to Network Admin → Settings → Network Settings and raise Max upload file size. The PHP limits above still apply on top of this.
Method 6: Ask Your Host (or Upload Another Way)
- On shared hosting, some plans have a fixed maximum. Ask support to raise upload_max_filesize and post_max_size for your account.
- For one very large file, such as a theme ZIP or video, you can upload it through cPanel File Manager or FTP instead of the WordPress uploader.
- Large videos are usually better on YouTube or Vimeo, embedded in your post.
Still Not Working? Quick Checklist
- post_max_size is equal to or larger than upload_max_filesize.
- You edited the settings for the correct domain and PHP version.
- You waited a few minutes after editing .user.ini.
- A security plugin or Cloudflare upload limit isn’t blocking large files.
- The error is not actually a different problem. See critical error fixes or the white screen of death guide.
Frequently Asked Questions
Why is my WordPress upload limit only 2MB?
2MB is a common default value of upload_max_filesize in PHP. WordPress shows whatever limit your server allows, so you need to raise the PHP settings in cPanel, php.ini/.user.ini or through your host.
How do I increase the upload limit in WordPress without a plugin?
Use cPanel Select PHP Version → Options or the MultiPHP INI Editor to raise upload_max_filesize and post_max_size, or add those values to a .user.ini or php.ini file in your site root.
Does WP_MEMORY_LIMIT increase the upload size?
No. WP_MEMORY_LIMIT in wp-config.php only sets how much memory WordPress can use. The upload size is controlled by upload_max_filesize and post_max_size in PHP.
Why did my site break after editing .htaccess?
Many servers don’t allow php_value directives in .htaccess and return a 500 error. Remove the lines and change the limits in cPanel or a .user.ini file instead.
What upload limit should I use?
For most sites, 64MB to 128MB is plenty for themes, plugins and images. Only go higher if you really need to upload large files.
Can someone change this for me?
Yes. I manage WordPress and cPanel settings, updates and backups for clients at $5–7 per hour.
Conclusion
The WordPress upload limit is a server setting, so the fix is in PHP, not WordPress. Raise upload_max_filesize and post_max_size through cPanel, a .user.ini file or your host, keep post_max_size at least as large, and confirm the new limit in Media → Add New.
WordPress Management
Want your hosting and WordPress settings handled for you? See my WordPress management service.

About the Author
Rahana Islam
Virtual Assistant & E-commerce Specialist with 7+ years of remote experience supporting businesses in the United States, Denmark and worldwide with WordPress, Shopify, Amazon, Walmart and eBay operations. Level 2 Fiverr seller with a 5.0★ rating from 167 reviews, an NSDA-certified trainer & assessor and the #1 LEDP earner of Dhaka district.
Stuck on a WordPress Setting?
I fix WordPress and cPanel issues quickly at $5–7/hour.


