Increase the WordPress Maximum Upload File Size (2026)
Disclosure: some links on this page are affiliate links. We may earn a commission at no extra cost to you. How we test and rate hosts.
"The uploaded file exceeds the upload_max_filesize directive in php.ini." Your file is fine - the server's ceiling is too low. Media > Add New shows your current limit. Here are the five ways to raise it, easiest first.
Method 1: Hosting Control Panel (Easiest)
Most hosts expose PHP settings in their panel. Look for PHP Options, MultiPHP INI Editor, or Select PHP Version > Options. Raise both values:
upload_max_filesize = 64M
post_max_size = 64M
max_execution_time = 300
memory_limit = 256M
post_max_size must be >= upload_max_filesize. Save, wait a minute, retest.
Method 2: php.ini / user.ini File
Via FTP or File Manager, check the site root for php.ini or .user.ini - create it if missing and add the same four lines above. Some hosts only honor .user.ini (note the leading dot); try both names if the first doesn't take effect within a few minutes.
Method 3: .htaccess (Apache Hosts)
php_value upload_max_filesize 64M
php_value post_max_size 64M
php_value max_execution_time 300
php_value memory_limit 256M
Append inside .htaccess at the site root. Site white-screens or 500s after saving? Your host runs PHP-FPM instead of mod_php - revert; use method 1 or 2.
Method 4: wp-config.php @ini_set (Some Hosts)
Add above the "stop editing" line:
@ini_set('upload_max_size', '64M');
@ini_set('post_max_size', '64M');
@ini_set('memory_limit', '256M');
Works on hosts that allow runtime ini_set - many don't. If nothing changes, it wasn't read; don't stack it with the other methods expecting a cumulative effect.
Method 5: Ask Support or Bypass With FTP
Managed hosts sometimes lock these values server-side - a 2-minute chat with support raises them. Or skip the uploader entirely: FTP files into wp-content/uploads/ and register them with a plugin; drop theme/plugin folders into wp-content/themes or wp-content/plugins directly.
Two Traps
- "Link expired" on theme/plugin upload - same limits, different error message: link expired fix.
- "HTTP error" on image upload - usually Imagick/memory, not filesize: image upload error fix.
Sane PHP Limits by Default
Bluehost ships with reasonable upload limits and a panel where you can raise them yourself in seconds - $3.99/mo, 24/7 phone support.
Get Bluehost from $3.99/moWhat are you building?
Tell us about your project so we can match the perfect hosting plan.
Hosting Cost Calculator
See exactly how much you'll spend on hosting over time. Compare Bluehost vs popular alternatives and discover your potential savings.
Used to calculate transaction fees (Shopify charges 2% on sales)
Frequently Asked Questions
Where do I see my current upload limit?
Media > Add New shows 'Maximum upload file size: X MB' under the uploader. It's set by the PHP directive upload_max_filesize on your server - typically 2MB to 64MB on shared hosting.
What's the difference between upload_max_filesize and post_max_size?
upload_max_filesize caps a single file; post_max_size caps the entire POST request (the file plus form data). post_max_size must be equal or larger - raising only upload_max_filesize does nothing if post_max_size is smaller.
Why doesn't editing wp-config alone work?
Some tutorials suggest define() constants in wp-config, but upload_max_filesize is a PHP-level setting WordPress can't override in most configurations. @ini_set in wp-config helps on some hosts; the reliable fixes are php.ini, .htaccess, or the hosting panel.
I raised the limit but still get 'link expired' errors?
Different symptom, related cause: the 'link you followed has expired' error on theme/plugin uploads is also a PHP limit problem - see the dedicated fix for that error message.
Can I bypass the limit entirely?
Yes - upload via FTP/SFTP to wp-content/uploads/year/month/, then use a plugin like Media from FTP to register the files in the media library. For themes and plugins, upload the extracted folder to wp-content/themes or wp-content/plugins and activate from the dashboard.
Does raising the limit slow down my site?
The setting itself costs nothing - it's just a ceiling. But routinely uploading 20MB+ images will hurt page speed; optimize images before upload rather than raising limits to accommodate unoptimized files.
Ready to launch?
Get Bluehost from $3.99/month with a free domain, free SSL, and 30-day money-back guarantee.
Related Articles
Bluehost vs Competitors: The Technical Deep Dive
We ran 47 benchmarks over 90 days. Here's the raw data on why Bluehost dominates.
Fix ERR_TOO_MANY_REDIRECTS in WordPress (2026): The 6 Real Causes
ERR_TOO_MANY_REDIRECTS means an infinite redirect loop. Match your Site URLs, fix Cloudflare SSL mode, reset .htaccess, kill plugin conflicts - step-by-step with code.
WordPress 403 Forbidden Error: 7 Fixes That Actually Work (2026)
403 means the server understood you but refuses to serve the page. Fix file permissions (755/644), regenerate .htaccess, kill security plugin blocks - in the right order.
Fix 502 Bad Gateway in WordPress (2026): Diagnose First, Then Fix
502 means the gateway got a bad response from your server - usually PHP timeouts, CDN issues, or overload. A 9-step diagnostic workflow from browser checks to server logs.
Fatal Error: Maximum Execution Time Exceeded - 6 Fixes (2026)
max_execution_time kills slow updates at 30-60s. Fix the culprit plugin/theme first, then raise the limit via wp-config, .htaccess or php.ini - with exact code.
HTTP Error Uploading Images in WordPress: 9 Fixes Ranked (2026)
The vague 'HTTP error' on image upload usually means memory limits or Imagick. Fix order: rename the file, bump memory, force GD library, check permissions - with code.