The first way to disable emojis is you can put the following code into your functions.php
file.
<span class="token comment">/**
* Disable the emoji's
*/</span>
<span class="token keyword">function</span> <span class="token function">disable_emojis</span><span class="token punctuation">(</span><span class="token punctuation">)</span> <span class="token punctuation">{</span>
<span class="token function">remove_action</span><span class="token punctuation">(</span> <span class="token single-quoted-string string">'wp_head'</span><span class="token punctuation">,</span> <span class="token single-quoted-string string">'print_emoji_detection_script'</span><span class="token punctuation">,</span> <span class="token number">7</span> <span class="token punctuation">)</span><span class="token punctuation">;</span>
<span class="token function">remove_action</span><span class="token punctuation">(</span> <span class="token single-quoted-string string">'admin_print_scripts'</span><span class="token punctuation">,</span> <span class="token single-quoted-string string">'print_emoji_detection_script'</span> <span class="token punctuation">)</span><span class="token punctuation">;</span>
<span class="token function">remove_action</span><span class="token punctuation">(</span> <span class="token single-quoted-string string">'wp_print_styles'</span><span class="token punctuation">,</span> <span class="token single-quoted-string string">'print_emoji_styles'</span> <span class="token punctuation">)</span><span class="token punctuation">;</span>
<span class="token function">remove_action</span><span class="token punctuation">(</span> <span class="token single-quoted-string string">'admin_print_styles'</span><span class="token punctuation">,</span> <span class="token single-quoted-string string">'print_emoji_styles'</span> <span class="token punctuation">)</span><span class="token punctuation">;</span>
<span class="token function">remove_filter</span><span class="token punctuation">(</span> <span class="token single-quoted-string string">'the_content_feed'</span><span class="token punctuation">,</span> <span class="token single-quoted-string string">'wp_staticize_emoji'</span> <span class="token punctuation">)</span><span class="token punctuation">;</span>
<span class="token function">remove_filter</span><span class="token punctuation">(</span> <span class="token single-quoted-string string">'comment_text_rss'</span><span class="token punctuation">,</span> <span class="token single-quoted-string string">'wp_staticize_emoji'</span> <span class="token punctuation">)</span><span class="token punctuation">;</span>
<span class="token function">remove_filter</span><span class="token punctuation">(</span> <span class="token single-quoted-string string">'wp_mail'</span><span class="token punctuation">,</span> <span class="token single-quoted-string string">'wp_staticize_emoji_for_email'</span> <span class="token punctuation">)</span><span class="token punctuation">;</span>
<span class="token function">add_filter</span><span class="token punctuation">(</span> <span class="token single-quoted-string string">'tiny_mce_plugins'</span><span class="token punctuation">,</span> <span class="token single-quoted-string string">'disable_emojis_tinymce'</span> <span class="token punctuation">)</span><span class="token punctuation">;</span>
<span class="token punctuation">}</span>
<span class="token function">add_action</span><span class="token punctuation">(</span> <span class="token single-quoted-string string">'init'</span><span class="token punctuation">,</span> <span class="token single-quoted-string string">'disable_emojis'</span> <span class="token punctuation">)</span><span class="token punctuation">;</span>
<span class="token comment">/**
* Filter function used to remove the tinymce emoji plugin.
*
* @param array $plugins
* @return array Difference betwen the two arrays
*/</span>
<span class="token keyword">function</span> <span class="token function">disable_emojis_tinymce</span><span class="token punctuation">(</span> <span class="token variable">$plugins</span> <span class="token punctuation">)</span> <span class="token punctuation">{</span>
<span class="token keyword">if</span> <span class="token punctuation">(</span> <span class="token function">is_array</span><span class="token punctuation">(</span> <span class="token variable">$plugins</span> <span class="token punctuation">)</span> <span class="token punctuation">)</span> <span class="token punctuation">{</span>
<span class="token keyword">return</span> <span class="token function">array_diff</span><span class="token punctuation">(</span> <span class="token variable">$plugins</span><span class="token punctuation">,</span> <span class="token keyword">array</span><span class="token punctuation">(</span> <span class="token single-quoted-string string">'wpemoji'</span> <span class="token punctuation">)</span> <span class="token punctuation">)</span><span class="token punctuation">;</span>
<span class="token punctuation">}</span> <span class="token keyword">else</span> <span class="token punctuation">{</span>
<span class="token keyword">return</span> <span class="token keyword">array</span><span class="token punctuation">(</span><span class="token punctuation">)</span><span class="token punctuation">;</span>
<span class="token punctuation">}</span>
<span class="token punctuation">}
</span>
Step 6. Host Google Fonts#
Next, if we look closer we can see there are 4 requests being generated to fonts.gstatic.com. And this is to load Google fonts, which is included in the default WordPress theme. In our example, it is loading different font weights for Merriweather and Montserrat.
https://fonts.googleapis.com/css?family=Merriweather%3A400%2C700%2C900%2C400italic%2C700italic%2C900italic%7CMontserrat%3A400%2C700%7C&subset=latin%2Clatin-ext
https://fonts.gstatic.com/s/montserrat/v7/IQHow_FEYlDC4Gzy_m8fcoWiMMZ7xLd792ULpGE4W_Y.woff2
https://fonts.gstatic.com/s/merriweather/v13/RFda8w1V0eDZheqfcyQ4EOgdm0LZdjqr5-oayXSOefg.woff2
https://fonts.gstatic.com/s/montserrat/v7/zhcz-_WihjSQC0oHJ9TCYPk_vArhqVIZ0nv9q090hN8.woff2
It always better to reduce the number of external DNS lookups and also focus on having a single HTTP/2 connection if possible. Every external lookup introduces its own set of latency issues, content download times, TLS negotiations, etc. So what we are going to do is move the Google fonts to our CDN. This way they load from the same place as the rest of our assets.
You can check out our in-depth tutorial on how to migrate Google Fonts to your CDN. This can also be used to simply host them directly on your web server as well, if you aren’t using a CDN. We quickly download the following Google fonts from https://google-webfonts-helper.herokuapp.com
and host them on our server in a folder called “fonts.”
<span class="token punctuation"> </span>
Step 7. Disable Gravatars#
As you can see we are almost down to a single HTTP/2 connection with no external DNS lookups. The only thing left is that call to gravatar.com. Thankfully they are using HTTP/2 now, but unless you really want avatars, you can disable them.
This can easily be remove by un-checking the “show avatars” in the discussion setting of your WordPress dashboard.
<span class="token punctuation">
</span>
By removing the call to gravatar.com we are now down to 11 HTTP requests and are using a single HTTP/2 connection for external assets on our CDN.