Начиная с версии 4.2, WordPress автоматически подключает поддержку Emoji через встроенный JavaScript и стили. Это приводит к дополнительным HTTP-запросам, увеличивает время загрузки страниц и может влиять на производительность, особенно на слабых хостингах или при большом количестве посетителей. В этой статье мы подробно рассмотрим, как правильно отключить Emoji в WordPress, почему это полезно и какие есть варианты реализации — с примерами кода и рекомендациями по плагинам.
Почему отключение Emoji важно для оптимизации WordPress
Emoji в WordPress подключаются через скрипты и стили, которые подгружаются на каждой странице сайта. Это приводит к нескольким нежелательным эффектам:
- Увеличение количества HTTP-запросов — каждый запрос замедляет загрузку страницы.
- Дополнительная нагрузка на сервер и браузер.
- Некоторые браузеры и устройства не нуждаются в этих скриптах, поэтому они становятся лишними.
Если вы не используете Emoji в своих публикациях или комментариях, отключение этой функции — простой и эффективный способ ускорить сайт. Особенно это актуально для сайтов с высокими требованиями к скорости и SEO.
Как отключить Emoji средствами кода в functions.php
Самый простой и надежный способ — добавить в файл functions.php вашей активной темы или дочерней темы следующий код. Он отключит все загрузки, связанные с Emoji:
function wpin_disable_emojis() {
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', 'wp_staticize_emoji');
remove_filter('comment_text', 'wp_staticize_emoji');
remove_filter('wp_mail', 'wp_staticize_emoji_for_email');
add_filter('tiny_mce_plugins', 'wpin_disable_emojis_tinymce');
add_filter('wp_resource_hints', 'wpin_disable_emojis_remove_dns_prefetch', 10, 2);
}
add_action('init', 'wpin_disable_emojis');
function wpin_disable_emojis_tinymce($plugins) {
if (is_array($plugins)) {
return array_diff($plugins, array('wpemoji'));
}
return array();
}
function wpin_disable_emojis_remove_dns_prefetch($urls, $relation_type) {
if ('dns-prefetch' == $relation_type) {
$emoji_svg_url = 'https://s.w.org/images/core/emoji/';
foreach ($urls as $key => $url) {
if (strpos($url, $emoji_svg_url) !== false) {
unset($urls[$key]);
}
}
}
return $urls;
}Этот код отключит все скрипты и стили Emoji, удалит их из редактора TinyMCE и уберет DNS-prefetch, связанный с Emoji. После добавления кода очистите кеш сайта и браузера, чтобы изменения вступили в силу.
Использование плагинов для отключения Emoji
Если вы не хотите править код вручную, можно использовать популярные плагины для оптимизации и очистки WordPress. Они часто включают функцию отключения Emoji среди других опций:
- Clearfy Pro — плагин для оптимизации скорости и безопасности WordPress. В нем есть отдельный пункт для отключения Emoji, а также других ненужных функций WordPress.
- Disable Emojis — легкий плагин, полностью отключающий поддержку Emoji без лишнего функционала.
Для установки Clearfy Pro вы можете воспользоваться официальным сайтом WPSHOP, где представлены все инструкции и преимущества плагина.
Проверка отключения Emoji и тестирование
После внедрения кода или установки плагина важно проверить, что Emoji действительно отключены и сайт работает корректно:
- Откройте исходный код страницы (Ctrl+U) и убедитесь, что отсутствуют ссылки на
wp-emoji-release.min.jsиemoji.css. - Проверьте консоль браузера на наличие ошибок JavaScript.
- Используйте сервисы тестирования скорости, например, PageSpeed Insights, чтобы оценить влияние отключения Emoji на производительность.
Дополнительные советы по оптимизации загрузки скриптов в WordPress
Отключение Emoji — это лишь один из шагов по оптимизации. Чтобы сделать сайт еще быстрее, рекомендую обратить внимание на следующие моменты:
Отложенная загрузка (defer) и асинхронность (async) скриптов
Используйте фильтры WordPress, чтобы добавить атрибуты defer или async для скриптов, которые не влияют на начальную загрузку страницы. Это позволит браузеру загружать скрипты параллельно и ускорит отображение контента.
Минификация и объединение CSS и JS
С помощью плагинов, таких как Clearfy Pro, Autoptimize или WP Rocket, можно минимизировать и объединить файлы стилей и скриптов, что уменьшит количество запросов и общий размер загружаемых данных.
Отключение ненужных скриптов и стилей
Если на сайте не используются некоторые функции или плагины, отключите их скрипты и стили с помощью wp_dequeue_script и wp_dequeue_style в functions.php. Это снизит нагрузку и время загрузки.
Выводы и практические рекомендации
Отключение Emoji в WordPress — простой и эффективный способ оптимизировать скорость загрузки сайта без потери функционала. Используйте предложенный код в functions.php или установите специализированный плагин, например, Clearfy Pro, если хотите получить дополнительные возможности оптимизации.
Обязательно тестируйте сайт после изменений, чтобы убедиться в отсутствии ошибок и улучшении производительности. В комплексной оптимизации уделяйте внимание и другим аспектам загрузки скриптов, кешированию и минимизации ресурсов.