Un audit de performance sur un site vitrine relève un fichier wp-emoji-release.min.js chargé sur chaque page, alors que le site n’utilise jamais d’émoji dans son contenu éditorial. Ce script existe depuis WordPress 4.2, ajouté pour assurer un rendu cohérent des émojis sur les anciens navigateurs qui ne les supportaient pas nativement. En 2021, la quasi-totalité des navigateurs gèrent nativement les émojis, ce qui rend ce script obsolète pour l’immense majorité des visiteurs.
Le retirer ne demande aucune extension : quatre appels à remove_action et remove_filter suffisent, à placer dans le fichier functions.php du thème ou dans un plugin maison léger.
Ce que WordPress charge exactement
Le mécanisme d’émoji de WordPress ajoute trois éléments distincts à chaque page : un script inline qui détecte le support natif des émojis par le navigateur, le fichier wp-emoji-release.min.js chargé de façon conditionnelle si le support natif est absent, et une feuille de style qui ajuste l’apparence des émojis dans certains contextes. Tout cela est ajouté via l’action print_emoji_detection_script, accrochée par défaut sur wp_head avec une priorité de 7.
Le code de désactivation complet
Quatre lignes suffisent pour retirer l’ensemble du mécanisme, front-end et back-office confondus :
function ma_recette_disable_emojis() {
remove_action( 'wp_head', 'print_emoji_detection_script', 7 );
remove_action( 'admin_print_scripts', 'print_emoji_detection_script' );
remove_action( 'wp_print_styles', 'print_emoji_styles' );
remove_action( 'admin_print_styles', 'print_emoji_styles' );
remove_filter( 'the_content_feed', 'wp_staticize_emoji' );
remove_filter( 'comment_text_rss', 'wp_staticize_emoji' );
remove_filter( 'wp_mail', 'wp_staticize_emoji_for_email' );
}
add_action( 'init', 'ma_recette_disable_emojis' );
Les deux derniers filtres méritent attention : ils concernent la conversion des émojis en images statiques dans les flux RSS et les e-mails envoyés par WordPress, un comportement qui a du sens à conserver si le contenu du site utilise réellement des émojis dans ses articles. Sur un site qui n’en utilise jamais dans son contenu éditorial, les retirer aussi ne change rien à l’expérience et allège encore un peu le traitement.

Mesurer le gain réel avant de se réjouir trop vite
Le fichier wp-emoji-release.min.js pèse environ 5 à 6 ko une fois compressé, et n’est de toute façon chargé que de façon conditionnelle par le script de détection, jamais systématiquement sur les navigateurs modernes. Le gain direct est donc modeste : quelques dizaines de millisecondes tout au plus sur le temps de chargement, et une requête HTTP en moins dans les cas où le script était effectivement téléchargé. Ce n’est pas une optimisation qui change un score Lighthouse à elle seule.
Pourquoi le faire quand même
L’intérêt de cette désactivation n’est pas dans le gain isolé, mais dans la logique de nettoyage systématique : chaque script inutile retiré simplifie l’inventaire des ressources chargées, réduit la surface de code exécuté au chargement, et facilite le diagnostic si un problème de performance apparaît plus tard. Sur un projet où l’on cumule ce genre de petits nettoyages (émojis, oEmbed non utilisé, flux RSS de commentaires désactivés), l’effet global devient perceptible, même si chaque mesure prise isolément semble anecdotique.
Vérifier que rien ne casse après la désactivation
Un test rapide consiste à publier un article contenant volontairement un émoji et à vérifier son affichage sur plusieurs navigateurs, y compris un navigateur ancien si le public cible en compte encore. La checklist de vérification tient en trois points :
- Afficher un article contenant un émoji sur un navigateur récent et sur un navigateur plus ancien conservé pour les tests.
- Vérifier qu’un e-mail transactionnel contenant un émoji reste lisible côté destinataire.
- Contrôler le flux RSS des commentaires si le site en propose un et que des émojis y sont parfois saisis.
Sur les projets suivis, aucun cas de rendu cassé n’a été observé après cette désactivation, les navigateurs ciblés en 2021 gérant tous les émojis nativement.
Je documente toujours ce genre de désactivation avec un commentaire daté dans le code : si un jour un client insiste pour cibler un navigateur très ancien, il faut pouvoir retrouver rapidement pourquoi et où ce mécanisme a été coupé.
En résumé
Désactiver les scripts d’émoji de WordPress est une optimisation à faible risque et à faible gain individuel, mais qui s’inscrit dans une démarche plus large de nettoyage du wp_head. Aucune extension n’est nécessaire, quatre lignes de code suffisent, et l’opération se vérifie facilement en publiant un contenu de test avec un émoji réel.