В WordPress по умолчанию подключается набор служебных скриптов и стилей, которые не всегда нужны на обычном сайте. Самый заметный из них — emoji-поддержка. Она добавляет лишний JavaScript в <head> и в некоторых конфигурациях еще и в футер. На небольшом сайте это не критично, но если задача — убрать лишний мусор из фронтенда и не ломать верстку, отключение встроенных emoji и части служебных подключений — нормальная техническая чистка.
Важно не путать это с “оптимизацией ради оптимизации”. Если у вас уже есть кеш, минификация и нормальная тема, выигрыш будет умеренным. Но в проектах, где нужно держать HTML аккуратным, сократить количество запросов и убрать ненужные inline-скрипты, это оправдано.
Что именно добавляет WordPress и почему это видно в коде страницы
По умолчанию ядро может подключать:
- emoji detection script;
- emoji styles;
- oEmbed discovery links;
- REST API link в
<head>; - wlwmanifest, если тема или старые плагины это не отключили;
- генератор версии WordPress в HTML.
Не все из этого нужно убирать на каждом сайте. Но emoji — самый безопасный кандидат для отключения, если вы не рассчитываете на старые браузеры и не хотите лишний JS на каждой странице.
Диагностика: как понять, что проблема есть
Откройте исходный код страницы и найдите строки вроде:
<script src="https://s.w.org/images/core/emoji/15.0.3/emoji-release.min.js?ver=6.5.5"></script>или inline-скрипт, связанный с wp-emoji-release.min.js. Если он есть, значит WordPress подключает emoji-поддержку. Дополнительно можно проверить вкладку Network в DevTools: лишний запрос к скрипту emoji будет виден сразу.
Еще один признак — в HTML много служебных тегов, которые не используются вашим стеком. Это не ошибка, но хороший повод провести ревизию.
Пошаговое решение: отключаем emoji корректно
Самый надежный способ — через functions.php дочерней темы или через небольшой mu-plugin. Так вы не зависите от обновления темы.
Вариант 1: отключить emoji через functions.php
<?php
add_action( 'init', function () {
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-скрипт и стили и на фронтенде, и в админке. Если вам нужно оставить emoji в админке, уберите строки для admin_print_scripts и admin_print_styles.
Вариант 2: оформить как mu-plugin
Если вы ведете несколько сайтов или не хотите, чтобы настройка зависела от темы, создайте файл wp-content/mu-plugins/disable-emoji.php:
<?php
/**
* Plugin Name: Disable Emoji
*/
add_action( 'init', function () {
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' );
} );MU-плагин удобен тем, что его сложнее случайно отключить и он не зависит от активной темы.
Что еще можно убрать, если нужен более чистый head
Если цель — не только emoji, а аккуратный фронтенд, можно точечно отключить и другие служебные элементы. Делайте это только после проверки, что они не нужны плагинам и интеграциям.
<?php
add_action( 'init', function () {
remove_action( 'wp_head', 'wp_generator' );
remove_action( 'wp_head', 'wlwmanifest_link' );
remove_action( 'wp_head', 'rsd_link' );
remove_action( 'wp_head', 'wp_shortlink_wp_head', 10 );
} );Здесь уже есть нюанс: rsd_link и wlwmanifest_link почти нигде не нужны на современных сайтах, но если вы используете старые внешние редакторы или интеграции, проверьте их поведение после отключения.
Сравнение подходов: плагин, код или ничего не трогать
| Подход | Когда уместен | Плюсы | Минусы |
|---|---|---|---|
| Код в теме / mu-plugin | Нужна точечная чистка без лишних зависимостей | Прозрачно, быстро, без лишнего интерфейса | Нужно не забыть про обновления и место хранения кода |
| Плагин для оптимизации | Хотите управлять отключением через интерфейс | Удобно для контент-менеджера, меньше ручной работы | Дополнительная нагрузка и риск конфликтов настроек |
| Ничего не отключать | Сайт маленький, нет проблем с производительностью | Ноль риска сломать совместимость | Лишние служебные подключения остаются |
Если у вас уже используется Clearfy Pro, часть таких настроек можно закрыть через интерфейс очистки сайта и SEO-опций, но проверяйте, какие именно элементы он отключает в вашей конфигурации: не стоит слепо включать все подряд.
Как проверить, что решение сработало
После внедрения проверьте не только визуально, но и технически:
- откройте исходный код страницы и убедитесь, что
wp-emoji-release.min.jsисчез; - проверьте вкладку Network — запросов к emoji-скрипту быть не должно;
- сравните HTML до и после через View Source или curl;
- очистите кеш плагина, сервера и CDN, если они есть;
- проверьте админку, если отключали emoji и там тоже.
Для быстрой проверки через консоль можно использовать:
curl -s https://example.com/ | grep -i emojiЕсли вывод пустой, значит на странице больше нет явных ссылок на emoji-скрипт. Но смотрите именно на ваш домен и конкретную страницу, потому что кеш или шаблон могут вести себя по-разному.
Частые ошибки и как их исправить
Код вставили в родительскую тему
После обновления темы настройка пропадет. Перенесите код в дочернюю тему или mu-plugin.
Отключили emoji, но скрипт остался
Чаще всего причина в кеше или в том, что код добавлен слишком поздно. Используйте init и проверьте, что нет второго куска кода, который снова подключает emoji.
Сломали интеграцию с внешним редактором
Редко, но бывает, если вместе с emoji убрали и другие служебные ссылки. Возвращайте отключенные элементы по одному и проверяйте, что именно вызвало проблему.
Ожидали заметный рост PageSpeed
Отключение emoji само по себе не делает сайт быстрым. Это точечная чистка, а не замена кеша, оптимизации изображений и нормальной темы.
Практические советы по безопасности и производительности
Если вы уже полезли в техническую чистку, не ограничивайтесь одним emoji. Проверьте, нет ли на сайте:
- устаревших плагинов, которые добавляют свои скрипты в
headбез необходимости; - лишних inline-стилей от темы;
- дублирующихся подключений jQuery;
- неиспользуемых embed- и REST-ссылок, если они не нужны вашему стеку.
Но не отключайте все подряд ради “чистоты”. Сначала смотрите, что реально используется темой, редактором и плагинами. Самая частая ошибка — вычистить служебные подключения и потом ловить баги в формах, предпросмотре или внешних интеграциях.
Если нужен более широкий набор настроек по чистке WordPress без ручного кода, имеет смысл смотреть в сторону инструментов уровня Clearfy Pro: там удобно отключать часть служебных функций, но любую опцию все равно стоит проверять на тестовой копии сайта.