wpedu.ru wordpress WPEdu

Как удалить лишние мета-теги и служебный код из head в WordPress

Если открыть исходный код страницы WordPress-сайта, в секции <head> часто оказываются лишние на первый взгляд элементы: генератор WordPress, ссылки на RSS, короткие URL, эмодзи-скрипты, oEmbed, REST API discovery, DNS-prefetch и другие служебные вставки. Часть из них действительно нужна, но часть можно убрать, если сайт не использует соответствующую функцию. Это помогает сократить HTML, уменьшить количество лишних запросов и сделать код чище.

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

Что обычно попадает в head и что из этого можно убрать

В стандартной установке WordPress в head могут появляться такие элементы:

  • <meta name="generator" ...> — строка с версией WordPress;
  • ссылки на RSS и комментарийные фиды;
  • wlwmanifest.xml и rsd — старые служебные ссылки для внешних редакторов;
  • wp-emoji-release.min.js — скрипт для эмодзи;
  • wp-embed.min.js — скрипт для встраивания контента WordPress;
  • ссылки rel="shortlink";
  • oEmbed-ссылки и discovery-мета;
  • dns-prefetch для внешних доменов, если их добавляет тема или плагины.

Часть этих элементов можно убрать без заметного ущерба для обычного сайта-визитки, блога или корпоративного проекта. Но если вы используете встроенные оEmbed-вставки, комментарии с RSS, внешние редакторы или специфические интеграции, удаление некоторых строк может сломать нужный сценарий. Поэтому не стоит ориентироваться только на советы из чужого чек-листа — лучше проверить, что реально используется на вашем сайте.

Как понять, что именно добавляет лишний код

Самый практичный способ — открыть исходный код страницы в браузере и посмотреть, какие элементы находятся внутри <head>. На WordPress-сайте это можно сделать через «Просмотр кода страницы» или инструменты разработчика. Дальше ищите конкретные строки: generator, wlwmanifest, rsd, emoji, wp-embed, shortlink, feed.

Если вы не уверены, откуда берётся конкретный тег, полезно проверить тему и активные плагины. В WordPress большая часть таких вставок приходит либо из ядра через стандартные хуки, либо из темы через wp_head, либо из плагина, который добавляет свои мета-теги, скрипты и preconnect/dns-prefetch. Это важно: если код добавляет плагин, удалять его нужно не в functions.php, а в настройках плагина или через отключение его функции.

Удаление через functions.php: когда это уместно

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

Ниже пример, который убирает несколько типичных служебных вставок. Используйте его только если понимаете, что эти функции вам не нужны.

add_action('init', function () {
    remove_action('wp_head', 'wp_generator');
    remove_action('wp_head', 'rsd_link');
    remove_action('wp_head', 'wlwmanifest_link');
    remove_action('wp_head', 'feed_links', 2);
    remove_action('wp_head', 'feed_links_extra', 3);
    remove_action('wp_head', 'shortlink_wp_head', 10);
    remove_action('wp_head', 'wp_oembed_add_discovery_links', 10);
    remove_action('wp_head', 'wp_oembed_add_host_js');
});

Этот код удаляет:

  • версию WordPress из генератора;
  • ссылку RSD;
  • wlwmanifest для Windows Live Writer;
  • основные RSS-ссылки;
  • shortlink;
  • oEmbed-discovery и подключение host JS.

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

Как убрать эмодзи-скрипты

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

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

Здесь важно не перепутать фронтенд и админку: первые две строки убирают скрипт на сайте и в панели, вторые — стили. Если у вас есть редакторы, которые работают в старых средах, лучше сначала проверить, не нужен ли этот функционал в админке.

Как отключить лишние DNS-prefetch и preconnect

Иногда в head появляются ссылки dns-prefetch или preconnect на внешние домены. Это не всегда мусор: такие подсказки ускоряют соединение с нужными сервисами. Но если тема или плагин добавляют их без необходимости, код можно почистить через фильтр wp_resource_hints.

Пример удаления конкретного домена:

add_filter('wp_resource_hints', function ($urls, $relation_type) {
    if ('dns-prefetch' === $relation_type || 'preconnect' === $relation_type) {
        $urls = array_filter($urls, function ($url) {
            return false === strpos($url, 'example.com');
        });
    }
    return $urls;
}, 10, 2);

Замените example.com на домен, который хотите убрать. Этот способ полезен, когда лишний hint добавляет не WordPress, а тема или плагин, и вы не хотите отключать весь механизм целиком.

Что лучше не трогать без необходимости

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

  • <meta charset="..."> и viewport — базовые настройки страницы;
  • canonical — важен для SEO и дублей;
  • стили и скрипты, которые подключает тема для работы меню, слайдера, формы или блока;
  • служебные теги, которые использует плагин кэширования, безопасности или аналитики;
  • oEmbed и RSS, если они реально используются.

Если убрать что-то наугад, последствия обычно видны не сразу. Например, может перестать работать предпросмотр ссылок, встроенные записи, комментарии через RSS или часть фронтенд-логики темы. Поэтому лучше идти от конкретной цели: убрать только то, что вы точно не используете.

Как проверить, что очистка head сработала

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

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

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

Когда удобнее использовать плагин вместо ручного кода

Если вы не хотите каждый раз править functions.php, проще использовать плагин, который умеет отключать стандартные элементы WordPress и чистить служебный код. Это особенно удобно для владельцев сайтов, которым нужен понятный интерфейс без ручного редактирования PHP.

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

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

Практический порядок действий

Если нужен короткий рабочий сценарий, я бы делал так:

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

Такой подход безопаснее, чем массово вырезать всё подряд. В WordPress чистка head — это не косметика ради красоты кода, а аккуратная техническая настройка. Если делать её по факту использования, а не по списку из интернета, сайт останется рабочим, а HTML станет заметно чище.

×
Halloween Game

Сыграй в игру, спаси сайт! Забери приз

Играть