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:
- Anote a versão atual
- Desative (não desinstale — isso apagaria as configurações)
- Delete a pasta do plugin/tema
- Reinstale via repositório oficial ou ZIP original do desenvolvedor
- 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.phpdo tema com código injetado no topo): remova apenas o bloco malicioso
2.4. Casos especiais
.htaccessmodificado: verifique se há regras de redirecionamento estranhas (RewriteRulepara domínios desconhecidos). Substitua pelo.htaccesspadrão do WordPress se não tiver customizações próprias.wp-config.phpmodificado: raro mas possível. Confira se as constantes definidas batem com instalação limpa. Códigos antes ou depois doou apósrequire_once(ABSPATH . 'wp-settings.php');são suspeitos.- Arquivos
.ico,.png,.jpgcom 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 ou que você não inseriu: limpe ou delete.
3.3. Opções alteradas
SELECT option_name, option_value
FROM wp_options
WHERE option_name IN ('siteurl', 'home', 'template', 'stylesheet', 'active_plugins');
siteurl ou home apontando para domínio estranho é sinal de invasão. Corrija pela linha de comando ou phpMyAdmin.
3.4. Comentários e meta
DELETE FROM wp_comments WHERE comment_approved = 'spam';
DELETE FROM wp_postmeta WHERE meta_value LIKE '%base64_decode%' OR meta_value LIKE '%eval(%';
Etapa 4: Trocar credenciais — todas
- Salts do
wp-config.php(gere novos em https://api.wordpress.org/secret-key/1.1/salt/) - Senha de todos os usuários admin (forçar redefinição via
wp user reset-password [id]no WP-CLI) - Senha do FTP/SFTP
- Senha do cPanel
- Senha do banco MySQL (atualizar no
wp-config.php) - Senha de email do domínio
Etapa 5: Hardening — para não voltar a acontecer
Sem essa etapa, a probabilidade de reinfecção em 30 dias é alta.
- Atualize WordPress, plugins e tema para versão mais recente
- Remova plugins/temas inativos
- Instale Wordfence ou iThemes Security; ative scan diário automático
- Ative 2FA para todos os admins
- Mude a URL de login com WPS Hide Login (você já fez isso! Verifique se está ativo)
- Limite tentativas de login com Limit Login Attempts Reloaded
- No
wp-config.php:
```php
define('DISALLOW_FILE_EDIT', true);
define('DISALLOW_FILE_MODS', true); // (opcional, bloqueia instalação de plugins via wp-admin)
define('FORCE_SSL_ADMIN', true);
define('WP_AUTO_UPDATE_CORE', 'minor');
```
- Headers de segurança no
.htaccess:
```apache
Header set X-Frame-Options "SAMEORIGIN"
Header set X-Content-Type-Options "nosniff"
Header set Referrer-Policy "strict-origin-when-cross-origin"
Header set Strict-Transport-Security "max-age=31536000; includeSubDomains"
```
- Bloqueio de PHP em
/uploads/:
```apache
Deny from all
```
- Desabilite XML-RPC se não usar:
```apache
Order Deny,Allow
Deny from all
```
Etapa 6: Backup automático off-site
Configure UpdraftPlus para enviar backup diário para Google Drive ou S3, com retenção de 7 dias (mínimo). Sem backup off-site, você está apostando contra o relógio.
Etapa 7: Solicitar reavaliação no Google
Se o site estava bloqueado, agora é a hora. Detalhes completos no nosso post específico sobre site bloqueado pelo Google.
Etapa 8: Monitoramento contínuo
Limpeza sem monitoramento é só metade do trabalho. Configure pelo menos:
- Scan automático diário no Wordfence
- Alertas por email para qualquer modificação em arquivos do core
- Uptime monitor externo (UptimeRobot é grátis e ótimo)
- Notificação do Search Console por email
Quando contratar especialista vs fazer sozinho
| Cenário | Fazer sozinho | Contratar |
|---|---|---|
| Site pessoal/blog sem comércio | ✅ | Opcional |
| Site institucional pequeno | ⚠️ Se tiver experiência | Recomendado |
| E-commerce, área de cliente, pagamentos | ❌ | Obrigatório |
| Site já foi reinfectado antes | ❌ | Obrigatório |
| Você não tem SSH/cPanel/conhecimento de PHP | ❌ | Obrigatório |
Como o Site Seguro entrega esse processo
Os planos do Site Seguro entregam o processo completo acima — diagnóstico, limpeza, hardening, reavaliação e monitoramento — em prazos de 24h (Emergencial) a 5 dias (Essencial). Para casos com Google bloqueando, e-commerce parado ou área administrativa comprometida, o plano Emergencial (R$ 999) é o indicado.
Fale com um especialista pelo WhatsApp — atendimento 7h às 22h.
Perguntas frequentes
Plugin grátis tipo Wordfence Free remove malware sozinho?
Detecta a maioria dos arquivos infectados, mas a remoção automática às vezes quebra funcionalidades legítimas e raramente cobre malware ofuscado avançado. A versão paga é melhor; a análise humana é a mais segura.
É verdade que reinstalar o WordPress já resolve?
Falso. Reinstalar o core não toca em /wp-content/, no banco de dados nem em backdoors fora do diretório padrão. Resolve só infecções superficiais.
Quanto tempo após a limpeza posso confiar que está realmente limpo?
Faça scan diário por 14 dias. Se nada novo aparece e o site está com hardening completo, a probabilidade de reinfecção sem nova vulnerabilidade é baixíssima.
Se eu tiver desenvolvedor próprio, ele pode fazer isso?
Pode, desde que tenha experiência específica com WordPress e segurança. Dev frontend ou júnior provavelmente não cobre todo o processo. Confirme experiência prévia em remoção de malware antes de delegar.
O Site Seguro também ajuda em sites Magento, OpenCart, Joomla?
O foco é WordPress, mas atendemos outras plataformas sob consulta. Fale com a equipe pelo WhatsApp para avaliação.
Conclusão
Remover malware WordPress é processo conhecido, mas pouco perdoa pressa. A regra é simples: mapeie tudo, limpe na ordem, troque credenciais, faça hardening, monitore. Quando feito direito da primeira vez, o site sai mais seguro do que antes do ataque. Quando feito errado, vira reinfeção contínua.
Quer que o Site Seguro execute isso para você?
Leia também:
- 12 sinais de que seu site WordPress foi hackeado
- Site bloqueado pelo Google: guia passo a passo
- Backup do WordPress: como restaurar seu site após um ataque
- Hardening WordPress: 15 ações essenciais