В стандартном <head> WordPress добавляет несколько служебных мета-тегов и ссылок, которые на обычном сайте часто не нужны: генератор версии, короткую ссылку, RSD, WLW Manifest, ссылки на REST API, oEmbed и другие элементы. Они не всегда вредят, но создают лишний шум в шаблоне и иногда просто не соответствуют задаче сайта.
Удалять их лучше точечно: не «чистить всё подряд», а убрать только то, что действительно не используется. Иначе можно сломать интеграции, редакторские инструменты или сторонние сервисы, которые рассчитывают на стандартные WordPress-хуки.
Что именно обычно находится в head и что можно убрать
Чаще всего речь идёт о выводе через хук wp_head. WordPress и плагины подключают туда свои элементы автоматически. На чистом сайте обычно можно убрать:
<meta name="generator" ...>— версия WordPress;<link rel="EditURI" ...>— RSD-ссылка;<link rel="wlwmanifest" ...>— Windows Live Writer manifest;<link rel="shortlink" ...>— короткая ссылка на запись;<link rel="alternate" type="application/json+oembed" ...>иoembed-дискавери;<link rel="https://api.w.org/" ...>— REST API discovery;<link rel="prev">,<link rel="next">и похожие служебные ссылки, если они не нужны конкретной теме или плагину.
При этом не стоит бездумно удалять всё, что выглядит «техническим». Например, canonical-ссылка, стили, скрипты, emoji-скрипты, если они нужны, и некоторые служебные элементы могут быть полезны для работы темы или плагинов. Задача не в том, чтобы сделать head пустым, а в том, чтобы убрать лишнее.
Как убрать стандартные ссылки и мета-теги через functions.php
Самый практичный способ — добавить код в functions.php дочерней темы или в собственный мини-плагин. Так изменения не потеряются при обновлении темы. Если править файл основной темы, при обновлении всё придётся делать заново.
Перед изменениями сделайте резервную копию файла или работайте через дочернюю тему. Если на сайте уже есть нестандартные плагины, после правки проверьте фронтенд и админку, чтобы убедиться, что ничего не сломалось.
Ниже пример, который убирает самые распространённые служебные элементы WordPress из head:
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', 'wp_shortlink_wp_head' );
remove_action( 'wp_head', 'rest_output_link_wp_head' );
remove_action( 'wp_head', 'wp_oembed_add_discovery_links' );
remove_action( 'wp_head', 'wp_oembed_add_host_js' );
remove_action( 'wp_head', 'feed_links', 2 );
remove_action( 'wp_head', 'feed_links_extra', 3 );
} );Здесь важно понимать, что не все строки одинаково полезны для каждого сайта. Например, feed_links и feed_links_extra убирают ссылки на RSS-ленты. Если ленты используются подписчиками, агрегаторами или внешними сервисами, эти строки лучше не трогать.
Если вам нужно убрать только версию WordPress, достаточно одной строки:
remove_action( 'wp_head', 'wp_generator' );Но в реальной задаче обычно чистят сразу несколько стандартных элементов, чтобы не возвращаться к этому через неделю.
Что лучше не удалять без проверки
Некоторые элементы в head кажутся лишними только на первый взгляд. Перед удалением проверьте, не завязаны ли на них тема, редактор или внешние сервисы.
REST API и oEmbed
Ссылки и скрипты, связанные с REST API и oEmbed, могут быть нужны для встраивания контента, предпросмотра ссылок, работы блоков и некоторых плагинов. Если сайт — обычный блог или корпоративный ресурс без встраивания контента и без интеграций, их часто убирают без последствий. Но если вы используете Gutenberg, внешние виджеты или сервисы, которые обращаются к REST API, сначала проверьте поведение на тестовой копии.
RSS-ленты
Удалять RSS-ссылки стоит только если вы точно понимаете, что подписка на ленту не нужна. Для новостных проектов, блогов и контентных сайтов это обычно плохая идея. Лента сама по себе не мешает, а для части аудитории остаётся полезной.
Служебные ссылки темы и плагинов
Не путайте стандартные элементы WordPress с тем, что добавляет тема или плагин. Если в head выводится лишнее не из ядра, а из расширения, искать нужно уже в настройках этого расширения или в его хуках. Универсальная чистка через remove_action помогает только там, где известна конкретная функция, добавляющая вывод.
Как проверить, что лишнее действительно исчезло
После правки откройте исходный код страницы в браузере и посмотрите блок <head>. Проще всего использовать просмотр исходника страницы, а не инспектор DOM, потому что некоторые элементы могут подгружаться или изменяться скриптами уже после загрузки.
Что стоит проверить:
- нет ли строки
generatorс версией WordPress; - исчезли ли
rsd_linkиwlwmanifest; - остались ли нужные вам RSS-ссылки;
- не пропали ли canonical и стили темы;
- не появились ли ошибки в консоли браузера после удаления oEmbed или REST-ссылок.
Если вы работаете с кэширующим плагином или серверным кэшем, очистите кэш после изменений. Иначе вы можете смотреть на старую версию страницы и решить, что код не сработал.
Когда удобнее использовать плагин, а не править код
Если задача сводится к быстрой чистке стандартных элементов WordPress без ручного редактирования темы, удобнее использовать плагин, который умеет отключать лишние служебные функции централизованно. Это особенно полезно, если сайт ведётся не разработчиком, а владельцем или контент-менеджером, и нужно управлять настройками через интерфейс.
Но у плагина есть минус: он добавляет ещё один слой настроек и зависимость от стороннего решения. Если вам нужно убрать буквально несколько строк и вы уверены в коде, ручной способ через functions.php обычно проще и прозрачнее.
Для сайтов, где нужна системная чистка WordPress без ручного набора хуков, можно посмотреть Clearfy Pro. Он как раз закрывает типовые задачи по удалению дублей и служебных элементов, если не хочется собирать всё вручную.
Практический минимум: что обычно убирают без сожаления
Если нужен короткий рабочий набор для большинства обычных сайтов, начните с этого списка:
wp_generator;rsd_link;wlwmanifest_link;wp_shortlink_wp_head;wp_oembed_add_discovery_links;wp_oembed_add_host_js.
Этого обычно достаточно, чтобы заметно уменьшить количество служебных ссылок в head без риска затронуть базовую работу сайта. Остальное убирайте только после проверки конкретного сценария: есть ли RSS, нужны ли встраивания, использует ли тема REST API-ссылки или дополнительные элементы в head.
Если после чистки страница выглядит так же, а в исходнике стало меньше лишних строк, значит задача решена правильно. В WordPress лучше убирать не всё подряд, а только то, что действительно не используется. Тогда код остаётся чище, а сайт — предсказуемее в обслуживании.