Poupe até 53% em Servidores VPS, escolha agora. Oferta limitada.

Configurar WordPress sem plugin: como limpar revisões direto no código

17 min de leitura  ·  Guia técnico

Limpar revisões do WordPress sem plugin significa remover registros acumulados da tabela wp_posts com post_type = 'revision' diretamente via SQL ou WP-CLI, e controlar a criação de novas revisões com a constante WP_POST_REVISIONS no arquivo wp-config.php. Para executar o processo completo, siga estes passos:

  1. Faça backup completo do banco de dados MySQL antes de qualquer alteração.
  2. Adicione define('WP_POST_REVISIONS', 3); no wp-config.php para limitar revisões futuras por post.
  3. Acesse o phpMyAdmin e execute DELETE FROM wp_posts WHERE post_type = 'revision'; para remover revisões existentes.
  4. Execute DELETE FROM wp_postmeta WHERE post_id NOT IN (SELECT ID FROM wp_posts); para remover metadados órfãos.
  5. Rode OPTIMIZE TABLE wp_posts; e OPTIMIZE TABLE wp_postmeta; para desfragmentar e recuperar espaço em disco.
  6. Opcional: configure um cron job com WP-CLI para automação periódica da limpeza.

Pré-requisitos para configurar e limpar revisões do WordPress

  • Acesso ao arquivo wp-config.php via FTP, SFTP ou gerenciador de arquivos do cPanel.
  • Acesso ao phpMyAdmin pelo painel de hospedagem ou interface direta do banco de dados MySQL.
  • Credenciais do banco de dados (nome, usuário e senha estão listados no próprio wp-config.php).
  • Permissão para executar DELETE, SELECT e OPTIMIZE no banco do WordPress.
  • WP-CLI instalado no servidor — necessário apenas para os passos de automação via terminal.
  • Backup recente e testado do banco de dados — obrigatório antes de qualquer exclusão em massa.

O que são revisões no WordPress e por que acumulam no banco de dados

O WordPress salva automaticamente uma cópia do conteúdo cada vez que você clica em Salvar rascunho ou Atualizar. Esses registros históricos ficam armazenados na tabela wp_posts com o valor revision no campo post_type. Em um site com dezenas de posts e editores ativos, é comum acumular milhares de revisões ao longo de poucos meses.

Por padrão, o WordPress não impõe nenhum limite ao número de revisões salvas. Cada revisão ocupa uma linha na wp_posts e entradas adicionais na wp_postmeta para metadados associados como campos personalizados e dados de blocos Gutenberg. Com o crescimento do banco de dados, consultas SQL ficam mais lentas, backups demoram mais e o uso de armazenamento aumenta sem benefício visível para o visitante do site.

Além das revisões manuais, o WordPress gera autosaves — salvamentos automáticos temporários identificados por post_name terminando em -autosave-v1. Esses registros também possuem post_type = 'revision' e são incluídos nos mesmos comandos de limpeza descritos neste guia. Entender essa estrutura de banco de dados é essencial antes de executar qualquer exclusão direta, pois elimina o risco de remover conteúdo publicado por engano.

Um site com 500 posts e histórico de edições constante pode facilmente acumular mais de 10.000 registros de revisão. A limpeza periódica reduz esse overhead do banco de dados de forma significativa, sem afetar nenhuma página ou post visível ao público.

Como configurar WP_POST_REVISIONS no wp-config.php sem instalar plugin

A constante WP_POST_REVISIONS no arquivo wp-config.php é a forma mais direta de controlar a criação de revisões no WordPress, sem qualquer dependência de plugin. Ela age na raiz do problema, impedindo que novos registros desnecessários sejam criados desde o momento da configuração.

Abra o arquivo wp-config.php pelo gerenciador de arquivos do cPanel ou via SFTP. Adicione a linha abaixo antes do comentário /* That's all, stop editing! Happy publishing. */:

/* Limitar revisoes a 3 por post */
define('WP_POST_REVISIONS', 3);

Os valores possíveis para a constante são:

  • false — desativa completamente o salvamento de revisões.
  • 0 — equivalente a false; nenhuma revisão é salva.
  • 1 — mantém somente a revisão mais recente além da versão publicada.
  • 3 — valor recomendado para a maioria dos sites, equilibrando histórico útil e performance.
  • -1 — reverte ao comportamento padrão do WordPress com revisões ilimitadas.

Após salvar o arquivo, a constante entra em vigor imediatamente para todos os novos salvamentos — sem necessidade de reiniciar serviços ou limpar cache. Revisões antigas já presentes no banco de dados não são removidas automaticamente; você precisará executar os comandos SQL descritos na próxima seção para limpar o histórico acumulado.

Se precisar de controle mais granular por tipo de post, use o filtro wp_revisions_to_keep no functions.php do tema filho:

add_filter('wp_revisions_to_keep', function($num, $post) {
    if ($post->post_type === 'page') {
        return 5;
    }
    return 2;
}, 10, 2);

Esse filtro tem precedência sobre a constante WP_POST_REVISIONS e permite configurar limites diferentes para posts, páginas e tipos de post customizados, ainda sem instalar nenhum plugin.

Como deletar revisões do WordPress via SQL diretamente no phpMyAdmin

Com o limite de revisões futuras configurado, o próximo passo é remover os registros já acumulados no banco de dados MySQL. O phpMyAdmin é a interface mais acessível para usuários de hospedagem compartilhada ou cPanel executarem comandos SQL sem precisar de acesso SSH.

Atenção: antes de prosseguir, realize um backup completo do banco de dados. No phpMyAdmin, clique em Exportar na barra superior e salve o arquivo .sql em local seguro. Você também pode consultar o artigo sobre como conectar remotamente ao MySQL no cPanel para entender as opções de acesso disponíveis.

Acesse o phpMyAdmin, selecione o banco de dados do WordPress no painel lateral esquerdo e clique na aba SQL. Execute os comandos na seguinte ordem:

Passo 1 — verificar o volume de revisões existentes:

SELECT COUNT(*) AS total_revisoes
FROM wp_posts
WHERE post_type = 'revision';
Output esperado:
+------------------+
| total_revisoes   |
+------------------+
| 4382             |
+------------------+

Passo 2 — deletar todas as revisões:

Atenção: este comando é irreversível sem backup. Confirme que o arquivo de exportação foi salvo antes de executar.

DELETE FROM wp_posts
WHERE post_type = 'revision';
Output esperado:
4382 row(s) affected.

Passo 3 — remover metadados órfãos da tabela wp_postmeta:

DELETE FROM wp_postmeta
WHERE post_id NOT IN (
    SELECT ID FROM wp_posts
);

Passo 4 — otimizar as tabelas para recuperar espaço em disco:

OPTIMIZE TABLE wp_posts;
OPTIMIZE TABLE wp_postmeta;
Output esperado:
Table             Op       Msg_type  Msg_text
wp_posts          optimize status    OK
wp_postmeta       optimize status    OK

Após a otimização, o tamanho das tabelas exibido no phpMyAdmin deve refletir a redução. Em sites com histórico extenso de edições, é possível recuperar dezenas de megabytes com esses quatro comandos. Se o prefixo das suas tabelas não for wp_, ajuste os nomes nas queries — o valor real está na variável $table_prefix do wp-config.php.

Como limpar revisões do WordPress com WP-CLI no terminal

O WP-CLI oferece uma abordagem mais controlada e scriptável para a limpeza de revisões WordPress via linha de comando. Se você possui acesso SSH ao servidor, o WP-CLI é a opção mais precisa para automatizar e escalar o processo.

Primeiro, verifique o número de revisões existentes:

wp post list --post_type='revision' --format=count --path=/home/usuario/public_html
Output esperado:
4382

Atenção: o flag --force no comando abaixo ignora a lixeira do WordPress e remove os registros permanentemente. Confirme o backup antes de executar.

wp post delete \
  $(wp post list --post_type='revision' --format=ids --path=/home/usuario/public_html) \
  --force \
  --path=/home/usuario/public_html
Output esperado:
Success: Deleted post 1423.
Success: Deleted post 1424.
...
Success: Deleted post 5804.

Se o volume de revisões for muito alto (acima de 5.000 registros), o shell pode atingir o limite de argumentos. Nesse caso, processe em lotes com xargs:

wp post list \
  --post_type='revision' \
  --format=ids \
  --posts_per_page=500 \
  --path=/home/usuario/public_html \
  | xargs wp post delete --force --path=/home/usuario/public_html

Para otimizar as tabelas diretamente pelo WP-CLI após a deleção:

wp db optimize --path=/home/usuario/public_html
Output esperado:
Success: Database optimized.

O parâmetro --path deve apontar para o diretório raiz da instalação do WordPress. Em ambientes cPanel, o caminho típico é /home/usuario/public_html. Ajuste conforme a estrutura de diretórios da sua hospedagem.

Como automatizar a limpeza periódica de revisões sem plugin

Realizar limpezas manuais esporádicas é menos eficiente do que manter um processo automatizado. Existem duas abordagens nativas sem plugin: cron job com WP-CLI no servidor e hook via functions.php usando o agendador interno do WordPress.

Automação com cron job e WP-CLI

No cPanel, acesse Tarefas Agendadas (Cron Jobs) e adicione a linha abaixo para executar a limpeza toda segunda-feira às 03:00:

0 3 * * 1 /usr/local/bin/wp post delete \
  $(wp post list --post_type='revision' --format=ids \
  --path=/home/usuario/public_html 2>/dev/null) \
  --force --path=/home/usuario/public_html 2>/dev/null

O redirecionamento 2>/dev/null suprime mensagens de erro quando não há revisões a deletar, evitando e-mails de notificação do cron com conteúdo vazio. Verifique o caminho do binário do WP-CLI com which wp antes de salvar o cron.

Automação com hook no functions.php do tema filho

Adicione a função abaixo no functions.php do tema filho para agendar uma limpeza automática de revisões com mais de 30 dias via o hook nativo wp_scheduled_delete:

function avira_limpar_revisoes_agendado() {
    global $wpdb;
    $wpdb->query(
        "DELETE FROM {$wpdb->posts}
         WHERE post_type = 'revision'
         AND post_date < DATE_SUB(NOW(), INTERVAL 30 DAY)"
    );
    $wpdb->query(
        "DELETE FROM {$wpdb->postmeta}
         WHERE post_id NOT IN (SELECT ID FROM {$wpdb->posts})"
    );
}
add_action('wp_scheduled_delete', 'avira_limpar_revisoes_agendado');

Essa função preserva revisões dos últimos 30 dias como histórico de segurança, removendo apenas registros mais antigos. O hook wp_scheduled_delete é disparado diariamente pelo agendador interno do WordPress. O uso do objeto $wpdb garante compatibilidade automática com qualquer prefixo de tabela configurado no wp-config.php, tornando o código portável entre diferentes instalações.

Problemas comuns e como resolver

Sintoma: phpMyAdmin retorna "You have an error in your SQL syntax"

Causa: Prefixo de tabela incorreto nas queries. Se a instalação do WordPress usa um prefixo diferente de wp_, como wp3a_ ou site1_, os nomes das tabelas nas queries precisam ser ajustados manualmente.
Solução: Abra o wp-config.php e localize a linha $table_prefix = 'wp_';. Substitua wp_posts e wp_postmeta nas queries pelo prefixo correto. Você também pode verificar os nomes exatos clicando no banco de dados no painel lateral do phpMyAdmin e conferindo a lista de tabelas exibida.

Sintoma: WP-CLI não encontra revisões mesmo após configurar WP_POST_REVISIONS

Causa: A constante WP_POST_REVISIONS limita apenas a criação de novas revisões. Registros históricos anteriores à configuração permanecem intactos no banco de dados e precisam ser removidos explicitamente.
Solução: Execute wp post list --post_type='revision' --format=count para confirmar quantas revisões ainda existem. Se o número for maior que zero, use os comandos de deleção via WP-CLI ou SQL descritos neste guia para limpá-las.

Sintoma: OPTIMIZE TABLE exibe a mensagem "Table does not support optimize, doing recreate + analyze instead"

Causa: Esse aviso ocorre quando a tabela usa o storage engine InnoDB, que não suporta o OPTIMIZE no modo tradicional do MyISAM. O MySQL realiza uma reconstrução interna equivalente mesmo assim.
Solução: O aviso é informativo, não um erro crítico. Verifique a última linha do output: se exibir status: OK, a operação foi concluída com sucesso. O resultado em InnoDB é equivalente a um ALTER TABLE ... ENGINE=InnoDB, que recupera espaço de forma eficaz.

Sintoma: O site fica lento ou inacessível durante a execução do DELETE

Causa: Deletar dezenas de milhares de registros em uma única transação pode gerar lock prolongado na tabela wp_posts, bloqueando consultas de leitura e causando lentidão temporária para visitantes.
Solução: Execute a limpeza em horário de baixo tráfego, preferencialmente entre 02:00 e 05:00. Para tabelas muito grandes, divida o DELETE em lotes com LIMIT:

DELETE FROM wp_posts
WHERE post_type = 'revision'
LIMIT 1000;

Repita o comando até que o número de linhas afetadas retorne zero. O phpMyAdmin permite reexecutar com F5. Esse método distribui o impacto ao longo do tempo e mantém o site responsivo durante o processo.

Perguntas frequentes sobre limpar revisões do WordPress sem plugin

É seguro deletar revisões do WordPress diretamente no banco de dados?

Sim, desde que você faça um backup completo do banco antes de executar qualquer comando DELETE. As revisões são registros auxiliares na tabela wp_posts com post_type igual a 'revision' e não afetam o conteúdo publicado ao serem removidas. Posts, páginas, imagens e configurações do site permanecem completamente intactos após a limpeza.

Como limitar o número de revisões no WordPress sem instalar plugin?

Adicione a constante WP_POST_REVISIONS no arquivo wp-config.php com o valor numérico desejado, por exemplo define('WP_POST_REVISIONS', 3);. Para desativar revisões completamente, defina o valor como false. A alteração entra em vigor imediatamente para novos salvamentos, sem necessidade de reiniciar o WordPress ou limpar caches.

Qual comando SQL remove todas as revisões do WordPress de uma vez?

Execute DELETE FROM wp_posts WHERE post_type = 'revision'; no phpMyAdmin ou via linha de comando MySQL. Em seguida, execute DELETE FROM wp_postmeta WHERE post_id NOT IN (SELECT ID FROM wp_posts); para limpar metadados órfãos. Sempre faça backup antes e rode OPTIMIZE TABLE wp_posts; ao final para recuperar espaço em disco e desfragmentar a tabela.

Limpar revisões do WordPress melhora a performance do site?

Sim, especialmente em sites com muitos posts editados com frequência. Revisões acumuladas aumentam o tamanho da tabela wp_posts, tornam consultas mais lentas e aumentam o tempo de backup. Remover revisões antigas e limitar novas reduz o overhead do banco de dados, o que pode se traduzir em menor latência nas páginas que consultam posts recentes e em backups mais rápidos e compactos.

Como agendar a limpeza automática de revisões no WordPress sem plugin?

Crie um cron job no servidor que execute um script PHP ou um comando WP-CLI como wp post delete $(wp post list --post_type='revision' --format=ids) --force em intervalos regulares. Outra opção é adicionar uma função no functions.php do tema filho que limpa revisões antigas via hook wp_scheduled_delete, aproveitando o agendador nativo do WordPress sem depender de nenhum plugin externo.

Conclusão

Controlar e limpar revisões do WordPress sem plugin é uma prática de manutenção essencial para manter o banco de dados enxuto e o site performático ao longo do tempo. Os três pilares do processo são:

  • Prevenção: configure define('WP_POST_REVISIONS', 3); no wp-config.php agora, antes que o volume de revisões cresça ainda mais e impacte a performance do banco de dados.
  • Limpeza imediata: execute os quatro comandos SQL no phpMyAdmin para remover revisões acumuladas e otimizar as tabelas wp_posts e wp_postmeta, recuperando espaço em disco de forma imediata.
  • Automação: configure um cron job com WP-CLI ou um hook no functions.php do tema filho para manter o banco de dados limpo de forma contínua, sem precisar de intervenção manual recorrente.

Leia também

Precisa de ajuda com a performance do seu WordPress?

Se o seu site continua lento mesmo após a limpeza de revisões, o problema pode estar na infraestrutura de hospedagem. Uma hospedagem otimizada para WordPress oferece banco de dados configurado corretamente, suporte a WP-CLI, recursos dedicados e suporte técnico para ajudar na manutenção contínua do ambiente.

Conheça os planos de hospedagem WordPress da AviraHost

  • 0 Os usuários acharam isso útil
  • WordPress, revisões, wp-config, MySQL, AviraHost, performance, banco-de-dados
Esta resposta foi útil?

Artigos Relacionados

Tutorial: Passo a passo para instalar o WordPress na AviraHost usando o WP Toolkit do cPanel

O WP Toolkit é uma ferramenta poderosa e fácil de usar no cPanel, ideal para instalar,...

Dicas de Otimização para Hospedagem WordPress

Dicas de Otimização para Hospedagem WordPress O WordPress é uma das plataformas de gerenciamento...

Otimizar a Segurança do WordPress em Hospedagem Linux: Passos Práticos e Rápidos

Otimizar a segurança do WordPress em hospedagem Linux é fundamental para proteger seu site contra...

Guia para resolver erro de memória no WordPress: diagnóstico e ampliação

WordPress atingindo limite de memória ocorre quando o PHP não tem recursos suficientes para...

Migrar WordPress entre hospedagens sem downtime: procedimento completo

Migrar WordPress entre hospedagens sem downtime é um processo técnico que permite transferir um...