
🧹 Como remover completamente um plugin do WordPress: limpeza passo a passo da base de dados e ficheiros
O seu site fica lentíssimo, os backups disparam para um gigabyte e o phpMyAdmin mostra dezenas de tabelas com prefixos de plugins que «eliminou» há um ano. Parece-lhe familiar?
O botão padrão «Eliminar» na secção de plugins apenas remove a pasta de wp-content/plugins. Tudo o resto (tabelas, opções, tarefas cron, shortcodes em artigos) permanece na base de dados e no disco. Os programadores tratam a limpeza de forma diferente: alguns limpam tudo meticulosamente através do uninstall.php, enquanto outros deixam tudo intacto.
Abaixo encontra um algoritmo completo para remover um plugin sem deixar rasto: do painel de controlo ao SQL manual. Com backups em cada etapa e instruções precisas para plugins populares.
💡 Visão geral rápida:
- Eliminar através do painel de controlo é apenas o primeiro passo; tabelas, shortcodes e tarefas cron exigem uma limpeza separada
- Antes de qualquer operação na base de dados, faça um backup completo (usando as ferramentas integradas do alojamento ou um plugin)
- WooCommerce, Yoast SEO, Wordfence e outros plugins populares têm as suas próprias constantes e consultas SQL
- Um plugin desativado não está «desligado», mas sim «adormecido»; os seus ficheiros permanecem acessíveis para acesso direto e representam um vetor de ataque
Porque é que o botão «Eliminar» não é suficiente
O WordPress chama o uninstall.php de um plugin ou o callback do ficheiro principal ao eliminá-lo. Mas isto só funciona se o programador tiver criado esse ficheiro. Na prática, cerca de metade dos plugins do catálogo do WordPress.org não têm uninstall.php ou implementam-no parcialmente: eliminam a pasta, mas deixam a base de dados intacta.
O que permanece após a eliminação padrão:
Tipo de resíduo | Onde procurar | Risco |
|---|---|---|
Tabelas da base de dados |
| Crescimento da base de dados, consultas mais lentas |
Linhas em |
| Opções |
Linhas em |
| Dados mortos ao obter artigos |
Shortcodes no conteúdo | Texto do artigo/página |
|
Tarefas cron |
| Pedidos HTTP desnecessários ao wp-cron |
Ficheiros fora da pasta do plugin |
| Desordem no disco |
Regras no | Raiz do site | Conflitos com novos plugins |
As linhas com a flag autoload são especialmente críticas: o WordPress carrega-as em cada pedido. Cinquenta linhas autoload extra adicionam 30 a 80 ms ao tempo de resposta do servidor. Parece insignificante à primeira vista, mas com 100 000 visualizações mensais, é um impacto de desempenho notório.
Desativação vs eliminação: qual é a diferença
A diferença é fundamental e é útil compreendê-la antes de começar a limpeza.
Critério | Desativação | Eliminação total |
|---|---|---|
Ficheiros do plugin | Permanecem em | Eliminados |
Código | Não é executado, está disponível para leitura | Ausente |
Tabelas da base de dados | Preservadas | Depende do programador |
Definições | Preservadas | Depende do |
Atualizações | Chegam (para plugins gratuitos do.org) | Não chegam |
Vulnerabilidades | Código no servidor é um vetor de ataque | Sem ameaça |
Reversibilidade | Um clique e o plugin fica ativo novamente | Apenas a partir de backup |
Um plugin desativado não está «desligado», mas sim «adormecido». Os ficheiros PHP residem fisicamente no servidor. Se for encontrada uma vulnerabilidade no código, um atacante pode aceder ao ficheiro diretamente através do caminho em wp-content/plugins/, contornando a lógica do WordPress. As firewalls WAF não resolvem este problema: a melhor proteção é remover totalmente o código não utilizado do servidor.
A regra é simples: se não usa um plugin há mais de uma semana, elimine-o. Reconfigurar é mais rápido do que lidar com uma violação através de uma falha em código abandonado.
Limpeza passo a passo: 4 etapas
Etapa 1: Eliminação através do painel de controlo
A primeira etapa é padrão. Vá a Plugins → Instalados, encontre o que precisa. Os plugins ativos estão destacados com uma barra azul, os desativados não.
Clique em «Eliminar» sob o nome, confirme com o botão «Sim, eliminar estes ficheiros». O WordPress chamará o uninstall.php do plugin (se existir) e eliminará a pasta de wp-content/plugins.

Para plugins simples (um widget leve, substituição do logótipo da página de login), a limpeza termina aqui. Eles não criam tabelas nem escrevem em wp_postmeta. Mas plugins de cache, SEO, segurança, galerias e construtores de páginas exigem ação adicional.
Etapa 2: Limpeza de ficheiros via FTP
Alguns plugins criam pastas fora de wp-content/plugins/. Localizações típicas:
wp-content/uploads/plugin-name/: cache, imagens comprimidas, ficheiros exportadoswp-content/ngg/: NextGEN Gallerywp-content/ewww/: EWWW Image Optimizerwp-content/backup/: plugins de backup
Ligue-se ao servidor via FTP (FileZilla, WinSCP) ou ao gestor de ficheiros do alojamento. Navegue até wp-content/, encontre a pasta com o nome do plugin e elimine-a. Antes de eliminar, transfira a pasta localmente; se continha uploads de utilizadores, restaure-os.
Os plugins de cache (WP Rocket, W3 Total Cache, LiteSpeed Cache) escrevem adicionalmente em wp-content/cache/ e criam wp-content/advanced-cache.php. Elimine o ficheiro advanced-cache.php manualmente via FTP e, no wp-config.php, encontre e remova esta linha:
1 define('WP_CACHE', true);
Etapa 3: Remover shortcodes do conteúdo
Os plugins que adicionam shortcodes (formulários, galerias, sliders, tabelas) deixam [shortcode] simples no texto do artigo após a eliminação. Tem um aspeto desleixado e confunde os leitores.
Uma forma rápida de silenciar shortcodes não utilizados é uma linha no functions.php do seu tema ativo:
1 add_shortcode('pluginshortcode', '__return_false');

Substitua pluginshortcode pela sua etiqueta de shortcode. Por exemplo: nggallery, gravityform ou contact-form-7. A função __return_false devolve false e o shortcode desaparece do frontend sem ser removido do texto do artigo.
Adicione o código através de um tema filho ou do plugin Code Snippets; as edições no functions.php do tema principal serão perdidas na próxima atualização. Se decidir restaurar o plugin mais tarde, basta remover esta linha.
Etapa 4: Limpeza da base de dados
A etapa mais crítica. Faça um backup completo da base de dados antes de qualquer consulta SQL de eliminação; exportar através do phpMyAdmin demora meio minuto e salva-o de erros irreversíveis.
4a. Encontre as tabelas do plugin. Vá ao phpMyAdmin (através do cPanel ou do painel de administração do seu alojamento), selecione a base de dados do site. Procure tabelas com o prefixo do plugin: wp_wc_* (WooCommerce), wp_yoast_* (Yoast SEO), wp_wf* (Wordfence). Selecione-as, escolha «Eliminar» em baixo → confirme.
4b. Automatização via Advanced Database Cleaner. Se preferir não trabalhar diretamente no phpMyAdmin, instale o Advanced Database Cleaner. Este plugin gratuito analisa a base de dados, encontra tabelas e registos órfãos e elimina-os com um clique.
4c. Limpeza da wp_options. Mesmo que o plugin não tenha criado tabelas separadas, é quase certo que escreveu na wp_options. Execute no phpMyAdmin (separador SQL):
1 SELECT * FROM wp_options WHERE option_name LIKE '%pluginname%';
Substitua pluginname por parte do nome do plugin. Verifique se as linhas pertencem realmente ao plugin eliminado e, em seguida:
1 DELETE FROM wp_options WHERE option_name LIKE '%pluginname%';
4d. Limpeza de cron jobs. Alguns plugins registam os seus próprios eventos cron. Instale o WP Crontrol; este mostra todos os cron jobs registados numa única lista. Encontre os eventos com o nome do plugin e elimine-os manualmente.
Especificidades da remoção de plugins populares
Cada plugin importante deixa uma pegada única. Abaixo estão as instruções precisas para os mais comuns.
WooCommerce
O WooCommerce cria mais de 16 tabelas na base de dados. Para que sejam limpas automaticamente ao eliminá-lo, adicione ao wp-config.php (antes da linha /* That's all, stop editing! */):
1 define('WC_REMOVE_ALL_DATA', true);
Esta constante obriga o WooCommerce a chamar o seu uninstall.php completo ao ser eliminado; todas as tabelas wp_woocommerce_* e wp_wc_* serão apagadas, incluindo produtos, encomendas e cupões. A operação é irreversível, pelo que a cópia de segurança é obrigatória.
Depois de eliminar o plugin, verifique adicionalmente a wp_options, uma vez que o WooCommerce escreve dezenas de linhas com o prefixo woocommerce_:
1 SELECT * FROM wp_options WHERE option_name LIKE '%wc_%';

Se forem encontradas linhas e o plugin já tiver sido eliminado, execute a consulta DELETE com a mesma condição.
Yoast SEO
O Yoast SEO deixa registos em wp_postmeta e wp_usermeta, bem como as suas próprias tabelas wp_yoast_indexable e wp_yoast_seo_links.
Primeiro, limpe a wp_postmeta:
1 SELECT * FROM wp_postmeta WHERE meta_key LIKE '%yoast%';

Depois de confirmar que se trata de dados do Yoast, execute:
1 DELETE FROM wp_postmeta WHERE meta_key LIKE '%yoast%';
Depois, a wp_usermeta:
1 SELECT * FROM wp_usermeta WHERE meta_key LIKE '%yoast%';

Elimine o que encontrar com uma consulta DELETE análoga. O Yoast também regista o evento cron wpseo_onpage_fetch; remova-o através do WP Crontrol. Elimine as tabelas wp_yoast_indexable e wp_yoast_seo_links manualmente através do phpMyAdmin.
Akismet
O Akismet é o plugin padrão de proteção contra spam de comentários, pré-instalado com o WordPress. Após a eliminação, os seus dados permanecem em wp_commentmeta:
1 SELECT * FROM wp_commentmeta WHERE meta_key LIKE '%akismet_%';

Em seguida:
1 DELETE FROM wp_commentmeta WHERE meta_key LIKE '%akismet_%';
Se o site tiver milhares de comentários, a wp_commentmeta pode pesar dezenas de megabytes. Após a limpeza, otimize a tabela:
1 OPTIMIZE TABLE wp_commentmeta;
Encontrará mais formas de combater spam no nosso artigo como parar o spam de comentários no WordPress: todas as 18 soluções.
Gravity Forms
O Gravity Forms cria 9 tabelas na base de dados (wp_gf_*, wp_rg_*). Antes de eliminar, vá a Forms → Settings → Uninstall e confirme. Depois elimine o plugin a partir do painel.
Após a eliminação, verifique a wp_options:
1 SELECT * FROM wp_options WHERE option_name LIKE '%gravity%' OR option_name LIKE '%gf_%';

Elimine as linhas encontradas com uma query DELETE análoga.
Wordfence
O Wordfence é um dos plugins de segurança mais «pesados»: cria 23 tabelas com o prefixo wp_wf*. A eliminação padrão através do painel não as limpa.
O plugin auxiliar oficial Wordfence Assistant foi descontinuado pelo programador em dezembro de 2025. Portanto, limpamos manualmente: elimine o plugin Wordfence principal através do painel, depois vá ao phpMyAdmin e execute:
1 SELECT * FROM wp_options WHERE option_name LIKE '%wordfence%' OR option_name LIKE '%wf%';
Elimine as linhas encontradas com uma query DELETE usando a mesma condição. Em seguida, encontre e elimine todas as tabelas com o prefixo wp_wf (normalmente são 23, desde wp_wfblockediplog até wp_wflivetraffichuman). Via FTP, elimine a pasta wp-content/wflogs/ e o ficheiro wordfence-waf.php na raiz do site, se permanecerem.
NextGEN Gallery
O plugin cria 3 tabelas (wp_ngg_*) e uma pasta wp-content/ngg/ com as galerias carregadas.
Primeiro, elimine o plugin através do painel. Depois, via FTP, elimine a pasta wp-content/ngg/, guardando primeiro as imagens da galeria se precisar delas. No phpMyAdmin, execute:
1 SELECT * FROM wp_options WHERE option_name LIKE '%ngg%';
Elimine as linhas encontradas com uma query DELETE usando a mesma condição. Elimine manualmente as tabelas wp_ngg_pictures, wp_ngg_galleries e wp_ngg_album.
EWWW Image Optimizer
O EWWW armazena dados sobre cada imagem otimizada na tabela wp_ewwwio_images: caminho do ficheiro, tamanho original, tamanho após compressão. Também cria uma pasta wp-content/ewww/ com cache.
Elimine a pasta via FTP. Depois, no phpMyAdmin:
1 SELECT * FROM wp_options WHERE option_name LIKE '%ewww%';

Elimine o que encontrar e elimine a tabela wp_ewwwio_images.
WP All Export
O plugin cria 4 tabelas na base de dados. Após a eliminação através do painel, vá ao phpMyAdmin, encontre as tabelas com o prefixo wp_pmxe_*, selecione-as e execute "Drop". Verifique adicionalmente a wp_options pela chave pmxe; o plugin guarda aí as últimas configurações de exportação.
Mais detalhes sobre o ciclo completo de remoção de plugins estão no vídeo tutorial abaixo.
⁉️🤔 Perguntas frequentes
É seguro eliminar tabelas de plugins diretamente pelo phpMyAdmin?
É seguro sob duas condições: fez uma cópia de segurança completa da base de dados e identificou com precisão as tabelas como pertencentes a um plugin já eliminado. As tabelas de plugins de terceiros têm sempre um prefixo reconhecível:
wp_wc_,wp_yoast_ouwp_wf. Não toque nas tabelas de sistema do WordPress (wp_posts, wp_options, wp_users, wp_comments, wp_postmeta e wp_usermeta) comDROP; apenas pode limpá-las comDELETEseletivo.
O que devo fazer se o site mostrar um ecrã branco após a eliminação do plugin?
Restaure o plugin a partir da cópia de segurança: carregue a pasta via FTP, importe as suas tabelas. A causa está muito provavelmente no
functions.phpdo tema, onde pode ter ficado uma chamada a uma função do plugin sem um fallback. Encontre essas chamadas e envolva-as emfunction_exists()ou remova-as, e depois repita a eliminação do plugin.
Como encontro todos os vestígios de um plugin na base de dados?
Instale o plugin Advanced Database Cleaner. Ele analisa todas as tabelas em busca de dados órfãos e mostra uma lista completa: tabelas, linhas em
wp_optionsewp_postmeta, tarefas cron. Isto é mais rápido e seguro do que a pesquisa manual no phpMyAdmin.
Devo eliminar plugins que vieram incluídos com o tema?
Sim, se não os estiver a usar. Os plugins incluídos com temas (WPBakery Page Builder, Slider Revolution, ACF Pro) vêm frequentemente com licenças limitadas e as atualizações de segurança não chegam para eles. Um WPBakery desativado e desatualizado com uma vulnerabilidade conhecida é um caminho direto para uma intrusão. Se não o usa, elimine-o.
Posso restaurar um plugin após a eliminação completa?
Apenas a partir de uma cópia de segurança. Após limpar as tabelas e a
wp_options, todas as configurações do plugin perdem-se permanentemente. É precisamente por isso que o algoritmo acima é construído do simples para o radical: primeiro a eliminação padrão (reversível), depois a limpeza de ficheiros, e só no final a base de dados. Siga as etapas sequencialmente; não salte diretamente para o phpMyAdmin.
Os dados do plugin permanecem no WordPress Multisite?
No Multisite, cada subsite tem as suas próprias tabelas:
wp_2_options,wp_2_postmeta, e assim por diante. Após eliminar um plugin através do super administrador, verifique as tabelas de cada subsite (wp_*_optionsewp_*_postmetapara todos os IDs de blog). O plugin pode ter sido ativado em sites individuais da rede e deixado registos nas suas tabelas.
Conclusão: quando se justifica uma limpeza completa
Se tem um site pequeno e elimina um plugin a cada seis meses, a eliminação padrão através do painel mais uma limpeza pontual da wp_options é suficiente.
Mas se o seu site tem vários anos, por ele passaram dezenas de plugins e as cópias de segurança já atingiram um gigabyte, uma limpeza cirúrgica seguindo as instruções acima reduzirá visivelmente a base de dados e acelerará o painel de administração. Na prática, já limpámos milhares de registos órfãos em wp_postmeta e dezenas de tabelas desnecessárias, e o tempo de resposta do painel de administração foi reduzido quase para metade.
Crie o hábito: após eliminar um plugin, percorra a lista de verificação (FTP → wp_options → cron → tabelas). Dez minutos hoje poupam horas amanhã, quando uma base de dados sobrecarregada fizer o site ir abaixo no pico de tráfego.
Qual foi o plugin que deixou mais lixo após a eliminação no seu site? Conte-nos nos comentários.



