Se você já viu a mensagem "Fatal error: Allowed memory size of X bytes exhausted", sabe como é frustrante. O site para de funcionar, o painel administrativo trava, e tudo parece quebrado. Felizmente, esse é um dos erros mais comuns do WordPress e tem solução relativamente simples.
Neste tutorial, vamos explicar por que esse erro acontece, como identificar a causa raiz e como resolver de forma definitiva.
O Que é o Erro de Memória do WordPress
O WordPress roda em PHP, e o PHP tem um limite de memória que cada script pode consumir. Quando um processo ultrapassa esse limite, o PHP interrompe a execução e exibe o erro:
Fatal error: Allowed memory size of 67108864 bytes exhausted (tried to allocate 2097152 bytes) in /home/user/public_html/wp-includes/class-wpdb.php on line 2154
O número 67108864 equivale a 64 MB (64 x 1024 x 1024 = 67.108.864 bytes). Isso significa que o limite de memória PHP está configurado em 64 MB e o WordPress tentou usar mais do que isso.
O WordPress recomenda um mínimo de 128 MB de memória PHP. Para sites com WooCommerce, o recomendado é 256 MB ou mais.
Por Que Esse Erro Acontece
1. Limite de Memória PHP Baixo
A causa mais direta: o servidor está configurado com pouca memória para o PHP. Hospedagens compartilhadas baratas frequentemente limitam a memória em 64 MB ou até 32 MB, o que é insuficiente para o WordPress moderno.
2. Plugins em Excesso ou Mal Otimizados
Cada plugin ativo consome memória. Alguns plugins, especialmente page builders (Elementor, Divi, WPBakery), plugins de SEO completos e plugins de segurança, consomem quantidades significativas.
O problema se agrava quando:
- Há 30 ou mais plugins ativos simultaneamente
- Plugins desatualizados têm vazamentos de memória (memory leaks)
- Plugins conflitam entre si, duplicando processamento
3. Tema Pesado
Temas com muitas funcionalidades integradas (sliders, portfólios, formulários, custom post types) consomem memória mesmo que você não use todas as funcionalidades.
Temas multipropósito como Avada, BeTheme e Jupiter são conhecidos por alto consumo de memória.
4. Processamento de Mídia Grande
Ao fazer upload de imagens grandes, o WordPress gera múltiplas versões (thumbnail, medium, large, full). Se a imagem original tem 5.000 x 3.000 pixels e 8 MB, o processamento de redimensionamento exige bastante memória.
5. WooCommerce com Muitos Produtos
O WooCommerce é um plugin pesado por natureza. Lojas com milhares de produtos, variações complexas e relatórios detalhados consomem mais memória do que um blog simples.
6. Importações e Operações em Lote
Importar centenas de produtos via CSV, regenerar thumbnails ou executar operações em massa consome memória proporcional ao volume de dados processados.
Como Verificar o Limite de Memória Atual
Pelo Painel do WordPress
- Vá em Ferramentas > Saúde do Site > Informações
- Expanda a seção Servidor
- Procure por "Limite de memória do PHP"
Pelo Código
Crie um arquivo info.php na raiz do WordPress:
<?php phpinfo();
Acesse seusite.com.br/info.php no navegador e procure por memory_limit .
Importante: remova esse arquivo depois de consultar. Ele expõe informações sensíveis do servidor.
Pelo WP-CLI
Se você tem acesso SSH:
wp eval "echo 'Limite de memória PHP: ' . ini_get('memory_limit') . PHP_EOL;"
Pelo Terminal
php -i | grep memory_limit
Soluções: Aumentando o Limite de Memória
Existem vários métodos para aumentar o limite de memória. Tente na ordem abaixo, pois nem todos funcionam em todas as hospedagens.
Método 1: Via wp-config.php
Este é o método mais comum e geralmente funciona. O WordPress tem uma constante própria para definir o limite de memória.
- Acesse os arquivos do site via FTP, SFTP ou gerenciador de arquivos do painel
- Abra o arquivo wp-config.php na raiz do WordPress
- Adicione a linha abaixo, antes da linha que diz /* That's all, stop editing! */ :
define( 'WP_MEMORY_LIMIT', '256M' );
Valores recomendados:
| Tipo de Site | Memória Recomendada |
|---|---|
| Site institucional | 128M |
| WooCommerce pequeno | 256M |
| WooCommerce grande | 512M |
| Multisite | 256M a 512M |
Atenção: essa constante define o limite para o WordPress, mas o PHP precisa permitir pelo menos o mesmo valor. Se o memory_limit do PHP for menor, o WordPress não conseguirá usar mais do que o permitido pelo PHP.
Método 2: Via .htaccess
Se o servidor usa Apache, você pode definir o limite de memória no .htaccess :
- Abra o arquivo .htaccess na raiz do WordPress
- Adicione no início do arquivo:
php_value memory_limit 256M
Este método pode não funcionar em hospedagens que usam PHP-FPM ou em servidores Nginx/LiteSpeed.
Método 3: Via php.ini
Alguns servidores permitem configurar o PHP via arquivo php.ini na raiz do site:
- Crie ou edite o arquivo php.ini na raiz do WordPress
- Adicione:
memory_limit = 256M
Variações deste método:
- Em algumas hospedagens, o arquivo se chama .user.ini
- Em outras, pode ser php.ini dentro da pasta public_html
; Arquivo .user.ini memory_limit = 256M upload_max_filesize = 64M post_max_size = 64M max_execution_time = 300
Método 4: Via Painel da Hospedagem
A maioria dos painéis de controle permite alterar o limite de memória PHP:
cPanel:
- Acesse o cPanel
- Vá em Software > MultiPHP INI Editor
- Selecione o domínio
- Altere memory_limit para 256M
- Salve
Plesk:
- Acesse o Plesk
- Vá em PHP Settings do domínio
- Altere memory_limit
- Salve
hPanel (Hostinger):
- Acesse o hPanel
- Vá em Avançado > PHP Configuration
- Altere o valor de memory_limit
- Salve
Se nenhum desses métodos funcionar, entre em contato com o suporte da hospedagem. Em hospedagens compartilhadas, pode haver um limite máximo que o provedor impõe e que não pode ser ultrapassado.
WP MAX MEMORY _ LIMIT: Memória para o Admin
O WordPress tem uma segunda constante de memória, exclusiva para o painel administrativo. Por padrão, ela é 256 MB.
Se você está tendo erros de memória ao usar o editor de posts, atualizar plugins ou acessar o WooCommerce no painel, aumente essa constante:
define( 'WP_MAX_MEMORY_LIMIT', '512M' );
Adicione no wp-config.php , junto com a WP_MEMORY_LIMIT .
Diferença entre as duas constantes:
| Constante | Onde se aplica | Padrão |
|---|---|---|
| WP MAX MEMORY _ LIMIT | Painel administrativo | 256M |
Otimizando o Uso de Memória (Solução Definitiva)
Aumentar o limite de memória resolve o sintoma, mas não a causa. Se o site está consumindo memória demais, é preciso otimizar.
1. Identifique Plugins que Consomem Muita Memória
Use o plugin Query Monitor para verificar o consumo de memória por componente:
- Instale e ative o Query Monitor
- Acesse qualquer página do site
- Na barra de administração, clique em "Query Monitor"
- Vá na aba Environment para ver o pico de memória
- Vá na aba Queries by Component para ver quais plugins fazem mais consultas
Outra opção: desative plugins um a um e observe o consumo de memória. O plugin que, ao ser desativado, reduz significativamente o uso, é o vilão.
2. Remova Plugins Não Utilizados
Plugins desativados (mas não removidos) não consomem memória em tempo de execução, mas podem representar riscos de segurança. Remova completamente os que não usa.
Para plugins ativos que consomem muita memória, avalie alternativas mais leves:
| Plugin Pesado | Alternativa Leve |
|---|---|
| Yoast SEO Premium | Rank Math, SEOPress |
| Wordfence | Sucuri, NinjaFirewall |
| Contact Form 7 + add-ons | WPForms Lite, Fluent Forms |
| Revolution Slider | Solari (ou nenhum slider) |
3. Otimize Imagens Antes do Upload
Não envie imagens diretamente da câmera para o WordPress. Redimensione e comprima antes do upload:
- Reduza a resolução para, no máximo, 2.000 pixels de largura
- Comprima usando ferramentas como TinyPNG, Squoosh ou ShortPixel
- Use formatos WebP ou AVIF quando possível
- Remova metadados EXIF desnecessários
Isso reduz o consumo de memória durante o processamento de upload e a geração de thumbnails.
4. Use um Tema Leve
Se o seu tema é um multipropósito com dezenas de funcionalidades, considere migrar para um tema leve:
- Astra - menos de 50 KB, extremamente leve
- GeneratePress - menos de 30 KB, focado em performance
- Kadence - moderno, leve e com blocos próprios
- Flavor - desenvolvido para performance
5. Desabilite o WP-Cron se Necessário
O WP-Cron executa tarefas agendadas a cada carregamento de página, consumindo memória. Em sites com tráfego alto, substitua por um cron real do servidor:
- Adicione ao wp-config.php :
define( 'DISABLE_WP_CRON', true );
- Configure um cron job no servidor (via cPanel ou SSH):
# Executa o WP-Cron a cada 15 minutos */15 * * * * cd /home/user/public_html && php wp-cron.php > /dev/null 2>&1
Ou via WP-CLI:
*/15 * * * * cd /home/user/public_html && wp cron event run --due-now > /dev/null 2>&1
6. Limite o Heartbeat API
O WordPress Heartbeat API faz requisições AJAX a cada 15-60 segundos para funcionalidades como autosave e notificações em tempo real. Em sites com muitos editores simultâneos, isso pode consumir bastante memória.
Use o plugin Heartbeat Control ou adicione ao functions.php :
// Reduzir frequência do Heartbeat para 60 segundos
add_filter( 'heartbeat_settings', 'custom_heartbeat_settings' );
function custom_heartbeat_settings( $settings ) {
$settings['interval'] = 60;
return $settings;
}
Monitorando o Uso de Memória
Com Plugin
- Query Monitor - mostra o pico de memória em cada carregamento de página
- Server IP & Memory Usage Display - exibe o uso de memória na barra de admin
Com Código
Adicione ao functions.php do tema filho para exibir o uso de memória no rodapé do admin:
add_action( 'admin_footer', 'display_memory_usage' );
function display_memory_usage() {
$memory_usage = memory_get_peak_usage( true ) / 1024 / 1024;
$memory_limit = ini_get( 'memory_limit' );
echo '<p style="text-align:center;color:#666;font-size:12px;">';
echo 'Memória utilizada: ' . round( $memory_usage, 2 ) . 'MB / ' . $memory_limit;
echo '</p>';
}
Com WP-CLI
# Ver o uso de memória ao listar plugins
wp plugin list --fields=name,status --format=table
# Verificar uso de memória em uma página específica
wp eval "
echo 'Memória inicial: ' . round(memory_get_usage(true)/1024/1024, 2) . 'MB' . PHP_EOL;
// Simular carregamento
do_action('wp');
echo 'Memória após wp: ' . round(memory_get_usage(true)/1024/1024, 2) . 'MB' . PHP_EOL;
echo 'Pico: ' . round(memory_get_peak_usage(true)/1024/1024, 2) . 'MB' . PHP_EOL;
"
Cenários Específicos
Erro de Memória ao Atualizar Plugins
Se o erro acontece durante atualizações:
- Aumente WP_MAX_MEMORY_LIMIT para 512M
- Atualize plugins um por vez em vez de todos juntos
- Se possível, atualize via WP-CLI:
wp plugin update --all
Erro de Memória ao Importar Produtos (WooCommerce)
Importações grandes consomem muita memória. Soluções:
- Aumente a memória temporariamente para 512M ou 1G
- Divida o CSV em lotes menores (100 a 200 produtos por arquivo)
- Use o WP-CLI para importação:
wp wc product import products.csv --user=admin
Erro de Memória ao Gerar Relatórios
Relatórios do WooCommerce com muitos pedidos podem exceder a memória:
- Limite o período do relatório (mês a mês em vez de ano inteiro)
- Use plugins de relatórios que processam dados em lotes
- Considere plugins como WP All Export para exportar dados em vez de gerar relatórios no painel
Erro de Memória Intermitente
Se o erro aparece de forma aleatória, pode ser causado por:
- Pico de tráfego - muitas requisições simultâneas
- WP-Cron executando tarefas pesadas - backups automáticos, por exemplo
- Bot crawling - bots acessando muitas páginas simultaneamente
Monitore os logs do servidor para identificar o padrão:
# Verificar logs de erro do PHP tail -f /var/log/php-fpm/error.log | grep "memory" # Ou no log do WordPress (se WP_DEBUG_LOG estiver habilitado) tail -f /home/user/public_html/wp-content/debug.log | grep "memory"
Resumo Rápido
| Problema | Solução |
|---|---|
| Muitos plugins ativos | Remover desnecessários, substituir por leves |
| Tema pesado | Migrar para tema leve (Astra, GeneratePress) |
| Imagens grandes | Otimizar antes do upload |
| WooCommerce pesado | Aumentar memória para 256M-512M |
| Erro no admin | Aumentar WP MAX MEMORY _ LIMIT |
Leia Também
- Como Escolher a Melhor Hospedagem para WordPress no Brasil
- Como Melhorar a Velocidade de Carregamento para SEO
- Erros WordPress: Guia Completo
Conclusão
O erro de memória do WordPress é comum, mas raramente é grave. Na maioria dos casos, basta aumentar o limite de memória e otimizar os componentes do site. A chave é tratar a causa, não apenas o sintoma: se o site consome muita memória, há algo que pode ser otimizado.
Se o erro persiste mesmo com 512 MB de memória, o problema provavelmente está em um plugin com vazamento de memória ou em um tema excessivamente pesado. Nesses casos, a investigação com o Query Monitor é essencial.
Precisa de ajuda para resolver erros no WordPress? A HOSTWP cuida de tudo, do servidor ao site. Diagnosticamos e corrigimos erros de memória, otimizamos plugins e servidores, e garantimos que o seu WordPress funcione sem travamentos. Fale com a HOSTWP.