WordPress front-end performance

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.
Front-End CleanupDisable Emojis
wp-emoji-release.min.js
Inline emoji styles
DNS-prefetch to s.w.org
TinyMCE wpemoji plugin
Typed emoji still display normally — your OS draws them natively.
One script, one request removedNothing about how emoji look actually changes.
Active
Quick answer

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.

The "built for browsers nobody uses anymore" problem

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.

A dedicated WordPress solution

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.

Verified feature set

Every registered hook, covered in one pass

Every capability below is present in the supplied PHP class and its settings registration.

Inline styles

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.

wp_print_stylesadmin_print_styles
Feeds and email

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.

wp_staticize_emojiwp_mail
Resource hints

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.

wp_resource_hintss.w.org
Classic editor

The TinyMCE emoji plugin removed

The wpemoji plugin gets filtered out of TinyMCE's plugin list for the classic editor.

tiny_mce_pluginswpemoji
Nothing else affected

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.

All emoji hooksNo CSS hiding
Practical use cases

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.

Operational benefits

Less weight, zero visible change

The module removes a fallback nobody's browser needs anymore, without touching how content actually looks.

A smaller page, on every single loadThe removed script and styles apply everywhere, not just on pages that happen to use emoji.
Zero visible changeBecause the browser and OS already handle emoji rendering, nothing about existing content looks different after enabling this.
One toggle, comprehensive coverageA single switch addresses every registered hook, rather than needing separate settings for the front end, admin, feeds and email.
One less early network hintRemoving the DNS-prefetch means the browser doesn't spend time resolving a domain it will likely never need to contact.
Performance behaviour

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.

Security implementation

Nothing new added, nothing to secure

The code only removes existing WordPress behaviour and accepts no input of its own.

01

No new input surface

The module only removes existing WordPress hooks; it doesn't add anything that accepts or processes user input.

02

Administrator-only configuration

Only an administrator with access to TheOneWP settings can enable the module.

03

Standard WordPress hook removal

Every change uses remove_action(), remove_filter() or a documented filter, the same approach any theme or plugin would use.

04

No effect on content storage

Emoji characters typed into content are stored and displayed exactly as before; only the fallback rendering mechanism is removed.

Verified compatibility

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.

Detection script

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_headadmin_print_scripts
Resource hints

wp_resource_hints filter

The standard WordPress filter for adding or removing preconnect, prefetch and similar resource hints.

wp_resource_hintsdns-prefetch
Classic editor

tiny_mce_plugins filter

The core filter for adjusting which plugins load into the TinyMCE editor instance.

tiny_mce_pluginsTinyMCE
Solution comparison

TheOneWP versus common alternatives

Compare the verified Disable Emojis implementation with a typical partial-coverage snippet.

CapabilityTheOneWP Disable EmojisOther common solutions
Removing the emoji script and styles Removed from both front end and adminOften only covers the front end
Feed and email conversion wp_staticize_emoji removed everywhere it's registeredFrequently left in place, still running unnecessarily
DNS-prefetch hint Removed specifically, other hints untouchedSometimes missed entirely by simpler snippets
Classic editor plugin wpemoji removed from TinyMCERarely addressed by a typical disable-emoji snippet
Administration One toggle, nothing else to configureUsually the same, when available at all
Recommended workflow

Confirm the cleanup in four steps

There's little to configure beyond confirming the change took effect.

01

Enable Disable Emojis

Activate the module from the TheOneWP settings; there's nothing else to configure.

02

Check a page's source

Confirm the emoji detection script and inline styles no longer appear in the page head.

03

Confirm emoji still display

Look at existing content with emoji to confirm they still render exactly as before.

04

Leave it on

Since there's no ongoing configuration, the module simply keeps working once enabled.

Best practices

Low risk, reasonable on nearly any site

This is one of the safer cleanups available, since nothing about content actually changes.

01

Enable it as routine cleanup

This is a low-risk, no-visible-change removal, reasonable to enable on essentially any site.

02

Don't expect any visual difference

If emoji look different after enabling this, something else changed; the module itself doesn't alter emoji rendering.

03

Pair it with other front-end trimming

Combine it with removing other unused default assets for a cumulative reduction in page weight.

04

No need to revisit it later

Since it addresses a fixed, comprehensive list of hooks, there's nothing to reconfigure as the site grows.

Common mistakes

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.

Frequently asked questions

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.