Como aumentar o limite de upload no WordPress em 4 passos
Confira o limite de upload atual do WordPress e aumente no lugar certo para sua hospedagem: php.ini, .user.ini, .htaccess, cPanel, Nginx ou Cloudflare.
Para aumentar o limite de upload no WordPress, aumente duas configurações do PHP, upload_max_filesize e post_max_size, no arquivo de configuração que sua hospedagem realmente lê. Esse arquivo é o php.ini em um servidor que você controla, o .user.ini na maioria das hospedagens compartilhadas que rodam PHP-FPM ou FastCGI, o .htaccess apenas quando o Apache roda o PHP como módulo, ou o MultiPHP INI Editor no cPanel. Se o seu servidor usa Nginx, aumente também o client_max_body_size. Editar o wp-config.php não muda o limite de upload.
A ferramenta de tamanho máximo de upload do WordPress transforma um tamanho-alvo em valores correspondentes para php.ini (ou .user.ini), .htaccess e wp-config.php, para você colar em vez de digitar à mão.
Passo 1: Veja o seu limite de upload atual
Antes de mudar qualquer coisa, descubra qual é o limite agora e qual configuração o está definindo.
- Mídia > Adicionar nova. A tela de upload mostra o tamanho máximo de arquivo para upload. Esse é o número que você quer aumentar.
- Ferramentas > Saúde do site > Informação. Expanda Manipulação de mídia. A documentação da Saúde do site lista o que aparece ali: tamanho máximo permitido dos dados de POST, tamanho máximo de um arquivo enviado e tamanho máximo efetivo de arquivo, que é o menor dos dois. A seção Servidor mostra mais valores do PHP.


O WordPress calcula o limite em wp_max_upload_size(), que lê upload_max_filesize e post_max_size do PHP e usa o menor. Se um deles for 64M e o outro 8M, seu limite é 8M.
Passo 2: Saiba quais configurações importam
| Configuração | O que ela limita | Padrão do PHP | Onde pode ser alterada |
|---|---|---|---|
upload_max_filesize | O maior arquivo individual enviado | 2M | php.ini, .user.ini, .htaccess, httpd.conf |
post_max_size | A requisição POST inteira, incluindo o arquivo | 8M | php.ini, .user.ini, .htaccess, httpd.conf |
memory_limit | A memória que o PHP pode usar durante a execução | 128M | Em qualquer lugar, inclusive no wp-config.php |
max_execution_time | Os segundos que um script pode rodar | 30 | Em qualquer lugar, inclusive no wp-config.php |
client_max_body_size (Nginx) | O corpo da requisição que o Nginx aceita | 1m | Só na configuração do Nginx |
Os padrões do PHP e os modos de alteração vêm da lista de diretivas do php.ini; o padrão do Nginx vem da documentação do módulo core do Nginx. A maioria das hospedagens usa valores maiores que os padrões do PHP, e é por isso que a Saúde do site é o lugar para ler os seus números reais.
upload_max_filesize e post_max_size são o que o PHP chama de configurações INI_PERDIR: elas “podem ser definidas no php.ini, .htaccess, httpd.conf ou .user.ini” e em nenhum outro lugar. O memory_limit não limita o tamanho do arquivo, mas o WordPress precisa de memória para criar cópias redimensionadas de imagens grandes, então um upload grande ainda pode falhar com um erro de memória esgotada depois de chegar.
Passo 3: Aumente o limite no lugar certo para sua hospedagem
| Seu ambiente | Onde configurar | Observações |
|---|---|---|
| VPS ou servidor dedicado | O php.ini que o seu PHP realmente carrega | Reinicie o PHP-FPM ou o Apache depois |
| Hospedagem compartilhada com PHP-FPM ou FastCGI | .user.ini na raiz do WordPress | Pode levar até 5 minutos para valer |
| Apache com PHP como módulo (mod_php) | .htaccess com php_value | Causa erro 500 com PHP-FPM ou FastCGI |
| Hospedagem com cPanel | Software > MultiPHP INI Editor | Grava php.ini, .user.ini ou .htaccess por você |
| Nginx na frente do PHP | client_max_body_size além dos valores do PHP | Senão o Nginx retorna 413 |
| Hospedagem gerenciada de WordPress | Painel ou suporte da hospedagem | Muitas limitam uploads no nível da plataforma |
| Site atrás do Cloudflare | O limite de upload do próprio Cloudflare | 100 MB nos planos Free e Pro |
php.ini (servidor que você controla)
Primeiro encontre o arquivo carregado. Crie um arquivo temporário com <?php phpinfo();, abra no navegador, leia a linha “Loaded Configuration File” e depois apague o arquivo. Edite esse php.ini:
upload_max_filesize = 128M
post_max_size = 130M
max_execution_time = 300
Depois reinicie o PHP para ele ler a mudança. Com PHP-FPM, o nome do serviço inclui a versão, por exemplo sudo systemctl restart php8.3-fpm no Debian ou Ubuntu. Com mod_php, reinicie o Apache.
.user.ini (a maioria das hospedagens compartilhadas)
O PHP só lê arquivos .user.ini quando roda como CGI ou FastCGI, o que inclui o PHP-FPM. Crie ou edite o .user.ini na pasta que contém o wp-config.php:
upload_max_filesize = 128M
post_max_size = 130M
O PHP relê esses arquivos a cada user_ini.cache_ttl segundos, que por padrão são 300. Espere cinco minutos antes de concluir que não funcionou, ou reinicie o PHP-FPM se puder.
.htaccess (só Apache com mod_php)
php_value upload_max_filesize 128M
php_value post_max_size 130M
O manual do PHP descreve essas diretivas para o PHP rodando como módulo do Apache. Se o seu site mostrar um 500 Internal Server Error logo depois de salvar isso, o PHP está rodando como FastCGI ou PHP-FPM. Remova as linhas e use o .user.ini.
cPanel MultiPHP INI Editor
No cPanel, abra Software > MultiPHP INI Editor, escolha seu domínio e altere os valores no Basic Mode. Segundo a documentação do cPanel, o Basic Mode salva nos arquivos php.ini, .user.ini e .htaccess onde cada um aceita a configuração, então você não precisa saber qual deles o seu servidor usa.
Nginx
O Nginx verifica o tamanho da requisição antes de o PHP vê-la. Quando uma requisição é maior que client_max_body_size, o Nginx retorna 413 Request Entity Too Large. O padrão é 1m. Adicione um valor pelo menos do tamanho do post_max_size no seu bloco server:
client_max_body_size 130M;
Teste e recarregue com sudo nginx -t && sudo systemctl reload nginx. No Apache, a configuração equivalente é LimitRequestBody, que raramente precisa ser alterada em hospedagens WordPress comuns.
Hospedagens gerenciadas e Cloudflare
Algumas hospedagens gerenciadas de WordPress ignoram seu php.ini ou .user.ini e definem o limite para a plataforma inteira. Se a Saúde do site ainda mostrar o número antigo depois da mudança, pergunte à sua hospedagem qual é o máximo e se ela pode aumentá-lo.
Se o site passa pelo Cloudflare, o Cloudflare tem o próprio limite. A documentação de cache lista tamanhos máximos de upload de 100 MB nos planos Free e Pro, 200 MB no Business e até 5 GB no Enterprise. Nenhuma configuração do PHP passa por cima disso.
Por que o wp-config.php não funciona
Muitos artigos sugerem adicionar isto ao wp-config.php:
@ini_set( 'upload_max_filesize', '128M' );
@ini_set( 'post_max_size', '130M' );
As duas configurações são INI_PERDIR, e a documentação do PHP diz que configurações desse modo não podem ser definidas com ini_set(). O @ esconde a falha, então as linhas parecem inofensivas e não mudam nada. O que o wp-config.php consegue mudar é a memória, porque o memory_limit pode ser definido em qualquer lugar:
define( 'WP_MEMORY_LIMIT', '256M' );
Isso ajuda quando imagens grandes falham durante o processamento. Não muda o tamanho máximo de arquivo para upload.
Passo 4: Confirme a mudança
Recarregue Mídia > Adicionar nova e veja se o tamanho máximo de arquivo para upload mostra o novo valor. Se não mostrar:
- Confira se o
post_max_sizeé pelo menos do tamanho doupload_max_filesize. O WordPress usa o menor. - Confirme que você editou o arquivo que o PHP realmente carrega. Um
php.inina pasta errada é ignorado. - Espere cinco minutos depois de mudar o
.user.ini, ou reinicie o PHP-FPM. - Se o número no WordPress mudou, mas os uploads ainda falham com 413, o bloqueio está no Nginx, no proxy da sua hospedagem ou no Cloudflare.
- Se o upload chega ao WordPress e depois falha com “Erro HTTP”, o tamanho não é mais o problema. Nosso guia sobre o erro HTTP no upload de imagens do WordPress cobre as causas mais comuns.
Qual valor usar?
Defina o limite para o maior arquivo que você realmente precisa enviar, com uma pequena folga, e mantenha o post_max_size um pouco acima do upload_max_filesize. Uploads grandes também demoram mais, então aumente o max_execution_time se arquivos grandes expirarem em conexões lentas. Para arquivos muito grandes, como vídeos longos ou arquivos de backup, enviar por SFTP ou com um plugin de upload em partes costuma ser mais confiável do que um único upload enorme pelo navegador, e o limite do plano do Cloudflare pode até impedir o caminho pelo navegador.
Quando souber o valor-alvo, a ferramenta de tamanho máximo de upload escreve as linhas de PHP correspondentes para você. Se o seu servidor usa Nginx, adicione você mesmo a linha do Nginx deste guia.
FAQ
Perguntas
Como vejo o limite de upload atual no WordPress?
Vá em Mídia > Adicionar nova. A tela de upload mostra o tamanho máximo de arquivo para upload. Para ver os detalhes, abra Ferramentas > Saúde do site > Informação e expanda Manipulação de mídia, que lista o tamanho máximo de um arquivo enviado, o tamanho máximo dos dados de POST e o tamanho máximo efetivo de arquivo, que é o menor dos dois.
Por que o WordPress diz que o arquivo enviado excede a diretiva upload_max_filesize no php.ini?
O arquivo é maior que a configuração upload_max_filesize do PHP. O WordPress não define esse limite, ele o lê do PHP. Aumente upload_max_filesize e post_max_size juntos no php.ini, no .user.ini ou, no Apache com mod_php, no .htaccess. O padrão do próprio PHP para upload_max_filesize é só 2M, embora a maioria das hospedagens use um valor maior.
Posso aumentar o limite de upload pelo wp-config.php?
Não. upload_max_filesize e post_max_size são configurações PHP_INI_PERDIR, que o PHP só aceita no php.ini, .htaccess, httpd.conf ou .user.ini. Uma linha ini_set() no wp-config.php roda sem erro e não muda nada. O wp-config.php pode aumentar o limite de memória do WordPress, mas não é a memória que limita o tamanho do arquivo.
Por que ainda recebo 413 Request Entity Too Large depois de aumentar os limites do PHP?
Algo na frente do PHP está rejeitando a requisição. No Nginx é o client_max_body_size, cujo padrão é 1m e que retorna erro 413 quando é ultrapassado. Aumente esse valor no bloco server e recarregue o Nginx. Se o seu site passa pelo Cloudflare, o limite de upload do seu plano também pode barrar a requisição antes de ela chegar ao servidor.
O post_max_size precisa ser maior que o upload_max_filesize?
Ele deve ser pelo menos do mesmo tamanho, e um pouco maior é mais seguro. O arquivo é enviado dentro de uma requisição POST junto com outros dados do formulário, então a requisição inteira conta para o post_max_size. O WordPress usa o menor dos dois valores como limite de upload, então aumentar só o upload_max_filesize deixa o limite onde estava.