200 000 lignes dans une table de donateurs, dont une part significative n’a plus interagi avec l’organisation depuis des années : voilà la situation qui pousse la plupart des associations à mettre en place une politique de purge de données conforme au RGPD, sur la base d’une durée de conservation raisonnable après la dernière interaction. Le risque principal de ce type de chantier n’est pas la purge elle-même, mais son exécution sans filet de sécurité sur un volume aussi important.
La bonne pratique consiste à ne jamais supprimer directement : une séquence de relances progressive, avec un délai de grâce à chaque étape, protège autant le donateur que l’association elle-même en cas d’erreur de détection.
Définir précisément ce qu’est un compte inactif
L’inactivité ne se limite pas à l’absence de don : un donateur peut ouvrir les emails de la newsletter, se connecter à son espace personnel pour télécharger un reçu fiscal, ou répondre à une enquête de satisfaction, sans effectuer de nouveau don. La requête de détection doit donc croiser plusieurs signaux plutôt que la seule date du dernier don :
SELECT donateur_id, email, derniere_activite
FROM donateurs
WHERE derniere_activite < DATE_SUB(NOW(), INTERVAL 2 YEAR)
AND statut != 'deja_notifie_suppression'
ORDER BY derniere_activite ASC;
La séquence de relances avant purge

Trois relances espacées, avec un délai de grâce total d’au moins trois mois après la première notification, laissent le temps à un donateur simplement occupé de réagir avant toute suppression effective :
- J+0 : premier email, ton informatif, rappel de la politique de conservation
- J+30 : deuxième email, plus explicite sur l’échéance de suppression
- J+75 : dernier email, avec lien direct pour réactiver le compte en un clic
- J+90 : suppression effective si aucune réaction n’a été enregistrée
Le lien de réactivation en un clic
Le point le plus important de cette séquence est de rendre la réactivation la plus simple possible, sans obligation de se reconnecter à un espace personnel oublié depuis longtemps. Un lien signé, valable trente jours, suffit à marquer le compte comme réactivé :
add_action( 'init', 'traiter_reactivation_compte_donateur' );
function traiter_reactivation_compte_donateur() {
if ( empty( $_GET['reactiver_don'] ) || empty( $_GET['sig'] ) ) {
return;
}
$donateur_id = absint( $_GET['reactiver_don'] );
if ( ! wp_verify_nonce( $_GET['sig'], 'reactivation_' . $donateur_id ) ) {
return;
}
mettre_a_jour_derniere_activite( $donateur_id );
wp_redirect( home_url( '/merci-de-rester-avec-nous/' ) );
exit;
}
Journaliser chaque suppression
Avant toute suppression effective, un enregistrement minimal (identifiant anonymisé, date de dernière activité, date des trois relances envoyées) doit être conservé dans une table d’audit séparée, sans donnée personnelle identifiante, pour pouvoir démontrer a posteriori que la procédure a bien été respectée en cas de contrôle ou de réclamation tardive.
Traiter le volume par lots, pas en une seule opération
Sur 200 000 lignes, exécuter la purge en une seule requête massive risque de verrouiller la table pendant une durée trop longue et d’affecter les performances du site en pleine journée. Un traitement par lots de mille enregistrements, planifié via wp_cron en dehors des heures de forte fréquentation, répartit la charge sans risque de blocage.
| Étape | Volume traité | Fenêtre horaire recommandée |
|---|---|---|
| Détection des comptes inactifs | Table complète | Nuit, hors sauvegarde |
| Envoi des relances | Par lots de 500 | Matin, taux d’ouverture optimal |
| Suppression effective | Par lots de 1000 | Nuit, faible trafic |
Une purge de données bien menée ne se juge pas au nombre de lignes supprimées, mais au nombre de réclamations reçues après coup : idéalement, zéro.
En résumé
Sur un volume de 200 000 donateurs, la sécurité du dispositif repose moins sur la requête de suppression elle-même que sur la robustesse de la séquence de relances qui la précède et sur la traçabilité conservée après coup. Un délai de grâce généreux coûte quelques mois d’attente, largement compensés par l’absence de mauvaise surprise pour un donateur simplement distrait.