The fastest way to disable _wpEmojiSettings in WordPress is to remove WordPress emoji actions and filters from a child theme or a small custom plugin. This stops the inline emoji detection script, related styles, and emoji conversion filters from loading on pages that do not need them. For most business sites, blogs, landing pages, and WooCommerce stores, native browser emoji support is enough.
TLDR: WordPress adds emoji support by default, which can create an inline script containing _wpEmojiSettings and extra requests for emoji assets. A small snippet can remove it safely without breaking normal text or modern emoji display. For example, a 40-page marketing site that removed emoji scripts saw its homepage HTML shrink by about 3 KB and reduced render-blocking clutter in PageSpeed tests. The gain is small by itself, but it stacks well with caching, font cleanup, and script control.
What Is _wpEmojiSettings in WordPress?
_wpEmojiSettings is a JavaScript object printed by WordPress as part of its built-in emoji support. It helps older browsers display emoji correctly by detecting support and loading fallback images when needed.
That made more sense years ago. Modern browsers already handle emoji well. Chrome, Safari, Firefox, Edge, iOS, and Android all support emoji without WordPress doing extra work. The catch is that WordPress still prints the detection script on many sites by default.
This extra code usually appears in the page source near the top of the document. A site owner may see something like window._wpEmojiSettings, plus a detection script and references to WordPress emoji assets.
Why Remove WordPress Emoji Scripts?
Removing emoji scripts is not a magic speed fix. Still, it is clean, safe, and useful. Performance work often comes down to cutting small waste from many places.
- Less inline JavaScript: The page source becomes cleaner.
- Fewer browser tasks: The browser has one less script to parse and run.
- Cleaner audits: Tools such as PageSpeed Insights and WebPageTest show less unused code.
- Better control: Developers decide what loads and what does not.
- No visible downside for most sites: Modern emoji still display through the operating system and browser.
Honestly, it feels like one of those WordPress defaults that hangs around longer than it should. A site may be highly optimized, yet still carry a tiny emoji script on every page for no real reason.
Best Method: Remove Emoji Support with Code
The cleanest method is to add a snippet to a child theme or a small site-specific plugin. A site-specific plugin is often better, because the cleanup stays active even if the theme changes.
The following snippet removes the front-end emoji script, admin emoji script, emoji styles, RSS emoji conversion, email emoji conversion, TinyMCE emoji plugin, and the emoji SVG URL.
add_action( 'init', 'remove_wordpress_emoji_scripts' );
function remove_wordpress_emoji_scripts() {
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', 'remove_wordpress_emoji_tinymce' );
add_filter( 'emoji_svg_url', '__return_false' );
}
function remove_wordpress_emoji_tinymce( $plugins ) {
if ( is_array( $plugins ) ) {
return array_diff( $plugins, array( 'wpemoji' ) );
}
return array();
}
After saving the snippet, the site owner should clear all caches. That includes page cache, object cache, CDN cache, and browser cache. Then the source code can be checked again for _wpEmojiSettings.
Where Should the Code Be Added?
There are three common places to add the snippet. Each has pros and drawbacks.
- Site-specific plugin: Best for long-term use. It is not tied to the active theme.
- Child theme
functions.php: Simple and common, but the change depends on that theme staying active. - Code snippets plugin: Easy for non-developers. It adds another plugin, which some teams may not want.
A direct edit to a parent theme should be avoided. Theme updates can wipe the change. Expect to waste time fixing the same issue again after an update if the parent theme is edited directly.
Image not found in postmeta
How to Check If _wpEmojiSettings Was Removed
After adding the code and clearing cache, the site owner can test the result in a few quick ways.
- Open the homepage in a browser.
- Right-click and select View Page Source.
- Search for
_wpEmojiSettings. - Search for
wp-emojias well. - Run a fresh PageSpeed Insights or WebPageTest scan.
If the search returns no results, the removal worked. If the script still appears, a cache layer may be serving an old page. A plugin may also re-add emoji support. Cache plugins, optimization plugins, and page builders can sometimes interfere in odd ways.
Will Removing Emoji Scripts Break Emojis?
For most visitors, no. Standard emoji such as 😊, ✅, and 🚀 still display because the browser and operating system handle them. WordPress is only removing its fallback system.
The main risk applies to very old browsers or outdated operating systems. Those users may see a plain square box or a less polished emoji style. For most modern sites, that tradeoff is acceptable.
Sites that rely heavily on emoji branding should test key pages, product pages, comments, emails, and RSS feeds. A casual blog can usually disable the feature with little concern. A community site with many emoji-heavy comments may need more careful testing.
Plugin Option for Non-Developers
Some optimization plugins include a checkbox to disable WordPress emojis. This can work well if the site already uses such a plugin. The setting may be named Disable Emojis, Remove WordPress Emoji Script, or something similar.
The benefit is speed. No code is needed. The drawback is control. A plugin update can move settings, rename options, or add extra features that are not needed.
A small custom plugin with only the emoji cleanup code is usually cleaner. It does one job and avoids a full performance plugin just for a tiny script.
Performance Impact: Small but Worth Doing
The emoji script is not usually the biggest source of slow loading. Large images, bloated sliders, render-blocking CSS, third-party ads, tracking scripts, and unused page builder files cause far larger delays.
Still, removing emoji scripts helps reduce noise. On lean sites, even a few kilobytes matter. On high-traffic sites, small savings repeat thousands of times per day.
For example, a content site with 50,000 monthly page views that removes 3 KB of unnecessary markup and script transfer can avoid roughly 150 MB of monthly data transfer. That is not huge, but it is free. It also makes performance audits cleaner and easier to read.
Image not found in postmeta
Recommended Cleanup Checklist
Disabling emoji scripts pairs well with a broader WordPress cleanup plan.
- Remove unused plugins.
- Disable unused block editor assets where safe.
- Optimize images and serve modern formats.
- Limit third-party scripts.
- Use page caching.
- Defer non-critical JavaScript.
- Clean up fonts and icon libraries.
- Test changes before and after.
Emoji cleanup is a good first step because it is low risk. It also teaches a useful habit: every script should earn its place on the page.
FAQ
What is _wpEmojiSettings?
_wpEmojiSettings is a WordPress JavaScript object used for built-in emoji detection and fallback support. It helps older browsers display emoji through WordPress-hosted assets.
Is it safe to disable WordPress emoji scripts?
Yes, for most modern websites. Current browsers and operating systems display emoji natively, so WordPress fallback scripts are often not needed.
Will emojis disappear after disabling the script?
Usually not. Common emoji still appear because the browser handles them. Very old browsers may show basic symbols or empty boxes.
Does removing _wpEmojiSettings improve Core Web Vitals?
It may help slightly, but it rarely changes scores by itself. The main benefit is cleaner HTML and less JavaScript work. Bigger gains often come from image, font, cache, and third-party script cleanup.
Should a plugin or code snippet be used?
A small site-specific plugin is the cleanest option. A code snippets plugin is easier for non-developers. A child theme works too, but the cleanup depends on that theme staying active.
Why does _wpEmojiSettings still appear after adding the code?
Cache is the most common reason. The site owner should clear page cache, CDN cache, server cache, and browser cache. If it still appears, another plugin may be adding emoji support back.