
La sécurité d’un site WordPress n’est pas un luxe réservé aux grandes entreprises. Chaque jour, des milliers de sites sont compromis par des attaques automatisées qui exploitent des failles connues, des mots de passe faibles ou des plugins obsolètes. Le problème : la majorité de ces intrusions auraient pu être évitées avec quelques mesures simples appliquées dès le départ.
En tant que développeur full-stack depuis 2014, j’ai nettoyé suffisamment de sites piratés pour savoir qu’il vaut mieux prévenir que guérir. Un site compromis, c’est une perte de référencement, une atteinte à la réputation, et souvent des données clients exposées. Sans parler du temps passé à tout remettre en ordre.
Ce guide couvre 12 étapes concrètes pour sécuriser votre site WordPress. Pas de théorie abstraite : chaque point s’accompagne d’instructions précises, de bouts de code à copier-coller et de recommandations d’outils testés en production. Que vous gériez un blog personnel ou un site e-commerce, ces mesures constituent le socle de sécurité minimal à mettre en place. Commençons par les fondations.
Étapes 1 à 3 : les fondations de la sécurité WordPress
1. Maintenir WordPress, thèmes et plugins à jour
Les mises à jour ne sont pas cosmétiques. Elles corrigent des vulnérabilités identifiées et documentées publiquement. Dès qu’un patch de sécurité sort, les attaquants automatisent l’exploitation de la faille sur les sites qui ne l’ont pas appliqué.
Activez les mises à jour automatiques pour le cœur de WordPress et les plugins critiques :
// Dans wp-config.php
define('WP_AUTO_UPDATE_CORE', true);
// Ou via WP-CLI pour forcer les mises à jour plugins
wp plugin update --all
wp theme update --all
wp core update
Supprimez tout plugin ou thème inactif. Même désactivé, un plugin vulnérable reste exploitable si ses fichiers sont accessibles sur le serveur.
2. Utiliser des mots de passe robustes
Un mot de passe de 8 caractères se craque en quelques heures avec les outils actuels. Imposez un minimum de 16 caractères, mélangeant majuscules, minuscules, chiffres et caractères spéciaux. Utilisez un gestionnaire de mots de passe comme Bitwarden ou KeePass.
Vérifiez la robustesse des comptes existants avec WP-CLI :
# Lister tous les administrateurs
wp user list --role=administrator --fields=ID,user_login,user_email
# Forcer le changement de mot de passe pour un utilisateur
wp user update 1 --user_pass="NouveauMotDePasseRobuste2026!"
Ne réutilisez jamais le même mot de passe entre votre hébergeur, votre base de données, votre FTP et votre compte WordPress.
3. Activer l’authentification à deux facteurs (2FA)
Même avec un mot de passe solide, un keylogger ou une fuite de base de données peut le compromettre. La 2FA ajoute une couche supplémentaire : un code temporaire généré par une application sur votre téléphone.
Les plugins recommandés pour la 2FA sur WordPress :
- WP 2FA : simple, gratuit, compatible avec Google Authenticator et Authy
- Two Factor Authentication : léger, open-source, supporte les clés FIDO U2F
- Wordfence Login Security : module autonome, indépendant du plugin Wordfence complet
Activez la 2FA pour tous les comptes administrateurs et éditeurs. Sans exception.
Étapes 4 à 6 : renforcer la configuration serveur
4. Protéger le fichier wp-config.php
Le fichier wp-config.php contient les identifiants de votre base de données et les clés de sécurité de WordPress. Il ne doit jamais être accessible depuis le navigateur.

Ajoutez ces directives dans votre fichier .htaccess à la racine du site :
# Protéger wp-config.php
<Files wp-config.php>
Order Allow,Deny
Deny from all
</Files>
# Protéger .htaccess lui-même
<Files .htaccess>
Order Allow,Deny
Deny from all
</Files>
Ajoutez aussi les constantes de sécurité dans wp-config.php :
// Désactiver l'éditeur de fichiers intégré
define('DISALLOW_FILE_EDIT', true);
// Forcer SSL pour l'administration
define('FORCE_SSL_ADMIN', true);
// Limiter les révisions d'articles
define('WP_POST_REVISIONS', 5);
// Désactiver le débogage en production
define('WP_DEBUG', false);
define('WP_DEBUG_LOG', false);
define('WP_DEBUG_DISPLAY', false);
5. Sécuriser le fichier .htaccess
Le fichier .htaccess offre un contrôle puissant sur le comportement du serveur Apache. Voici les règles de sécurité essentielles :
# Désactiver le listing des répertoires
Options -Indexes
# Bloquer l'exécution de PHP dans /uploads/
<Directory "/wp-content/uploads/">
<FilesMatch "\.php$">
Order Allow,Deny
Deny from all
</FilesMatch>
</Directory>
# Bloquer l'accès aux fichiers sensibles
<FilesMatch "(\.env|\.git|\.log|error_log)$">
Order Allow,Deny
Deny from all
</FilesMatch>
# Headers de sécurité
Header always set X-Content-Type-Options "nosniff"
Header always set X-Frame-Options "SAMEORIGIN"
Header always set X-XSS-Protection "1; mode=block"
Header always set Referrer-Policy "strict-origin-when-cross-origin"
6. Configurer les permissions de fichiers
Des permissions trop permissives exposent vos fichiers à des modifications non autorisées. Voici les permissions recommandées pour WordPress :
# Permissions recommandées
find /var/www/web-city.fr -type d -exec chmod 755 {} \;
find /var/www/web-city.fr -type f -exec chmod 644 {} \;
# wp-config.php en lecture seule
chmod 400 /var/www/web-city.fr/wp-config.php
# Propriétaire correct (adapter selon votre config)
chown -R www-data:www-data /var/www/web-city.fr
Vérifiez régulièrement qu’aucun fichier n’a été modifié de manière inattendue. Un changement de permission non sollicité est souvent le signe d’une compromission.
Étapes 7 à 9 : sécurisation applicative
7. Installer un certificat SSL et forcer HTTPS
Le SSL chiffre les échanges entre le navigateur et le serveur. Sans lui, les identifiants de connexion transitent en clair sur le réseau. Let’s Encrypt fournit des certificats gratuits, renouvelables automatiquement.
# Installer Certbot et obtenir un certificat
apt install certbot python3-certbot-apache
certbot --apache -d web-city.fr -d www.web-city.fr
# Renouvellement automatique (déjà configuré par Certbot)
certbot renew --dry-run
Ajoutez la redirection HTTP vers HTTPS dans .htaccess :
RewriteEngine On
RewriteCond %{HTTPS} !=on
RewriteRule ^(.*)$ https://%{HTTP_HOST}/$1 [R=301,L]
8. Désactiver XML-RPC
Le protocole XML-RPC est une porte d’entrée historique pour les attaques par force brute et les attaques DDoS amplifiées. Si vous n’utilisez pas l’application mobile WordPress ou Jetpack, désactivez-le.
# Dans .htaccess
<Files xmlrpc.php>
Order Allow,Deny
Deny from all
</Files>
Ou via un filtre PHP dans functions.php :
// Désactiver XML-RPC complètement
add_filter('xmlrpc_enabled', '__return_false');
// Supprimer le lien dans le header
remove_action('wp_head', 'rsd_link');
9. Modifier l’URL de connexion
L’URL par défaut /wp-admin/ et /wp-login.php est la première cible des bots. Changer cette URL réduit drastiquement les tentatives de force brute.
Le plugin WPS Hide Login fait le travail simplement : il vous permet de définir une URL personnalisée (par exemple /acces-admin/) sans modifier aucun fichier du cœur de WordPress. Léger, gratuit, et compatible avec la quasi-totalité des configurations.
Alternative plus complète : iThemes Security (renommé Solid Security) propose cette fonctionnalité parmi de nombreuses autres options de durcissement.
Étapes 10 à 12 : surveillance et sauvegarde
10. Mettre en place des sauvegardes automatiques
Une sauvegarde fiable est votre dernier rempart. Si tout le reste échoue, une sauvegarde récente vous permet de restaurer votre site en quelques minutes.

Règles d’or des sauvegardes :
- Sauvegarde quotidienne de la base de données
- Sauvegarde hebdomadaire des fichiers complets
- Stockage externe (pas sur le même serveur)
- Test de restauration mensuel
Script de sauvegarde via WP-CLI :
#!/bin/bash
DATE=$(date +%Y%m%d)
SITE_PATH="/var/www/web-city.fr"
BACKUP_DIR="/backups/web-city"
# Sauvegarde base de données
wp --allow-root --path=$SITE_PATH db export $BACKUP_DIR/db_$DATE.sql
# Sauvegarde fichiers
tar -czf $BACKUP_DIR/files_$DATE.tar.gz $SITE_PATH
# Nettoyage des sauvegardes de plus de 30 jours
find $BACKUP_DIR -type f -mtime +30 -delete
Plugins recommandés : UpdraftPlus (gratuit, sauvegarde vers Google Drive, Dropbox, S3) ou BlogVault (payant, sauvegardes incrémentales et restauration en un clic). ★ lien partenaire
11. Utiliser un plugin de sécurité complet
Un plugin de sécurité centralise la détection des menaces, le pare-feu applicatif et le scan de malwares. Les trois leaders du marché :
- Wordfence Security : pare-feu, scan de malwares, protection brute force. Version gratuite très complète.
- Sucuri Security : monitoring d’intégrité, audit de sécurité, pare-feu cloud (version payante).
- Solid Security (ex-iThemes) : durcissement WordPress, détection de changements de fichiers, 2FA intégrée.
Un seul plugin de sécurité suffit. En installer plusieurs crée des conflits et des faux positifs. Wordfence reste le choix le plus populaire, avec plus de 4 millions d’installations actives. ★ lien partenaire
12. Surveiller activement votre site
La sécurité n’est pas un état, c’est un processus. Mettez en place une surveillance active :
- Google Search Console : alertes en cas de détection de malware ou de pages piratées
- Uptime monitoring : UptimeRobot (gratuit) ou Hetrixtools pour être alerté si le site tombe
- Logs serveur : analysez régulièrement les tentatives de connexion échouées
- Scan régulier : planifiez un scan Wordfence quotidien
# Vérifier les dernières connexions échouées (dans les logs)
grep "POST /wp-login.php" /var/log/apache2/access.log | tail -50
# Scanner les fichiers modifiés récemment
find /var/www/web-city.fr -type f -mtime -1 -name "*.php" | head -20
Checklist de sécurité WordPress
Voici un résumé des 12 étapes à cocher. Imprimez cette liste et parcourez-la pour chaque site que vous gérez :

- WordPress, thèmes et plugins à jour
- Mots de passe de 16+ caractères, uniques
- 2FA activée sur tous les comptes admin
- wp-config.php protégé et durci
- .htaccess sécurisé avec headers de sécurité
- Permissions fichiers : 644 / dossiers : 755
- SSL actif, HTTPS forcé
- XML-RPC désactivé
- URL de connexion modifiée
- Sauvegardes automatiques, stockage externe
- Plugin de sécurité installé et configuré
- Surveillance et alertes en place
Ces 12 mesures bloquent la grande majorité des attaques automatisées. Aucune n’est complexe à mettre en œuvre ; le plus difficile, c’est de les appliquer toutes et de les maintenir dans le temps.
Pour aller plus loin, consultez notre guide pour créer un site WordPress en 2026 et découvrez les meilleurs plugins WordPress gratuits pour compléter votre installation.
FAQ
Mon site WordPress est-il réellement menacé si c'est un petit blog ?
Oui. Les attaques automatisées ne distinguent pas les petits sites des grands. Les bots scannent en permanence les sites WordPress pour exploiter des failles connues, quelle que soit la taille du site. Un petit blog piraté sert souvent de relais pour envoyer du spam ou héberger du phishing.
Quel est le meilleur plugin de sécurité gratuit pour WordPress ?
Wordfence Security offre le meilleur rapport fonctionnalités/prix en version gratuite. Il inclut un pare-feu applicatif, un scanner de malwares, la protection contre le brute force et un tableau de bord de sécurité détaillé. La version premium ajoute les règles de pare-feu en temps réel et le blocage par pays.
À quelle fréquence dois-je sauvegarder mon site WordPress ?
La fréquence dépend de l'activité du site. Un blog avec 2-3 articles par semaine : sauvegarde quotidienne de la base de données, hebdomadaire pour les fichiers. Un site e-commerce ou à fort trafic : sauvegarde toutes les 6 heures minimum. Conservez au moins 30 jours d'historique et stockez les sauvegardes sur un service externe.
Est-ce que changer l'URL de connexion suffit à protéger mon site ?
Non, c'est une mesure complémentaire, pas suffisante en elle-même. Changer l'URL de connexion réduit les tentatives de brute force automatisées, mais un attaquant déterminé peut la retrouver. Combinez cette mesure avec un mot de passe fort, la 2FA et un plugin de sécurité pour une protection efficace.
Comment savoir si mon site WordPress a été piraté ?
Les signes courants : redirections vers des sites suspects, pages inconnues indexées dans Google, ralentissement soudain, fichiers PHP inconnus dans /uploads/, utilisateurs administrateurs que vous n'avez pas créés, alertes dans Google Search Console. Lancez un scan avec Wordfence ou Sucuri SiteCheck (gratuit en ligne) pour un diagnostic rapide.