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 в админке, но уберете нагрузку с сайта для посетителей.