Site WordPress piraté : les six étapes dans le bon ordre

Un site WordPress piraté nécessite une intervention méthodique en six étapes pour un nettoyage complet et durable

Un message d’alerte Google dans la Search Console, des redirections vers des sites de pharmacie en ligne, ou un hébergeur qui suspend le compte sans prévenir : découvrir que son site WordPress a été piraté déclenche un stress immédiat. Pourtant, la réaction des premières minutes détermine si le nettoyage prendra deux heures ou deux semaines. Selon une étude de Sucuri publiée en 2024, plus de 90 % des sites CMS infectés tournaient sous WordPress, non pas parce que le cœur est fragile, mais parce que les extensions obsolètes et les mots de passe faibles constituent des portes grandes ouvertes. Voici la méthode que j’applique en intervention, dans l’ordre exact où chaque action doit se dérouler.

Dans cet article

  • Un site WordPress piraté doit être mis hors ligne immédiatement avant toute tentative de nettoyage
  • La sauvegarde de l’état infecté est indispensable : elle sert de preuve et de filet de sécurité
  • Le nettoyage manuel fichier par fichier reste plus fiable qu’un simple scan automatique
  • Changer tous les mots de passe et les clés de salage WordPress fait partie du protocole obligatoire
  • Le coût d’une intervention professionnelle varie entre 150 et 600 € selon la gravité
  • Après nettoyage, cinq mesures de durcissement réduisent le risque de récidive de plus de 95 %

Reconnaître les signes d’un piratage WordPress

Avant de parler de nettoyage, il faut savoir repérer l’intrusion. Certains piratages sont bruyants : la page d’accueil affiche un message revendicateur ou redirige vers un site tiers. D’autres sont silencieux et passent inaperçus pendant des semaines. Voici les indicateurs les plus courants que je retrouve lors de mes interventions :

  • Redirections non souhaitées : le visiteur atterrit sur un site de vente de médicaments, de contrefaçons ou de paris en ligne, surtout depuis un mobile.
  • Fichiers inconnus dans wp-content/uploads : des fichiers PHP portant des noms aléatoires comme xkj82.php ou about.php placés au milieu des images.
  • Alerte Google : la Search Console signale « Ce site peut avoir été piraté » ou « Logiciel malveillant détecté ».
  • Comptes administrateurs inconnus dans la table wp_users.
  • Envoi massif de spam depuis le serveur, souvent détecté par l’hébergeur avant le propriétaire du site.
  • Ralentissement brutal : le serveur consomme soudainement 100 % du processeur à cause d’un script de minage de cryptomonnaie.
  • Modifications du fichier .htaccess ou de wp-config.php avec des lignes encodées en base64.

La majorité des propriétaires de sites ne découvrent le piratage que par un signal externe : un client qui signale une redirection, Google qui déclasse les pages, ou l’hébergeur qui coupe l’accès. C’est pourquoi un monitoring régulier fait toute la différence. Un simple contrôle hebdomadaire de la Search Console et une vérification des fichiers modifiés récemment suffisent à détecter une intrusion dans ses premiers jours.

Étape 1 : mettre le site hors ligne immédiatement

Le premier réflexe quand on découvre que son site WordPress est piraté : couper l’accès public. Chaque minute où le site reste en ligne, le code malveillant continue de tourner. Il peut infecter les visiteurs, envoyer du spam, ou aggraver le déclassement SEO. Plusieurs méthodes existent selon le niveau d’accès dont on dispose :

Via le panneau hébergeur : la plupart des hébergeurs comme OVHcloud ou o2switch proposent un bouton pour suspendre le site ou activer une page de maintenance depuis l’interface d’administration. C’est la méthode la plus rapide.

Via le fichier .htaccess : si l’on a encore un accès FTP, on peut ajouter ces lignes en tête du fichier pour bloquer tout le trafic sauf sa propre adresse IP :

Order Deny,Allow
Deny from all
Allow from VOTRE.IP.ICI

Via une page de maintenance PHP : créer un fichier maintenance.html à la racine et rediriger tout le trafic dessus. Cette approche évite d’exécuter le moindre code WordPress pendant l’investigation.

Il ne faut surtout pas confondre « mettre en maintenance » et « supprimer des fichiers au hasard ». À ce stade, on ne touche à rien d’autre. Le site est figé, prêt pour l’étape suivante.

Étape 2 : sauvegarder l’état infecté avant de toucher quoi que ce soit

C’est l’étape que la plupart des tutoriels oublient, et c’est pourtant la plus importante. Avant de supprimer le moindre fichier suspect, il faut réaliser une copie complète du site dans son état infecté. Deux raisons à cela :

  • Preuve d’intrusion : si le piratage a causé des dommages (vol de données clients, envoi de spam), cette sauvegarde constitue un élément de preuve. Selon l’obligation de notification de la CNIL, toute violation de données personnelles doit être signalée dans les 72 heures. Avoir une copie de l’état compromis facilite cette déclaration.
  • Filet de sécurité : si le nettoyage tourne mal ou si l’on supprime un fichier légitime par erreur, on peut revenir en arrière.

La sauvegarde doit inclure tous les fichiers du serveur (pas uniquement wp-content) et un export complet de la base de données. En ligne de commande, cela se fait en deux opérations :

tar -czf backup-infecte-$(date +%Y%m%d).tar.gz /chemin/vers/le/site/
mysqldump -u utilisateur -p nom_base > backup-infecte-$(date +%Y%m%d).sql

Pour ceux qui utilisent Git pour versionner leur site, c’est le moment de constater l’intérêt d’avoir un historique propre : un simple git diff entre le dernier commit sain et l’état actuel révèle chaque fichier modifié par l’attaquant.

Stockez cette sauvegarde en dehors du serveur compromis : sur votre poste local ou dans un stockage cloud séparé. Ne la laissez jamais sur le même hébergement.

Étape 3 : identifier la faille d’entrée

Nettoyer sans comprendre comment l’attaquant est entré, c’est colmater une fuite sans trouver le tuyau percé. Le piratage reviendra dans les jours qui suivent. Voici les quatre vecteurs d’intrusion que je retrouve dans plus de 95 % des cas :

Vecteur d’intrusion Fréquence estimée Comment le vérifier
Extension vulnérable ou obsolète 52 % Comparer les versions installées avec les bulletins de sécurité sur wpscan.com
Mot de passe admin faible ou réutilisé 22 % Vérifier les logs de connexion, chercher des tentatives de brute force
Thème premium piraté (nulled) 15 % Chercher des fonctions eval() ou base64_decode() dans les fichiers du thème
Version PHP ou WordPress obsolète 8 % Vérifier la version dans le tableau de bord ou via wp-includes/version.php
Accès FTP/SSH compromis 3 % Vérifier les logs d’accès FTP côté hébergeur

Pour mener l’enquête, les logs d’accès du serveur sont la meilleure source. Cherchez des requêtes POST inhabituelles vers des fichiers PHP dans wp-content/uploads ou vers des URL qui n’existent pas dans WordPress. Un accès direct à un fichier comme /wp-content/uploads/2024/03/cache.php est un signal d’alarme immédiat.

La commande suivante permet de lister tous les fichiers PHP modifiés dans les sept derniers jours, ce qui aide à localiser les fichiers injectés :

find /chemin/du/site -name "*.php" -mtime -7 -ls

Si le site utilise une version de PHP obsolète, la faille peut venir du serveur lui-même. Certaines versions antérieures à PHP 8.1 contiennent des vulnérabilités connues qui permettent l’exécution de code à distance.

Étape 4 : nettoyer les fichiers et la base de données

C’est le cœur de l’intervention. Le nettoyage se fait en deux passes parallèles : les fichiers sur le serveur et les données dans MySQL. Il ne suffit pas de supprimer les fichiers suspects : il faut aussi vérifier que la base ne contient pas de code malveillant injecté dans les articles, les options ou les métadonnées.

Nettoyage des fichiers

La méthode la plus fiable consiste à remplacer le cœur de WordPress par une copie fraîche. On télécharge la même version depuis wordpress.org et on écrase les dossiers wp-admin et wp-includes ainsi que les fichiers racine (sauf wp-config.php et .htaccess qui seront traités séparément). Ce remplacement élimine tout code injecté dans le cœur sans risque de perdre du contenu.

Pour les extensions, la règle est simple : supprimer le dossier de chaque extension et la réinstaller depuis le dépôt officiel. Ne jamais se contenter de « mettre à jour » une extension compromise, car les fichiers injectés ne sont pas écrasés par la mise à jour.

Les fichiers à inspecter manuellement :

  • wp-config.php : chercher des lignes require, include ou eval qui n’ont rien à y faire.
  • .htaccess : comparer avec la version par défaut de WordPress. Toute règle de redirection que vous n’avez pas ajoutée est suspecte.
  • wp-content/uploads : aucun fichier .php n’a sa place dans ce dossier. Supprimer tous les fichiers PHP trouvés ici.
  • Le thème actif : si c’est un thème premium, le retélécharger depuis la source d’achat originale.

Nettoyage de la base de données

Les attaquants injectent souvent du JavaScript malveillant directement dans le contenu des articles ou dans la table wp_options. Une requête SQL permet de détecter les injections les plus courantes :

SELECT * FROM wp_posts WHERE post_content LIKE '%<script%' AND post_content LIKE '%eval(%';
SELECT * FROM wp_options WHERE option_value LIKE '%base64_decode%';

Profitez-en pour nettoyer les révisions, transients et tables orphelines qui alourdissent la base. Un site propre après piratage, c’est l’occasion de repartir sur des bases saines.

Vérifiez aussi la table wp_users : supprimez tout compte administrateur que vous ne reconnaissez pas. Les pirates créent systématiquement un compte de secours pour revenir même après le nettoyage.

Étape 5 : changer tous les accès et les clés de salage

Un nettoyage de fichiers parfait ne sert à rien si l’attaquant conserve les identifiants. Voici la liste complète des accès à réinitialiser, sans exception :

  • Mot de passe administrateur WordPress : choisir un mot de passe d’au moins 16 caractères, généré aléatoirement. Un gestionnaire de mots de passe comme Bitwarden ou KeePass est indispensable.
  • Mot de passe de la base de données : le modifier dans le panneau hébergeur, puis mettre à jour la valeur dans wp-config.php (constante DB_PASSWORD).
  • Mot de passe FTP et SSH : changer ces accès côté hébergeur.
  • Mot de passe du panneau hébergeur lui-même (cPanel, Plesk, interface OVHcloud).
  • Clés de salage WordPress : remplacer les huit constantes AUTH_KEY, SECURE_AUTH_KEY, etc. dans wp-config.php. Le générateur officiel se trouve sur api.wordpress.org. Ce changement invalide toutes les sessions actives, y compris celles du pirate.

Si vous n’avez jamais modifié vos mots de passe système, consultez notre guide pour le changement de mot de passe Google : la logique de sécurisation des comptes liés au site (Google Search Console, Analytics) suit le même principe.

Après avoir changé le mot de passe de la base de données, vérifiez que le site se charge correctement. Une erreur « Erreur lors de la connexion à la base de données » signifie que wp-config.php n’a pas été mis à jour avec le nouveau mot de passe.

Étape 6 : durcir la sécurité pour éviter la récidive

Le nettoyage est terminé, le site est de nouveau fonctionnel. Mais sans durcissement, la probabilité de récidive dans les six mois atteint 40 % selon les données compilées par Wordfence. Voici les cinq mesures que je mets en place systématiquement après chaque intervention :

1. Activer les mises à jour automatiques du cœur et des extensions. WordPress propose les mises à jour automatiques mineures par défaut, mais les mises à jour majeures et celles des extensions restent manuelles. Activez-les toutes pour les extensions critiques (formulaires de contact, constructeurs de pages, extensions e-commerce).

2. Installer un pare-feu applicatif (WAF). Un WAF filtre les requêtes malveillantes avant qu’elles n’atteignent WordPress. Des solutions comme Wordfence (gratuit) ou Sucuri Firewall (payant) bloquent les tentatives d’injection SQL, les attaques XSS et les scans de vulnérabilités automatisés.

3. Forcer l’authentification à deux facteurs (2FA). Tous les comptes ayant un rôle éditeur ou supérieur doivent utiliser le 2FA. C’est la mesure la plus efficace contre le vol de mots de passe.

4. Restreindre les permissions de fichiers. Les bonnes pratiques recommandées par le Codex WordPress officiel :

  • Dossiers : 755
  • Fichiers : 644
  • wp-config.php : 440 ou 400

5. Mettre en place un certificat SSL et forcer HTTPS. Un certificat SSL ne protège pas contre le piratage direct, mais il empêche l’interception des identifiants lors de la connexion à l’administration. Si le mot de passe admin transite en clair sur du HTTP, un attaquant sur le même réseau peut le capturer.

Enfin, programmez une sauvegarde automatique quotidienne stockée hors du serveur. En cas de nouveau piratage, la restauration prendra trente minutes au lieu de plusieurs heures de nettoyage manuel. L’idéal est de conserver au minimum 30 jours de sauvegardes pour pouvoir remonter avant la date d’intrusion.

Combien coûte le nettoyage d’un site WordPress piraté

La question du coût revient systématiquement. Le prix dépend de la gravité de l’infection, du nombre de sites sur le même hébergement, et du prestataire choisi. Voici les fourchettes constatées en 2026 :

Type d’intervention Fourchette de prix Délai moyen Ce qui est inclus
Nettoyage par soi-même 0 € (temps personnel) 4 à 12 heures Aucune garantie, risque d’oubli de fichiers infectés
Extension de sécurité premium 100 à 200 € / an 1 à 4 heures (scan automatique) Scan, nettoyage partiel, pare-feu inclus
Prestataire spécialisé WordPress 150 à 400 € 2 à 8 heures Nettoyage complet, identification de la faille, rapport
Agence avec contrat de maintenance 300 à 600 € (hors contrat) 2 à 24 heures Nettoyage, durcissement, monitoring 30 jours

En tant que développeur spécialisé WordPress depuis plus de dix ans, je constate que le nettoyage en lui-même représente rarement la part la plus coûteuse. C’est le diagnostic de la faille et le durcissement post-intervention qui demandent le plus d’expertise. Un nettoyage sans identification de la porte d’entrée est un pansement temporaire.

Le choix de l’hébergeur joue aussi un rôle dans la facture finale. Un hébergeur avec un bon support technique peut fournir les logs d’accès, isoler le compte, et parfois même proposer une restauration depuis leurs propres sauvegardes. Sur un hébergement mutualisé, un site infecté peut contaminer d’autres sites du même compte : le nettoyage s’en trouve multiplié.

Les erreurs qui aggravent la situation après un piratage

J’ai vu des propriétaires de sites transformer une infection mineure en catastrophe en commettant l’une de ces erreurs. Voici ce qu’il faut absolument éviter quand on découvre que son site WordPress est piraté :

Supprimer des fichiers au hasard sans sauvegarde. Effacer le fichier wp-config.php ou le dossier wp-includes sans avoir de copie rend le site irrécupérable si l’on n’a pas de sauvegarde récente. Toujours sauvegarder d’abord, nettoyer ensuite.

Restaurer une sauvegarde sans vérifier sa date. Si la sauvegarde date d’après l’intrusion, on restaure le code malveillant avec. Il faut identifier la date de compromission dans les logs et restaurer une version antérieure à cette date.

Changer uniquement le mot de passe WordPress. Le pirate a peut-être aussi les accès FTP, la base de données, le panneau hébergeur. Un seul mot de passe oublié dans la chaîne suffit pour qu’il revienne.

Installer trois extensions de sécurité en même temps. Empiler Wordfence, Sucuri et iThemes Security crée des conflits, ralentit le site et génère des faux positifs. Un seul pare-feu applicatif suffit. Si votre site était déjà lent, ajouter plusieurs extensions de sécurité ne fera qu’aggraver le problème.

Ne pas prévenir Google. Après le nettoyage, il faut demander un réexamen via la Search Console. Sans cette démarche, l’avertissement « Ce site peut avoir été piraté » peut rester affiché pendant des semaines, même si le site est propre.

Ignorer les autres sites sur le même hébergement. Sur un mutualisé ou un VPS mal cloisonné, l’attaquant peut avoir compromis tous les sites du compte. Vérifiez chaque installation WordPress présente sur le serveur, pas uniquement celle qui affiche des symptômes.

Le piratage est aussi l’occasion de revoir l’ensemble de la chaîne technique : la configuration du cache, la minification des ressources, et l’espace disque disponible. Un site techniquement bien tenu est un site plus facile à surveiller et à restaurer en cas d’incident.

À retenir

  • Coupez l’accès public avant de tenter le moindre nettoyage pour limiter les dégâts
  • Sauvegardez l’état infecté sur un support externe : c’est votre preuve et votre filet de sécurité
  • Identifiez la faille d’entrée (extension obsolète dans 52 % des cas) pour éviter la récidive
  • Changez tous les mots de passe sans exception : WordPress, base de données, FTP, hébergeur et clés de salage
  • Activez le 2FA sur tous les comptes admin et installez un seul pare-feu applicatif, pas trois

Questions fréquentes


Que faire si mon site WordPress est infecté et que je n’ai aucune sauvegarde ?

Commencez par sauvegarder le site dans son état actuel, même infecté. Ensuite, remplacez le cœur de WordPress par une copie fraîche, réinstallez chaque extension depuis le dépôt officiel, et nettoyez la base de données manuellement. Sans sauvegarde antérieure à l’intrusion, le nettoyage manuel reste la seule option viable. Prévoyez entre 4 et 12 heures de travail selon la gravité.


Comment puis-je nettoyer mon site WordPress sans compétences techniques ?

Des extensions comme Wordfence proposent un scan automatique qui détecte et supprime une partie des fichiers malveillants. Cependant, un scan automatique ne remplace pas un audit manuel complet. Si vous n’êtes pas à l’aise avec la ligne de commande et les requêtes SQL, faites appel à un prestataire spécialisé. Le coût moyen se situe entre 150 et 400 € pour un nettoyage complet avec identification de la faille.


Est-ce que WordPress est fiable en matière de sécurité ?

Le cœur de WordPress est audité régulièrement et les failles sont corrigées rapidement par l’équipe de développement. Le problème vient rarement du CMS lui-même mais des extensions tierces non maintenues, des thèmes piratés et des mots de passe faibles. Un WordPress à jour, avec des extensions vérifiées et un mot de passe fort, offre un niveau de sécurité tout à fait acceptable pour la grande majorité des sites.


Combien coûte la maintenance de sécurité d’un site WordPress par mois ?

Un contrat de maintenance incluant les mises à jour, les sauvegardes quotidiennes et un monitoring de sécurité coûte en moyenne entre 30 et 80 € par mois selon le prestataire et la taille du site. C’est un investissement rentable comparé au coût d’un nettoyage après piratage (150 à 600 €) et aux pertes de chiffre d’affaires liées à l’indisponibilité du site.


Google pénalise-t-il un site qui a été piraté ?

Google peut déclasser temporairement un site piraté et afficher un avertissement dans les résultats de recherche. Ce n’est pas une pénalité manuelle mais une mesure de protection des utilisateurs. Une fois le nettoyage terminé, vous pouvez demander un réexamen via la Google Search Console. Le rétablissement du positionnement prend généralement entre une et quatre semaines si le nettoyage a été complet.


Comment savoir si mon hébergeur a bien isolé mon site après un piratage ?

Contactez le support technique de votre hébergeur et demandez-lui de confirmer que votre compte est isolé des autres comptes sur le serveur. Sur un hébergement mutualisé, demandez les logs d’accès pour vérifier qu’aucun autre site de votre compte n’a été touché. Si l’hébergeur ne peut pas fournir ces informations, envisagez de migrer vers un prestataire proposant une meilleure isolation, notamment un VPS ou un hébergement WordPress géré.


Damien Roux
Damien Roux

Damien Roux est spécialiste de l'hébergement web. Fondateur de web-city.fr, il partage guides pratiques, comparatifs objectifs et outils gratuits pour choisir le bon hébergeur et créer son site WordPress.

Scroll to Top