Como remover vírus e malware do WordPress sem perder o site (guia 2026)

Como remover vírus e malware do WordPress sem perder o site (guia 2026)

Remover malware de um site WordPress não é trabalho para “deletar tudo e reinstalar”. É um processo cirúrgico que separa código legítimo do código malicioso linha por linha. Quem faz às pressas costuma quebrar funcionalidades, perder conteúdo, ou — pior — apagar a evidência sem ter eliminado a porta de entrada, o que garante reinfecção em poucas horas.

Este guia descreve o processo real usado por especialistas, do diagnóstico inicial à entrega de um site limpo e blindado. Você pode aplicar passo a passo se tiver experiência técnica, ou usar como referência para entender exatamente o que está contratando.

Tipos de malware mais comuns em WordPress

Antes de remover, vale identificar com o que você está lidando. Cada tipo tem um padrão de comportamento e um padrão de remoção diferente.

Backdoors. Arquivos PHP escondidos (em /uploads/, em pastas de plugins desinstalados, ou misturados a arquivos legítimos com nomes similares) que permitem ao invasor reentrar mesmo depois da limpeza superficial. Geralmente usam funções como eval(), base64_decode(), gzinflate(), str_rot13().

Redirecionadores. Códigos JavaScript ou PHP que enviam o visitante para outro site (apostas, cripto, farmácia online, conteúdo adulto). Frequentemente são condicionais — só disparam para visitantes vindos do Google, ou de mobile, para escapar do dono do site logado.

Pharma hack e Japanese SEO spam. Tipos persistentes que injetam centenas ou milhares de páginas extras no WordPress, indexadas em outros idiomas, vendendo medicamentos ou produtos falsificados. Aparecem no Search Console como páginas que você nunca criou.

Mailers e phishing. Scripts que transformam seu servidor em máquina de envio de spam ou hospedam páginas falsas de bancos/serviços para roubar credenciais. Geralmente terminam com a hospedagem suspendendo a conta.

Mineradores (cryptojacking). Scripts que usam o navegador do visitante para minerar criptomoeda. O sintoma é lentidão para o usuário e queixas no Search Console.

Defacement. A “pichação digital” — a home do site é substituída por uma página com bandeira/mensagem do grupo invasor. Visível e raramente esconde nada (é mais “ego trip” do que ataque sério).

Antes de começar: backup completo do estado atual

Mesmo infectado, você precisa do estado atual como referência e evidência. Use UpdraftPlus, ou faça manualmente:

# Dump do banco
mysqldump -u USUARIO -p NOME_DO_BANCO > backup_pre_limpeza.sql

tar -czf backup_pre_limpeza_arquivos.tar.gz /caminho/do/site

Guarde em local externo (Drive, S3, Dropbox), nunca no mesmo servidor.

Etapa 1: Mapeamento — descobrir o que está infectado

Não confie só em “plugin scanou e disse que está tudo limpo”. O processo profissional combina 3 fontes de informação:

1.1. Search Console

Em Segurança e ações manuais, o Google lista URLs específicas onde detectou malware. Esse é seu ponto inicial.

1.2. Scanner com hash do core

Compare cada arquivo do /wp-admin/ e /wp-includes/ com a versão oficial do WordPress.org. Qualquer arquivo modificado merece atenção. Wordfence Premium e iThemes Security Pro fazem isso automaticamente.

1.3. Linha de comando (se você tem SSH)

Essas três queries cobrem 80% dos casos:

# Arquivos PHP modificados nos últimos 60 dias
find /caminho/do/site -name "*.php" -mtime -60 -type f

grep -rE "eval\s\(\s(base64_decode|gzinflate|str_rot13)" /caminho/do/site --include="*.php"

find /caminho/do/site/wp-content/uploads -type f -name "*.php"

Salve a lista resultante. Cada arquivo será analisado um a um.

Etapa 2: Limpeza dos arquivos

2.1. Substituir o core

Baixe a versão oficial de https://wordpress.org/download/, descompacte e substitua tudo dentro de /wp-admin/ e /wp-includes/. Não substitua /wp-content/ nem o wp-config.php.

2.2. Reinstalar plugins e tema

Para cada plugin/tema legítimo:

  1. Anote a versão atual
  2. Desative (não desinstale — isso apagaria as configurações)
  3. Delete a pasta do plugin/tema
  4. Reinstale via repositório oficial ou ZIP original do desenvolvedor
  5. Reative

Plugins descontinuados ou de fontes duvidosas: delete sem reinstalar. Encontre alternativas mantidas.

2.3. Limpar arquivos suspeitos restantes

Para cada arquivo na lista do mapeamento que não seja do core nem de plugin/tema reinstalado:

  • Abra o arquivo num editor de texto
  • Procure por bloco entre e ;?>, ou , ou strings hex/rot13 longas
  • Se o arquivo inteiro é apenas malware (caso típico em /uploads/): delete
  • Se o arquivo legítimo foi modificado (ex.: index.php do tema com código injetado no topo): remova apenas o bloco malicioso

2.4. Casos especiais

  • .htaccess modificado: verifique se há regras de redirecionamento estranhas (RewriteRule para domínios desconhecidos). Substitua pelo .htaccess padrão do WordPress se não tiver customizações próprias.
  • wp-config.php modificado: raro mas possível. Confira se as constantes definidas batem com instalação limpa. Códigos antes ou depois do ou após require_once(ABSPATH . 'wp-settings.php'); são suspeitos.
  • Arquivos .ico, .png, .jpg com tamanhos anormais: podem conter código PHP embutido (polyglot). Suspeite de qualquer imagem maior que 5 MB no diretório de uploads.

Etapa 3: Limpeza do banco de dados

3.1. Usuários administradores

SELECT u.ID, u.user_login, u.user_email, u.user_registered
FROM wp_users u
JOIN wp_usermeta m ON u.ID = m.user_id
WHERE m.meta_key = 'wp_capabilities' AND m.meta_value LIKE '%administrator%';

Qualquer usuário admin que você não criou: delete (depois de auditar o que ele alterou).

3.2. Conteúdo injetado

SELECT ID, post_title, post_status, post_modified
FROM wp_posts
WHERE post_content LIKE '%

Posts com Fale conosco