Uma das mensagens de erro mais comuns do WordPress é algo como "Fatal error: Allowed memory size of 134217728 bytes exhausted (tried to allocate 20480 bytes) in /wp-includes/...". Geralmente aparece no pior momento possível: no meio de uma atualização de plugin, ao salvar uma página longa no editor, durante uploads de mídia, ou logo após mudar para um tema mais exigente. A correção quase sempre é aumentar o limite de memória do PHP. O detalhe é que não há apenas um limite de memória. O WordPress tem pelo menos três diferentes, mais um quarto no nível do PHP, e eles interagem de maneiras que surpreendem as pessoas. Este guia explica qual deles se aplica em qual situação e como aumentá-lo nas várias configurações de host.
De qual "limite de memória" estamos falando?
Quando uma página WordPress é solicitada, quatro limites potencialmente entram em jogo:
memory_limitdo PHP emphp.ini. O teto rígido aplicado pelo próprio PHP. Nada dentro do WordPress pode jamais ir além disso. Padrões típicos em hosts modernos são 128M ou 256M.WP_MEMORY_LIMIT. A própria constante do WordPress, definida emwp-config.php. Padrão é 40M. O WordPress eleva o limite do PHP para esse valor na inicialização, mas apenas seWP_MEMORY_LIMITfor maior que o limite atual do PHP. Se seumemory_limitdo PHP já é 256M, essa constante não tem efeito.WP_MAX_MEMORY_LIMIT. Uma constante separada que se aplica apenas dentro dewp-admin(o painel, telas de edição, gerenciamento de plugin e tema, biblioteca de mídia). Padrão é 256M. Defina isso mais alto quando páginas admin ficarem sem memória mas o frontend estiver bem.- Overrides do host. Muitos hosts compartilhados e gerenciados limitam rigidamente o
memory_limitdo PHP no nível do servidor, independentemente do que seuphp.iniouwp-config.phpdiz. Nesses hosts, aumentar o limite por conta própria falha silenciosamente e você precisa pedir ao suporte.
O modelo mental prático: WP_MEMORY_LIMIT é para o frontend, WP_MAX_MEMORY_LIMIT é para o admin, e ambos são pisos, não tetos. Eles só podem elevar o limite efetivo, nunca abaixá-lo abaixo da configuração do PHP. A configuração do PHP é o teto real.
De quanta memória um site WordPress realmente precisa?
Uma escala aproximada útil, baseada no que o InspectWP vê em milhares de varreduras:
- 64M. Uma instalação WordPress limpa com um tema pequeno e cinco plugins bem comportados. Realista apenas em sites muito simples hoje, e mesmo assim apertado.
- 128M. O mínimo de fato para qualquer site real em 2026. Tema padrão, dez ou quinze plugins, sem construtor de página. A maioria dos hosts tem isso como padrão.
- 256M. O alvo sensato para a maioria dos sites. Construtores de página (Elementor, Divi, Bricks, Beaver Builder), WooCommerce, frameworks de tema maiores, plugins de otimização de imagem. Esse também é o valor padrão de
WP_MAX_MEMORY_LIMITpara o admin, o que não é coincidência. - 512M. Lojas WooCommerce com algumas centenas de pedidos e muitas extensões. Sites rodando suítes de SEO pesadas junto com um construtor de página. Processamento de imagem em grandes bibliotecas de mídia.
- 768M a 1024M. Lojas WooCommerce maiores, sites multilíngues com WPML ou Polylang, sites de associação com lógica complexa de papéis, sites que rodam importações agendadas.
- Acima de 1024M. Se você genuinamente precisa disso em um site normal, algo geralmente está errado. Um plugin específico está vazando memória, um trabalho de importação está carregando todo o banco de dados em um único processo PHP, ou um tema está fazendo algo que não deveria. Aumentar o limite contornará o sintoma por enquanto, mas a correção real está em outro lugar.
Memória é barata, mas memória ilimitada esconde bugs. O movimento certo é aumentar o limite apenas o suficiente para fazer o site funcionar confortavelmente, não defini-lo como 4G "por precaução".
Opção 1: Aumentar WP_MEMORY_LIMIT em wp-config.php
Esta é a alteração mais simples e portável. Abra wp-config.php no diretório raiz do WordPress e adicione as seguintes linhas, em qualquer lugar acima do comentário que diz /* That's all, stop editing! Happy publishing. */:
define('WP_MEMORY_LIMIT', '256M');
define('WP_MAX_MEMORY_LIMIT', '512M');Salve o arquivo. O WordPress aplica os novos limites na próxima requisição. O frontend agora tem até 256M disponíveis, o admin até 512M. Nenhum reinício é necessário.
Ressalva importante: isso só funciona se o memory_limit no nível do PHP for pelo menos tão alto quanto o valor que você definir. Se o PHP estiver limitado a 128M pelo host, definir WP_MEMORY_LIMIT como 512M não faz nada. O WordPress tenta aumentar o limite e o PHP recusa. A mensagem de erro permanece a mesma. Continue com a Opção 2.
Opção 2: Aumentar o memory_limit do PHP no nível do PHP
Se WP_MEMORY_LIMIT sozinho não é suficiente, a configuração real do PHP precisa subir. Onde você muda isso depende do host:
Em hospedagem gerenciada (Raidboxes, Kinsta, WP Engine, Cloudways, SiteGround, Pressable)
Esses hosts quase todos expõem uma configuração em seu painel. Procure por "PHP settings", "PHP memory limit" ou similar. A alteração geralmente tem efeito em segundos, sem reinício necessário do seu lado. Alguns hosts (Raidboxes, WP Engine) limitam o máximo em 512M ou 768M por razões de desempenho. Se você genuinamente precisa de mais, o suporte geralmente pode aumentar mediante solicitação, mas eles perguntarão por quê primeiro, que é a reação correta.
Em hospedagem compartilhada com cPanel/Plesk (IONOS, All Inkl, Hostinger, DomainFactory, Strato)
cPanel e Plesk ambos têm um painel de configurações do PHP onde memory_limit pode ser definido por domínio. Procure por "MultiPHP INI Editor" (cPanel) ou "PHP Settings" (Plesk). Escolha o valor, salve, pronto. Alguns hosts escondem a configuração atrás de um submenu "PHP options".
Se o painel está faltando ou a configuração não tem efeito, coloque um arquivo .user.ini no diretório raiz do WordPress com esta única linha:
memory_limit = 256MO mecanismo .user.ini é suportado por toda configuração moderna do PHP rodando CGI, FastCGI ou PHP FPM, que é essencialmente todo host hoje. O PHP capta o arquivo automaticamente; a única peculiaridade é um tempo de cache padrão de cinco minutos antes que as alterações tenham efeito, após o qual o novo limite se aplica na próxima requisição.
Em um VPS ou servidor dedicado autogerenciado
Edite php.ini diretamente. Encontre o php.ini ativo com php --ini na linha de comando; o caminho varia conforme a distribuição e a versão do PHP. Procure pela linha memory_limit, mude o valor, salve. Recarregue o PHP FPM com sudo systemctl reload php8.2-fpm (ajuste o número da versão) ou reinicie o Apache se você roda mod_php.
Apenas Apache: .htaccess (legado)
Em configurações Apache mais antigas com mod_php (raro em hospedagem moderna), php_value memory_limit 256M em .htaccess pode funcionar. Se seu host roda PHP via FastCGI ou PHP FPM, essa diretiva é simplesmente ignorada. Use .user.ini em vez disso.
Como verificar qual limite está realmente ativo
Saber qual dos quatro limites se aplica leva trinta segundos:
- No admin do WordPress, abra Ferramentas, Saúde do Site, Info (em alemão: Werkzeuge, Website Zustand, Bericht).
- Expanda a seção Servidor. Você vê o
memory_limitativo do PHP. - Expanda a seção Constantes do WordPress. Você vê
WP_MEMORY_LIMITeWP_MAX_MEMORY_LIMIT, com seus valores atuais.
Se as constantes do WordPress mostram seus novos valores mas o memory_limit do PHP ainda é menor, o host limita no nível do servidor. Fale com o suporte ou use o painel do host da Opção 2.
Para uma verificação precisa de fora do painel, coloque este arquivo temporário em wp-content/mu-plugins/check-memory.php:
<?php
add_action('init', function () {
if (current_user_can('manage_options') && isset($_GET['check_memory'])) {
wp_die('PHP memory_limit: ' . ini_get('memory_limit'));
}
});Depois abra https://seudominio.com/?check_memory=1 enquanto logado como admin. A página mostra o limite que o PHP realmente aplica para essa requisição. Exclua o arquivo quando terminar.
E se aumentar o limite não corrigir o erro?
Se "Allowed memory size exhausted" persiste após aumentar todos os limites para um valor sensato, o problema não é mais "WordPress precisa de mais memória". Procure por uma destas:
- Um plugin específico é o culpado. Desabilite plugins um por um e recarregue. O erro identifica o plugin no caminho do arquivo:
/wp-content/plugins/PLUGINNAME/.... Esse plugin tem um vazamento de memória ou está genuinamente fazendo algo intensivo em memória que deveria ser dividido em trabalhos menores. - Operações em massa. Importar milhares de produtos pelo importador CSV do WooCommerce, regenerar miniaturas para uma biblioteca de mídia inteira ou executar uma auditoria completa de SEO podem todos atingir qualquer limite de memória. A resposta certa geralmente é mudar para WP CLI para essas tarefas. O CLI tem um limite de memória separado, tipicamente muito mais alto, e processa tarefas em lotes sem o overhead do ciclo de vida completo da requisição do WordPress.
- WP Cron preso em uma tarefa pesada. Trabalhos em segundo plano que rodam via
wp-cron.phpcompartilham o mesmo limite de memória que uma requisição normal. Se uma tarefa agendada tenta processar uma fila enorme de uma vez, ela falha repetidamente sem nenhum sintoma óbvio no frontend. Desabilitar o WP Cron interno e rodá-lo via cron do sistema geralmente ajuda. - Configuração incorreta de cache de objeto. Uma instância Redis ou Memcached subdimensionada combinada com o cache de objeto persistente do WordPress pode causar pressão estranha de memória sob carga. Vale a pena verificar se você está rodando um deles e o problema só aparece sob tráfego.
Erros comuns a evitar
- Definir
WP_MEMORY_LIMITabaixo do padrão do PHP. Inútil. O WordPress só eleva o limite, nunca abaixa.define('WP_MEMORY_LIMIT', '32M')em um host com PHP em 256M não faz nada. - Definir tanto
WP_MEMORY_LIMITquantoWP_MAX_MEMORY_LIMITcom o mesmo valor. Funciona, mas você abre mão da capacidade de deixar o admin ter mais memória que o frontend, que é todo o ponto de ter duas constantes. - Citar o valor como número.
define('WP_MEMORY_LIMIT', 256)define o limite em 256 bytes, não 256 megabytes. Sempre cite com a unidade:'256M'. - Editar o wp-config.php errado. Se sua instalação está em um subdiretório, tanto o diretório de instalação quanto o pai podem ter um
wp-config.php. Verifique do diretório do WordPress para cima e edite o que o WordPress realmente carrega.
Para a grande maioria dos sites, duas linhas em wp-config.php mais um memory_limit sensato do PHP no painel do host resolvem o erro permanentemente. Se não, o problema não é a memória em si, e aumentar o limite mais alto só vai adiar a próxima falha.