Limited time discount
Spring Deals Are in Full Bloom
Up to 70%Off
Up to 70%Off
Grab Now

How to Increase the WordPress Upload Size Easily

You drag a file into the WordPress media library and get hit with “exceeds the maximum upload size for this site.” Frustrating, but fixable.

The default upload size limit in WordPress ranges from 2 MB to 128 MB depending on your hosting provider. Your server’s PHP configuration controls it, not WordPress itself. And when you need to upload high-resolution images, video files, or large plugin packages, that limit becomes a real problem.

This guide covers how to increase WordPress upload size using every available method. You’ll learn to edit .htaccess, php.ini, and wp-config.php files, use cPanel’s MultiPHP INI Editor, work with plugins, adjust WordPress Multisite network settings, and contact your host when nothing else works.

What Is the WordPress Maximum Upload Size Limit

Every WordPress installation has a cap on how large a file you can upload through the admin dashboard. This isn’t something WordPress itself decides.

The limit comes from your server’s PHP configuration. Three PHP directives control it: uploadmaxfilesize, postmaxsize, and memorylimit. Your hosting provider sets these values when they configure the server environment, and WordPress just reads whatever the server allows.

According to W3Techs, 43.4% of all websites run on WordPress. That’s hundreds of millions of sites, and most of them share this exact same friction point at some stage.

Default values vary wildly depending on the host:

Hosting provider Typical default limit Server type
Kinsta 128 MB Managed WordPress
SiteGround 256 MB Shared
Cloud
Bluehost 64 MB Shared
Cloudways 20 MB Cloud VPS
Default PHP 2 MB Unmodified

The quickest way to check yours? Go to Media > Add New in your WordPress dashboard. Right below the upload area, you’ll see a line that reads “Maximum upload file size” followed by a number. That’s your current ceiling.

You can also find it under Tools > Site Health > Info > Media Handling, which was added in WordPress 5.2. Both methods pull the same server-level values, so either works.

One thing that trips people up: the WordPress media uploader might show a lower number than what your server actually supports. This happens when uploadmaxfilesize and postmaxsize don’t match. WordPress always uses the smaller of the two. So if your uploadmaxfilesize is 64M but postmaxsize is only 8M, you’re stuck at 8M. I’ve seen this catch developers off guard more times than I’d like to admit.

Why WordPress Restricts File Upload Size

The upload limit exists for a reason, and it’s not just to annoy you.

Server Resource Protection

Uploading a large file takes server memory and processing time. On shared hosting (which still represents the largest revenue segment of the hosting industry, per Grand View Research), your site shares CPU and RAM with dozens or even hundreds of other accounts.

A single 500 MB upload on a shared server could eat up resources that affect every other site on that machine. Hosts set conservative PHP limits to prevent one account from taking down the neighborhood.

Security Risks of Unrestricted Uploads

Patchstack’s 2025 State of WordPress Security report found 7,966 new vulnerabilities in the WordPress ecosystem during 2024 alone. That’s roughly 22 per day. And 96% of them were in plugins.

Arbitrary file upload vulnerabilities were directly responsible for 77 of those reported issues, according to Quttera’s 2024 recap. When someone can upload files without proper restrictions, they can inject malicious PHP scripts, backdoors, or webshells that give them full server access.

So yeah, the limit is there for your protection too. If you allow users to submit files through WordPress forms on your site, this matters even more. Every file upload field is a potential entry point if not properly locked down. Good form security practices should always include file type restrictions and size caps.

Performance Impact

HTTP Archive data from 2025 shows the median desktop page now weighs 2.9 MB, up 7.3% from the previous year. The median mobile page hit 2.6 MB.

Large media files uploaded without compression or optimization directly contribute to this bloat. A single unoptimized hero image can weigh 400 KB as a JPEG, or balloon past 2 MB if someone uploads a raw camera file. Multiply that across a dozen pages and your site becomes sluggish.

Keeping upload limits reasonable forces you to think about file size before you upload. Which, honestly, is a habit worth building regardless.

How to Check Your Current WordPress Upload Limit

Before changing anything, you need to know exactly where you stand. There are a few ways to do this, and each gives you slightly different information.

Through the Media Library

Go to your WordPress admin panel. Click Media > Add New.

Right below the drag-and-drop upload zone, you’ll see text that says something like “Maximum upload file size: 64 MB.” That’s your active limit. If you try uploading a file larger than this, WordPress throws the “exceeds the maximum upload size for this site” error.

Using the Site Health Tool

Tools > Site Health > Info gives you a deeper look. Check two sections:

  • Media Handling: shows the max upload file size WordPress is currently using
  • Server: shows raw PHP values including uploadmaxfilesize, postmaxsize, memorylimit, and maxexecutiontime

This is where you figure out which directive is actually the bottleneck. If uploadmaxfilesize says 128M but postmaxsize says 8M, there’s your problem.

Creating a phpinfo() File

For the full picture, create a file called info.php in your WordPress root directory with this content:

<?php phpinfo(); ?>

Visit yourdomain.com/info.php in a browser. Search for uploadmaxfilesize on the page. You’ll see two columns: “Local Value” (what’s active) and “Master Value” (the server default).

Delete this file immediately after checking. Leaving a phpinfo file on a live site is a security risk because it exposes your entire PHP configuration to anyone who finds the URL. W3Techs data shows PHP runs on over 76% of all websites, so attackers actively scan for these files.

Increase Upload Size by Editing the .htaccess File

This is the most common method for sites running on Apache, and it works without touching your hosting control panel.

Locating the .htaccess File

The .htaccess file sits in your WordPress root directory, the same folder where you find wp-config.php and the wp-content folder. Connect to your server using FileZilla or any FTP/SFTP client, or use your host’s file manager in cPanel.

If you don’t see it, your FTP client might be hiding dotfiles. Enable “Show hidden files” in the settings. On most shared hosting plans with Bluehost, Hostinger, or SiteGround, you’ll find it right in the publichtml directory.

Adding the PHP Directives

Open the file and add these lines at the bottom:

 phpvalue uploadmaxfilesize 128M phpvalue postmaxsize 128M phpvalue memorylimit 256M phpvalue maxexecutiontime 300 phpvalue maxinputtime 300 

A few things to note here. Always set postmaxsize equal to or larger than uploadmaxfilesize. The postmaxsize directive covers the entire HTTP POST request, which includes the file itself plus any form data sent along with it.

maxexecutiontime and maxinputtime matter for large files because uploading takes time. The default of 30 seconds isn’t enough for a 100 MB video on a slower connection.

When This Method Fails

If you get a 500 Internal Server Error after saving, your server is probably running PHP in CGI or FastCGI mode instead of modphp. Apache needs modphp for phpvalue directives to work in .htaccess.

Remove the lines you added and the error will go away. Then try one of the other methods below. Took me a while to figure this out the first time it happened, because the error message gives you zero clues about what actually went wrong.

Increase Upload Size by Editing the php.ini File

The php.ini method is the most direct way to change PHP configuration because you’re editing the actual PHP settings file. This works across server types, not just Apache.

Editing an Existing php.ini

Look for php.ini in your WordPress root directory or in the PHP configuration path on your server. On shared hosting through cPanel, you might find it under the home directory. On a VPS or dedicated server, the global file usually lives at /etc/php/[version]/php.ini.

Open it and find these lines (or add them if they don’t exist):

 uploadmaxfilesize = 128M postmaxsize = 128M memorylimit = 256M maxexecutiontime = 300 

Save and restart your web server (Apache or Nginx) for the changes to take effect.

Using a .user.ini File on Nginx Servers

Nginx doesn’t read .htaccess files at all. If your site runs on Nginx (and many managed WordPress hosts like Kinsta and Flywheel use Nginx), you need to create a .user.ini file in your WordPress root directory instead.

Add the same directives:

 uploadmaxfilesize = 128M postmaxsize = 128M memorylimit = 256M maxexecutiontime = 300 

But there’s a catch. Nginx itself has a separate directive called clientmaxbodysize that also limits uploads. If this is set to, say, 10M in your Nginx server block, your uploads will still fail even after updating .user.ini.

You need server-level access to edit the Nginx configuration and add:

clientmaxbodysize 128M;

Most people on managed hosting won’t have this access. In that case, contact your host directly. At WP Engine or Kinsta, support can bump the Nginx limit for you in minutes.

Shared Hosting Limitations

W3Techs data shows over 80% of hosting providers offer PHP as a standard runtime. But on shared plans, many of them lock down the php.ini so you can’t override it.

If you create a local php.ini and nothing changes, the server is probably ignoring it. That’s your signal to try the wp-config.php method or contact your host. Don’t keep creating php.ini files in random directories hoping one sticks. It won’t.

Increase Upload Size Through the wp-config.php File

The wp-config.php approach is WordPress-specific and doesn’t require touching server configuration files. It’s a good middle ground for people who are comfortable editing code but can’t access php.ini or .htaccess.

Adding the Configuration Lines

Open wp-config.php from your WordPress root directory. Find the line that says:

/ That’s all, stop editing! Happy publishing. /

Add these lines above that comment:

 @iniset( 'uploadmaxfilesize', '128M' ); @iniset( 'postmaxsize', '128M' ); @iniset( 'memorylimit', '256M' ); @iniset( 'maxexecutiontime', '300' );

You can also increase the WordPress memory limit separately with:

define( ‘WPMEMORYLIMIT’, ‘256M’ );

What This Method Can and Cannot Do

Here’s the thing. The @iniset function tries to override PHP settings at runtime. But if your server has these values locked at the system level (which many shared hosts do), the override silently fails. No error, no warning. The values just don’t change.

The WPMEMORYLIMIT constant is more reliable because WordPress reads it directly. But it still can’t exceed whatever the server’s PHP memorylimit allows.

Method Works on Apache Works on Nginx Can override server limits
.htaccess Yes (mod_php only) No No
php.ini / .user.ini Yes Yes (.user.ini) No
wp-config.php Depends Depends No
Hosting control panel Yes Yes Up to server max

The pattern is clear. None of these methods can exceed your server’s global PHP limits. They can only adjust values up to the ceiling your host has set. If your host caps uploadmaxfilesize at 64M globally, setting 128M in wp-config.php won’t do anything.

That said, if you’re building a site with WordPress forms that include file upload fields, knowing these limits matters beyond just the media library. Any form that accepts file attachments (like an intake form or application submission) is subject to the same PHP restrictions. The upload limit applies globally, not just to the built-in media uploader.

Increase Upload Size Using a WordPress Plugin

Not everyone wants to edit server files. Plugins exist specifically for this, and some of them are genuinely good.

Big File Uploads by ClikIT

This plugin has over 100,000 active installations on the WordPress.org directory. It works by splitting large files into smaller chunks before uploading them, which bypasses server timeout restrictions entirely.

Install it from Plugins > Add New, search for “Big File Uploads,” activate, and go to Settings > Big File Uploads. Set your desired max file size. Done.

The chunking approach is what makes this plugin different from others. Even if your server’s uploadmaxfilesize is locked at 20 MB, the plugin breaks a 200 MB file into pieces small enough to pass through.

EasyMedia (Increase Maximum Upload File Size)

Dashboard view: Shows your current PHP upload limit, max execution time, and memory limit at a glance.

Role-based limits: Set different upload caps for administrators, editors, and authors (pro version).

Execution time control: Raises maxexecutiontime alongside the file size, which prevents timeout errors on large uploads.

The free version handles the basics. The pro version adds upload logging and per-user restrictions, which matters if you run a site where multiple people upload content.

When Plugins Hit a Wall

Plugins modify PHP values through WordPress hooks and filters. If your hosting provider locks PHP settings at the server level, no plugin can override them.

The plugin will try to set a higher value, but the server just ignores it. You won’t get an error message. The limit simply stays the same.

Also worth mentioning: every plugin you install adds code that runs on every page load. If you only need to upload a few large files once, consider using the plugin temporarily and deactivating it after. This is especially relevant if you already run many plugins, since Patchstack reported 96% of WordPress vulnerabilities in 2024 came from plugins.

Increase Upload Size by Contacting Your Hosting Provider

Sometimes the simplest fix is just asking. Especially on shared hosting where you can’t touch server-level PHP configuration, this is often the only option that actually works.

How to Request the Change

Most hosts respond to this within minutes. Here’s what to include in your support ticket or live chat:

  • Your domain name and hosting account username
  • The specific values you want: uploadmaxfilesize, postmaxsize, memorylimit
  • A brief reason (uploading media, migrating a site backup, etc.)

Don’t just say “make it bigger.” Give exact numbers. Something like “please set uploadmaxfilesize to 128M and postmaxsize to 128M" gets processed faster.

Host-Specific Processes

Hosting provider Where to change it Self-service?
Bluehost cPanel
MultiPHP INI Editor
Yes
SiteGround Site Tools
PHP Manager
PHP Variables
Yes
Hostinger hPanel
PHP Configuration
Yes
Kinsta Contact support (Nginx-based) No
WP Engine Contact support (max 256 MB) No

WP Engine caps uploads at 256 MB even with support intervention. Anything larger must go through SFTP or SSH Gateway.

Changing Upload Limits via cPanel

If your host uses cPanel, the MultiPHP INI Editor is the fastest route. It’s under the Software section.

Select your domain from the dropdown. Scroll to uploadmaxfilesize and postmaxsize. Enter your values (use “M” not “MB”). Click Apply.

Changes usually take effect within 2-3 minutes. If they don’t, check that you selected the correct PHP version for your domain. Some cPanel installations run multiple PHP versions, and you might be editing the wrong one.

Increase Upload Size in WordPress Multisite

WordPress Multisite adds another layer of upload restrictions on top of the PHP-level limits. This catches a lot of network administrators off guard.

The Network-Level Upload Setting

The default max upload size for WordPress Multisite is 1,500 KB, which is roughly 1.5 MB. That’s tiny by any standard.

This setting lives in Network Admin > Settings > Network Settings. Scroll to the Upload Settings section and find the “Max upload file size” field. The value is in kilobytes, not megabytes. So 50 MB would be entered as 50000.

How This Setting Interacts with Server Limits

Think of it as two ceilings. The server’s PHP configuration is the hard ceiling. The Multisite network setting is a second, lower ceiling underneath it.

  • If PHP allows 128 MB and Multisite says 1.5 MB, uploads cap at 1.5 MB
  • If PHP allows 20 MB and you set Multisite to 50 MB, uploads still cap at 20 MB

The Multisite limit cannot exceed what the server allows. It can only restrict further within that boundary.

Per-Site Upload Quotas

Multisite also lets you set total storage quotas for individual subsites. This is separate from the per-file upload limit.

You’ll find it in the same Network Settings page. By default, it’s disabled. When enabled, each subsite gets a fixed amount of total upload space (the default is 100 MB).

For networks with many contributors, this is useful for preventing any single subsite from eating all the server’s disk space. If you manage a network where users submit files through registration forms or website forms on individual subsites, the per-site quota applies to those uploads too.

How to Verify the Upload Limit Has Changed

You made the edits. Now you need to confirm they actually took effect. Don’t skip this step.

Quick Verification Methods

Media Library check: Go to Media > Add New. The “Maximum upload file size” line below the uploader should reflect your new value.

Site Health check: Visit Tools > Site Health > Info > Server. Look at uploadmaxfilesize and postmaxsize. Both should show the updated numbers.

phpinfo() check: If you created an info.php file earlier, refresh it and search for your directives. Compare the “Local Value” column against your expected settings. Delete the file when done.

Common Reasons Changes Don’t Apply

Server-level override: Your hosting provider’s global PHP config takes priority over anything you set locally. This is the most common reason, and you won’t see any error.

Wrong file location: A php.ini in the wrong directory gets ignored. It needs to be in the WordPress root or the active PHP config directory.

Caching: Some managed hosts cache PHP settings aggressively. Try clearing the server cache or waiting 5-10 minutes before checking again.

PHP version mismatch: If cPanel runs multiple PHP versions, you might have edited the settings for PHP 7.4 while your site uses PHP 8.2.

Order of Precedence When Methods Conflict

Priority level Configuration source Can be overridden?
1 (highest) Server global php.ini Only by host
2 php.ini / .user.ini Yes, by level 1
3 .htaccess (php_value) Yes, by levels 1–2
4 (lowest) wp-config.php (ini_set) Yes, by all above

If you changed the value in wp-config.php but the server’s global php.ini caps it lower, the server wins. Always verify from the top down.

Best Practices for Uploading Large Files to WordPress

Raising the upload limit solves the immediate problem. But just because you can upload a 500 MB file doesn’t mean you should.

Compress Images Before Uploading

HTTP Archive data shows images remain the heaviest resource on the average web page, with a median of 1,054 KB per page in 2024. Most of that weight is unnecessary.

Tools that handle this well:

  • TinyPNG: Simple lossy compression, works with JPEG, PNG, and WebP
  • ShortPixel: Offers lossy, lossless, and glossy modes plus WebP/AVIF conversion
  • Imagify: Beginner-friendly with three compression levels, integrates with WP Rocket

In testing by Themeisle, ShortPixel reduced a 5.3 MB image to 1.13 MB while TinyPNG brought the same file to 1.7 MB. Both maintained acceptable visual quality. Either is better than uploading raw camera files.

Use FTP/SFTP for Very Large Files

The WordPress media uploader wasn’t built for files over a few hundred megabytes. Even with a raised limit, uploading a 1 GB video through a browser session is unreliable.

FileZilla, WinSCP, or your host’s SSH gateway handle large transfers more reliably. Upload directly to the wp-content/uploads folder, then add the file to your media library using a plugin like Add From Server or Media Sync.

Offload Media to External Storage

If your site handles a lot of media (photography portfolio, video courses, downloadable products), keeping everything on your WordPress server isn’t practical long-term.

Amazon S3 and Cloudflare R2 are the two most common external storage options. Plugins like WP Offload Media automatically move uploads from your server to cloud storage and rewrite URLs so everything loads correctly.

This reduces server disk usage, improves page load speed through CDN delivery, and removes the upload limit problem entirely for recurring large files.

Set a Reasonable Limit

Don’t set uploadmax filesize to 2 GB just because you can. Higher limits create larger attack surfaces. Patchstack’s data showed 7,966 new WordPress vulnerabilities discovered in 2024, with arbitrary file upload flaws among the most dangerous categories.

Figure out the largest file you regularly need to upload. Add some headroom. Set the limit there. If you occasionally need to upload something much bigger, use FTP for that one file and keep your PHP limit at a sane default.

A temporary increase for a one-time migration is fine. A permanently maxed-out limit on a site where users submit content through optimized forms or public-facing upload fields is a risk you don’t need to take.

FAQ on How To Increase WordPress Upload Size

What is the default maximum upload size in WordPress?

It depends on your hosting provider. The default uploadmaxfilesize typically ranges from 2 MB to 128 MB. WordPress reads this value from your server’s PHP configuration. Check yours under Media > Add New in your dashboard.

Why can’t I upload large files to WordPress?

Your server’s PHP settings cap the file size. The directives uploadmaxfilesize, postmaxsize, and memorylimit all play a role. If any one of them is set too low, your upload fails.

How do I check my current WordPress upload limit?

Go to Media > Add New in your WordPress admin panel. The maximum upload file size displays below the uploader. For more detail, visit Tools > Site Health > Info > Server to see all PHP values.

Can I increase the upload size without editing code?

Yes. Use a plugin like Big File Uploads or EasyMedia. You can also change it through cPanel’s MultiPHP INI Editor if your host provides one. Alternatively, contact your hosting provider directly.

What is the difference between uploadmaxfilesize and postmaxsize?

uploadmaxfilesize controls the maximum size of a single file. postmaxsize controls the entire HTTP POST request, which includes the file plus any form data. Always set postmaxsize equal to or higher than uploadmaxfilesize.

Will editing .htaccess work on Nginx servers?

No. The .htaccess file only works on Apache servers. Nginx ignores it entirely. For Nginx, create a .user.ini file in your WordPress root or ask your host to adjust the clientmaxbodysize directive.

Why did my upload limit not change after editing php.ini?

Your hosting provider likely locks PHP settings at the server level. Local php.ini files get ignored on many shared hosting plans. Try the cPanel method instead, or contact your host to raise the global limit.

How do I increase the upload size in WordPress Multisite?

Go to Network Admin > Settings > Network Settings. Find the “Max upload file size” field and enter your value in kilobytes. The default is 1,500 KB. This setting cannot exceed your server’s PHP limit.

Is it safe to set a very high upload limit?

Not recommended. Higher limits increase your server’s exposure to large malicious file uploads. Set the limit to match your actual needs, not the maximum possible. Use FTP for occasional oversized files instead.

What should I do if none of the methods work?

Contact your hosting provider directly. On shared hosting, server-level restrictions override everything you set locally. Support teams at SiteGround, Bluehost, Kinsta, and similar hosts can adjust PHP values in minutes.

Conclusion

Knowing how to increase WordPress upload size comes down to understanding where the restriction lives. It’s a server-side PHP setting, not a WordPress limitation.

You’ve got multiple paths to fix it. Edit the .htaccess file on Apache, use a .user.ini on Nginx, adjust values through cPanel’s MultiPHP INI Editor, or go straight to your hosting provider’s support team.

For Multisite networks, remember the extra network-level cap that defaults to 1.5 MB. It’s easy to miss.

Whatever method you pick, keep your limits reasonable. Compress images with tools like ShortPixel or Imagify before uploading. Use SFTP for anything exceptionally large. And if you allow public file submissions through upload fields on your site, pair higher limits with proper file type validation and size restrictions per user role.

Match the limit to what you actually need. Nothing more.