Как отключить лишние emoji, Gutenberg-скрипты и встроенные стили в WordPress

Если сайт на WordPress стал грузить лишние CSS и JS, сначала проверьте не тему и не кэш, а стандартные вещи ядра: emoji-скрипт, стили и скрипты блок-редактора на фронтенде, а также встроенные эмбеддинги. Это типичная причина «мелкого мусора» в исходнике, из-за которого растёт число запросов и усложняется оптимизация.

Ниже — рабочий сценарий: как понять, что именно лишнее, как отключить это безопасно и как проверить, что ничего не сломалось.

Что именно обычно мешает

В чистом WordPress на фронтенде часто остаются элементы, которые не нужны большинству сайтов:

  • скрипт emoji для старых браузеров;
  • стили и скрипты, связанные с Gutenberg, если на сайте почти нет блоков в контенте;
  • встроенные oEmbed-скрипты, если вы не используете автоподстановку видео и постов;
  • лишние глобальные стили темы, которые дублируют друг друга;
  • подключения плагинов, которые можно убрать точечно, а не «чистить всё подряд».

Важно: не стоит отключать всё сразу. Сначала нужно понять, что реально загружается на страницах, где проблема заметна.

Диагностика: как найти лишние подключения

Откройте страницу сайта в браузере и посмотрите исходный код или вкладку Network в DevTools. Ищите файлы с названиями вроде wp-emoji-release.min.js, wp-block-library.css, wp-block-library-theme.css, wp-embed.min.js. Если сайт не использует блоки на фронтенде, часть этих файлов может быть лишней.

Ещё один практичный способ — временно включить просмотр списка подключений через плагин для аудита ассетов или через Query Monitor. Но даже без плагинов можно быстро проверить исходник страницы и понять, что повторяется на всех шаблонах.

Когда отключение уместно

Сценарий подходит, если:

  • сайт в основном на классическом редакторе или на кастомных шаблонах;
  • блоки Gutenberg используются только в админке, а не как основа фронтенда;
  • встроенные эмбеддинги не нужны;
  • вы хотите убрать лишние запросы без тяжёлой оптимизации через minify-агрегаторы.

Если у вас сайт на блок-теме или активно используются блоки на фронтенде, отключать wp-block-library нужно осторожно: можно сломать внешний вид контента.

Пошаговое решение через functions.php или мини-плагин

Лучше не править ядро и не вносить изменения напрямую в файлы темы, если тема обновляется. Безопаснее добавить код в дочернюю тему или в небольшой mu-plugin.

1. Отключаем emoji

Этот код убирает фронтенд- и админские 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' );
    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' );
} );

2. Убираем встроенный embed-скрипт

Если вы не используете автоматическую вставку контента через oEmbed, можно отключить этот скрипт на фронтенде.

add_action( 'wp_footer', function () {
    wp_deregister_script( 'wp-embed' );
}, 1 );

На практике удобнее делать это через wp_enqueue_scripts, чтобы не зависеть от того, как тема выводит футер. Но если у вас уже есть собственная логика подключения скриптов, проверьте, не нужен ли wp-embed для конкретных шаблонов.

3. Убираем стили блоков, если они не нужны на фронтенде

Это самый спорный пункт. Если сайт не использует блоки в контенте, можно попробовать отключить базовые стили библиотеки блоков. Но сначала проверьте страницу с реальным контентом: заголовки, списки, кнопки, цитаты, колонки.

add_action( 'wp_enqueue_scripts', function () {
    wp_dequeue_style( 'wp-block-library' );
    wp_dequeue_style( 'wp-block-library-theme' );
    wp_dequeue_style( 'global-styles' );
}, 100 );

Если после этого у вас «поехали» отступы, кнопки или колонки, значит тема или контент завязаны на эти стили. Тогда лучше не отключать их глобально, а решать задачу точечно по шаблонам.

Сравнение подходов: плагин, код, компромисс

ПодходПлюсыМинусыКогда выбирать
Код в дочерней теме / mu-pluginТочно контролируете, что отключеноНужна проверка после обновленийЕсли нужен предсказуемый результат
Оптимизационный плагинУдобно для неразработчикаЛегко переборщить с отключениямиЕсли на сайте много точечных исключений
Ничего не отключатьМинимум рискаОстаётся лишний мусор в фронтендеЕсли сайт уже быстро работает и правок мало

Если нужен более широкий набор инструментов для чистки WordPress, обычно удобнее смотреть в сторону решений, где можно отключать отдельные элементы без ручного кода. Например, в Clearfy Pro есть функции для удаления части системного мусора и SEO-настроек: https://wpshop.ru/plugins/clearfy?utm_source=wp-shablon.ru&utm_medium=article&utm_campaign=otklyuchit-emojy-gutenberg-skripty-v-wordpress

Проверка результата после внедрения

После изменений не ограничивайтесь визуальной проверкой главной страницы. Нужно пройтись по нескольким типам страниц:

  • главная;
  • запись блога;
  • страница с таблицей или кнопками;
  • страница с встраиванием видео или карты, если они есть;
  • страница поиска или архив.

Проверьте следующее:

  • в исходнике больше нет wp-emoji-release.min.js;
  • не подгружается wp-embed.min.js, если он вам не нужен;
  • на страницах без блоков не тянутся лишние стили блоков;
  • кнопки, списки, цитаты и колонки выглядят как раньше;
  • в консоли браузера нет ошибок JavaScript.

Если используете Lighthouse или PageSpeed Insights, сравнивайте не только баллы, а список загружаемых ресурсов. Цель здесь — убрать лишние подключения, а не «догнать цифру» любой ценой.

Частые ошибки и как их исправить

Отключили стили блоков на сайте, где они реально используются

Это самая частая проблема. Симптомы: ломаются отступы, кнопки становятся «голыми», колонки перестают работать. Решение простое: вернуть wp-block-library и global-styles, а затем уже искать другие источники нагрузки.

Удалили скрипт, который нужен теме или плагину

Некоторые темы и плагины используют стандартные скрипты WordPress как зависимость. Если после отключения что-то перестало открываться или переключаться, проверьте, не завязан ли компонент на wp-embed или на стили блоков.

Внесли код в родительскую тему

После обновления тема перезапишется, и оптимизация исчезнет. Для таких правок лучше использовать дочернюю тему или mu-plugin.

Смешали оптимизацию с минификацией

Если вы одновременно отключаете скрипты, объединяете CSS и включаете агрессивный кэш, потом сложно понять, что именно сломало страницу. Делайте изменения по одному и проверяйте результат после каждого шага.

Чек-лист перед публикацией изменений

  • Сделали резервную копию файлов и базы.
  • Проверили, используются ли блоки Gutenberg на фронтенде.
  • Убедились, что emoji и embed-скрипты действительно не нужны.
  • Протестировали главную, запись и шаблон с типографикой.
  • Открыли сайт в инкогнито и очистили кэш плагина/сервера/CDN.
  • Проверили HTML-исходник и консоль браузера.

Когда лучше не отключать вручную

Если у вас сложная тема, много плагинов и несколько типов контента, ручное отключение может занять больше времени, чем даст пользы. В таких случаях удобнее использовать инструмент, где можно включать и выключать отдельные оптимизации поэтапно, а не править код на каждом сайте отдельно.

Для разработчика это обычно вопрос контроля: если нужен точечный результат — код. Если нужен повторяемый процесс на нескольких проектах — плагин с понятными переключателями и возможностью быстро откатить изменения.

Создание и восстановление резервной копии базы данных WordPress
10.09.2026
Как добавить динамические строки в таблицу WordPress без плагинов
28.08.2026
Как использовать REST API в WordPress для расширения функционала
26.08.2026
Как удалить неиспользуемые стили в WordPress для ускорения сайта
30.09.2026
Как добавить динамический фильтр записей в шаблон WordPress
26.09.2026