A low WordPress upload size limit stops you from uploading large files, plugins, and themes. If you’re building a media-heavy website, that can be a considerable obstacle. It’s necessary to increase the max upload size in WordPress or your server (or both) in such cases.

Depending on your hosting provider and server, there are many ways to go about solving this issue. We’ll cover them all in this article and show you how to increase the maximum upload size in WordPress quickly.

Let’s dive in!

Prefer to watch the video version?

What Is the Maximum Upload Size in WordPress?

Uploading large files to a server consumes a lot of the server’s resources. To prevent users from causing server timeouts, the default maximum upload size in WordPress typically ranges from 4 MB to 128 MB. Usually, the hosting provider sets this limit at the server level.

WordPress also includes constants that define this limit, but they cannot override the server-level settings in most cases.

To verify this, go to your WordPress site’s Media Library. Here, try to upload a file that crosses this maximum upload file size limit. You’ll see an error message that looks something like this:

Error while uploading a large file in WordPress
Error while uploading a large file in WordPress

The “exceeds the maximum upload size for this site” error can be frustrating, but it exists for two main reasons: security and efficiency. It hinders site owners and other users, including malicious actors, from uploading huge files (e.g. high-resolution images, large videos).

Otherwise, it can result in incapacitating your website’s server, making your site come to a crawl. Or worse, it can bring your site down altogether!

How to Check the Current Maximum Upload Size in WordPress

There are many ways to check your WordPress site’s current max upload size. Let’s go through all of them.

In the Media Library

The quickest way to check your site’s current maximum upload size is to go to your WordPress dashboard, and from there, go to Media > Library. Here, click on the Add New button to activate the media uploader tool.

The
The “Maximum upload size limit” in WordPress

As Kinsta hosts this site, the Maximum upload file size: 128 MB. message displays below the Select Files button. If you’re using a different web hosting provider, you may see a different limit listed here.

You can also go to Media > Add New directly and see the same message displayed at the bottom.

The
The “Maximum upload file size” in WordPress’ Media Library

Again, you can see the 128 MB max upload file size here.

In the Site Health Info

WordPress 5.2 added the Site Health Info tool to help you debug your WordPress site better. Here, you can find almost all the information about your server and WordPress configuration.

As both the server and WordPress handle the max upload file size, there are two ways to find its value on this screen.

First, you can find it listed under the Media Handling dropdown. Here, look for the value of Max size of an uploaded file constant.

'Media Handling' settings in the 'Site Health Info' panel
‘Media Handling’ settings in the ‘Site Health Info’ panel

The second method is to look under the Server dropdown. You’ll find many options related to your webserver’s setup under here. Please search for the value for Upload max filesize constant to see what it is. On this site, the max upload file size limit is 128 MB.

'Server' settings in the 'Site Health Info' panel
‘Server’ settings in the ‘Site Health Info’ panel

You can also see other PHP constants and their values, such as:

  • PHP post max size: Defines the maximum upload limit for POST requests.
  • PHP memory limit: Defines the memory allocated for PHP. It should be set equal to or higher than the Upload max filesize limit. Or else the upload will fail.

Your web host sets these options. Usually, starter hosting plans will have a lesser upload size limit than enterprise hosting plans. Some hosts may allow you to override these limits. But in most cases, you may need your hosting provider’s assistance (and perhaps a plan upgrade) to increase them.

Why Increase the Maximum Upload File Size in WordPress?

There are many reasons why you may need to increase your WordPress site’s maximum upload file size. Here are the most common ones:

  • You want to install a large theme or plugin directly through the WordPress admin dashboard.
  • Updating your WordPress site regularly is a great way to keep your readers engaged and return for more. And that includes uploading new images, videos, audios, and other media regularly. However, that’s not always feasible when there’s a file size limit for your uploads.
  • You want to upload a large video or image as your site’s background or header.
  • You plan to sell digital files such as ebooks, photographs, videos, themes, and plugins directly from your site. Sometimes, these files can run up to hundreds of megabytes (or more).

Now that we’ve covered the basics of max upload file size in WordPress, let’s learn how to increase it.

10 Ways to Increase the Max Upload File Size in WordPress

There are many ways you can fix the WordPress maximum upload size issue. We’ll start with the easiest ones first, and then we’ll move on to the intermediate-level tutorials.

Contact Your Hosting Provider for Help

If you’re facing issues with uploading files and file size limits, reaching out to your hosting provider for assistance is one of the quickest solutions. Increasing the upload limit is a trivial task for tech support, so most hosting companies can help you fix this issue quickly.

Tinkering with your server or site configuration files can always be a challenge. Hence, we always recommend you try this method first.

If you’re hosting your site with Kinsta, our knowledgeable support team is just a click away and available 24/7. To get started, go to your MyKinsta dashboard and click the chat icon in the bottom right corner.

Screenshot: Contacting Support in MyKinsta.
Initiating a Support chat in MyKinsta.

Next click the Send us a message button and let us know how we can help:

Screenshot: Sending a message in MyKinsta.
Sending a Support chat message in MyKinsta.

We have representatives to assist you in many languages, including English, Spanish, French, German, Italian, and Portuguese.

Increase the Max Upload File Size in WordPress Multisite

If you’re running a WordPress Multisite network, then you can modify the max upload file size for your network.

First, head to your Network Admin dashboard, and then go to Settings > Network Settings screen. Here, scroll down till you find the Upload Settings section. You’ll find the Max upload file size field in this area.

The 'Max upload file size' in 'Network Settings'
The ‘Max upload file size’ field in ‘Network Settings’

The default value of Max upload file size in a WordPress Multisite is 1500 KB (~1.5 MB). You can change this to a higher value and click the Save Changes button.

Note: You cannot circumvent the server-level max upload size limit from here. If the limit you set here is higher than the server’s max upload size limit, the server will ignore it. You can use the methods described above to find your webserver’s configuration.

The new 'Max upload file size' field in 'Network Settings'
The new ‘Max upload file size’ in ‘Network Settings’

Here, we’ve set the new max upload file size to 131072 KB (~128 MB).

You can also limit the total size of files uploaded to an individual site in the Multisite network. However, it’s disabled by default.

Update Your ‘.htaccess’ File

If your webserver runs on Apache, you can update your site’s .htaccess file to increase the max upload size in WordPress. You can find your .htaccess file in the WordPress site’s root directory.

As per PHP documentation, three PHP directives are responsible for how WordPress handles uploads. They are:

  • upload_max_filesize
  • post_max_size
  • memory_limit

We’ve already discussed them in the Site Health Info section above. It would help if you modified these three directives’ values to admit your file sizes. For instance, if the largest file you’re planning to upload is 32 MB, we recommend the following settings:

  • upload_max_filesize = 32M
  • post_max_size = 64M
  • memory_limit = 128M

Notice, all the values use M instead of MB. That’s how PHP handles its directives.

Uploads can contain extra information in addition to the file itself. So, giving all other upload-related directives some breathing space is a good idea. You can read our in-depth tutorial on how to improve PHP memory limit in WordPress for more information.

Access your .htaccess file via FTP/SFTP or your hosting provider’s File Manager.

Finding the '.htaccess' file
Finding the ‘.htaccess’ file

Open the .htaccess file with a text editor or code editor, and then add the following code:

php_value upload_max_filesize 32M
php_value post_max_size 64M
php_value memory_limit 128M
php_value max_execution_time 300
php_value max_input_time 300

You can notice two other PHP directives in the above code: max_execution_time and max_input_time. They define how long a server spends on a single PHP task. The bigger your uploads, the bigger the time spent will be. You need to set their values to a number that’s appropriate for your use case.

Note: You may get a 500 Internal Server Error after using the method above. Most likely, it’s because your server is running PHP in CGI mode. In such cases, you cannot use the above commands in your .htaccess file.

Create or Modify the ‘php.ini’ File

The php.ini file is where you define changes to your default PHP settings. Typically, it contains directives that define file timeouts, max upload size, and resource limits.

Using SSH or FTP, you can find the php.ini file in your WordPress root directory. In some cases, you may not locate it there. Fret not! You can create a new file with the same name in your site’s root directory.

How to create a new php.ini file
How to create a new php.ini file

With a code or text editor, add the following code to your existing or new php.ini file:

upload_max_filesize = 32M
post_max_size = 64M
memory_limit = 128M

Don’t forget to save your file after making the changes. Some hosts don’t allow you to modify PHP settings via this method. In such a case, you can proceed to try the following solution instead.

Create or Modify the ‘.user.ini’ File

If your hosting provider has locked down the global PHP settings, they may have configured the server to work with .user.ini files instead of php.ini files.

Like php.ini and .htaccess files, you can find the .user.ini in your site’s root directory. If you can’t find it, then you can create a new .user.ini file in the same location. Follow the same procedure described in the previous method to create a new php.ini file.

Next, add the following code to your .user.ini file:

upload_max_filesize = 32M
post_max_size = 64M
memory_limit = 128M

You’ll notice that it’s a repeat of the previous method, except with a different filename.

Change PHP Options via cPanel

If your hosting provider uses the cPanel dashboard to help you manage your server and site configuration, you can change the max upload file size through its interface.

To get started, go to your cPanel dashboard, and select the Select PHP Version under the Software section.

Click 'Select PHP Version' in cPanel dashboard
Click ‘Select PHP Version’ in the cPanel dashboard

Here, you can change your server’s current PHP version and enable/disable many PHP extensions. Click on the Options link in the navigation menu to go to the PHP Options panel.

Go to the 'PHP Options' settings in cPanel
Go to the ‘PHP Options’ settings in cPanel

Scroll down here to modify the values of PHP directives such as upload_max_filesize, post_max_size, memory_limit, max_execution_time, and max_input_time. The max values you can set here depend on your current hosting plan.

The 'PHP Options' screen in cPanel
The ‘PHP Options’ screen in cPanel

If you have any doubts about these values, we suggest you contact your hosting provider. The latest cPanel dashboard saves changes automatically, so you don’t have to click anything. But if you’re using an older cPanel version, make sure to click the Save Changes button.

Increase the Max Upload File Size in Nginx

Nginx is another webserver like Apache, but it’s also a lot more. Typically, Nginx can handle more concurrent requests than Apache, making it a lot faster. Kinsta uses Nginx to power its performance-optimized hosting solutions for WordPress.

If you’re running your WordPress site on Nginx, you’ll need to modify both your php.ini and nginx.conf files. We’ve dealt with the former file before. The latter one is called an Nginx config file.

On an Nginx server, you can find the php.ini file at /etc/php/7.4/fpm/php.ini. Depending on which PHP version you’ve installed, the exact path may vary slightly.

upload_max_filesize = 64M
post_max_size = 128M

You don’t have to set the memory_limit in the above file as Nginx handles it differently. For more, you can check out this Stack Overflow thread. After saving your php.ini file, enable the changes by restarting PHP-FPM using the below code in your terminal:

sudo service php7.4-fpm restart

Again, the exact code may vary slightly depending on the PHP version installed on your server.

Next, use Nginx’s client_max_body_size directive to set the new max upload size limit. You need to declare this directive in the nginx.conf file, which you can find at /etc/nginx/nginx.conf.

You can declare this directive inside the http {...} block, the server {...} block, or the location {...} block.

Setting it in the http block will affect all the sites/apps hosted on this server.

http {
    ...
    client_max_body_size 128M;
}

Defining it in the server block will only affect a specific site/app hosted by this server.

server {
    ...
    client_max_body_size 128M;
}

The location block only affects the specified directory (e.g. files, uploads) inside a site/app.

location /files {
    ...
    client_max_body_size 128M;
}

Don’t forget to save the file and restart Nginx to apply the changes. To do that, you can use the following command in your terminal:

sudo service nginx reload

If you’re a Kinsta client, you can’t access your Nginx config directly. However, you can reach out to our support team, and they can quickly make the changes for you.

Use the WordPress ‘upload_size_limit’ Filter

WordPress 2.5 introduced the upload_size_limit filter, which filters the maximum upload size allowed in php.ini. Even WordPress uses this filter to show you the max upload size allowed, like in the Media Library and Site Health Info screens.

Below is an example of this filter in action from WordPress contributor Drew Jaynes. It defines the upload size limit for all non-admin roles.

/**
* Filter the upload size limit for non-administrators.
*
* @param string $size Upload size limit (in bytes).
* @return int (maybe) Filtered size limit.
*/
function filter_site_upload_size_limit( $size ) {
// Set the upload size limit to 10 MB for users lacking the 'manage_options' capability.
if ( ! current_user_can( 'manage_options' ) ) {
// 10 MB.
$size = 1024 * 10000;
}
return $size;
}
add_filter( 'upload_size_limit', 'filter_site_upload_size_limit', 20 );

The above code uses WordPress’ manage_options capability to set this limit only for non-admins. You can modify the code to target specific user roles or user ids. Read our in-depth WordPress roles and capabilities article for more information.

Use a WordPress Plugin

Messing with code using SSH or FTP/SFTP is not for everyone. If you’re not comfortable with writing or editing code, you can use a WordPress plugin instead.

WP Maximum Upload File Size plugin
WP Maximum Upload File Size plugin

We’ll be using the WP Maximum Upload File Size plugin here. As of writing this, it’s the only up-to-date plugin on the WordPress plugin repository that helps you get this done.

To get started, install and activate the WP Maximum Upload File Size plugin. Next, go to its settings screen in your WordPress dashboard. Here, you can see the maximum upload file size set by both your hosting provider and WordPress.

WP Maximum Upload File Size settings screen
WP Maximum Upload File Size settings screen

Here, you can see that the maximum upload file size set by WordPress is lesser than that set by your hosting provider. Hence, you can crank it up by choosing the Maximum Upload File Size with the dropdown presented.

Note: If you want to set a max upload file size limit that’s larger than the one set by your hosting provider, it’s not possible to do it via this plugin. For that, you need to contact your hosting provider.

Upload Files via FTP/SFTP

Are you still struggling with all the above methods? Or with your hosting provider to have them raise the upload file size limit? You can always upload large files via FTP/SFTP.

FileZilla window with a site connected
Drag and drop files to and for your server and computer with SFTP

If you have a lot of large files to upload, this is the fastest method. You can read our in-depth tutorial on how to bulk upload files to the WordPress media library for more information.

Sometimes, WordPress doesn’t recognize files uploaded via FTP/SFTP. If that’s the case, you can use the free Add From Server plugin to import the uploaded files into WordPress.

Alternatively, you can do the same straight from the command line by importing images using WP-CLI. The wp media import command allows you to create attachments from local files or URLs.

Don’t Edit the ‘wp-config.php’ File

Editing the wp-config.php file doesn’t work anymore. We’re adding it here because we’ve found many web tutorials that list it as a legitimate way to increase the max upload size in WordPress.

It involves going to your site’s root directory via FTP/SFTP or SSH and then editing the wp-config.php file.

Finding the 'wp-config.php' file
Finding the ‘wp-config.php’ file

You’re suggested to add the following code to the wp-config.php file:

@ini_set( 'upload_max_size' , '64M' );
@ini_set( 'post_max_size', '128M');
@ini_set( 'memory_limit', '256M' );

It fails to work because you can only use the ini_set() function to set PHP directives that belong to the PHP_INI_ALL changeable mode.

As upload_max_size and post_max_size belong to the PHP_INI_PERDIR changeable mode. You can only set them via php.ini, .htaccess, http.conf, or .user.ini.

If you’ve tried this method before without seeing any results, now you know why it fails.

Verify Your WordPress Site’s New Max Upload File Size

Finally, it’s time to verify whether the new max upload file size limit is implemented in your WordPress site. To do this, follow the same procedure we discussed above to check the max upload file size in WordPress.

Go to your Media Library in the WordPress dashboard and check whether the max upload file size limit has changed.

Verifying the new max upload file size limit
Verifying the new max upload file size in ‘Media Library’

Yes, it has changed. That’s a success!

You can also go to the Site Health Info panel and check for the same under Media Handling and Server dropdowns.

Verifying the new max upload file size limit in 'Site Health Info'
Verifying the new max upload file size in ‘Site Health Info > Media Library’
Verifying the new max upload file size limit in 'Site Health Info'
Verifying the new max upload file size in ‘Site Health Info > Server’

Summary

As you’ve seen, increasing the maximum upload file size in WordPress isn’t too complex. Whether you’re building a media-heavy portfolio site or installing a large theme, it’s just a matter of knowing where to look for and what commands or tools to use.

In most cases, reaching out to your hosting provider should be enough. However, if you’re stuck with a troublesome host, we’ve shown you some alternative methods you can try before migrating to better hosting.

Get uploading!

Did we cover it all? If you’ve experienced a stubborn case of upload file size limits, let us know how you managed to fix it.

Salman Ravoof

Salman Ravoof is a self-taught web developer, writer, creator, and a huge admirer of Free and Open Source Software (FOSS). Besides tech, he's excited by science, philosophy, photography, arts, cats, and food. Learn more about him on his website, and connect with Salman on Twitter.