Ci sono molte ottimizzazioni e miglioramenti delle prestazioni web che potete apportare per rendere più veloce il caricamento del vostro sito WordPress. Una facile ottimizzazione è la disabilitazione del caricamento degli emoji. Gli emoji sono piccole icone utilizzate per esprimere idee o emozioni. Ma anche se queste icone sono divertenti, sono davvero necessarie per il vostro sito WordPress? Soprattutto se siete un’azienda, queste icone aumentano inutilmente il tempo di caricamento.

Quando è stato rilasciato WordPress 4.2, la funzionalità degli emoji è stata integrata nel core per i browser più vecchi. Il grosso problema è che, per caricare il file wp-emoji-release.min.js, viene generata un’ulteriore richiesta HTTP sul vostro sito WordPress. E questo viene caricato su ogni singola pagina. Sebbene questo file sia solo 10,5 KB, cose come queste si sommano nel tempo.

Il file wp emoji release

Disabilitare gli Emoji in WordPress

Esistono un paio di modi per disabilitare gli Emoji in WordPress. Potete farlo con un plugin gratuito o con il codice.

 

1. Disabilitare gli Emoji con un Plugin

Il primo modo per disabilitare gli emoji è semplicemente quello di utilizzare un plugin gratuito chiamato Disable Emojis, sviluppato da Ryan Hellyer.

Il plugin WordPress Disable Emojis

Questo plugin è super leggero, per l’esattezza pesa solo 9 KB. Al momento in cui scriviamo, conta oltre 30.000 installazioni attive con una valutazione di 5 stelle su 5. Nota: le emoticon e gli emoji funzioneranno comunque nei browser che hanno il supporto integrato. Questo plugin rimuove semplicemente il file JavaScript utilizzato per aggiungere il supporto degli emoji nei browser meno recenti.

Potete scaricarlo dalla repository di WordPress o cercandolo nella dashboard di WordPress alla voce “Aggiungi nuovo” plugin. Non c’è nulla da configurare, è sufficiente installare, attivare e il file JavaScript aggiuntivo sparirà.

C’è anche un plugin alternativo gratuito chiamato Emoji settings. Questo è stato progettato pensando al Multisite e offre all’utente la possibilità di disabilitare gli stessi Emoji.

impostazioni emoji

Potete scaricarlo dalla repository di WordPress o cercarlo nella dashboard di WordPress alla voce “Aggiungi nuovo” plugin. Una volta attivato, l’utente può selezionare o deselezionare “Abilita supporto emoji” dalle impostazioni di scrittura nella dashboard di WordPress.

Potete anche utilizzare un plugin premium come perfmatters (sviluppato da un membro del team di Kinsta), che vi consente di disabilitare gli emoji ed offre altre ottimizzazioni per il vostro sito WordPress.

Disable emojis nel plugin perfmatters
Disable emojis nel plugin perfmatters

2. Disabilitare gli Emoji con il Codice

Se non volete installare un altro plugin, potete anche disabilitare gli emoji con il codice. Iniziate creando un backup del vostro sito, e poi create un tema child in modo che le modifiche non vengano sovrascritte se aggiornate il vostro tema WordPress. Poi, aggiungete quanto segue al file functions.php del vostro tema child di WordPress. Nota: il codice proviene dal plugin Disable Emoji descritto sopra.

Importante! La modifica del codice sorgente di un tema WordPress potrebbe bloccare il vostro sito se non viene eseguita correttamente. Se non vi sentite a vostro agio nel farlo, consultate prima uno sviluppatore.
/**
 * Disable the emoji's
 */
function 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_filter( 'tiny_mce_plugins', 'disable_emojis_tinymce' );
 add_filter( 'wp_resource_hints', 'disable_emojis_remove_dns_prefetch', 10, 2 );
}
add_action( 'init', 'disable_emojis' );

/**
 * Filter function used to remove the tinymce emoji plugin.
 * 
 * @param array $plugins 
 * @return array Difference betwen the two arrays
 */
function disable_emojis_tinymce( $plugins ) {
 if ( is_array( $plugins ) ) {
 return array_diff( $plugins, array( 'wpemoji' ) );
 } else {
 return array();
 }
}

/**
 * Remove emoji CDN hostname from DNS prefetching hints.
 *
 * @param array $urls URLs to print for resource hints.
 * @param string $relation_type The relation type the URLs are printed for.
 * @return array Difference betwen the two arrays.
 */
function disable_emojis_remove_dns_prefetch( $urls, $relation_type ) {
 if ( 'dns-prefetch' == $relation_type ) {
 /** This filter is documented in wp-includes/formatting.php */
 $emoji_svg_url = apply_filters( 'emoji_svg_url', 'https://s.w.org/images/core/emoji/2/svg/' );

$urls = array_diff( $urls, array( $emoji_svg_url ) );
 }

return $urls;
}