wptavern.ru wordpress wptavern.ru

Как отключить дублирующиеся метаданные WordPress и убрать лишние meta tags из head

Если в исходном коде страницы у вас одновременно видны несколько генераторов, дублирующиеся meta-теги, лишние RSS-ссылки, короткие URL, emoji-скрипты и другие служебные вставки, это обычно не «косметика», а следствие нескольких плагинов и темы, которые пишут в <head> параллельно. На небольшом сайте это просто шум. На проекте с SEO-историей, кешированием и сторонними интеграциями — уже источник путаницы при аудите и иногда лишняя нагрузка на фронтенд.

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

Что именно обычно дублируется

Чаще всего проблема выглядит так:

  • в <head> дважды выводится meta name="generator";
  • есть несколько версий canonical или они конфликтуют с SEO-плагином;
  • дублируются rel="prev" / rel="next", RSS, shortlink;
  • тема и плагин оба добавляют Open Graph или Twitter Cards;
  • WordPress сам выводит emoji-скрипты, хотя они не нужны проекту;
  • в коде страницы остаются метаданные от старых плагинов после их удаления.

Когда это действительно проблема

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

Диагностика: где искать источник дубля

Сначала не трогайте код. Откройте исходник страницы и найдите повторяющиеся строки. Удобнее всего смотреть не в визуальном DOM, а именно в HTML-источнике: через «Просмотр кода страницы» в браузере или через curl.

curl -s https://example.com/ | grep -E "generator|canonical|rel=\"next\"|rel=\"prev\"|wp-emoji|og:|twitter:"

Дальше проверьте три источника:

  1. Тема — часто в functions.php есть собственные add_action('wp_head', ...).
  2. SEO-плагин — Yoast SEO, Rank Math и аналоги могут выводить canonical, OG-теги и robots.
  3. Оптимизирующие плагины — они иногда отключают emoji, shortlink, REST link и другие элементы.

Если у вас есть доступ к коду, ищите по проекту вызовы wp_head, add_action, wp_generator, rel_canonical, wp_shortlink_wp_head, feed_links и похожие.

Пошаговое решение без ломки темы

Логика простая: сначала отключаем только то, что WordPress добавляет штатно и что не нужно конкретному проекту. Затем проверяем, не выводит ли то же самое тема или SEO-плагин. Не надо сразу вырезать всё подряд из header.php.

1. Уберите лишние стандартные вставки WordPress

Этот вариант подходит, если вы контролируете тему или используете дочернюю тему. Добавьте код в functions.php дочерней темы или в небольшой mu-plugin.

<?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', 'wp_shortlink_wp_head', 10);
    remove_action('wp_head', 'adjacent_posts_rel_link_wp_head', 10);
    remove_action('wp_head', 'feed_links', 2);
    remove_action('wp_head', 'feed_links_extra', 3);
});

add_filter('emoji_svg_url', '__return_false');
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');

Здесь важно не копировать всё бездумно. Например, feed_links и feed_links_extra можно отключать только если вы точно не используете RSS-ленты. А adjacent_posts_rel_link_wp_head имеет смысл убирать, если вам не нужны prev/next в head и вы не полагаетесь на старую навигационную семантику.

2. Не дублируйте canonical и Open Graph

Если SEO-плагин уже выводит canonical и OG-теги, не добавляйте их вручную в тему. Это типичная причина дублей после кастомизации шаблона. Проверьте header.php и файлы, где раньше могли быть вставлены мета-теги «на скорую руку».

Пример того, что лучше не держать одновременно с SEO-плагином:

<meta property="og:title" content="..." />
<meta property="og:description" content="..." />
<link rel="canonical" href="..." />

Если нужен собственный набор OG-тегов, отключайте их в SEO-плагине через его настройки, а не через удаление всего wp_head. Полное вырезание wp_head() почти всегда ломает больше, чем чинит.

3. Если дубли идут из темы — переносите правки в дочернюю тему

Когда тема сама добавляет метатеги, не правьте её напрямую. Обновление затрёт изменения, и проблема вернётся. Ищите в теме функции вида theme_head_meta(), theme_seo_tags() или прямые вставки в шаблоне. Дальше либо отключайте их через хук, либо переопределяйте в дочерней теме, если тема это позволяет.

Сравнение подходов

Подход Когда подходит Минус
Код в дочерней теме / mu-plugin Нужен точечный контроль над head Требует проверки после обновлений
Настройки SEO-плагина Canonical, OG, robots, schema уже управляются плагином Не убирает всё, что добавляет тема
Плагин для чистки сайта Нужно быстро убрать стандартные хвосты без кода Меньше прозрачности, чем у кода

Если нужен именно «санитарный» инструмент для чистки дублей и лишних вставок, уместно смотреть в сторону Clearfy Pro: https://wpshop.ru/plugins/clearfy. Но даже в этом случае сначала проверьте, что именно отключаете, чтобы не сломать каноникал или ленту.

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

После правок не ограничивайтесь визуальной проверкой страницы. Смотрите исходник и сравнивайте до/после.

  • Откройте исходный HTML и убедитесь, что лишние meta-теги исчезли.
  • Проверьте, что остался только один canonical.
  • Убедитесь, что SEO-плагин продолжает выводить нужные метаданные.
  • Если отключали emoji, посмотрите, что скрипты wp-emoji-release.min.js больше не грузятся.
  • Прогоните страницу через Lighthouse или хотя бы через инспектор сети, чтобы понять, не остались ли лишние запросы.

Для быстрой проверки можно снова использовать curl:

curl -s https://example.com/ | grep -E "generator|canonical|wp-emoji|shortlink|rel=\"prev\"|rel=\"next\""

Если после отключения что-то пропало лишнее, откатите конкретную строку, а не весь блок. Так проще понять, какая функция была нужна.

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

Удалили wp_head() целиком

Это грубая ошибка. Вместе с метаданными исчезают важные вещи: стили и скрипты, которые подключают плагины, canonical от SEO-плагина, иногда даже критичные элементы темы. Исправление простое: верните wp_head() в header.php и убирайте только конкретные действия через remove_action().

Отключили каноникал, не заменив его

Если SEO-плагин не активен, а вы убрали rel_canonical, поисковик может получить несколько URL одной и той же страницы. Проверяйте, кто именно должен отвечать за canonical в вашем стеке.

Правили родительскую тему

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

Отключили RSS и shortlink без понимания последствий

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

Практические советы по безопасности и производительности

Чистка head сама по себе не делает сайт «быстрее вдвое», но помогает убрать мусор и уменьшить риск конфликтов между плагинами. Держите изменения минимальными и документируйте, что именно отключено.

  • Не отключайте всё подряд ради «чистого кода».
  • Сначала выясните, какой плагин отвечает за метаданные.
  • Если используете mu-plugin, храните его в репозитории вместе с темой.
  • После обновления SEO-плагина повторно проверьте head: некоторые настройки могут сброситься или поменяться.

Если задача шире, чем разовая чистка, и вам нужен набор настроек для удаления дублей, отключения лишних элементов и базовой SEO-гигиены, можно рассмотреть Clearfy Pro как готовый слой поверх стандартных инструментов WordPress: https://wpshop.ru/plugins/clearfy. Но в любом случае сначала проверьте, какие именно теги и скрипты он меняет в вашем проекте.

Главный критерий успеха здесь простой: в исходнике страницы остался только тот набор метаданных, который действительно нужен вашему сайту, и ни один из SEO- или функциональных плагинов не потерял свои обязательные вставки.

×
до 3225₽

Продавай темы и плагины WordPress!

Лови с каждой продажи

Начать ⋙