Почему стоит отключать Emoji в WordPress
WordPress по умолчанию загружает скрипты и стили для поддержки Emoji — это дополнительные HTTP-запросы и ресурсы, которые могут замедлять загрузку страниц. Особенно это заметно на сайтах с высокой посещаемостью или при использовании CDN с лимитами. Если вы не используете Emoji или хотите снизить нагрузку, отключение этих ресурсов — простой и эффективный способ оптимизации.
Диагностика: как проверить, загружаются ли Emoji
Для проверки используйте инструменты разработчика браузера (F12) на вкладке Network. Отфильтруйте по «js» и «css» и посмотрите, есть ли запросы на emoji-*.js или emoji-*.css. Также обратите внимание на wp-includes/js/wp-emoji-release.min.js.
Пример вывода в консоли Chrome:
GET https://example.com/wp-includes/js/wp-emoji-release.min.js?ver=5.9.3 200 OKЕсли такой файл загружается, Emoji активны.
Пошаговое отключение Emoji через functions.php
Добавьте следующий код в файл 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');
// Отключить фильтрацию контента на Emoji
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');
// Отключить DNS prefetch для emoji
add_filter('emoji_svg_url', '__return_false');
}
add_action('init', 'disable_wp_emojicons');Этот код полностью отключит загрузку Emoji-ресурсов и фильтров.
Проверка результата после отключения
- Обновите страницу и снова откройте инструменты разработчика.
- Проверьте вкладку Network: скрипты и стили emoji не должны загружаться.
- Проверьте исходный код страницы (
Ctrl+U): не должно быть вызововprint_emoji_detection_scriptили inline-скриптов для Emoji. - Проверьте отображение Emoji в текстах — они должны корректно отображаться как Unicode символы без падений функционала.
Частые ошибки при отключении Emoji и их исправление
- Код не работает — скрипты Emoji всё ещё загружаются.
Причина: код добавлен после загрузки хуков, либо в неверном месте. Решение: убедитесь, что код добавлен вfunctions.phpтемы или в плагин, подключенный доinit. Можно использоватьadd_action('init', 'disable_wp_emojicons', 1);для раннего вызова. - Emoji не отображаются в админке.
Причина: отключены стили и скрипты для админки. Если требуется Emoji в админке — удалите из кода строки сadmin_print_scriptsиadmin_print_styles. - Конфликты с плагинами, которые используют Emoji.
Решение: отключать Emoji только если вы уверены, что плагины не зависят от них. Иначе отключайте выборочно.
Практические советы по безопасности и производительности
- Отключение Emoji уменьшает количество HTTP-запросов и объем CSS/JS, что ускоряет загрузку страниц.
- При использовании кеширующих плагинов (например, Clearfy Pro) рекомендуется очистить кеш после внесения изменений.
- Если используете CDN, убедитесь, что файлы Emoji не кэшируются и не загружаются с CDN для дополнительной оптимизации.
- Регулярно проверяйте производительность сайта (через Google PageSpeed Insights или WebPageTest) до и после изменений.
Сравнение способов отключения Emoji
| Метод | Плюсы | Минусы |
|---|---|---|
| Отключение через functions.php (код) | Полный контроль, без сторонних плагинов, легко адаптируется | Требует базовых знаний PHP, возможны ошибки при неправильном подключении |
| Использование плагинов (например, Disable Emojis) | Простота установки, подходит для новичков | Добавляет лишние плагины, может конфликтовать с другими |
| Оставить Emoji включенными | Поддержка всех символов и расширенная совместимость | Дополнительные запросы, снижение скорости загрузки |