Ilustração de um banco de dados MySQL com tabelas destacadas como 'órfãs' e um botão de limpeza"

Como limpar tabelas órfãs no banco de dados MySQL do WordPress com segurança

Com o tempo, seu banco de dados WordPress acumula tabelas órfãs – tabelas que não pertencem mais a nenhum plugin, tema ou site ativo (especialmente em instalações multisite). Por exemplo, quando você desinstala um plugin, muitas vezes ele deixa suas tabelas no banco de dados. Do mesmo modo, restos de temas antigos e tabelas de sites excluídos no multisite permanecem ocupando espaço e adicionando carga desnecessária aos backups. Este guia mostra como identificar, analisar e remover essas tabelas órfãs com segurança, usando métodos manuais (SQL), WP-CLI e plugins específicos.

✅ Ao final deste tutorial, você saberá:
• Listar todas as tabelas do banco e identificar as candidatas à remoção.
• Usar comandos SQL seguros para eliminar tabelas órfãs.
• Automatizar a limpeza com WP-CLI.
• Aplicar plugins como Advanced Database Cleaner sem riscos.
• Implementar boas práticas de backup e verificação prévia.

1. O que são tabelas órfãs e por que removê-las?

Uma tabela órfã é aquela que não é mais utilizada pelo WordPress ou por qualquer plugin/tema ativo no momento. As causas mais comuns incluem:

  • Plugins desinstalados incorretamente: Muitos plugins, ao serem desativados e removidos, não limpam suas próprias tabelas. Isso é uma prática de segurança (para não perder dados), mas acaba poluindo o banco.
  • Restos de temas que criaram tabelas próprias: Alguns temas (especialmente de e-commerce ou diretórios) criam tabelas customizadas e, ao trocar de tema, elas permanecem.
  • Sites excluídos em redes multisite: No WordPress Multisite, quando você exclui um subsite, as tabelas específicas dele (wp_2_posts, wp_2_options, etc.) muitas vezes não são removidas automaticamente.
  • Plugins abandonados que deixaram tabelas mesmo após desinstalação.

Portanto, a remoção dessas tabelas traz benefícios diretos: reduz o tamanho do banco de dados, agiliza backups (menos dados para copiar), melhora o desempenho de consultas que percorrem todas as tabelas (ex: ferramentas de análise) e remove ruídos durante depuração.

⚠️ Atenção: Tabelas órfãs NÃO incluem registros órfãos dentro de tabelas principais (como posts ou options sem meta correspondente). Este guia trata exclusivamente de tabelas inteiras que não deveriam mais existir.

2. Diagnóstico: identificando possíveis tabelas órfãs

Antes de qualquer remoção, você precisa listar as tabelas e saber quais pertencem a plugins/temas ativos.

🔧 Passo 1: Liste todas as tabelas (via phpMyAdmin ou MySQL CLI)
SELECT TABLE_NAME FROM information_schema.TABLES WHERE TABLE_SCHEMA = 'nome_do_seu_banco' ORDER BY TABLE_NAME;

Substitua nome_do_seu_banco pelo nome real. Anote o prefixo (geralmente wp_).

🔧 Passo 2: Identifique as tabelas nativas do WordPress (nunca remover)

O WordPress core, em uma instalação padrão (sem multisite), possui as seguintes tabelas (prefixo wp_):

wp_commentmeta, wp_comments, wp_links, wp_options, wp_postmeta, wp_posts, wp_termmeta, wp_terms, wp_term_relationships, wp_term_taxonomy, wp_usermeta, wp_users

Em multisite, acrescem tabelas como wp_blogs, wp_signups, wp_site, etc. Nunca remova essas.

🔧 Passo 3: Liste plugins ativos e suas possíveis tabelas

Cada plugin pode criar tabelas com nomes que incluem o slug do plugin. Exemplos:

  • WooCommerce: wp_woocommerce_sessions, wp_woocommerce_order_items, etc.
  • Rank Math: wp_rank_math_*
  • Yoast SEO: wp_yoast_*
  • Elementor: wp_e_*

Consulte a documentação de cada plugin para conhecer suas tabelas. Se um plugin não está mais ativo, suas tabelas tornam-se órfãs.

Listagem de tabelas no phpMyAdmin com marcações em vermelho para tabelas órfãs

3. Método 1: Remoção manual via SQL (seguro, mas trabalhoso)

Depois de identificar uma tabela órfã, você pode removê-la com o comando DROP TABLE. No entanto, é fundamental ter um backup recente (antes de qualquer DROP).

🔧 Comando básico de remoção:
DROP TABLE IF EXISTS wp_nome_da_tabela_orfã;

Para múltiplas tabelas de uma vez:

DROP TABLE IF EXISTS wp_tabela1, wp_tabela2, wp_tabela3;

Exemplo prático: imagine que você usou o plugin “WP Old Plugin” há anos e suas tabelas são wp_old_plugin_data e wp_old_plugin_cache. Após confirmar que o plugin não está mais instalado, execute:

DROP TABLE IF EXISTS wp_old_plugin_data, wp_old_plugin_cache;
💡 Dica de segurança: Antes de dropar, renomeie a tabela adicionando um prefixo como _to_delete_ e aguarde alguns dias. Se nada quebrar, remova. Exemplo: RENAME TABLE wp_old_plugin_data TO wp_to_delete_old_plugin_data;

4. Método 2: Limpeza automática com WP-CLI (avançado)

Se você tem acesso SSH, o WP-CLI oferece comandos para listar e remover tabelas órfãs de plugins desativados.

🔧 WP-CLI: Listar tabelas de plugins desativados
wp db tables --scope=orphaned

Esse comando retorna apenas as tabelas que pertencem a plugins que não estão ativos no momento. É uma mão na roda.

🔧 WP-CLI: Remover tabelas órfãs de uma só vez
wp db tables --scope=orphaned | xargs wp db drop

Cuidado: Esse comando não pede confirmação. Primeiro, teste com:

wp db tables --scope=orphaned

para visualizar quais serão eliminadas. Depois, execute a remoção.

O WP-CLI também permite filtrar por um prefixo específico, útil para multisite:

wp db tables --scope=orphaned --url=subsite.dominio.com

5. Método 3: Uso do plugin Advanced Database Cleaner (recomendado para iniciantes)

O plugin gratuito Advanced Database Cleaner (mais de 100 mil instalações ativas) possui uma aba específica para “Tabelas órfãs”.

  • Instale e ative o plugin.
  • Acesse Ferramentas → Advanced DB Cleaner → Tabelas.
  • O plugin lista todas as tabelas e marca como “órfã” aquelas que não pertencem ao core nem a nenhum plugin/tema ativo (com base em uma base de dados interna e heurística).
  • Você pode selecionar as tabelas e clicar em “Eliminar”.
⚠️ Verifique manualmente antes de eliminar: O Advanced Database Cleaner pode, em raras ocasiões, classificar incorretamente uma tabela ativa como órfã (especialmente se o plugin for muito novo ou usar nomes genéricos). Por isso, sempre confira a lista antes de clicar em “Eliminar”.

Depois da limpeza, você pode desinstalar o plugin ou mantê-lo para manutenções futuras.

Interface do Advanced Database Cleaner mostrando tabelas órfãs e botão de eliminação

6. Cuidados essenciais: backup e verificação de dependências

Antes de qualquer operação de exclusão de tabelas, siga este checklist de segurança:

  1. Backup completo do banco de dados: Use phpMyAdmin (Exportar) ou WP-CLI: wp db export backup_antes_limpeza.sql. Guarde o arquivo em local seguro.
  2. Verifique se o plugin/tema realmente foi removido: Às vezes, um plugin deixou de ser usado, mas seu código ainda está na pasta /wp-content/plugins/ (apenas desativado). Nesse caso, as tabelas podem ser necessárias quando você reativá-lo. A remoção deve ocorrer apenas após a exclusão definitiva da pasta do plugin.
  3. Teste em staging primeiro: Se possível, clone o banco para um ambiente de testes e execute a limpeza. Veja se o site (front-end e admin) continua funcionando sem erros.
  4. Registre as tabelas removidas: Mantenha um log do que foi excluído. Caso algo quebre semanas depois, você saberá o que restaurar.
🎯 Especialmente em multisite: Antes de excluir tabelas de um subsite deletado, certifique-se de que o site foi realmente removido (não apenas arquivado). Use wp site list para conferir os sites ativos. Tabelas com prefixo de sites que não existem mais podem ser removidas.

7. Limpeza de dados órfãos dentro de tabelas (complementar)

Embora este guia foque em tabelas inteiras, vale mencionar que registros órfãos dentro de tabelas legítimas (ex: postmeta sem post pai, termmeta sem termo) também incham o banco. Para esses casos, ferramentas como WP-Optimize ou o próprio Advanced Database Cleaner oferecem recursos de limpeza de dados. Contudo, trate isso como uma segunda etapa, após a remoção de tabelas órfãs.

Conclusão: banco de dados limpo, site mais saudável

A remoção de tabelas órfãs é uma das tarefas de manutenção mais negligenciadas, mas que traz benefícios tangíveis: backups menores, menos risco de conflitos e uma base de dados mais fácil de auditar. Seja usando SQL manual, WP-CLI ou o Advanced Database Cleaner, o princípio é o mesmo: identifique, confirme a inutilidade e então remova com backup em mãos. A partir de hoje, inclua essa verificação em sua rotina mensal de manutenção de WordPress.

🔧 Quer mais ferramentas para manter seu WordPress saudável?

No nosso catálogo, você encontra plugins de otimização e manutenção de banco de dados recomendados por especialistas.

🛒 Explorar catálogo →

Continue acompanhando o blog para mais guias de boas práticas em WordPress.

Para utilizar nosso site, é necessário concordar com nossos termos de consentimento, adesão e suporte. Por isso, recomendamos que você leia-os atentamente antes de prosseguir.