Uma base de dados WordPress limpa e bem mantida é o fundamento de um site rápido. Com o tempo, a BD acumula dados desnecessários — revisões de posts, transients expirados, sessões antigas do WooCommerce, metadados órfãos — que aumentam o seu tamanho, tornam as queries mais lentas, e os backups mais pesados. Este guia cobre o que limpar e como automatizar.
O que acumula na base de dados WordPress
Revisões de posts
Cada vez que um post ou página é guardado, o WordPress cria uma revisão. Um post editado 50 vezes tem 50 revisões armazenadas. Em sites com muito conteúdo e muitas edições, as revisões podem representar 30-50% do tamanho total da tabela wp_posts.
Limitar o número de revisões guardadas adicionando ao wp-config.php:
define('WP_POST_REVISIONS', 5); // Guarda apenas as últimas 5 revisões
Posts no lixo e spam
Posts eliminados e comentários marcados como spam ficam no "lixo" até serem apagados permanentemente. Por defeito, o WordPress apaga automaticamente após 30 dias, mas em sites com muito tráfego isto pode representar muito dados temporários.
Transients expirados
Transients são dados temporários em cache armazenados na wp_options. Quando expiram, ficam na base de dados até serem substituídos ou limpos. Em sites com muitos plugins, a tabela wp_options pode crescer significativamente com transients órfãos.
Metadados órfãos
Quando posts são eliminados, os metadados associados (wp_postmeta) podem ficar na base de dados sem referência. O mesmo acontece com dados de plugins desinstalados.
Sessões WooCommerce
A tabela wp_woocommerce_sessions acumula uma sessão por visita à loja. Em lojas com tráfego, pode crescer para centenas de milhares de registos em semanas, tornando-se uma das maiores e mais lentas tabelas.
Como verificar o tamanho das tabelas
Via phpMyAdmin ou via WP-CLI:
wp db query "SELECT table_name, ROUND(((data_length + index_length) / 1024 / 1024), 2) AS 'size_mb' FROM information_schema.tables WHERE table_schema = DATABASE() ORDER BY (data_length + index_length) DESC LIMIT 20;"
Esta query mostra as 20 maiores tabelas em MB — útil para identificar onde estão os problemas.
Limpeza manual com WP-CLI
# Apagar revisões de posts
wp post delete $(wp post list --post_type='revision' --format=ids) --force
# Limpar transients expirados
wp transient delete --expired
# Limpar sessões WooCommerce antigas (mais de 30 dias)
wp db query "DELETE FROM wp_woocommerce_sessions WHERE session_expiry < UNIX_TIMESTAMP(DATE_SUB(NOW(), INTERVAL 30 DAY))"
# Optimizar tabelas após limpeza
wp db optimize
Plugins de limpeza automática
WP-Optimize
O plugin mais completo para limpeza e optimização de base de dados. Interface clara, opções granulares sobre o que limpar, e suporte a agendamento automático. Versão gratuita cobre a maioria das necessidades; versão premium adiciona limpeza de imagens e minificação.
Advanced Database Cleaner
Focado na detecção e remoção de dados órfãos — especialmente útil após desinstalar plugins que deixam tabelas ou opções na base de dados.
Quando optimizar a base de dados
- Mensalmente, como parte da manutenção regular
- Antes de fazer backup — reduz o tamanho do backup
- Após migração — a migração pode deixar dados fragmentados
- Quando o site começa a ficar lento sem causa óbvia de hosting ou plugins
Atenção: fazer sempre backup da base de dados antes de qualquer operação de limpeza. Algumas operações de limpeza são irreversíveis.
Base de dados dos sites dos seus clientes a precisar de manutenção?
O nosso serviço de manutenção WordPress inclui optimização mensal de base de dados como parte do pacote standard.
Optimizar base de dados WordPress