Guia de correção

WordPress hackeado? Checklist do que fazer nas primeiras horas

13 de novembro de 2026

Muitas vezes, tudo começa de um jeito bem discreto. Um cliente escreve contando que, ao entrar no seu site, foi parar de repente em um cassino online. A sua hospedagem manda um email avisando que o seu plano foi suspenso por envio de spam. Ou, no Google, logo abaixo do seu resultado de busca, aparece a frase “Este site pode ter sido invadido.” A essa altura, não resta dúvida: alguém conseguiu entrar no seu WordPress. É chato, mas não é o fim do mundo. O que importa agora é seguir a ordem certa. Quem entra em pânico, apaga tudo e restaura qualquer backup antigo muitas vezes vê o problema voltar uma semana depois. Este checklist de emergência guia você pelas primeiras horas, pela limpeza e pelo período que vem depois.

Como saber se o seu site WordPress foi hackeado?

Nem toda invasão chama atenção logo de cara. Muitos atacantes fazem questão, inclusive, de que você não perceba nada. Eles preferem usar o seu servidor com toda a calma para mandar spam, fazer redirecionamentos ou empurrar as próprias páginas para o topo do Google. Leve estes sinais a sério:

  • Redirecionamentos para sites estranhos: Os visitantes vão parar em páginas de apostas, de namoro ou em lojas falsas. Muitas vezes isso só acontece no celular ou só quando a pessoa chega pelo Google.
  • Avisos do Google ou do navegador: O Chrome mostra uma página de alerta vermelha no lugar do seu site, os resultados de busca exibem “Este site pode ter sido invadido.” ou o Search Console informa um problema de segurança.
  • Páginas estranhas no índice: Uma busca por site:seudominio.com.br revela páginas com caracteres japoneses, remédios para disfunção erétil ou produtos de marca baratos que você nunca criou. Os especialistas chamam isso de Japanese Keyword Hack ou de Pharma Hack.
  • Usuários desconhecidos: Na lista de usuários aparece um administrador que ninguém conhece. Às vezes ele fica até oculto na lista e só aparece no banco de dados.
  • Aviso da hospedagem: A sua hospedagem informa envio de spam ou uma carga anormal no servidor, ou já suspendeu o seu plano.
  • Arquivos e alterações estranhos: Arquivos com nomes enigmáticos, código desconhecido no início do index.php, plugins que você nunca instalou ou um login em que a sua senha de repente deixa de funcionar.

Um ponto deixa muita gente confusa: muitas vezes você mesmo não vê nada. Um malware mais sofisticado reconhece os administradores logados pelo cookie e mostra a eles o site normal. Por isso, para testar, abra o seu site em uma janela anônima, de preferência no celular e usando os dados móveis. Acesse uma vez diretamente e outra vez pela busca do Google.

WordPress hackeado: o que fazer na primeira hora?

Na primeira hora, você ainda não precisa encontrar o código malicioso. O objetivo é limitar o estrago sem destruir nenhum rastro. Siga estes passos na ordem:

  1. Respire fundo e não apague nada ainda. O impulso de apagar tudo na hora ou restaurar um backup às cegas é compreensível. Só que assim você destrói justamente os rastros que mais tarde vão revelar como os atacantes entraram.
  2. Documente o que você está vendo. Tire capturas de tela dos redirecionamentos e dos avisos, anote os horários e guarde os emails da hospedagem e do Google. Isso ajuda você a encontrar a causa e, mais tarde, em uma possível comunicação à ANPD.
  3. Salve o estado infectado. Baixe todos os arquivos e uma exportação do banco de dados e guarde as duas coisas em um lugar separado, com uma identificação bem clara de que estão infectadas. Essa cópia você nunca vai restaurar. Ela serve só como prova e para comparação.
  4. Tire o site do ar. Isso é obrigatório principalmente quando os visitantes estão sendo redirecionados para sites de golpe ou quando a sua loja processa dados de pagamento. Um plugin de manutenção ajuda pouco aqui, porque ele roda dentro do próprio WordPress hackeado. É melhor bloquear o site no nível do servidor e liberar só o seu IP. Se o seu site roda no Apache, bastam três linhas logo no início do .htaccess:
    RewriteEngine On
    RewriteCond %{REMOTE_ADDR} !^203\.0\.113\.10$
    RewriteRule ^ - [R=503,L]
    Troque o endereço pelo seu próprio IP. O código de status 503 informa ao Google que o site está fora do ar só temporariamente. Por pouco tempo, isso não prejudica o seu ranking. Se o seu servidor usa nginx ou se você não tiver certeza, peça ajuda à sua hospedagem.
  5. Troque as senhas de acesso mais importantes. Defina novas senhas para a sua conta na hospedagem, para SFTP ou SSH e para o banco de dados. Faça isso a partir de um dispositivo confiável. Se os dados de acesso foram roubados do seu próprio computador, por exemplo por um trojan que lê as senhas salvas no FileZilla, senhas novas não adiantam nada enquanto o computador continuar infectado. Troque também a sua própria senha do WordPress. Os outros usuários e as chaves de segurança ficam para depois da limpeza, porque, enquanto houver um backdoor aberto, o atacante consegue simplesmente ler as senhas novas.
  6. Fale com a sua hospedagem. Muitas empresas de hospedagem têm uma equipe de segurança própria, scanners de malware e, principalmente, os logs de acesso do servidor. Peça especificamente os logs das últimas semanas e os backups. Algumas guardam esses arquivos por mais tempo do que você imagina.
  7. Avise quem precisa saber. Se você é uma agência, informe o seu cliente. Se outras pessoas também têm acesso ao site, elas também precisam ficar sabendo. E, assim que dados pessoais possam ter sido afetados, começa a correr um prazo legal. Falamos disso mais abaixo.

Como os hackers invadem o WordPress? Descubra a porta de entrada

Muita gente pula esta etapa, e é exatamente por isso que tantos sites são hackeados duas vezes. Se você não encontra a brecha, faz a limpeza e, poucos dias depois, o atacante entra de novo pela mesma porta. Muitas vezes nem é um ataque direcionado, e sim um bot que vasculha a internet automaticamente atrás justamente dessa falha.

As portas de entrada mais comuns são:

  • Plugins e temas desatualizados: Este é, de longe, o caminho mais comum. Segundo os relatórios anuais da Patchstack, a grande maioria das vulnerabilidades conhecidas no ecossistema WordPress está em plugins, uma pequena parte em temas e quase nada no próprio WordPress. Os mais arriscados são os plugins que ninguém mais mantém ou que foram removidos do diretório de plugins do WordPress.org.
  • Plugins e temas nulled: Cópias piratas de plugins premium baixadas de sites de download duvidosos. Elas não custam nada, mas, com uma frequência surpreendente, vêm com um backdoor embutido.
  • Senhas fracas ou roubadas: Bots testam combinações de nomes de usuário e senhas 24 horas por dia. Quem usa a mesma senha em outros serviços vira alvo fácil no próximo vazamento de dados.
  • Vizinhos no mesmo plano de hospedagem: Se no mesmo plano ainda existe uma instalação de teste antiga, uma loja esquecida ou o site de 2016 em uma subpasta, o atacante consegue alcançar a partir dali todos os outros sites do plano.
  • Computadores infectados: Um malware no PC de um administrador pode ler os dados de acesso salvos e mandar tudo para os atacantes.

Para descobrir a causa, faça o seguinte:

  • Compare os seus plugins e temas com um banco de dados de vulnerabilidades, como Wordfence Intelligence, Patchstack ou WPScan. O que importa é se existe uma falha conhecida justamente para a versão que você tem instalada.
  • Analise os logs de acesso do servidor. São suspeitas as requisições POST para arquivos que nem existem no WordPress ou para arquivos na pasta wp-content/uploads. Os horários muitas vezes mostram quando tudo começou.
  • Verifique quando os arquivos suspeitos foram criados. A data é uma pista, mas não uma prova, porque os atacantes adoram falsificar as datas dos arquivos.

Como remover malware do WordPress?

Agora é hora de fazer a limpeza. Existem dois caminhos para isso.

Restaurar um backup limpo é o mais rápido. Mas só funciona se você tiver certeza de que o backup é anterior à invasão. Isso é mais difícil do que parece. Entre a invasão em si e os primeiros sinais visíveis costumam se passar semanas, às vezes meses, porque os atacantes primeiro instalam um backdoor e só o usam mais tarde. Além disso, você perde todo o conteúdo, os pedidos e os comentários desde o backup, e a brecha continua aberta. Se escolher esse caminho, atualize todos os plugins e temas logo depois da restauração e, mesmo assim, siga os passos abaixo.

Limpar o site manualmente leva mais tempo, mas é mais completo. O mais seguro é trabalhar em uma cópia, e não no site em produção. Faça assim:

  1. Substitua o WordPress por completo. Exclua as pastas wp-admin e wp-includes e coloque no lugar cópias novas da mesma versão, baixadas do WordPress.org. Faça o mesmo com os arquivos do diretório raiz, com exceção do wp-config.php. Para conferir se está tudo certo, use a linha de comando do WordPress:
    wp core verify-checksums
    O comando compara cada arquivo com os checksums oficiais do WordPress.org e também aponta arquivos que nem deveriam estar ali.
  2. Reinstale plugins e temas. Exclua cada plugin e cada tema e instale uma cópia nova de uma fonte confiável. O que você não usa simplesmente não volta. Para plugins do diretório oficial também existe uma verificação:
    wp plugin verify-checksums --all
    O comando não consegue verificar plugins premium, porque o WordPress.org não tem checksums para eles. Esses você baixa de novo direto do fornecedor.
  3. Vasculhe a pasta uploads. Ela existe para imagens, PDFs e outras mídias, não para PHP. Com este comando você encontra arquivos que não deveriam estar lá:
    find wp-content/uploads -type f -name "*.php"
    A exceção são arquivos vazios chamados index.php, que alguns plugins criam para que ninguém consiga listar o conteúdo de uma pasta. Todo o resto merece uma análise cuidadosa.
  4. Verifique tudo o que você não pode reinstalar. Isso inclui o wp-config.php, o .htaccess (um esconderijo comum para redirecionamentos que só valem para quem vem do Google ou do celular), o seu próprio tema com o functions.php dele e a pasta wp-content/mu-plugins. O WordPress carrega automaticamente tudo o que estiver nela, e não dá para desativar esses arquivos pelo painel. Sinais típicos de código malicioso são funções como eval, base64_decode ou gzinflate combinadas com sequências de caracteres longas e ilegíveis. Para uma primeira busca, este comando basta:
    grep -rlE "eval\(|base64_decode\(|gzinflate\(|str_rot13\(" wp-content/
    Um resultado ainda não é prova, porque plugins legítimos também usam algumas dessas funções. Mas ele mostra onde vale a pena olhar com mais atenção.
  5. Limpe o banco de dados. Código malicioso não fica só em arquivos. Primeiro, liste todos os administradores:
    wp user list --role=administrator --skip-plugins --skip-themes
    As duas opções no final garantem que o WordPress não carregue nem os plugins nem o tema e, assim, também não execute nenhum código malicioso que ainda esteja escondido neles. Exclua toda conta que você não conseguir identificar. Verifique também na tabela wp_options se siteurl e home ainda apontam para o seu domínio. Scripts injetados em posts e páginas você encontra assim:
    SELECT ID, post_title, post_type FROM wp_posts WHERE post_content LIKE '%<script%';
    Se a sua instalação usa um prefixo diferente de wp_, ajuste os nomes das tabelas. Aliás, os widgets também ficam em wp_options e merecem uma olhada.
  6. Confira as tarefas agendadas. Os atacantes gostam de configurar cron jobs que recriam o código malicioso de tempos em tempos. Verifique tanto os cron jobs do WordPress quanto os cron jobs no painel de controle da sua hospedagem.

Scanners como o Wordfence ou o Sucuri SiteCheck, que é gratuito, encontram muitos malwares conhecidos e são um bom complemento. Mas não confie só neles. Um scanner externo só enxerga o que chega ao navegador, e um plugin também só encontra o que já conhece. Backdoors novos ou bem escondidos passam despercebidos.

Como proteger o WordPress depois de ser hackeado?

O site está limpo? Agora vem a parte que decide se ele vai continuar assim.

  • Senhas novas para tudo: para cada usuário do WordPress, para o banco de dados (depois você coloca o novo valor no wp-config.php), para SFTP e para a sua conta na hospedagem. Pense também nas chaves de acesso a serviços externos guardadas em plugins, por exemplo para o envio de emails ou para gateways de pagamento.
  • Chaves de segurança novas: Substitua os salts no wp-config.php por valores novos do gerador oficial do WordPress.org. Com isso, todos os logins existentes deixam de valer, inclusive aqueles que um atacante talvez ainda tenha guardados em forma de cookie.
  • Feche a brecha: Atualize o WordPress, todos os plugins e todos os temas. Substitua os plugins que não recebem mais manutenção. Para manter isso sob controle de forma permanente, leia o nosso guia Como manter os plugins do WordPress atualizados e seguros.
  • Proteja os logins: Ative um segundo fator no login de todos os administradores (o que é 2FA e como funciona) e reduza o número de administradores ao mínimo necessário.
  • Desative o editor de arquivos: Com esta linha no wp-config.php, ninguém mais consegue alterar o código de plugins e temas pelo painel:
    define( 'DISALLOW_FILE_EDIT', true );
    Você encontra mais configurações nos nossos guias Proteger wp-config.php no WordPress e Definir corretamente as permissões de arquivo no WordPress.
  • Um firewall na frente: Um Web Application Firewall barra muitos ataques a vulnerabilidades conhecidas antes mesmo que eles cheguem ao WordPress.
  • Backups que funcionam de verdade: automáticos, diários, guardados fora do servidor e cobrindo pelo menos os últimos 30 dias. E restaurados uma vez como teste, antes que você precise deles em uma emergência.

Depois disso, fique de olho no site por algumas semanas. Se o código malicioso reaparecer depois de alguns dias, você deixou passar um backdoor ou a brecha ainda está aberta. Para ter uma visão geral de todas as medidas de proteção, veja o nosso checklist de segurança do WordPress.

“Este site pode ter sido invadido”: como remover o aviso do Google?

O Google não remove o aviso sozinho assim que você termina a limpeza. Você precisa agir:

  1. Entre no Google Search Console. Se você ainda não configurou o seu site lá, faça isso agora.
  2. Em “Segurança e ações manuais”, abra o relatório “Problemas de segurança”. Ali você vê o que o Google encontrou, muitas vezes com alguns endereços afetados como exemplo.
  3. Nas configurações, confira quem está cadastrado como usuário ou proprietário. Às vezes os atacantes se adicionam ali para que as páginas de spam deles entrem mais rápido no índice. Remova quem você não conhece e também o arquivo de verificação correspondente no diretório raiz do seu site.
  4. Solicite uma revisão pelo próprio relatório e descreva rapidamente o que você encontrou e corrigiu. Segundo o Google, a análise costuma levar alguns dias no caso de malware, cerca de um dia no caso de phishing e, às vezes, várias semanas no caso de páginas de spam criadas por hackers.

Depois da limpeza, as próprias páginas de spam devem retornar o código de status 404 ou 410. Aí elas vão sumindo do índice aos poucos. Se for urgente, a ferramenta de remoção de URLs do Search Console ajuda. Em seguida, envie de novo o seu sitemap verdadeiro. Se o seu servidor enviou spam, verifique também se o seu IP foi parar em alguma blacklist de email. A sua hospedagem pode ajudar você a tirar o IP dessa lista.

A LGPD obriga você a comunicar a invasão à ANPD?

A resposta depende de uma pergunta: dados pessoais podem ter sido afetados? Em uma loja virtual, em uma área de membros ou com mensagens do formulário de contato salvas no site, a resposta costuma ser sim. Até a tabela de usuários do WordPress guarda nomes e endereços de email.

Pelo Art. 48 da LGPD (Lei nº 13.709/2018), o controlador precisa comunicar à ANPD e aos titulares dos dados qualquer incidente de segurança que possa acarretar risco ou dano relevante a eles. O prazo está na Resolução CD/ANPD nº 15/2024, o Regulamento de Comunicação de Incidente de Segurança: são três dias úteis a partir do momento em que você fica sabendo que o incidente afetou dados pessoais. Se o incidente não trouxer risco nem dano relevante aos titulares, a comunicação não é obrigatória. Mas, quando dados de pagamento ou senhas podem ter vazado, fica difícil sustentar que não há risco.

Mesmo que no fim você decida não comunicar, o incidente precisa ficar registrado: a resolução exige que o controlador mantenha um registro dos incidentes de segurança, inclusive dos que não foram comunicados. A ANPD oferece um formulário online para a comunicação. Se houver um encarregado pelo tratamento de dados pessoais (o DPO), envolva essa pessoa imediatamente. E se o seu site também atende pessoas na União Europeia, vale ainda o RGPD europeu, que dá 72 horas para notificar a autoridade de controle. Esta seção não substitui uma consultoria jurídica.

Quando vale a pena chamar um profissional para a limpeza?

Muita coisa deste checklist você consegue fazer sozinho se conhece bem arquivos, banco de dados e servidor. Em alguns casos, porém, ajuda profissional continua sendo a melhor escolha:

  • A sua loja processa dados de pagamento e há suspeita de que dados de cartão foram roubados.
  • O site volta a ser infectado depois de cada limpeza.
  • Não existe nenhum backup que preste, e linha de comando não é a sua praia.
  • É o site de um cliente, e mais tarde você vai precisar comprovar com exatidão o que aconteceu.

O primeiro contato costuma ser a sua hospedagem. Muitas empresas oferecem a limpeza como serviço pago. Além disso, existem serviços especializados, como os da Wordfence ou da Sucuri. Pergunte antes se a busca pela porta de entrada está incluída no preço. Remover só o código malicioso resolve o problema apenas até o próximo ataque.

Como o InspectWP ajuda você depois de uma invasão

Vamos deixar claro logo de início: o InspectWP não é um scanner de malware e não substitui uma limpeza. Mas o relatório ajuda você em dois pontos que costumam ficar de lado na correria: encontrar a brecha mais provável e conferir tudo depois.

Mesmo o relatório gratuito lista os plugins e temas que detecta no seu site e destaca os que foram removidos do diretório de plugins do WordPress.org ou que não recebem atualização há mais de um ano. Ele mostra se você está usando uma versão desatualizada do WordPress e se há arquivos acessíveis de fora que não deveriam estar ali, como um debug.log público, backups do banco de dados ou um arquivo chamado .env. Ele também verifica se o seu login está protegido contra tentativas de senha em massa e se é possível descobrir nomes de usuário de fora.

Nos planos Premium e Agency, você vê também as versões instaladas dos seus plugins e as vulnerabilidades conhecidas delas. Assim, muitas vezes você encontra a causa mais provável em poucos minutos. Com o InspectWP WordPress Connector, você fica sabendo ainda se arquivos do próprio WordPress foram alterados (o Connector compara esses arquivos com os checksums do WordPress.org), quantos administradores existem e se pastas importantes têm permissão de escrita.

Depois da limpeza, os relatórios automáticos valem a pena. O InspectWP passa a verificar o seu site regularmente e, se você quiser, manda uma notificação por email. Comparando dois relatórios, você vê em um piscar de olhos o que mudou, por exemplo um plugin novo que supostamente ninguém instalou. Você recebe o seu primeiro relatório gratuito em poucos minutos.

Verifique seu site WordPress agora

O InspectWP analisa seu site WordPress em busca de problemas de segurança, problemas de SEO, conformidade com GDPR e desempenho — gratuitamente.

Analise seu site grátis