Emoji support is added to the core of WordPress since they released WordPress 4.2. Emoji support can be quite a useful feature if you want to decorate your content with emojis. However, if you have no use for emoji support, you may want to disable it to improve your website performance.
Disabling emojis is one of the small optimizations that may help you on improving your website load time. Since disabling emoji can stop the HTTP requests to the wp-emoji-release.min.js file that generates every time you load a page on your entire website.
In this tutorial, we will show you how to disable emojis in WordPress by using a custom code.
Disable Emoji Support in WordPress
Before you get started, you may want to backup your site and use a child theme to avoid breaking the parent theme or losing your changes when you update your theme.
Once ready, go to Appearance -> Theme File Editor from your WordPress admin dashboard, then click the functions.php file from the Theme Files panel to open the file editor.
Once you have opened up the file, add the following custom code to the editor. You can place the code anywhere under the <?php
tag and outside of any existing function in the file.
/** * 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; }
Once the code is in place, save your changes by clicking on the Update File button.
Bottom Line
No optimization is ever too small in improving your website performance. Disabling emojis is one of the small optimizations that may help you on improving your website load time. And we already wrote about another WordPress optimization by disabling the embeds feature before. By doing these little tricks and optimization, you can start shaving off your website’s overall load time over time.
1 thought on “How to Disable Emojis in WordPress (Without Plugin)”
There’s an error somewhere – this code crashes WP 6.2.2