Почему стоит отключить Emoji в WordPress
WordPress встроенно загружает скрипты и стили для поддержки Emoji на всех страницах сайта. Хотя это улучшает отображение смайликов в браузерах, которые их не поддерживают, для многих проектов эти файлы являются лишним ресурсом, увеличивая время загрузки и количество HTTP-запросов. Особенно это заметно на сайтах с высокой посещаемостью и при использовании кэширования.
Диагностика: как проверить, что Emoji замедляют сайт
- Откройте сайт в браузере и через инструменты разработчика (F12) перейдите во вкладку Network.
- Обновите страницу и найдите файлы с именами
wp-emoji-release.min.jsиemoji.css. - Если они загружаются, значит поддержка Emoji активна.
- Также можно проверить загрузку лишних HTTP-запросов и время загрузки страницы до и после отключения.
Пошаговое отключение Emoji через код
Для отключения Emoji в WordPress достаточно добавить следующий код в файл functions.php вашей дочерней темы или в плагин для пользовательских функций:
function disable_wp_emojicons() {
// Отключаем загрузку скриптов и стилей 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');
// Отключаем фильтры обработки контента и RSS
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_action('init', 'disable_wp_emojicons');Этот код удаляет все действия и фильтры, связанные с Emoji, как на фронтенде, так и в админке.
Дополнительно: убрать DNS prefetch
WordPress также добавляет <link rel="dns-prefetch" href="//s.w.org" /> для Emoji. Его можно убрать так:
function disable_emoji_dns_prefetch($urls, $relation_type) {
if ('dns-prefetch' === $relation_type) {
$emoji_svg_url = 'https://s.w.org/wp-includes/js/wp-emoji-release.min.js';
foreach ($urls as $key => $url) {
if (strpos($url, 's.w.org') !== false) {
unset($urls[$key]);
}
}
}
return $urls;
}
add_filter('wp_resource_hints', 'disable_emoji_dns_prefetch', 10, 2);Проверка результата после отключения Emoji
- Обновите страницу сайта и откройте инструменты разработчика в браузере.
- Перейдите на вкладку Network, обновите страницу и убедитесь, что файлы
wp-emoji-release.min.jsиemoji.cssне загружаются. - Проверьте исходный код страницы (
Ctrl+U) — отсутствуют теги и скрипты, связанные с Emoji. - Для оценки улучшения скорости можно использовать Google PageSpeed Insights или Lighthouse. Должно быть снижение количества запросов и ускорение загрузки.
Частые ошибки и их исправление
- Ошибка: Emoji всё ещё загружаются после добавления кода.
Причина: Кэш браузера или плагина.
Решение: Очистите кэш сайта и браузера, отключите кэширование на время теста. - Ошибка: Код добавлен в неверное место, возникает ошибка PHP.
Причина: Код вставлен вне или с синтаксическими ошибками.
Решение: Добавляйте код в functions.php внутри тегов PHP и проверяйте синтаксис. - Ошибка: Отключение Emoji вызывает проблемы с отображением смайликов в старых браузерах.
Решение: Если поддержка старых браузеров критична, отключайте Emoji с осторожностью.
Практические советы по производительности и безопасности
- Отключение Emoji снижает количество запросов и размер страниц, что улучшает время загрузки и пользовательский опыт.
- Минимизируйте вмешательство в ядро WordPress — используйте плагины, например, Clearfy Pro (https://wpshop.ru/plugins/clearfy?utm_source=wplink.ru&utm_medium=article&utm_campaign=kak-otkljuchit-emoji-v-wordpress-dlja-uskoreniya-sajta) предлагает функцию отключения Emoji и другие оптимизации.
- Регулярно обновляйте WordPress и темы, чтобы избежать конфликтов и уязвимостей.
- Перед внесением изменений создавайте резервные копии.
Сравнение способов отключения Emoji
| Способ | Преимущества | Недостатки |
|---|---|---|
| Код в functions.php | Полный контроль, бесплатно, без плагинов | Требует навыков, возможна ошибка при правках |
| Плагин Clearfy Pro | Простота настройки, дополнительные оптимизации | Платный, дополнительный плагин в системе |
| Оставить как есть | Гарантированная поддержка Emoji | Дополнительные запросы и нагрузка |