{"id":891,"date":"2015-03-22T11:22:48","date_gmt":"2015-03-22T11:22:48","guid":{"rendered":"https:\/\/wordpress.org\/plugins-wp\/disable-emojis\/"},"modified":"2026-04-29T21:37:53","modified_gmt":"2026-04-29T21:37:53","slug":"disable-emojis","status":"publish","type":"plugin","link":"https:\/\/hau.wordpress.org\/plugins\/disable-emojis\/","author":276576,"comment_status":"closed","ping_status":"closed","template":"","meta":{"_crdt_document":"","version":"1.8","stable_tag":"1.8","tested":"7.0","requires":"4.8","requires_php":"","requires_plugins":null,"header_name":"Disable Emojis (GDPR friendly)","header_author":"Ryan Hellyer","header_description":"","assets_banners_color":"d3c7d6","last_updated":"2026-04-29 21:37:53","external_support_url":"","external_repository_url":"","donate_link":"https:\/\/geek.hellyer.kiwi\/donate\/","header_plugin_uri":"https:\/\/geek.hellyer.kiwi\/plugins\/disable-emojis\/","header_author_uri":"https:\/\/geek.hellyer.kiwi\/","rating":5,"author_block_rating":0,"active_installs":60000,"downloads":1096096,"num_ratings":108,"support_threads":1,"support_threads_resolved":0,"author_block_count":0,"sections":["description","installation","faq","changelog"],"tags":{"1.0":{"tag":"1.0","author":"ryanhellyer","date":"2015-04-11 00:23:08"},"1.1":{"tag":"1.1","author":"ryanhellyer","date":"2015-04-22 20:05:17"},"1.2":{"tag":"1.2","author":"ryanhellyer","date":"2015-04-22 20:36:17"},"1.4":{"tag":"1.4","author":"ryanhellyer","date":"2015-04-22 20:42:09"},"1.5":{"tag":"1.5","author":"ryanhellyer","date":"2015-05-05 07:19:12"},"1.5.1":{"tag":"1.5.1","author":"ryanhellyer","date":"2015-11-06 19:38:04"},"1.5.2":{"tag":"1.5.2","author":"ryanhellyer","date":"2016-08-23 18:04:11"},"1.5.3":{"tag":"1.5.3","author":"ryanhellyer","date":"2017-07-16 14:55:17"},"1.7":{"tag":"1.7","author":"ryanhellyer","date":"2017-08-05 20:59:42"},"1.7.1":{"tag":"1.7.1","author":"ryanhellyer","date":"2018-06-13 12:05:14"},"1.7.2":{"tag":"1.7.2","author":"ryanhellyer","date":"2020-10-21 13:00:54"},"1.7.3":{"tag":"1.7.3","author":"ryanhellyer","date":"2021-08-09 15:13:00"},"1.7.4":{"tag":"1.7.4","author":"ryanhellyer","date":"2022-01-16 10:09:08"},"1.7.5":{"tag":"1.7.5","author":"ryanhellyer","date":"2023-06-28 07:53:30"},"1.7.6":{"tag":"1.7.6","author":"ryanhellyer","date":"2023-09-14 09:44:19"},"1.7.7":{"tag":"1.7.7","author":"ryanhellyer","date":"2025-02-16 22:06:25"},"1.7.8":{"tag":"1.7.8","author":"ryanhellyer","date":"2026-04-29 08:58:19"},"1.8":{"tag":"1.8","author":"ryanhellyer","date":"2026-04-29 21:37:53"}},"upgrade_notice":{"1.7.8":"<p>Compatible with the latest version of WordPress.<\/p>"},"ratings":{"1":1,"2":0,"3":0,"4":0,"5":107},"assets_icons":[],"assets_banners":{"banner-1544x500.png":{"filename":"banner-1544x500.png","revision":1145188,"resolution":"1544x500","location":"assets","locale":""},"banner-772x250.png":{"filename":"banner-772x250.png","revision":1145188,"resolution":"772x250","location":"assets","locale":""}},"assets_blueprints":{},"all_blocks":[],"tagged_versions":["1.0","1.1","1.2","1.4","1.5","1.5.1","1.5.2","1.5.3","1.7","1.7.1","1.7.2","1.7.3","1.7.4","1.7.5","1.7.6","1.7.7","1.7.8","1.8"],"block_files":[],"assets_screenshots":[],"screenshots":[],"jetpack_post_was_ever_published":false},"plugin_section":[],"plugin_tags":[3711,23840,131785,247],"plugin_category":[54],"plugin_contributors":[78439],"plugin_business_model":[],"class_list":["post-891","plugin","type-plugin","status-publish","hentry","plugin_tags-disable","plugin_tags-emojis","plugin_tags-gdpr","plugin_tags-performance","plugin_category-security-and-spam-protection","plugin_contributors-ryanhellyer","plugin_committers-ryanhellyer"],"banners":{"banner":"https:\/\/ps.w.org\/disable-emojis\/assets\/banner-772x250.png?rev=1145188","banner_2x":"https:\/\/ps.w.org\/disable-emojis\/assets\/banner-1544x500.png?rev=1145188","banner_rtl":false,"banner_2x_rtl":false},"icons":{"svg":false,"icon":"https:\/\/s.w.org\/plugins\/geopattern-icon\/disable-emojis_d3c7d6.svg","icon_2x":false,"generated":true},"screenshots":[],"raw_content":"<!--section=description-->\n<p>This plugin disables the WordPress emoji functionality, removing unnecessary code bloat that adds support for emojis in older browsers.<\/p>\n\n<h4>What it does<\/h4>\n\n<ul>\n<li>Removes the emoji detection script from <code>wp_head<\/code> and the admin<\/li>\n<li>Removes emoji styles from <code>wp_print_styles<\/code> and admin<\/li>\n<li>Removes emoji DNS prefetching, preventing connections to <code>s.w.org<\/code><\/li>\n<li>Removes the <code>wpemoji<\/code> TinyMCE plugin<\/li>\n<li>Strips emoji CDN hostname from DNS prefetch hints<\/li>\n<\/ul>\n\n<h4>Performance &amp; Privacy<\/h4>\n\n<p>Emojis will still display in modern browsers that have built-in support. This plugin simply removes the extra HTTP requests and JavaScript overhead for browsers that don't need it. Additionally, it prevents DNS prefetching to WordPress.org's emoji CDN, improving privacy.<\/p>\n\n<p>Note: Emoticons like <code>:)<\/code> will continue to work as expected.<\/p>\n\n<h4>Requirements<\/h4>\n\n<ul>\n<li>PHP 7.4+<\/li>\n<li>WordPress 5.0+<\/li>\n<\/ul>\n\n<h4>GDPR compliancy<\/h4>\n\n<p>This plugin does not send any data to external servers. It disables DNS prefetching of emojis within WordPress, which should ensure improved privacy. To determine if your site is GDPR compliant, please seek legal advice. I have done my best to ensure the plugin is 100% GDPR compliant, but I am not a lawyer so cannot guarantee anything.<\/p>\n\n<h4>Architecture<\/h4>\n\n<p>The plugin uses:<\/p>\n\n<ul>\n<li><strong>PSR-4 autoloading<\/strong> \u2014 classes in <code>src\/<\/code> are autoloaded via Composer under the <code>RyanHellyer\\DisableEmojis<\/code> namespace.<\/li>\n<li><strong>Inpsyde Modularity<\/strong> \u2014 the plugin is structured as a module implementing <code>ExecutableModule<\/code>, bootstrapped via the library's <code>Package<\/code> class.<\/li>\n<\/ul>\n\n<h4>Quality<\/h4>\n\n<p>All code uses <code>declare(strict_types=1)<\/code> and follows PSR-12. The plugin runs the following tooling:<\/p>\n\n<ul>\n<li><strong>PHP_CodeSniffer<\/strong> (run via <code>composer phpcs<\/code>) \u2014 sniffs for PSR-12 violations<\/li>\n<li><strong>PHP-CS-Fixer<\/strong> (run via <code>composer cs<\/code>) \u2014 dry-run style check<\/li>\n<li><strong>PHPStan<\/strong> at level 6 (run via <code>composer phpstan<\/code>) \u2014 static analysis<\/li>\n<\/ul>\n\n<!--section=installation-->\n<h4>Standard installation<\/h4>\n\n<ol>\n<li>Upload the <code>disable-emojis<\/code> folder to <code>\/wp-content\/plugins\/<\/code>, or install via the WordPress plugin installer<\/li>\n<li>Activate the plugin through the Plugins screen in WordPress<\/li>\n<li>Done! Emoji bloat is automatically removed.<\/li>\n<\/ol>\n\n<h4>Composer installation<\/h4>\n\n<p>If your site uses Composer for dependency management:<\/p>\n\n<pre><code>composer require ryanhellyer\/disable-emojiis\n<\/code><\/pre>\n\n<p>Visit the <a href=\"https:\/\/geek.hellyer.kiwi\/plugins\/disable-emojis\/\">Disable Emojis plugin page<\/a> for more information.<\/p>\n\n<!--section=faq-->\n<dl>\n<dt id=\"will%20this%20break%20emojis%20on%20my%20site%3F\"><h3>Will this break emojis on my site?<\/h3><\/dt>\n<dd><p>No. Modern browsers have built-in emoji support. This plugin only removes the JavaScript and CSS that WordPress adds for very old browsers.<\/p><\/dd>\n<dt id=\"will%20emoticons%20still%20work%3F\"><h3>Will emoticons still work?<\/h3><\/dt>\n<dd><p>Yes. Text-based emoticons like <code>:)<\/code> and <code>:D<\/code> will continue to work as they always have.<\/p><\/dd>\n<dt id=\"is%20this%20plugin%20gdpr%20compliant%3F\"><h3>Is this plugin GDPR compliant?<\/h3><\/dt>\n<dd><p>It does not connect to any external servers or send any data. It removes the DNS prefetch to WordPress.org's emoji CDN. See the GDPR section above for details.<\/p><\/dd>\n\n<\/dl>\n\n<!--section=changelog-->\n<h4>1.8 (2026-04-30)<\/h4>\n\n<ul>\n<li>Refactor for modern PHP standards<\/li>\n<\/ul>\n\n<h4>1.7.8 (2026-04-29)<\/h4>\n\n<ul>\n<li>Confirmed support for newer WordPress versions.<\/li>\n<\/ul>\n\n<h4>1.7.7 (2024)<\/h4>\n\n<ul>\n<li>Confirmed support for newer WordPress versions.<\/li>\n<\/ul>\n\n<h4>1.7.6 (2023-06-28)<\/h4>\n\n<ul>\n<li>Confirmed support for newer WordPress versions.<\/li>\n<\/ul>\n\n<h4>1.7.5 (2023-05-19)<\/h4>\n\n<ul>\n<li>Added Composer support.<\/li>\n<\/ul>\n\n<h4>1.7.4 (2018-07-05)<\/h4>\n\n<ul>\n<li>Fixing typos.<\/li>\n<\/ul>\n\n<h4>1.7.3 (2018-07-05)<\/h4>\n\n<ul>\n<li>Version bump.<\/li>\n<\/ul>\n\n<h4>1.7.2 (2018-07-05)<\/h4>\n\n<ul>\n<li>Subtle improvement to code cleanliness.<\/li>\n<li>Improved documentation regarding GDPR issues.<\/li>\n<\/ul>\n\n<h4>1.7.1 (2018-06-13)<\/h4>\n\n<ul>\n<li>Added GDPR friendly label.<\/li>\n<\/ul>\n\n<h4>1.7 (2017-08-04)<\/h4>\n\n<ul>\n<li>Removed DNS prefetch URL again.<\/li>\n<li>Using simple string check rather than relying on internal WordPress filters.<\/li>\n<\/ul>\n\n<h4>1.6 (2017-07-19)<\/h4>\n\n<ul>\n<li>Removed DNS prefetch URL. Props to Aaron Queen.<\/li>\n<\/ul>\n\n<h4>1.5.3 (2016-12-19)<\/h4>\n\n<ul>\n<li>Catering to new DNS prefetch URL in version 4.7 of core.<\/li>\n<\/ul>\n\n<h4>1.5.2 (2016-08-23)<\/h4>\n\n<ul>\n<li>Improved documentation.<\/li>\n<li>Removed redundant DNS prefetching.<\/li>\n<\/ul>\n\n<h4>1.5.1 (2016-08-23)<\/h4>\n\n<ul>\n<li>Updating documentation.<\/li>\n<\/ul>\n\n<h4>1.5 (2017-08-04)<\/h4>\n\n<ul>\n<li>Catering for invalid plugin array.<\/li>\n<\/ul>\n\n<h4>1.4 (2018-06-13)<\/h4>\n\n<ul>\n<li>Updating to use Otto's code.<\/li>\n<\/ul>\n\n<h4>1.3 (2018-05-04)<\/h4>\n\n<ul>\n<li>Removing extraneous styles.<\/li>\n<\/ul>\n\n<h4>1.2 (2016-08-23)<\/h4>\n\n<ul>\n<li>Bug fix.<\/li>\n<\/ul>\n\n<h4>1.1 (2016-08-23)<\/h4>\n\n<ul>\n<li>Updating to work with latest beta.<\/li>\n<\/ul>\n\n<h4>1.0 (2015-03-22)<\/h4>\n\n<ul>\n<li>Initial release.<\/li>\n<\/ul>","raw_excerpt":"Disable the WordPress emoji functionality to improve performance and privacy.","jetpack_sharing_enabled":true,"_links":{"self":[{"href":"https:\/\/hau.wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin\/891","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/hau.wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin"}],"about":[{"href":"https:\/\/hau.wordpress.org\/plugins\/wp-json\/wp\/v2\/types\/plugin"}],"replies":[{"embeddable":true,"href":"https:\/\/hau.wordpress.org\/plugins\/wp-json\/wp\/v2\/comments?post=891"}],"author":[{"embeddable":true,"href":"https:\/\/hau.wordpress.org\/plugins\/wp-json\/wporg\/v1\/users\/ryanhellyer"}],"wp:attachment":[{"href":"https:\/\/hau.wordpress.org\/plugins\/wp-json\/wp\/v2\/media?parent=891"}],"wp:term":[{"taxonomy":"plugin_section","embeddable":true,"href":"https:\/\/hau.wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_section?post=891"},{"taxonomy":"plugin_tags","embeddable":true,"href":"https:\/\/hau.wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_tags?post=891"},{"taxonomy":"plugin_category","embeddable":true,"href":"https:\/\/hau.wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_category?post=891"},{"taxonomy":"plugin_contributors","embeddable":true,"href":"https:\/\/hau.wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_contributors?post=891"},{"taxonomy":"plugin_business_model","embeddable":true,"href":"https:\/\/hau.wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_business_model?post=891"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}