Как отключить Emoji в WordPress

Emoji в WordPress появились с версии 4.2 и автоматически подключаются на всех сайтах. Это улучшает отображение смайликов во всех браузерах, но иногда может замедлять сайт из-за загрузки дополнительных скриптов и стилей. Если вы хотите ускорить свой сайт или просто не используете Emoji, то стоит отключить эту функцию.

Почему стоит отключать Emoji в WordPress

По умолчанию WordPress загружает несколько файлов для поддержки Emoji: скрипты, стили и стили для админки. Это увеличивает количество HTTP-запросов и вес страницы, что может негативно сказаться на скорости загрузки сайта и показателях Core Web Vitals.

Отключение Emoji поможет:

  • Сократить количество HTTP-запросов;
  • Уменьшить вес страниц;
  • Снизить нагрузку на сервер;
  • Повысить скорость загрузки и улучшить опыт пользователей.

Как отключить Emoji через функции темы или плагин

Самый простой и надежный способ — добавить код в functions.php вашей темы или в плагин для кастомного кода. Пример кода, который полностью отключает Emoji:

function wporg_disable_emoji() {
    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', 'wporg_disable_emoji_tinymce');
    add_filter('wp_resource_hints', 'wporg_disable_emoji_remove_dns_prefetch', 10, 2);
}

function wporg_disable_emoji_tinymce($plugins) {
    if (is_array($plugins)) {
        return array_diff($plugins, array('wpemoji'));
    } else {
        return array();
    }
}

function wporg_disable_emoji_remove_dns_prefetch($urls, $relation_type) {
    if ('dns-prefetch' === $relation_type) {
        $emoji_svg_url = 'https://s.w.org/images/core/emoji/';
        $urls = array_diff($urls, array($emoji_svg_url));
    }
    return $urls;
}

add_action('init', 'wporg_disable_emoji');

Этот код удаляет все скрипты, стили, фильтры и даже отключает поддержку в редакторе TinyMCE.

Отключение Emoji с помощью плагинов

Если вы не хотите трогать код, можно использовать плагины, которые сделают это за вас:

  • Disable Emojis — легкий и популярный плагин для отключения Emoji в WordPress;
  • Clearfy Pro — плагин с широким набором оптимизаций, в том числе отключение Emoji и многое другое;
  • WPSpeed Fix — плагин для комплексной оптимизации скорости, который также отключает Emoji.

Использование плагина особенно удобно, если вы не хотите редактировать код или планируете отключать Emoji вместе с другими оптимизациями.

Проверка отключения Emoji и тестирование

После добавления кода или установки плагина важно проверить, что Emoji действительно отключены:

  • Откройте исходный код страницы (Ctrl+U) и убедитесь, что отсутствуют скрипты и стили с пути /wp-includes/js/wp-emoji-release.min.js и /wp-includes/css/emoji.css.
  • Используйте инструменты разработчика в браузере, чтобы проверить отсутствие загрузки emoji-ресурсов.
  • Проверьте скорость загрузки сайта через сервисы PageSpeed Insights, GTmetrix или WebPageTest — должно быть улучшение.

При отключении Emoji обратите внимание, что смайлики в старых браузерах могут отображаться некорректно, но в современных это не проблема.

Дополнительные советы по оптимизации загрузки скриптов Emoji

Если полностью отключать Emoji не хочется, можно минимизировать их влияние:

  • Отключить загрузку Emoji на страницах админки, оставив на фронтенде;
  • Загрузить Emoji асинхронно с помощью отложенной загрузки скриптов;
  • Кешировать скрипты Emoji и стили через CDN.

Например, чтобы отключить Emoji только на фронтенде, измените хук init на условие:

function wporg_disable_emoji_frontend() {
    if (!is_admin()) {
        remove_action('wp_head', 'print_emoji_detection_script', 7);
        remove_action('wp_print_styles', 'print_emoji_styles');
        add_filter('tiny_mce_plugins', 'wporg_disable_emoji_tinymce');
    }
}
add_action('init', 'wporg_disable_emoji_frontend');

Таким образом, вы сохраните поддержку Emoji в админке, но уберете нагрузку с сайта для посетителей.

Скачать WP с оф. сайта Магазин проверенных платных тем