Stop shipping a script modern browsers don't need
Disable Emojis removes the script, styles and DNS-prefetch WordPress adds for emoji support on every single page, without changing how a single emoji actually looks.
- Removes the emoji detection script from the front end and the admin.
- Removes the inline emoji styles from both areas too.
- Drops the DNS-prefetch hint for the emoji CDN.
- Typed emoji still display normally, drawn by the OS like any other character.
What does Disable Emojis do?
When the disable_emojis module is active, TOWP_Disable_Emojis removes the print_emoji_detection_script action from both wp_head and admin_print_scripts, removes print_emoji_styles from both wp_print_styles and admin_print_styles, and removes the wp_staticize_emoji filters that would otherwise convert emoji into image tags for feeds, comment RSS and outgoing email. It also drops the DNS-prefetch hint pointing at the emoji CDN and removes the wpemoji plugin from the TinyMCE editor. None of this changes how an emoji actually renders; modern browsers and operating systems already draw Unicode emoji characters natively.
Emoji support exists for a browser era that's over
A fallback built for old browsers keeps loading on every page, long after the browsers that needed it disappeared.
It was built for browsers that couldn't draw emoji
WordPress's emoji script and styles exist to replace emoji characters with images on systems too old to render them, a need that essentially no current browser has.
It still loads on every single page
Despite that, the detection script, its inline styles and a DNS-prefetch hint all still load by default, on every front-end and admin page, for a fallback almost nobody's browser needs.
Remove the shim, keep the emoji
The module removes every hook WordPress registers for emoji support, without touching how emoji themselves display.
One less script and inline style
The detection script and its accompanying styles are removed from both the front end and the admin.
No DNS-prefetch for a CDN you don't need
The hint that tells browsers to resolve the emoji CDN's domain early gets removed along with everything else.
Emoji still look exactly the same
Since modern systems draw Unicode emoji natively, removing WordPress's fallback script changes nothing about how emoji appear in content.
Every registered hook, covered in one pass
Every capability below is present in the supplied PHP class and its settings registration.
Detection script removed from both
print_emoji_detection_script is removed from wp_head and from admin_print_scripts, so neither area loads it.
Removed from both areas too
print_emoji_styles is removed from wp_print_styles and admin_print_styles, matching the same front-end-and-admin coverage as the script.
The image-conversion filters removed
wp_staticize_emoji is removed from feed content and comment RSS, and its email counterpart is removed from wp_mail, so nothing converts emoji into image tags anywhere.
DNS-prefetch for the emoji CDN dropped
The wp_resource_hints filter strips the entry pointing at s.w.org's emoji image path specifically, leaving other resource hints untouched.
The TinyMCE emoji plugin removed
The wpemoji plugin gets filtered out of TinyMCE's plugin list for the classic editor.
Complete coverage, no missed hooks
Every core hook WordPress registers specifically for emoji support gets addressed, front end, admin, feeds, email and the editor alike.
Where removing the fallback helps most
The module supports any site trimming assets its visitors' browsers no longer need.
General front-end performance cleanup
Remove a script and inline style most visitors' browsers have no actual use for, as part of a broader page-weight reduction.
Sites sending a high volume of email
Skip the emoji-to-image conversion on outgoing mail, since most email clients already render Unicode emoji correctly.
Feed-heavy sites
Avoid the extra processing feed and comment RSS content goes through just to convert emoji that display fine as-is.
Less weight, zero visible change
The module removes a fallback nobody's browser needs anymore, without touching how content actually looks.
A request removed from every page load
The verified implementation is a set of direct hook removals with no overhead of its own.
A request and a few kilobytes, every page
The detection script and inline styles are removed from every page load, front end and admin alike.
Simple, direct hook removal
Every change is a straightforward remove_action or remove_filter call against WordPress's own hooks, adding no overhead of its own.
Less processing on feeds and email
Skipping the emoji-to-image conversion means one less content transformation running on feed and email generation.
Nothing new added, nothing to secure
The code only removes existing WordPress behaviour and accepts no input of its own.
No new input surface
The module only removes existing WordPress hooks; it doesn't add anything that accepts or processes user input.
Administrator-only configuration
Only an administrator with access to TheOneWP settings can enable the module.
Standard WordPress hook removal
Every change uses remove_action(), remove_filter() or a documented filter, the same approach any theme or plugin would use.
No effect on content storage
Emoji characters typed into content are stored and displayed exactly as before; only the fallback rendering mechanism is removed.
Built around native WordPress emoji hooks
The supplied code integrates through APIs present in WordPress core. No compatibility claim beyond the verified implementation is assumed.
wp_head and admin_print_scripts
The two hooks WordPress core uses to print the emoji detection script, covering both front end and admin.
wp_resource_hints filter
The standard WordPress filter for adding or removing preconnect, prefetch and similar resource hints.
tiny_mce_plugins filter
The core filter for adjusting which plugins load into the TinyMCE editor instance.
TheOneWP versus common alternatives
Compare the verified Disable Emojis implementation with a typical partial-coverage snippet.
| Capability | TheOneWP Disable Emojis | Other common solutions |
|---|---|---|
| Removing the emoji script and styles | Removed from both front end and admin | Often only covers the front end |
| Feed and email conversion | wp_staticize_emoji removed everywhere it's registered | Frequently left in place, still running unnecessarily |
| DNS-prefetch hint | Removed specifically, other hints untouched | Sometimes missed entirely by simpler snippets |
| Classic editor plugin | wpemoji removed from TinyMCE | Rarely addressed by a typical disable-emoji snippet |
| Administration | One toggle, nothing else to configure | Usually the same, when available at all |
Confirm the cleanup in four steps
There's little to configure beyond confirming the change took effect.
Enable Disable Emojis
Activate the module from the TheOneWP settings; there's nothing else to configure.
Check a page's source
Confirm the emoji detection script and inline styles no longer appear in the page head.
Confirm emoji still display
Look at existing content with emoji to confirm they still render exactly as before.
Leave it on
Since there's no ongoing configuration, the module simply keeps working once enabled.
Low risk, reasonable on nearly any site
This is one of the safer cleanups available, since nothing about content actually changes.
Enable it as routine cleanup
This is a low-risk, no-visible-change removal, reasonable to enable on essentially any site.
Don't expect any visual difference
If emoji look different after enabling this, something else changed; the module itself doesn't alter emoji rendering.
Pair it with other front-end trimming
Combine it with removing other unused default assets for a cumulative reduction in page weight.
No need to revisit it later
Since it addresses a fixed, comprehensive list of hooks, there's nothing to reconfigure as the site grows.
Avoid assumptions that aren't quite accurate
The most common misunderstanding about this module is what it actually removes.
Worrying emoji will stop working
Removing WordPress's emoji script doesn't touch emoji rendering itself, since browsers and operating systems already handle that natively.
Forgetting it also affects outgoing email
The email-specific emoji conversion filter is removed too, not just the front-end script.
Looking for a settings screen that isn't there
Like other single-purpose modules, this one is a toggle by design, with no further configuration screen.
Disable Emojis FAQ
These answers come directly from the verified class and its settings registration.
What does Disable Emojis do?
It removes the emoji detection script, its inline styles, the DNS-prefetch hint for the emoji CDN, and the TinyMCE emoji plugin, from both the front end and the admin.
Will emoji stop displaying in my content?
No. Modern browsers and operating systems already render Unicode emoji natively; this only removes WordPress's own fallback script for older systems that needed one.
Does this affect the admin area too, or just the front end?
Both. The script and styles are removed from wp_head and admin_print_scripts, and from wp_print_styles and admin_print_styles, respectively.
Does this affect emoji in RSS feeds or email?
Yes. The wp_staticize_emoji filters that would convert emoji into image tags for feeds, comment RSS and outgoing email are all removed.
What is the DNS-prefetch hint this removes?
A hint telling the browser to resolve s.w.org's domain early, since that's where WordPress's emoji images would otherwise be served from.
Does this remove anything from the block editor?
The module specifically targets the TinyMCE plugin used by the classic editor; there's no equivalent emoji-specific plugin to remove from the block editor.
Are there any settings beyond turning the module on?
No. It's a single toggle with no additional configuration.
Will this improve page load performance?
It removes one script, one inline stylesheet and one DNS-prefetch hint from every page load, a small but genuine reduction.
Does this module require any setup after enabling it?
No. Enabling it is the entire configuration; there's nothing further to adjust.
Who can turn this module on?
Only an administrator with access to the TheOneWP settings screen.
Stop loading a script your browser doesn't need.Keep every emoji looking exactly the same.
Use Disable Emojis to remove WordPress's emoji script, styles and DNS-prefetch hint, with zero visible change to your content.

