Many people think that emoticon icons should be bright and pretty. And WordPress decided that from version 4.2 it would be super-modern if a lot of garbage was added to its source code.
Now in the head of your site, you can see code like this:
To free WordPress from these wpemoji, there are two options to solve the problem:
Option 1: removing wpemoji using a plugin
If you are not one of those who do not like to overload sites with plugins, then you can install, for example, this solution:
Option 2: removing wpemoji by editing the functions.php file
if( 'Disable Emojis in WordPress' ){ 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' ); function disable_emojis_tinymce( $plugins ) { if ( is_array( $plugins ) ) { return array_diff( $plugins, array( 'wpemoji' ) ); } return array(); } function disable_emojis_remove_dns_prefetch( $urls, $relation_type ) { if ( 'dns-prefetch' == $relation_type ) { $emoji_svg_url_bit = 'https://s.w.org/images/core/emoji/'; foreach ( $urls as $key => $url ) { if ( strpos( $url, $emoji_svg_url_bit ) !== false ) { unset( $urls[$key] ); } } } return $urls; } }
Save functions.php, check the source code, and note that the head area has thinned out a bit.
An important last point. After these edits, you will still be able to use emoticons, because WordPress changed the encoding of all string data in the database to utf8mb4, which actually allows you to use emoticons 🙂