Uploadlimiet verhogen in WordPress (voor elke host)
Controleer je huidige uploadlimiet in WordPress en verhoog die op de juiste plek voor je host: php.ini, .user.ini, .htaccess, cPanel, Nginx of Cloudflare.
Om de uploadlimiet in WordPress te verhogen, verhoog je twee PHP-instellingen, upload_max_filesize en post_max_size, in het configuratiebestand dat je host echt leest. Op een server die je zelf beheert is dat php.ini, op de meeste gedeelde hosting met PHP-FPM of FastCGI is dat .user.ini, .htaccess alleen als Apache PHP als module draait, of de MultiPHP INI Editor in cPanel. Draait je server op Nginx, verhoog dan ook client_max_body_size. Met een aanpassing in wp-config.php verander je de uploadlimiet niet.
De tool voor de maximale uploadgrootte in WordPress zet één gewenste grootte om in bijpassende waarden voor php.ini (of .user.ini), .htaccess en wp-config.php, zodat je ze kunt plakken in plaats van ze met de hand te typen.
Stap 1: controleer je huidige uploadlimiet
Zoek voordat je iets verandert uit wat de limiet nu is en welke instelling die bepaalt.
- Media > Bestand toevoegen. Het uploadscherm toont de maximale bestandsgrootte voor uploads. Dit is het getal dat je wilt verhogen.
- Gereedschap > Sitediagnose > Info. Klap Mediaverwerking uit. De documentatie over Sitediagnose noemt wat daar staat: de maximaal toegestane grootte van postdata, de maximale grootte van een geüpload bestand en de maximale effectieve bestandsgrootte, de kleinste van die twee. Het onderdeel Server toont meer PHP-waarden.


WordPress berekent zijn limiet in wp_max_upload_size(), dat upload_max_filesize en post_max_size uit PHP leest en de kleinste gebruikt. Is de ene 64M en de andere 8M, dan is je limiet 8M.
Stap 2: weet welke instellingen ertoe doen
| Instelling | Wat het beperkt | PHP-standaard | Waar je het kunt wijzigen |
|---|---|---|---|
upload_max_filesize | Het grootste losse geüploade bestand | 2M | php.ini, .user.ini, .htaccess, httpd.conf |
post_max_size | Het hele POST-verzoek, inclusief bestand | 8M | php.ini, .user.ini, .htaccess, httpd.conf |
memory_limit | Het geheugen dat PHP tijdens het draaien mag gebruiken | 128M | Overal, ook in wp-config.php |
max_execution_time | Het aantal seconden dat een script mag draaien | 30 | Overal, ook in wp-config.php |
client_max_body_size (Nginx) | De verzoekbody die Nginx accepteert | 1m | Alleen in de Nginx-configuratie |
De PHP-standaardwaarden en wijzigingsmodi komen uit de lijst met php.ini-richtlijnen; de standaardwaarde van Nginx komt uit de documentatie van de Nginx-coremodule. De meeste hosts stellen hogere waarden in dan de PHP-standaard, en daarom lees je je echte getallen af in Sitediagnose.
upload_max_filesize en post_max_size zijn wat PHP INI_PERDIR-instellingen noemt: ze kunnen worden ingesteld in php.ini, .htaccess, httpd.conf of .user.ini en nergens anders. memory_limit beperkt de bestandsgrootte niet, maar WordPress heeft geheugen nodig om verkleinde kopieën van grote afbeeldingen te maken, dus een grote upload kan na aankomst alsnog mislukken met een fout dat het geheugen is uitgeput.
Stap 3: verhoog de limiet op de juiste plek voor je host
| Jouw situatie | Waar je het instelt | Opmerkingen |
|---|---|---|
| VPS of dedicated server | De php.ini die PHP echt laadt | Herstart daarna PHP-FPM of Apache |
| Gedeelde hosting met PHP-FPM of FastCGI | .user.ini in de hoofdmap van WordPress | Kan tot 5 minuten duren voordat het werkt |
| Apache met PHP als module (mod_php) | .htaccess met php_value | Geeft een 500-fout onder PHP-FPM of FastCGI |
| Host met cPanel | Software > MultiPHP INI Editor | Schrijft php.ini, .user.ini of .htaccess voor je |
| Nginx vóór PHP | client_max_body_size naast de PHP-waarden | Anders geeft Nginx een 413 |
| Managed WordPress-hosting | Het dashboard of de support van je host | Veel hosts begrenzen uploads op platformniveau |
| Site achter Cloudflare | De eigen uploadlimiet van Cloudflare | 100 MB op de Free- en Pro-abonnementen |
php.ini (server die je zelf beheert)
Zoek eerst het geladen bestand. Maak een tijdelijk bestand met <?php phpinfo();, open het in een browser, lees de regel “Loaded Configuration File” en verwijder het bestand daarna. Bewerk die php.ini:
upload_max_filesize = 128M
post_max_size = 130M
max_execution_time = 300
Herstart daarna PHP zodat het de wijziging inleest. Bij PHP-FPM bevat de servicenaam de versie, bijvoorbeeld sudo systemctl restart php8.3-fpm op Debian of Ubuntu. Bij mod_php herstart je Apache.
.user.ini (de meeste gedeelde hosting)
PHP leest .user.ini-bestanden alleen als het draait als CGI of FastCGI, en daar hoort PHP-FPM bij. Maak of bewerk .user.ini in de map waarin wp-config.php staat:
upload_max_filesize = 128M
post_max_size = 130M
PHP leest deze bestanden opnieuw in elke user_ini.cache_ttl seconden, standaard 300. Wacht vijf minuten voordat je concludeert dat het niet werkte, of herstart PHP-FPM als dat kan.
.htaccess (alleen Apache met mod_php)
php_value upload_max_filesize 128M
php_value post_max_size 130M
De PHP-handleiding beschrijft deze richtlijnen voor PHP dat als Apache-module draait. Toont je site direct na het opslaan een 500 Internal Server Error, dan draait PHP als FastCGI of PHP-FPM. Haal de regels weg en gebruik in plaats daarvan .user.ini.
MultiPHP INI Editor in cPanel
Open in cPanel Software > MultiPHP INI Editor, kies je domein en wijzig de waarden in Basic Mode. Volgens de documentatie van cPanel slaat Basic Mode op in de bestanden php.ini, .user.ini en .htaccess voor zover elk bestand de instelling ondersteunt, dus je hoeft niet te weten welk bestand je server gebruikt.
Nginx
Nginx controleert de grootte van het verzoek voordat PHP het ziet. Is een verzoek groter dan client_max_body_size, dan geeft Nginx 413 Request Entity Too Large terug. De standaardwaarde is 1m. Zet in je server-blok een waarde die minstens zo groot is als post_max_size:
client_max_body_size 130M;
Test en herlaad met sudo nginx -t && sudo systemctl reload nginx. Op Apache is de vergelijkbare instelling LimitRequestBody, die op gewone WordPress-hosting zelden aangepast hoeft te worden.
Managed hosting en Cloudflare
Sommige managed WordPress-hosts negeren je php.ini of .user.ini en stellen de limiet in voor het hele platform. Toont Sitediagnose na je wijziging nog steeds het oude getal, vraag je host dan wat het maximum is en of ze dat kunnen verhogen.
Loopt de site via Cloudflare, dan heeft Cloudflare een eigen limiet. De cachedocumentatie noemt een maximale uploadgrootte van 100 MB op de Free- en Pro-abonnementen, 200 MB op Business en tot 5 GB op Enterprise. Geen enkele PHP-instelling komt daar langs.
Waarom wp-config.php niet werkt
Veel artikelen raden aan dit aan wp-config.php toe te voegen:
@ini_set( 'upload_max_filesize', '128M' );
@ini_set( 'post_max_size', '130M' );
Beide instellingen zijn INI_PERDIR, en volgens de PHP-documentatie kunnen instellingen in die modus niet met ini_set() worden ingesteld. De @ verbergt de fout, dus de regels lijken onschuldig en veranderen niets. Wat wp-config.php wel kan veranderen is het geheugen, omdat memory_limit overal ingesteld kan worden:
define( 'WP_MEMORY_LIMIT', '256M' );
Dat helpt als grote afbeeldingen tijdens de verwerking mislukken. Het verandert de maximale uploadgrootte niet.
Stap 4: controleer de wijziging
Herlaad Media > Bestand toevoegen en kijk of de maximale bestandsgrootte je nieuwe waarde toont. Zo niet:
- Controleer of
post_max_sizeminstens even groot is alsupload_max_filesize. WordPress gebruikt de kleinste. - Controleer of je het bestand hebt bewerkt dat PHP echt laadt. Een
php.iniin de verkeerde map wordt genegeerd. - Wacht vijf minuten na een wijziging in
.user.ini, of herstart PHP-FPM. - Is het getal in WordPress veranderd maar mislukken uploads nog steeds met 413, dan zit de blokkade in Nginx, de proxy van je host of Cloudflare.
- Komt de upload wel aan in WordPress en mislukt hij daarna met “HTTP-fout”, dan is de grootte niet meer het probleem. Onze gids over de HTTP-fout bij het uploaden van afbeeldingen in WordPress behandelt de gebruikelijke oorzaken.
Hoe hoog moet je de limiet zetten?
Zet hem op het grootste bestand dat je echt moet uploaden, met wat speling, en houd post_max_size iets boven upload_max_filesize. Grote uploads duren ook langer, dus verhoog max_execution_time als grote bestanden op trage verbindingen een time-out geven. Voor heel grote bestanden, zoals lange video’s of back-uparchieven, is uploaden via SFTP of met een plugin voor uploads in delen meestal betrouwbaarder dan één enorme upload via de browser, en een limiet van je Cloudflare-abonnement kan de browserroute sowieso uitsluiten.
Weet je je doel, dan schrijft de tool voor de maximale uploadgrootte de bijpassende PHP-regels voor je. Voeg de Nginx-regel uit deze gids zelf toe als je server op Nginx draait.
FAQ
Vragen
Hoe controleer ik mijn huidige uploadlimiet in WordPress?
Ga naar Media > Bestand toevoegen. Het uploadscherm toont de maximale bestandsgrootte voor uploads. Voor de details erachter open je Gereedschap > Sitediagnose > Info en klap je Mediaverwerking uit. Daar staan de maximale grootte van een geüpload bestand, de maximale grootte van postdata en de maximale effectieve bestandsgrootte, de kleinste van die twee.
Waarom zegt WordPress dat het geüploade bestand de upload_max_filesize-richtlijn in php.ini overschrijdt?
Het bestand is groter dan de PHP-instelling upload_max_filesize. WordPress stelt deze limiet niet zelf in, het leest hem uit PHP. Verhoog upload_max_filesize en post_max_size samen in php.ini, .user.ini of, op Apache met mod_php, .htaccess. De eigen standaardwaarde van PHP voor upload_max_filesize is maar 2M, al stellen de meeste hosts een hogere waarde in.
Kan ik de uploadlimiet verhogen via wp-config.php?
Nee. upload_max_filesize en post_max_size zijn PHP_INI_PERDIR-instellingen, die PHP alleen accepteert uit php.ini, .htaccess, httpd.conf of .user.ini. Een ini_set()-regel in wp-config.php draait zonder foutmelding en verandert niets. wp-config.php kan de geheugenlimiet van WordPress verhogen, maar geheugen is niet wat de bestandsgrootte beperkt.
Waarom krijg ik nog steeds 413 Request Entity Too Large na het verhogen van de PHP-limieten?
Iets vóór PHP weigert het verzoek. Op Nginx is dat client_max_body_size, met als standaardwaarde 1m, en bij overschrijding geeft Nginx een 413-fout. Verhoog die waarde in het server-blok en herlaad Nginx. Loopt je site via Cloudflare, dan kan ook de uploadlimiet van je abonnement het verzoek tegenhouden voordat het je server bereikt.
Moet post_max_size groter zijn dan upload_max_filesize?
Minstens even groot, en iets groter is veiliger. Het bestand wordt verstuurd in een POST-verzoek samen met andere formuliergegevens, dus het hele verzoek telt mee voor post_max_size. WordPress gebruikt de kleinste van de twee waarden als uploadlimiet, dus als je alleen upload_max_filesize verhoogt, blijft de limiet waar hij was.