Start Free
Loading article…
WordPress Tips

How to Increase WordPress Max Upload Size (Every Method That Works)

13 min read

If you need to increase WordPress max upload size, the first thing to know is that WordPress itself rarely sets the limit. The number you see on the Media → Add New screen comes from PHP, and it can be capped again by your web server, a proxy or a CDN such as Cloudflare. Change the wrong layer and nothing happens.

This guide shows where each limit lives, how to check your current value, every practical way to raise it, what to do on multisite, and why a bigger limit is not always the best answer for disk space. We finish with better options for large videos.


Where the Upload Limit Comes From

An upload passes through several layers before WordPress saves it. Each layer can reject a file that is too big, and the smallest limit in the chain is the one you actually get.

increase WordPress max upload size: Default limits that block uploads
Default limits that block uploads
LayerSettingDefaultWhat happens when exceeded
CDN or proxyCloudflare maximum upload size100 MB on Free and ProRejected before reaching your server
Web server (nginx)client_max_body_size1 MB413 Request Entity Too Large
Web server (Apache)LimitRequestBody1 GB in current versionsError response
PHPpost_max_size8MRequest data discarded, often an HTTP error
PHPupload_max_filesize2M“Exceeds upload_max_filesize” message
PHPmemory_limit128MProcessing fails on large images
WordPress multisiteMax upload file size1500 KBUpload refused with a size message

PHP defaults come from the PHP core ini reference, although most hosts ship their own higher values. The nginx default is in the nginx core module docs, and the Apache default in the Apache core docs, which note it was unlimited in 2.4.53 and earlier.

How WordPress calculates the number

WordPress’s wp_max_upload_size() function reads upload_max_filesize and post_max_size and uses whichever is smaller. On multisite, the network’s max upload setting and remaining site quota can lower it further. That is why raising only one PHP value often changes nothing.

Key point: keep the PHP values in order. PHP’s documentation says post_max_size must be larger than upload_max_filesize, and memory_limit should generally be larger than post_max_size.

How to Check Your Current Upload Limit

Before you change anything, note your current max upload size so you can confirm the change worked.

Three places to look

  1. Media → Add New: the line “Maximum upload file size” under the upload box shows the limit WordPress will accept.
  2. Tools → Site Health → Info → Media Handling: look for “Max size of an uploaded file”.
  3. Tools → Site Health → Info → Server: shows “Upload max filesize”, “PHP post max size” and “PHP memory limit” separately.

The Server section is the most useful when troubleshooting, because it shows which PHP value is the bottleneck. Remember it cannot see nginx, Apache or Cloudflare limits, which sit outside PHP.

Check from the command line

If you have SSH access and WP-CLI, wp eval 'echo size_format( wp_max_upload_size() );' prints the limit WordPress calculates, using the same function as the Media screen. It is quick to rerun after each change.

Be careful with php -i | grep upload_max_filesize. The command-line PHP often reads a different php.ini from the one your web server uses, so its answer can be misleading. Site Health reflects the web PHP, which is the one that matters for uploads.

Test with a real file

After any change, upload a file slightly larger than the old limit. If the screen shows the new limit but the upload still fails, a web server or proxy limit is blocking it.

Choose Sensible Values First

Bigger is not automatically better. Pick values that match what your site actually uploads.

Site typeupload_max_filesizepost_max_sizememory_limit
Blog with web-sized photos16M20M256M
Photography or portfolio32M40M256M
Shop with PDFs and product images32M40M256M
Podcast or course audio128M140M256M
Occasional video filesUse a video service instead––

These are our starting suggestions, not official figures. The key rule is the order: post_max_size a little above upload_max_filesize, and enough memory for image processing.

Method 1: Your Hosting Control Panel

The easiest way to increase WordPress max upload size is usually your host’s PHP settings screen. Most control panels have a page for PHP version and options where you can edit upload_max_filesize, post_max_size, memory_limit and max_execution_time without touching files.

increase WordPress max upload size: Raise the limit in your host panel
Raise the limit in your host panel

Steps

  1. Log in to your hosting control panel.
  2. Find the PHP settings, PHP options or PHP configuration page.
  3. Raise upload_max_filesize and post_max_size together.
  4. Raise memory_limit if it is below 256M and your plan allows it.
  5. Save, then check Media → Add New for the new max upload size.

Managed WordPress hosts often lock these values. If you cannot find the setting, their support team can usually change it for you in minutes.

Method 2: php.ini or .user.ini

If you have file access but no panel option, set the values in a PHP configuration file.

php.ini (VPS or dedicated server)

On a server you control, edit the main php.ini used by your web PHP version, then restart PHP-FPM or your web server.

upload_max_filesize = 64M
post_max_size = 72M
memory_limit = 256M
max_execution_time = 120

.user.ini (most shared hosting)

Hosts that run PHP through FastCGI or PHP-FPM read a .user.ini file in your site’s folder. Create it in the WordPress root, next to wp-config.php, with the same lines as above.

  • According to the PHP manual on .user.ini files, they only work with the CGI/FastCGI SAPI.
  • PHP re-reads them every 300 seconds by default, so wait five minutes before testing.
  • Use key = value syntax, not the php_value syntax used in .htaccess.

Method 3: .htaccess on Apache

If your host runs PHP as an Apache module, you can set the values in the .htaccess file in your WordPress root.

php_value upload_max_filesize 64M
php_value post_max_size 72M
php_value memory_limit 256M
php_value max_execution_time 120

If your site shows a 500 error after saving, your server does not run PHP as an Apache module. Remove the lines straight away and use .user.ini instead. Always keep a copy of .htaccess before editing it.

Which method should you use?

Server setupBest method
Shared hosting with a PHP settings pageHosting panel
Shared hosting on PHP-FPM or FastCGI.user.ini
Apache with mod_php.htaccess or php.ini
VPS or dedicated serverphp.ini plus web server config
Managed WordPress hostingAsk support

Method 4: nginx and Apache Request Limits

If PHP shows the new limit but large uploads still fail, the web server is probably rejecting the request first.

nginx

nginx allows 1 MB request bodies by default and returns a 413 error above that. Add this to the http, server or location block, then reload nginx:

client_max_body_size 72M;

Apache

Current Apache versions default LimitRequestBody to 1 GB, which rarely affects WordPress. Some hosts set a much lower value. If you control the server, check your virtual host and .htaccess for a lower LimitRequestBody.

Many hosts put nginx in front of Apache as a proxy. In that setup, both need to allow the size you want, and only your host can change the nginx side.

What wp-config.php Can and Cannot Do

Many tutorials suggest adding upload settings to wp-config.php. It rarely works, because upload_max_filesize and post_max_size can only be set per directory or in the main configuration, not with ini_set() at runtime. PHP lists both as INI_PERDIR settings.

What you wantWorks in wp-config.php?
Raise upload_max_filesizeNo
Raise post_max_sizeNo
Raise WordPress memory with WP_MEMORY_LIMITYes, up to the host’s limit
Lower the upload limit for some usersYes, with the upload_size_limit filter in a plugin

The upload_size_limit filter can reduce the limit, for example to 10 MB for authors, but it cannot raise it above what PHP allows. The WP_MEMORY_LIMIT constant helps image processing, not upload size:

define( 'WP_MEMORY_LIMIT', '256M' );

How to Increase WordPress Max Upload Size on Multisite

Multisite adds its own limit on top of PHP. WordPress checks a network option called fileupload_maxk, which defaults to 1500 KB, according to the source of upload_size_limit_filter(). That is under 1.5 MB, which is smaller than many phone photos.

Steps for a network

  1. Raise the PHP limits first using one of the methods above.
  2. Go to Network Admin → Settings.
  3. Find Max upload file size and enter a value in KB, for example 65536 for 64 MB.
  4. Check Site upload space; each site’s quota defaults to 100 MB if not set.
  5. Save and test an upload on a subsite.

The effective limit is the smallest of the PHP limit, the network max upload size and the site’s remaining quota, unless the upload space check is disabled. A full quota blocks uploads even if every size limit is high.

Cloudflare and Proxy Upload Limits

If your site runs through Cloudflare, uploads must also pass Cloudflare’s maximum upload size. According to Cloudflare’s documentation, checked September 2026, the limits are:

increase WordPress max upload size: Cloudflare maximum upload size by plan
Cloudflare maximum upload size by plan
Cloudflare planMaximum upload size
Free100 MB
Pro100 MB
Business200 MB
EnterpriseUp to 5 GB (self-serve)

For most image and document uploads, 100 MB is plenty. It becomes a problem for video, large backups and big ZIP files. Other proxies, load balancers and firewalls can have their own limits, so check with your host if uploads fail at a consistent size.

When the Limit Will Not Change

If you have edited settings and the max upload size still shows the old value, work through this list.

SymptomLikely causeFix
Media screen shows old valueWrong file, or file not read by your PHP setupTry .user.ini instead of .htaccess, or ask host
Changed only upload_max_filesizepost_max_size still lowerRaise both together
New value shows but upload fails with 413nginx or proxy limitRaise client_max_body_size or ask host
500 error after editing .htaccessPHP not running as Apache moduleRemove the lines, use .user.ini
Change seems ignored for a few minutes.user.ini cacheWait five minutes
Large images fail after uploadMemory or time during processingRaise memory_limit and max_execution_time
Multisite still refusesNetwork max upload or quotaCheck Network Admin → Settings

If uploads fail with a vague “HTTP error” rather than a size message, the cause may be memory or processing rather than the limit itself. Our guide to offloading and site speed covers related performance issues, and processing changes in WordPress 7.1 are explained in our WordPress 7.1 media processing guide.

Why a Bigger Limit Is Not Always Wise

Raising the upload limit solves one problem and can create another. Every large file uploaded to the Media Library lands on your server’s disk, and images are multiplied into several thumbnail sizes.

What a large limit can cost you

  • Disk space: shared hosting plans often have small storage quotas, and a few big uploads can fill them.
  • Backups: larger uploads folders make backups slower and more expensive.
  • Memory and time: huge images need more memory to process, which can cause failed uploads.
  • Page weight: editors may insert full-size files that slow pages down.
  • Abuse: on sites that accept uploads from users, a very high limit makes it easier to fill your disk.

For images, WordPress already scales anything larger than 2560 pixels by default using the big_image_size_threshold filter, but it keeps the original too. A large limit therefore often stores a big original you never show.

If your disk is already filling up, see our guide on what to do when your WordPress site is running out of disk space.

How Offloading Helps

Media offloading copies uploads to cloud storage such as Cloudflare R2, Amazon S3 or Wasabi and serves them from there. Uploads still pass through your server, so PHP limits still apply, but the long-term storage moves to a service priced per gigabyte.

ConcernLocal storage onlyWith offloading
Disk quotaFills with every uploadMedia lives in a bucket that grows as needed
Storage priceTied to your hosting planCloudflare R2 is $0.015 per GB-month
Serving large filesUses your server’s bandwidthServed from the bucket or CDN
Upload limitSet by PHP and web serverStill set by PHP and web server

R2 pricing is from Cloudflare’s R2 pricing page, which also lists free egress. OffloadX offloads new uploads automatically on every plan, including Free for up to 100 files, and Starter ($8/month billed annually, checked September 2026) adds a bulk migrator for your existing library.

To choose a provider, compare options in our guide to the best cloud storage for WordPress.

Better Options for Big Videos

Video is the main reason people try to increase WordPress max upload size far beyond 100 MB. In most cases a video service is a better home for it than the Media Library.

Why video in the Media Library is a poor fit

  • Large uploads hit PHP, web server and Cloudflare limits.
  • WordPress does not create multiple quality levels for video, so viewers download one large file.
  • Serving video from shared hosting uses a lot of bandwidth.

Alternatives

OptionBest forNotes
YouTube or Vimeo embedPublic marketing videosNo upload limit problems in WordPress
Cloudflare StreamAd-free video on your site$5 per 1,000 minutes stored, $1 per 1,000 minutes delivered; files under 30 GB
Upload to a bucket directlyDownloads and large filesUpload through the provider’s dashboard or tools, then link to the file

Stream figures are from Cloudflare Stream pricing, checked September 2026. For large downloadable files such as course resources, uploading straight to your bucket bypasses WordPress limits entirely. Our Cloudflare R2 offload guide covers setting up a bucket and delivery URL.

Frequently Asked Questions

What is the default max upload size in WordPress?

WordPress uses the smaller of PHP’s upload_max_filesize and post_max_size. PHP’s own defaults are 2M and 8M, but most hosts set higher values, often between 32M and 256M.

Can I increase the upload limit with a plugin?

A plugin can only show or lower the limit, or ask the server nicely. It cannot override PHP’s upload_max_filesize if your host does not allow it.

Why does wp-config.php not change my upload limit?

upload_max_filesize and post_max_size are per-directory PHP settings. They must be set in php.ini, .user.ini, .htaccess or the server configuration.

How do I increase WordPress max upload size on shared hosting?

Use your host’s PHP settings page if it has one, otherwise create a .user.ini file in the WordPress root. If neither works, ask support to raise it.

Why do I get a 413 error after raising the limit?

A 413 comes from the web server or a proxy, not PHP. Raise nginx’s client_max_body_size or ask your host, and check Cloudflare’s plan limit.

What is the multisite max upload file size default?

1500 KB. Change it in Network Admin → Settings under Max upload file size, and check each site’s upload space quota.

Is a very high upload limit a security risk?

It can be on sites where visitors upload files, because large files use disk space and processing time. Set limits to what you need and use role-based limits if required.

Do I need to restart anything after changing the limit?

Changes to the main php.ini need a restart of PHP-FPM or the web server. A .user.ini change is picked up after PHP’s cache period, five minutes by default, and .htaccess changes apply on the next request.

Should I upload videos to WordPress?

Usually not. A video service or a direct bucket upload avoids upload limits, saves disk space and gives viewers a better experience.

Conclusion

To increase WordPress max upload size, raise upload_max_filesize and post_max_size together in the right place for your server, then check nginx, Cloudflare and multisite limits. Keep the limit to what you really need, move large videos to a video service, and offload media so bigger files do not fill your disk.

See OffloadX Plans →

Based on PHP, nginx, Apache, WordPress developer and Cloudflare documentation. Sources, Cloudflare limits and OffloadX pricing checked September 2026.