Если в исходном коде WordPress-страницы в блоке <head> вы видите лишние мета-теги, RSS-ссылки, короткие URL, эмодзи-скрипты и другие служебные элементы, их можно убрать без правки ядра. Обычно это делают, чтобы упростить шаблон, сократить мусор в коде и оставить только то, что действительно нужно сайту.
Самый безопасный путь — не редактировать файлы WordPress напрямую, а отключать ненужные выводы через functions.php дочерней темы или через небольшой функциональный плагин. Так изменения не потеряются после обновления темы.
Что именно обычно убирают из head
WordPress по умолчанию добавляет в head набор служебных элементов. Часть из них полезна, часть нужна только в отдельных сценариях, а часть на обычном сайте действительно лишняя. Чаще всего убирают:
rsd_link— ссылка для удалённого редактирования;wlwmanifest_link— файл для Windows Live Writer, который давно не нужен большинству сайтов;wp_generator— мета-тег с версией WordPress;feed_linksиfeed_links_extra— RSS/Atom-ссылки, если ленты не используются;shortlink— короткая ссылка на запись;rest_output_link_wp_head— ссылка на REST API в head;wp_oembed_add_discovery_linksиwp_oembed_add_host_js— oEmbed-ссылки и скрипт, если встраивание через oEmbed не нужно;- emoji-скрипты и стили, если вы не хотите их загружать;
- лишние DNS-prefetch или preconnect, если они добавлены темой или плагинами без необходимости.
При этом не стоит чистить head «всё подряд». Например, отключение RSS-ссылок может быть неуместно, если у вас есть подписчики на ленту. А удаление REST API-ссылки не отключает сам REST API, а только убирает ссылку из head.
Сначала проверьте, откуда именно идёт лишний вывод
Перед правками откройте исходный код страницы в браузере и найдите блок <head>. Если элемент добавлен WordPress-ядром, его обычно можно убрать стандартным хуком. Если же тег вставляет тема или плагин, способ будет другим.
Практически это выглядит так:
- если в коде есть стандартные WordPress-ссылки вроде
wlwmanifest,rsd,generator— их чаще всего убирают черезremove_action(); - если видите нестандартный тег, которого нет в ядре WordPress, ищите его в теме или плагинах;
- если элемент появляется только на отдельных страницах, он может выводиться условно, а не глобально.
Для поиска по теме и плагинам удобно использовать поиск по файлам в редакторе кода или по панели хостинга. Ищите фрагмент HTML-тега или название функции, если оно видно в исходнике.
Как убрать стандартные мета-теги и ссылки через functions.php
Если у вас есть дочерняя тема, добавьте код в её functions.php. Это самый простой вариант для большинства сайтов. Ниже пример, который убирает самые распространённые служебные элементы из head.
Перед внесением правок сделайте резервную копию файла или работайте через дочернюю тему. Ошибка в PHP может временно сломать сайт.
add_action( 'init', function () {
remove_action( 'wp_head', 'rsd_link' );
remove_action( 'wp_head', 'wlwmanifest_link' );
remove_action( 'wp_head', 'wp_generator' );
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', 'rest_output_link_wp_head', 10 );
remove_action( 'wp_head', 'wp_oembed_add_discovery_links', 10 );
remove_action( 'wp_head', 'wp_oembed_add_host_js' );
} );Этот код не отключает сами функции WordPress, а только убирает их вывод в head. Если какой-то элемент нужен вашему сайту, просто не добавляйте соответствующую строку.
Как отключить emoji-скрипты
Если на сайте не нужны встроенные emoji-скрипты WordPress, их тоже можно убрать. Это особенно полезно, когда вы хотите сократить количество запросов и не используете старые браузеры, для которых эти скрипты были актуальнее.
remove_action( 'wp_head', 'print_emoji_detection_script', 7 );
remove_action( 'wp_print_styles', 'print_emoji_styles' );Здесь важно не ждать «магического» ускорения. На современном сайте эффект обычно небольшой, но код становится чище, а лишние подключения исчезают.
Что безопасно убирать, а что лучше оставить
Не все элементы в head одинаково бесполезны. Если убрать что-то нужное, можно получить побочные эффекты: сломанные встраивания, отсутствие RSS-лент или проблемы с интеграциями.
| Элемент | Можно убрать? | Когда лучше оставить |
|---|---|---|
wp_generator | Да | Почти всегда можно убрать, если не нужна демонстрация версии WordPress |
rsd_link | Да | Нужен только для старых внешних редакторов |
wlwmanifest_link | Да | Редко нужен на современных сайтах |
feed_links | Зависит от сайта | Если у вас есть подписка на RSS или внешние сервисы, использующие ленту |
shortlink | Да | Если короткие ссылки используются в старых интеграциях |
rest_output_link_wp_head | Да | Если вы сознательно используете ссылку на REST API в head |
| oEmbed-ссылки и скрипт | Зависит от сайта | Если вы вставляете контент через oEmbed и хотите оставить автоподхват |
Если сомневаетесь, убирайте по одному элементу и проверяйте сайт после каждого изменения. Так проще понять, что именно влияет на поведение темы или плагинов.
Если лишний код добавляет тема или плагин
Не весь мусор в head идёт из ядра WordPress. Часто тему или плагин выдают дополнительные мета-теги, ссылки на стили, preconnect к сторонним сервисам, JSON-LD или собственные служебные теги. В таком случае стандартные remove_action() могут не помочь, потому что вывод сделан не через ядро, а через собственный хук или прямой echo.
Что делать в этом случае:
- Найдите файл или плагин, который добавляет тег.
- Посмотрите, есть ли у него настройка отключения этого вывода.
- Если настройки нет, проверьте, через какой хук подключён код.
- Только после этого отключайте нужный callback или правьте шаблон в дочерней теме.
Если элемент вставлен напрямую в шаблон header.php, его можно убрать в дочерней теме, но не в родительской. Иначе обновление темы вернёт всё обратно.
Как проверить, что очистка head сработала
После правок откройте страницу сайта и снова посмотрите исходный код. Ищите именно HTML-вывод, а не только настройки в админке. Иногда элемент отключён частично: например, ссылка исчезла из head, но сам функционал остался доступен в другом месте.
Проверяйте три вещи:
- нужный тег действительно исчез из исходного кода;
- страница открывается без ошибок PHP;
- не сломались формы, встраивания, RSS или другие функции, которые могли зависеть от удалённого элемента.
Если используете кэш-плагин или серверный кэш, после правок очистите кэш. Иначе вы можете смотреть на старую версию страницы и решить, что код не сработал.
Когда лучше не чистить head вручную
Если на сайте много плагинов, сложная тема или вы не уверены, откуда берётся лишний вывод, ручная чистка может занять больше времени, чем кажется. В таких случаях удобнее использовать плагин, который умеет отключать часть служебных элементов без правки кода. Например, Clearfy Pro от WPShop решает именно задачу очистки WordPress-сайта от лишнего технического вывода и дублей, когда нужно быстро привести head в порядок без ручного перебора хуков. Подробности: https://wpshop.ru/plugins/clearfy.
Но даже с плагином полезно понимать, что именно вы отключаете. Тогда проще избежать лишних изменений и не убрать то, что реально используется на сайте.
Если коротко: убирайте из head стандартные служебные элементы через хуки WordPress, не трогайте ядро, проверяйте результат в исходном коде и не отключайте то, что нужно вашим интеграциям. Такой подход даёт чистый шаблон без лишнего риска для сайта.