wptavern.ru wordpress WPTavern

Как отключить эмодзи, oEmbed и другие лишние скрипты WordPress

Если сайт на WordPress грузится чуть тяжелее, чем хотелось бы, начинать стоит не с кэша и не с «тюнинга» темы, а с встроенных функций, которые часто не нужны на обычном сайте. Часть из них добавляет лишние HTTP-запросы, часть — лишний JavaScript в шапке или футере, а часть просто дублирует то, что уже умеет делать ваш редактор, тема или внешний сервис.

Самые типичные кандидаты на отключение — эмодзи, oEmbed, встроенные стили и скрипты для block editor, а также некоторые служебные вещи вроде Dashicons для гостей. Убирать их можно точечно: это безопаснее, чем ставить «оптимизатор» и надеяться, что он ничего не сломает.

Что обычно можно убрать без заметного риска

Не все встроенные функции WordPress одинаково полезны на фронтенде. Если сайт не использует их по назначению, они просто занимают место в HTML и создают лишнюю работу браузеру.

  • Emoji — WordPress подгружает проверку поддержки эмодзи и отдельный скрипт. На современных браузерах это почти всегда лишнее.
  • oEmbed — механизм автоподстановки контента по ссылке. Он нужен, если вы вставляете посты WordPress по URL или хотите, чтобы другие сайты встраивали ваш контент через oEmbed.
  • Dashicons для гостей — иконки админки на публичной части сайта. Если посетители не авторизованы, обычно они не нужны.
  • wp-embed — скрипт, который помогает с встраиванием WordPress-контента на фронтенде. На большинстве обычных сайтов его можно убрать, если вы не используете такую вставку.
  • Глобальные стили block editor — WordPress добавляет на фронтенд CSS для блоков. Полностью отключать их стоит только после проверки темы, но иногда можно сократить лишнее.

Есть и функции, которые лучше не трогать без понимания последствий: REST API, jQuery, формы комментариев, скрипты самой темы и плагины, от которых зависит интерфейс сайта. Здесь цель не «вычистить всё», а убрать только то, что реально не используется.

Как отключить эмодзи в WordPress

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

Если вы редактируете functions.php дочерней темы или используете собственный мини-плагин, добавьте такой код:

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');

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

После сохранения откройте исходный код страницы и проверьте, что в <head> больше нет вызовов, связанных с emoji. Если используете инструменты разработчика, ищите запросы к wp-emoji-release.min.js.

Как убрать oEmbed и скрипт wp-embed

oEmbed в WordPress состоит из двух частей. Первая — сам механизм обнаружения и обработки встраиваемого контента. Вторая — скрипт wp-embed, который помогает встраивать контент WordPress на других сайтах и обрабатывать такие вставки на вашем сайте.

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

Для этого добавьте код:

remove_action('wp_head', 'wp_oembed_add_discovery_links');
remove_action('wp_head', 'wp_oembed_add_host_js');
wp_deregister_script('wp-embed');

Первый и второй вызовы убирают служебные ссылки и автоподключение oEmbed в head. Третья строка снимает регистрацию скрипта wp-embed, чтобы он не подгружался на фронтенде.

Здесь есть важная оговорка: если вы часто вставляете контент WordPress по URL или у вас есть внешние сервисы, которые завязаны на стандартный oEmbed-поведение, отключение может повлиять на отображение вставок. Для обычного корпоративного сайта, блога или лендинга это обычно не проблема.

Что делать с Dashicons, jQuery Migrate и другими служебными скриптами

Иногда в попытке «облегчить сайт» начинают отключать всё подряд. Это плохая идея. Но несколько точечных оптимизаций действительно полезны, если вы понимаете, что именно убираете.

Dashicons для незалогиненных пользователей

Если на публичной части сайта не используются иконки админки, можно не грузить Dashicons для гостей:

function wptavern_dequeue_dashicons() {
    if ( ! is_user_logged_in() ) {
        wp_deregister_style('dashicons');
    }
}
add_action('wp_enqueue_scripts', 'wptavern_dequeue_dashicons');

Это безопасно только если тема или плагины не используют эти иконки на фронтенде. После отключения проверьте меню, кнопки и элементы интерфейса, где могли быть иконки WordPress.

jQuery Migrate

Этот скрипт нужен для совместимости старого кода с более новой версией jQuery. Убирать его имеет смысл только после проверки темы и плагинов, иначе можно получить поломку интерактивных элементов.

Если вы уверены, что сайт не использует устаревшие обращения к jQuery, можно попробовать отключить его через фильтр:

function wptavern_remove_jquery_migrate( $scripts ) {
    if ( ! is_admin() && isset( $scripts->registered['jquery'] ) ) {
        $script = $scripts->registered['jquery'];
        if ( ! empty( $script->deps ) ) {
            $script->deps = array_diff( $script->deps, array( 'jquery-migrate' ) );
        }
    }
}
add_action('wp_default_scripts', 'wptavern_remove_jquery_migrate');

Но здесь я бы не советовал начинать с этого пункта. Сначала уберите эмодзи, oEmbed и лишние стили, а уже потом проверяйте, нужен ли вам такой рискованный шаг.

Как не сломать сайт при отключении встроенных функций

Самая частая ошибка — вставить код в активную тему и забыть, что при обновлении он пропадёт. Вторая ошибка — отключить сразу несколько вещей и потом не понять, что именно вызвало проблему. Третья — использовать плагины, которые «чистят всё», не показывая, что именно они отключили.

Рабочий порядок такой:

  1. Сделайте резервную копию файлов и базы данных.
  2. Добавляйте изменения в дочернюю тему или в небольшой собственный плагин, а не в родительскую тему.
  3. Отключайте функции по одной, а не пачкой.
  4. После каждого шага проверяйте главную страницу, записи, комментарии, формы, меню и мобильную версию.
  5. Если что-то перестало работать, сразу откатывайте последний шаг.

Если у вас есть staging-окружение, тестируйте именно там. Это особенно важно, когда тема нестандартная или на сайте много плагинов, которые могут использовать встроенные скрипты WordPress косвенно.

Как проверить, что фронтенд действительно стал легче

Проверка нужна не «для галочки», а чтобы понять, был ли смысл в отключении. Сравнивать лучше до и после на одной и той же странице.

Откройте исходный код страницы и посмотрите, исчезли ли:

  • wp-emoji-release.min.js;
  • ссылки и скрипты, связанные с oEmbed;
  • wp-embed.min.js;
  • dashicons.min.css для гостей, если вы его отключали.

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

Ещё один полезный тест — пройтись по реальным сценариям: открыть запись, оставить комментарий, отправить форму, перейти по меню, проверить встраивания видео или карт, если они есть. Если сайт работает как раньше, а лишние скрипты исчезли, значит оптимизация выполнена правильно.

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

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

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

Если коротко, самый безопасный набор для старта — эмодзи, oEmbed и wp-embed. Дальше уже смотрите по сайту: иногда можно убрать Dashicons для гостей, иногда — ещё и другие служебные стили, но только после проверки реального поведения темы и плагинов.

×
Review
Добавь ценность своему сайту WordPress!
-15%

на Expert Review плагин WordPress

Порадуй свой сайт ⋙