Skip to content

Server upload limits

The Backup, Sync & Migrate module uploads a .emcp archive to your site in chunks, and the uploader adapts to whatever your host allows. If a chunk is rejected it automatically retries with a smaller one. So you rarely need to change anything. Raising your PHP limits simply lets large backups upload in fewer, faster requests.

The Restore tab shows your current values next to the recommended ones. A green pill means you are already good; an amber pill means raising it would help.

SettingRecommendedWhy it matters
upload_max_filesize64 MB or moreThe largest single upload the server accepts.
post_max_size64 MB or moreThe largest request body; should be at least upload_max_filesize.
memory_limit256 MB or moreHeadroom for packaging and restoring.
max_execution_time300 s or more (0 = unlimited)Time a single restore step may run.

The right place depends on your host. Try these in order; the first that your host honours wins.

Most managed hosts (SiteGround, Kinsta, Cloudways, WP Engine, cPanel “MultiPHP INI Editor”, etc.) expose these under a PHP settings / PHP options screen. This is the most reliable option on shared hosting.

If you can edit php.ini:

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

Add to the site’s .htaccess:

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

For memory, you can also add near the top of wp-config.php:

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

Some servers enforce a maximum request size that PHP can’t see, so the Restore panel may show 2 GB while the server actually rejects anything larger than about 77 MB. The most common culprits:

  • Apache mod_fcgid: FcgidMaxRequestLen (often around 64 to 77 MB).
  • nginx: client_max_body_size (often 1 MB by default).
  • Cloudflare: a hard 100 MB upload cap on the free plan.

You don’t need to know these values. The uploader detects a rejection and automatically retries with smaller chunks until it fits. Raising them (in your server config, or your host’s control panel) just makes large uploads faster.

For very large sites, or any host that fights browser uploads, skip the uploader entirely:

  1. Copy your .emcp file into wp-content/emcp-backups/uploads/ via FTP/SFTP or your host’s file manager.
  2. It appears in the Available to restore list on the Restore tab with no browser upload at all.

This has no size limit and never touches the request-size caps above.