WordPress loads a small but unnecessary emoji detection script on every page load. Modern browsers handle emoji natively — this extra JavaScript doesn't add value for most sites.
Why This Matters
The emoji script (wp-emoji-release.min.js) and its associated inline CSS:
- Add ~15KB to every page
- Run JavaScript on every page load to detect and convert emoji characters
- Are unnecessary because all modern browsers (Chrome, Firefox, Safari, Edge) render emoji natively since 2015+
It's a small optimization, but it's also a 2-minute fix.
How to Fix It
Method 1: mu-plugin (Recommended)
Create a file at wp-content/mu-plugins/disable-emoji.php:
<?php
/**
* Plugin Name: Dravasite – Disable Emoji Script
* Description: Removes the WordPress emoji detection script and styles.
* All modern browsers render emoji natively since 2015.
* Version: 1.0.0
*/
if ( ! defined( 'ABSPATH' ) ) {
exit;
}
// Remove emoji JavaScript from frontend <head>
remove_action( 'wp_head', 'print_emoji_detection_script', 7 );
remove_action( 'wp_print_styles', 'print_emoji_styles' );
// Remove emoji scripts from admin area too
remove_action( 'admin_print_scripts', 'print_emoji_detection_script' );
remove_action( 'admin_print_styles', 'print_emoji_styles' );New to mu-plugins? Read our guide to adding code snippets safely with mu-plugins — it takes 2 minutes to set up and survives theme updates.
Method 2: Using a Plugin
Performance plugins like Perfmatters, Asset CleanUp, and Autoptimize include an option to disable emoji script in their settings.
What to Watch For
- This is a safe change for virtually all sites. If you're publishing content that relies on very old browser emoji rendering, you might notice differences — but that's extremely rare.
- The savings are small (~15KB), so prioritize bigger performance wins first (caching, image optimization, reducing plugins).
- This doesn't remove emoji from your content — it just stops WordPress from loading extra JavaScript to detect and render them. Your emoji will still display correctly.