Découverte du jour : un test de contrôle a montré pour la première fois que Gravatar envoyait des cookies tiers. Gravatar c’est un système lié à WordPress qui permet d’afficher des avatars sur un site. Je devais donc me débarrasser de ce problème. Voici la méthode.
Le principe sympathique au départ mais…
Gravatar (pour Globally Recognized Avatar) est un service d’Automattic. C’est la société derrière WordPress.com (à ne pas confondre avec WordPress.org qui permet de partager le CMS utilisé pour écrire ce site). Gravatar associe une image de profil à une adresse courriel. L’idée : si vous chargez votre photo une fois, elle apparaît automatiquement sur tous les sites qui utilisent Gravatar. WordPress l’intègre nativement depuis ses débuts. Par exemple si je commente un site WordPress extérieur, mon avatar sera automatiquement appelé.
Voici d’ailleurs mon profil : https://gravatar.com/vincentbretoncfc9a0ed52
La découverte du jour
En testant le site avec Ligthouse j’ai découvert 3 cookies tiers déposés par secure.gravatar.com. Ça faisait baisser d’ailleurs la note dite de « bonnes pratiques » de 100 à 77%.
J’ai compris que Automattic a transformé Gravatar en service de profil social. Du coup il a introduit des cookies de traçage chez tous les sites WordPress qui affichent des avatars. Peut-être le vôtre ? Tout le monde est concerné : toute visiteuse ou tout visiteur dont le navigateur charge une image depuis Gravatar, que ce soit l’avatar de l’auteur ou celui d’un commentateur.
Pas de ça chez moi ! C’est contraire à l’éthique de la maison !
Comment s’en débarrasser ?
Les purs ont déjà viré la possibilité de mettre son image et même parfois de commenter.
J’ai choisi des commentaires sans cookie (ça oblige à vous réinscrire à chaque visite mais c’est un choix).
Comme je suis très narcissique, je voulais garder cet avatar assez flou que vous voyez en haut à droite.
Première étape :
- j’ai installé une extension (pas trop lourde) : Simple Local Avatar qui permet de désactiver Gravatar et de choisir une image de substitution. Ça c’est pour les auteurs du site. Dans le réglage des commentaires vous mettrez : « utiliser seulement les avatars locaux ».
Deuxième étape
- parmi les personnes qui commentent le site, il y a deux cas :
- des gens qui commentent à partir du Fédiverse par exemple dans Mastodon. Leur image de profil va remonter mais c’est propre, inodore et sans cookie (en fait le commentaire fait sur Mastodon remonte ici).
- des gens commentent parfois en disposant d’un compte Gravatar avec donc potentiellement des cookies à la clé.
- pour eux j’ai ajouté un « bout de code » ou snippet PHP pour remplacer les avatars Gravatar des commentatrices et commentateurs par leurs initiales
- ceux qui n’ont pas d’image du tout ce sera une silhouette
Le code est intégré en PHP via mon extension WP Code
add_filter( 'get_avatar', function( $avatar, $id_or_email, $size, $default, $alt ) {
// Si l'avatar ne contient pas d'appel Gravatar, on le laisse tel quel
if ( strpos( $avatar, 'gravatar.com' ) === false ) return $avatar;
$name = '';
if ( is_string( $id_or_email ) && is_email( $id_or_email ) ) {
$name = strstr( $id_or_email, '@', true );
} elseif ( $id_or_email instanceof WP_Comment ) {
$name = $id_or_email->comment_author;
} elseif ( is_object( $id_or_email ) && isset( $id_or_email->display_name ) ) {
$name = $id_or_email->display_name;
}
$words = preg_split( '/\s+/', trim( $name ) );
$initials = mb_strtoupper( mb_substr( $words[0], 0, 1 ) );
if ( count( $words ) > 1 ) {
$initials .= mb_strtoupper( mb_substr( end( $words ), 0, 1 ) );
}
if ( ! $initials ) $initials = '?';
$svg = '<svg xmlns="http://www.w3.org/2000/svg" width="' . $size . '" height="' . $size . '" viewBox="0 0 40 40">'
. '<rect width="40" height="40" rx="20" fill="#888"/>'
. '<text x="50%" y="50%" dominant-baseline="central" text-anchor="middle" '
. 'font-family="sans-serif" font-size="16" fill="#fff">' . esc_html( $initials ) . '</text>'
. '</svg>
';
$data_uri = 'data:image/svg+xml;base64,' . base64_encode( $svg );
return '<img src="' . $data_uri . '" width="' . $size . '" height="' . $size . '" alt="' . esc_attr( $alt ) . '" class="avatar avatar-' . $size . ' photo" />';
}, 10, 5 );
Oui, je me suis fait aider pour ce bout de code, mais c’est pour la bonne cause. Je le partagerai dans mon espace Codeberg.
Du coup j’ai éliminé les cookies et retrouver mon 100% de performance dans les bonnes pratiques.
J’ai trouvé détestable que Gravatar qui possède nos adresses mails, ne prenne pas la peine de nous informer. La leçon est bien qu’il ne faut jamais recourir à des services tiers si on veut rester propre !

Un mot en retour ?