Hardening WordPress: 15 ações essenciais para blindar seu site em 2026
A maior parte das invasões em WordPress não acontece por causa de falhas exóticas — acontece porque o site está com as configurações default. Login em /wp-admin/, XML-RPC ligado, versão do WordPress visível, força bruta sem bloqueio, arquivos sensíveis acessíveis. Cada uma dessas portas abertas é um convite. Quem aplica um hardening básico bloqueia 90% dos ataques automatizados que tentam invadir sites WordPress todos os dias.
Este guia traz as 15 ações de hardening mais eficazes em 2026, com o código pronto para colar, riscos de cada uma, e a ordem recomendada para aplicar.
O que é hardening (e por que importa)
Hardening é o conjunto de ajustes que reduz a superfície de ataque de um sistema. No WordPress, significa configurar arquivos, plugins e permissões para fechar portas que vêm abertas por padrão.
Não confunda hardening com firewall ou backup. Os três são camadas diferentes:
- Hardening — fecha portas, dificulta exploração de vulnerabilidades conhecidas.
- Firewall — bloqueia tentativas de ataque que conseguem chegar.
- Backup — garante recuperação se as duas primeiras falharem.
Um site bem protegido tem as três camadas.
As 15 ações, em ordem de aplicação
1. Atualize WordPress, plugins e tema para a versão mais recente
Vulnerabilidades conhecidas são exploradas em massa por bots. Manter-se atualizado é o hardening mais barato e mais eficaz.
Como: ative atualizações automáticas para versões menores no wp-config.php:
define('WP_AUTO_UPDATE_CORE', 'minor');
Para plugins críticos, considere atualização manual com testes em staging antes de aplicar em produção.
2. Remova plugins e temas inativos
Cada plugin/tema desinstalado mas presente no servidor é vetor de ataque. Bots procuram exatamente essa pasta esquecida.
Como: Plugins > Instalados, desative E delete. Aparência > Temas, mantenha apenas o ativo + 1 fallback oficial (Twenty Twenty-Four por exemplo) e delete o resto.
3. Mude a URL de login
/wp-admin/ e /wp-login.php são os alvos mais óbvios. Mudá-los para algo como /gerenciar/ ou /entrar/ corta milhares de tentativas automatizadas por dia.
Como: instale WPS Hide Login (você já fez!). Configure URL alternativa e URL de redirecionamento para tentativas no /wp-admin/.
4. Limite tentativas de login
Mesmo com URL escondida, força bruta tenta. Limite tentativas evita.
Como: plugin Limit Login Attempts Reloaded. Configure:
- 4 tentativas antes do lockout
- Lockout de 20 minutos
- Lockout maior (24h) após 4 lockouts
- Ativar notificação por email
5. Ative 2FA (autenticação de dois fatores)
Mesmo que a senha vaze, o invasor não entra sem o código do app.
Como: Wordfence (gratuito) ou WP 2FA ativam 2FA via Google Authenticator/Authy. Para todos os admins, é obrigatório. Para editores, recomendado.
6. Force senhas fortes para todos os usuários
Senha “Senha123” continua sendo o que pesquisa de violação mostra como mais usada.
Como: plugin Password Policy Manager ou função no functions.php:
add_action('user_profile_update_errors', 'force_strong_password', 10, 3);
function force_strong_password($errors, $update, $user) {
if (!empty($_POST['pass1'])) {
$password = $_POST['pass1'];
if (strlen($password) < 12 || !preg_match('/[A-Z]/', $password) || !preg_match('/[0-9]/', $password) || !preg_match('/[^A-Za-z0-9]/', $password)) {
$errors->add('weak_password', 'Erro: Senha precisa ter pelo menos 12 caracteres, com maiúscula, número e símbolo.');
}
}
}
7. Desabilite XML-RPC se não usar
XML-RPC é um endpoint legacy do WordPress usado por apps mobile antigos e Jetpack. É também alvo favorito de força bruta amplificada.
Como: se você não usa app mobile do WordPress nem Jetpack, bloqueie no .htaccess:
Order Deny,Allow
Deny from all
8. Esconda a versão do WordPress
Versão visível no código-fonte e em /readme.html ajuda bots a saber se vale a pena tentar exploits específicos.
Como: adicione no functions.php do tema (ou em plugin de snippets):
remove_action('wp_head', 'wp_generator');
add_filter('the_generator', '__return_empty_string');
E delete o /readme.html da raiz (ou bloqueie com .htaccess):
Order Allow,Deny Deny from all
9. Proteja wp-config.php
Arquivo mais sensível do WordPress. Tem senha do banco. Tem que ser inacessível via web.
Como: mova o wp-config.php para o diretório acima da raiz pública (/public_html/). O WordPress procura automaticamente um diretório acima. Se não puder mover, bloqueie no .htaccess:
Order Allow,Deny
Deny from all
E desabilite edição via wp-admin:
define('DISALLOW_FILE_EDIT', true);
10. Desabilite execução PHP em /wp-content/uploads/
Pasta de uploads não deve executar PHP. Quando deveria. Mas backdoors entram exatamente aqui.
Como: crie ou edite /wp-content/uploads/.htaccess:
Order Allow,Deny
Deny from all
11. Adicione headers de segurança no .htaccess
Headers HTTP que o navegador respeita e bloqueiam várias classes de ataque.
Como: adicione no .htaccess:
Header set X-Frame-Options "SAMEORIGIN"
Header set X-Content-Type-Options "nosniff"
Header set Referrer-Policy "strict-origin-when-cross-origin"
Header set Permissions-Policy "geolocation=(), camera=(), microphone=()"
Header set Strict-Transport-Security "max-age=31536000; includeSubDomains"
Teste o resultado em https://securityheaders.com.
12. Force SSL administrativo
Painel admin sempre via HTTPS, mesmo se algum link cair em HTTP.
Como: no wp-config.php:
define('FORCE_SSL_ADMIN', true);
13. Renomeie o prefixo das tabelas
Padrão é wp_. Trocar para xy7_ ou similar dificulta SQL injection cega que assume o prefixo.
Como: somente em instalação nova. Em site existente, exige plugin específico ou trabalho manual com Find&Replace no banco. Pode quebrar muita coisa se feito errado.
14. Configure permissões corretas de arquivos
Permissão muito aberta deixa arquivo gravável por usuários indevidos. Muito restrita quebra funcionalidades.
Recomendação:
- Pastas:
755 - Arquivos:
644 wp-config.php:600ou640
Como (via SSH):
find /caminho/do/site -type d -exec chmod 755 {} \;
find /caminho/do/site -type f -exec chmod 644 {} \;
chmod 600 /caminho/do/site/wp-config.php
15. Salts únicos e fortes no wp-config.php
Salts são usados pelo WordPress para criptografar sessões e cookies. Padrões fracos comprometem segurança.
Como: gere salts novos em https://api.wordpress.org/secret-key/1.1/salt/ e cole no wp-config.php, substituindo as 8 linhas existentes. Faça isso após qualquer incidente ou a cada 6 meses.
Hardenings adicionais (bônus para sites comerciais)
16. Bloqueio geográfico (geo-blocking)
Se você atende só Brasil, bloqueie acessos administrativos vindos de fora.
Como: Cloudflare (Free) → Security → WAF → Custom rules:
Field: Country
Operator: not equal
Value: Brazil
Then: Block
URL Path: contains "/wp-admin"
17. Auditar e desativar XML-RPC seletivamente
Em vez de bloquear tudo, desabilite apenas pingbacks (vetor amplificação):
add_filter('xmlrpc_methods', function($methods) {
unset($methods['pingback.ping']);
unset($methods['pingback.extensions.getPingbacks']);
return $methods;
});
18. Logar todas as ações de admin
Plugin Activity Log (WP Activity Log) registra cada ação. Em caso de incidente, você tem rastro.
19. Restringir REST API
WP REST API é poderoso mas expõe dados. Restringe acesso a usuários autenticados:
add_filter('rest_authentication_errors', function ($result) {
if (true === $result || is_wp_error($result)) {
return $result;
}
if (!is_user_logged_in()) {
return new WP_Error('rest_not_logged_in', 'Você precisa estar autenticado.', array('status' => 401));
}
return $result;
});
(Atenção: pode quebrar plugins que dependem da REST API pública. Teste.)
20. Backup regular off-site
Já cobrimos no post sobre backup, mas vale repetir: sem backup off-site, hardening é só metade do trabalho.
Como testar se o hardening funcionou
Após aplicar, valide com ferramentas externas:
- WPScan (https://wpscan.com) — varre vulnerabilidades conhecidas
- Security Headers (https://securityheaders.com) — deve dar A ou A+
- SSL Labs (https://www.ssllabs.com/ssltest/) — deve dar A
- Mozilla Observatory (https://observatory.mozilla.org) — alvo: pontuação B+ ou superior
Ordem recomendada de aplicação (1 a 2 dias)
Dia 1 (rápido — 2 horas):
- Atualizar tudo
- Remover plugins/temas inativos
- Instalar Wordfence + Limit Login Attempts
- Ativar 2FA
- Mudar URL de login
Dia 2 (técnico — 4 a 6 horas):
- Editar
wp-config.php(DISALLOW_FILE_EDIT, FORCE_SSL_ADMIN, salts novos) - Editar
.htaccess(headers de segurança, bloqueio xmlrpc, bloqueio readme) - Bloquear PHP em uploads
- Esconder versão WP
- Testar tudo (login, frontend, formulários)
Como o Site Seguro aplica hardening
Cada plano do Site Seguro inclui hardening completo configurado pelo time técnico — não é só “rodar plugin”, é cada wp-config.php revisado, .htaccess ajustado para o ambiente, plugins selecionados e configurados, salts renovados, permissões auditadas. Para sites complexos, fazemos auditoria adicional de plugins customizados.
Quer hardening profissional? Fale com a gente.
Perguntas frequentes
Hardening atrapalha a performance do site?
Não. Hardening é configuração — não adiciona carga. Em alguns casos (esconder versão, bloquear xmlrpc), até melhora porque corta requisições inúteis.
Hardening sozinho dispensa firewall?
Não. Hardening reduz a superfície; firewall bloqueia o que ainda passa. As duas camadas se complementam.
Posso aplicar hardening em qualquer plano de hospedagem?
A maioria sim. Hospedagens muito restritas (compartilhadas baratas) podem não permitir editar .htaccess ou wp-config.php. Nesses casos, vale considerar migração.
Aplicar tudo de uma vez pode quebrar o site?
Sim, especialmente itens 9, 10, 13, 14. Aplique gradualmente e teste após cada item. Tenha backup recente antes de começar.
O hardening protege contra ataques DDoS?
Não diretamente. DDoS é mitigado por Cloudflare ou CDN com WAF. Hardening é proteção contra exploração de vulnerabilidades.
Conclusão
Hardening é o passo de menor custo e maior retorno em segurança WordPress. 15 ações executadas em 1 a 2 dias cortam a vasta maioria dos ataques automatizados. Comece pelos itens 1-5 hoje (mesmo se você não é técnico) e expanda para 6-15 com calma — sempre com backup antes.
Quer que o Site Seguro execute esse hardening pra você? — atendimento das 7h às 22h.
Leia também:
- Plugins de segurança WordPress: 7 melhores em 2026
- SSL no WordPress: como instalar HTTPS gratuito
- Monitoramento 24/7 de site: o que é, como funciona