Problème : un audit Lighthouse pointait trois requêtes superflues sur un site vitrine WordPress fraîchement livré, alors qu’aucune extension tierce n’était en cause. En creusant, les trois venaient du cœur de WordPress lui-même : le script de détection des emojis, une balise de découverte oEmbed, et la feuille de style Dashicons chargée jusque sur le front. Aucun de ces trois éléments n’est utile sur la majorité des sites modernes, dont les visiteurs utilisent des navigateurs qui gèrent nativement les emojis Unicode.
Snippet commenté : couper le script d’emojis
Le script wp-emoji-release.min.js existait pour convertir les emojis en images sur les navigateurs anciens qui ne les affichaient pas correctement. Sur le parc de navigateurs actuel, ce cas est devenu marginal. Le désactiver se fait proprement via les hooks dédiés, sans toucher au cœur :
function wpm_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', 'wpm_disable_emojis' );
Variante : couper aussi le DNS-prefetch résiduel
Même après avoir retiré le script, WordPress ajoute par défaut une indication dns-prefetch vers s.w.org, le domaine qui hébergeait les ressources d’emojis. Ce résidu se retire avec un filtre dédié :
function wpm_remove_emoji_dns_prefetch( $urls, $relation_type ) {
if ( 'dns-prefetch' === $relation_type ) {
$urls = array_diff( $urls, array( '//s.w.org' ) );
}
return $urls;
}
add_filter( 'wp_resource_hints', 'wpm_remove_emoji_dns_prefetch', 10, 2 );

Snippet commenté : limiter oEmbed au strict nécessaire
oEmbed permet à WordPress de générer automatiquement un aperçu enrichi lorsqu’on colle une URL YouTube ou Twitter dans un article. Cette fonctionnalité reste utile en rédaction, mais deux de ses effets de bord alourdissent le front sans bénéfice pour le visiteur : la balise de découverte oEmbed dans le head, et le script wp-embed.min.js qui permet à un site tiers d’intégrer vos propres contenus.
function wpm_disable_oembed_front() {
remove_action( 'wp_head', 'wp_oembed_add_discovery_links' );
remove_action( 'wp_head', 'wp_oembed_add_host_js' );
}
add_action( 'init', 'wpm_disable_oembed_front' );
Attention à ne pas désactiver la fonctionnalité d’intégration entrante (celle qui affiche une vidéo YouTube collée dans votre contenu) : les deux hooks ci-dessus ne touchent que la découverte sortante, la génération d’aperçus dans vos articles continue de fonctionner normalement.
Snippet commenté : Dashicons hors de l’admin
Dashicons est la police d’icônes de l’administration WordPress. Certains thèmes et extensions la chargent par erreur sur le front, alors qu’elle n’y sert souvent à rien. La retirer, uniquement en dehors de l’admin et de la barre d’outils si elle n’est pas utilisée :
function wpm_remove_dashicons_front() {
if ( ! is_admin() && ! is_admin_bar_showing() ) {
wp_deregister_style( 'dashicons' );
}
}
add_action( 'wp_enqueue_scripts', 'wpm_remove_dashicons_front', 100 );
Vérifiez au préalable qu’aucun élément visible du thème n’utilise une classe dashicons-* avant de retirer cette feuille : c’est la cause la plus fréquente d’icônes qui disparaissent après ce type de nettoyage.
Checklist avant mise en production
- Vérifier qu’aucun email transactionnel n’utilise d’emoji dans son contenu (sinon, garder
wp_staticize_emoji_for_emailactif). - Confirmer qu’aucun article existant ne dépend d’une intégration oEmbed pour s’afficher correctement.
- Contrôler visuellement les icônes du thème après la désactivation de Dashicons en front.
- Mesurer le nombre de requêtes avant/après avec l’onglet réseau des outils de développement.
Retirer trois requêtes ne transforme pas un site lent en site rapide, mais un audit propre commence toujours par le ménage du superflu.
En résumé
Ces trois nettoyages ne demandent aucune extension supplémentaire, quelques lignes dans le fichier de fonctions du thème suffisent. Le gain individuel est modeste, mais cumulé à d’autres optimisations, il contribue à un score Lighthouse plus propre et à une page légèrement plus rapide à interpréter pour le navigateur.