The limits that stack on every upload
A file uploaded through the WordPress media library or an LMS importer passes several limits, and the smallest one wins. PHP's upload_max_filesize caps one file. PHP's post_max_size caps the whole request; the PHP manual says it must be larger than upload_max_filesize, and that if a request exceeds it, the $_POST and $_FILES superglobals are empty, so the upload arrives with no data at all. Hosts can add their own WordPress-level cap, and a proxy in front of the site adds another.
PHP's own defaults are small (2M for upload_max_filesize and 8M for post_max_size), so every managed host overrides them. What differs is the value, whether you can change it, and whether there is a documented route for files that are too large for the browser uploader.
Published limits by host
| Host or layer | Published limit | Can it be raised? | Route for larger files |
|---|---|---|---|
| WP Engine | 50MB WordPress upload limit by default (1MB for multisite networks) | Support can raise it to a maximum of 256MB; multisite also needs the network upload setting changed (in KB) | Files over 256MB through SFTP or the SSH Gateway |
| SiteGround | upload_max_filesize 256MB on all servers | Fixed on shared plans; can be increased on Cloud servers on request | File Manager, FTP and SSH access are available |
| Kinsta | upload_max_filesize and post_max_size both 128M on lower tiers (Single 125k visits or 65GB bandwidth and below, WP 2, Launch, Launch Plus, Build, Expand) and 256M on higher tiers (Single 315k visits or 125GB and above, WP 5 and above, Scale, Lead) | Contact support with specific PHP requirements; on a dedicated server the documentation says these can be increased to 500M | SFTP (no file size limit stated, up to 10 simultaneous transfers); MyKinsta File manager rejects files over 100MB |
| Cloudflare proxy (any host) | 100MB request body on Free and Pro, 200MB on Business, up to 5GB on Enterprise | Only by changing Cloudflare plan | Upload with the proxy off, split the file, or upload by SFTP |
SCORM packages, videos and other large course assets
If your LMS imports SCORM or xAPI packages as one ZIP upload through the browser, that upload hits the same PHP and proxy limits as a media upload. A 180MB package illustrates the problem. On WP Engine it fails at the default 50MB and needs a support request to lift the limit toward 256MB. On SiteGround shared hosting it fits under 256MB. On a lower-tier Kinsta plan it exceeds the 128M upload_max_filesize and post_max_size. On any of them, if the domain is proxied through Cloudflare Free or Pro, it fails at 100MB with a 413 error, which WP Engine's platform settings page also warns about.
Before raising limits, check whether your LMS plugin can import a package that is already on the server. If it can, upload the ZIP by SFTP and import it from the server path, which avoids every browser and proxy limit. If it cannot, ask the host to raise the limit for the import and plan the upload outside peak hours.
Lesson video is a different case. Storing hour-long videos in the WordPress media library pushes against every limit in this guide and draws on the host's bandwidth, so a dedicated video platform is usually the better home for lesson video.
Other limits that break long uploads and imports
A short execution time matters for imports that unzip and process a package after upload. If an LMS import of a large package times out on WP Engine's 60-second limit, the answer is smaller packages or a server-side import, not a support request to raise the timeout, because the documentation says it can only be lowered.
| Host | Limit | Published value |
|---|---|---|
| WP Engine | Script execution time | 60 seconds; can only be decreased, not increased |
| WP Engine | Max input vars | 10,000; cannot be changed |
| WP Engine | Image resizing | Up to 8000 by 8000 pixels (40MP); cannot be increased |
| Kinsta | max_execution_time and max_input_time | 300 seconds on lower tiers; 600 on Single 1.25M visits or 750GB and above, WP 60 and above, and Agency plans |
| Kinsta | File manager upload | Over 100MB rejected; uploads taking longer than 20 minutes fail |
| Kinsta | File manager editor | Files over 10MB cannot be opened in the viewer or editor |
How to change the limit at each host
- WP Engine: open a support request to raise the upload limit (maximum 256MB); for multisite, also change Network Admin > Settings > Max upload file size, which is entered in KB
- SiteGround shared: 256MB is fixed; the KB shows php.ini edits through File Manager, FTP or SSH, and warns that php_value lines in .htaccess cause a 500 error on the Standard PHP setup
- SiteGround Cloud: ask support to raise upload_max_filesize above 256MB
- Kinsta: change memory_limit yourself under Sites > Info > PHP performance; ask support for other PHP values such as upload_max_filesize and post_max_size
- Any host behind Cloudflare: check your Cloudflare plan before asking the host to raise anything above 100MB
- After any change, keep post_max_size larger than upload_max_filesize, and memory_limit larger than post_max_size, as the PHP manual advises
Checklist before uploading a large course file
- Note the file size and compare it with the host limit and your proxy plan limit
- Prefer SFTP plus a server-side import for anything over 100MB
- Upload on staging first and confirm the LMS import completes within the execution time
- For video, use a video host rather than the media library
- If you raise a limit for one import, ask whether it should be lowered again afterwards
Questions before you decide
What is SiteGround's maximum upload size?
SiteGround's knowledge base says upload_max_filesize is 256MB on all its servers. It is permanent on shared hosting plans and can be increased further only on Cloud servers on request.
Can WP Engine raise the upload limit above 256MB?
No. WP Engine's platform settings page says the default 50MB limit can be raised by support to a maximum of 256MB, and files larger than 256MB must be uploaded through SFTP or the SSH Gateway.
Why does a 150MB upload fail with a 413 error after the host raised the limit?
If the domain is proxied through Cloudflare, Free and Pro plans cap request bodies at 100MB and return 413 Request entity too large. Upload with the proxy temporarily off, split the file, or use SFTP.
Is there a size limit for Kinsta SFTP uploads?
Kinsta's SFTP documentation does not state a file size limit; it says up to 10 simultaneous SFTP transfers are supported. The MyKinsta File manager is different: it rejects files over 100MB.
Sources & verification
Product details and prices can change. Check the linked provider before buying.
- WP Engine support: Platform settings Accessed 30 Oct 2026
- SiteGround KB: upload_max_filesize error Accessed 30 Oct 2026
- Kinsta docs: PHP settings Accessed 30 Oct 2026
- Kinsta docs: File manager Accessed 30 Oct 2026
- Kinsta docs: Connecting with SFTP Accessed 30 Oct 2026
- Cloudflare docs: Request limits by plan Accessed 30 Oct 2026
- PHP manual: Core php.ini directives Accessed 30 Oct 2026
Sources link directly to providers. Product buttons may use separately labeled affiliate links. Read our disclosure.