WooCommerce File Upload Size Limits, and How to Increase Them

October 5, 2026,
WooCommerce File Upload Size Limits, and How to Increase Them
Troubleshooting

WooCommerce File Upload Size Limits, and How to Increase Them

Why a large file fails with no useful error, how to find your real limit in under a minute, and the four settings that actually control it.

Quick answer

Your real limit is the lowest of four values: PHP's upload_max_filesize, PHP's post_max_size, any limit your plugin sets, and sometimes a web server rule. Find the first two in WooCommerce > Settings > Status, raise them through your host, and set the plugin's limit slightly below so customers get a clear message instead of a request that dies.

First, find your real limit

Go to WooCommerce > Settings > Status and look in the Server environment section. Two rows matter:

  • PHP post max size
  • Max upload size

Whichever is lower is your ceiling, no matter what any plugin says. If Max upload size reads 8 MB and your upload rule allows 50 MB, customers get 8 MB and usually an error that explains nothing.

This one check resolves most reports of "the upload is broken".

The four limits, in the order they bite

LimitSet byWhat happens when it is hit
upload_max_filesizePHPThe individual file is rejected
post_max_sizePHPThe whole request is rejected, which can empty the form
Plugin maximum upload sizeYour upload ruleA clear message to the customer, before anything is sent
Web server body sizeNginx or ApacheA 413 error, often before PHP sees the request at all

Two rules follow from this. post_max_size must be larger than upload_max_filesize, because the request carries the file plus everything else on the form. And if customers upload several files at once, post_max_size has to cover the combined total, not the largest single file.

Raising the PHP limits

On most managed hosting this is a setting in the control panel, or a support ticket. On a server you control, one of these:

php.ini

upload_max_filesize = 128M
post_max_size = 160M
memory_limit = 256M
max_execution_time = 300

.htaccess, on Apache with PHP as a module:

php_value upload_max_filesize 128M
php_value post_max_size 160M
php_value memory_limit 256M
php_value max_execution_time 300

If adding those to .htaccess produces a 500 error, your host runs PHP in a mode that does not accept them. Remove the lines and ask the host instead.

wp-config.php can raise memory but not the upload limits:

@ini_set( 'memory_limit', '256M' );

Plenty of guides suggest setting WP_MEMORY_LIMIT or upload_max_filesize here. Memory works. The upload values generally do not, because PHP has already read them before WordPress loads.

After changing anything, reload WooCommerce > Status and confirm the numbers actually moved. If they have not, the change did not take effect, and no amount of repeating it will help.

When it is the web server, not PHP

If the PHP values look right and uploads still fail, especially with a 413 error, the web server is rejecting the request first.

On Nginx, that is client_max_body_size, which defaults to 1 MB and is set in the server configuration rather than anywhere you can reach from WordPress. Your host has to change it. It is worth naming the directive when you ask, because it turns a vague ticket into a specific one.

Setting the plugin's own limit

In the upload rule, set Maximum Upload Size in KB, MB or GB, slightly below your server's real ceiling.

That gap matters. A plugin limit set below the server's produces an immediate, readable message before anything is uploaded. A plugin limit set above it produces a long wait and then a failure the customer cannot interpret, which turns into a support email or an abandoned order.

✔
Say the limit before they hit it. Put the maximum size and the accepted formats in the upload rule's description, next to the button. Most people size their file before uploading if you tell them, and almost nobody reads an error message as carefully as they read the instruction.

Large files that stall rather than fail

If an upload reaches 80 or 90 percent and then dies, size is probably not the problem. Likely causes:

  • Execution time. max_execution_time too low for a slow connection. 300 seconds is a reasonable starting point.
  • Memory. Image processing, such as generating previews, needs memory beyond the file size itself.
  • A proxy or CDN timeout in front of your site, which has its own limits regardless of what the origin allows.
  • The customer's upload speed. A 100 MB file on a typical home connection takes minutes, and a progress bar matters as much as the limit does.

How high should the limit be?

Set it from what your customers genuinely send, not from a round number.

What customers uploadReasonable limit
Documents, licences, purchase orders5 to 10 MB
Photos for printing25 to 50 MB
Print-ready PDFs and vector artwork50 to 150 MB
Large format, signage, banners150 MB and up

Higher is not automatically better. A large ceiling invites uncompressed files that are slow to upload, slow to review and expensive to store, and if you accept only vector formats for a product, a tight limit is itself a quality filter.

Key takeaways
  • Your real limit is the lowest of four values, and WooCommerce > Status shows you the two that matter most.
  • post_max_size must exceed upload_max_filesize, and must cover all files in one submission.
  • A 413 error means the web server, not PHP. On Nginx that is client_max_body_size.
  • Set the plugin's limit below the server's so customers get a message rather than a dead request.
  • Uploads that stall near the end are usually time or memory, not size.

FAQ

What is the maximum file upload size in WooCommerce?
There is no WooCommerce limit as such. The ceiling comes from PHP's upload_max_filesize and post_max_size, plus any web server rule and whatever your upload plugin allows. The lowest of those wins.
Where do I check my current upload limit?
WooCommerce > Settings > Status, in the Server environment section. Look at PHP post max size and Max upload size.
How do I increase the upload size limit?
Raise upload_max_filesize and post_max_size in php.ini, or through your host's control panel. On managed hosting it is usually a support request. Confirm the change in WooCommerce > Status afterwards.
Why does my upload fail with a 413 error?
The web server is rejecting the request before PHP sees it. On Nginx that is client_max_body_size, which defaults to 1 MB and can only be changed in the server configuration, so your host has to do it.
Can I change the upload limit in wp-config.php?
You can raise the memory limit there, but not the upload limits. PHP reads those before WordPress loads, so the lines commonly suggested for this have no effect.
Why does an upload stop at 90 percent?
Usually execution time or memory rather than size, or a proxy or CDN timeout in front of your site. Raising max_execution_time and memory_limit is the first thing to try.
What limit should I set for print artwork?
Between 50 and 150 MB for print-ready PDFs and vector files, and more for large format work. Set it from what your customers actually send, and keep the plugin's limit just below your server's.
ET
Editorial Team
E-commerce and content specialists

We build and support WooCommerce plugins and write practical guides for store owners.

Set the limit, state it, and accept only what you can use

Per-rule size limits in KB, MB or GB, custom file extensions for production formats, and a description field that tells customers before they upload.

Get Customer Upload Files →