WordPress Notes WP-theme

Как отключить дубли метатегов в WordPress и убрать лишние страницы из индекса

Если в Search Console всплывают дубли title и description, проблема обычно не в одном «плохом» плагине, а в наборе типовых источников: архивы тегов, страницы автора, пагинация, вложения медиафайлов, параметры URL и служебные страницы темы. В WordPress это лечится не одной галочкой, а проверкой, какие типы страниц реально нужны в индексе, а какие только создают шум.

Что именно искать в первую очередь

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

Признаки проблемы

  • в отчёте Search Console много страниц с одинаковым title или meta description;
  • в индексе есть страницы вложений вида /image-name/ или ?attachment_id=;
  • архивы тегов и авторов индексируются, хотя на сайте они пустые или почти пустые;
  • одна и та же статья доступна через несколько URL, например с параметрами сортировки или UTM;
  • в исходном коде страницы видны дубли метатегов от темы и SEO-плагина.

Как быстро проверить источник дублей

Откройте исходный код проблемной страницы и найдите блоки <title>, <meta name="description">, canonical и robots. Если title формируется дважды или canonical указывает не на ту страницу, сначала смотрите тему и активные SEO-плагины. Часто конфликт возникает, когда тема добавляет свои метатеги, а плагин делает то же самое.

<?php
// Временно выведите, какие SEO-метатеги добавляет тема.
add_action('wp_head', function () {
    if (is_admin()) {
        return;
    }
    echo "\n<!-- theme debug: wp_head reached -->\n";
}, 1);

Этот приём не решает проблему, но помогает понять, что wp_head отрабатывает и тема вообще вмешивается в head. Если в коде страницы уже есть несколько title или description, значит нужно искать дублирующие функции в functions.php, шаблонах header.php и SEO-плагине.

Пошаговое решение без лишнего риска

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

1. Уберите генерацию метатегов из темы, если её дублирует плагин

Если SEO-плагин уже управляет title, description и canonical, тема не должна печатать свои версии. В старых темах это часто сделано вручную через wp_head.

<?php
// functions.php темы
remove_action('wp_head', 'theme_meta_tags');
remove_action('wp_head', 'theme_canonical_tag');

function theme_meta_tags() {
    // Если функция была в теме, её лучше удалить или отключить.
}

Если вы не знаете точное имя функции, найдите по проекту строки meta name="description", rel="canonical" и <title>. В нормальной теме title должен формироваться через add_theme_support('title-tag'), а не вручную.

2. Закройте от индексации служебные архивы

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

<?php
add_filter('wp_robots', function (array $robots) {
    if (is_author() || is_tag()) {
        $robots['noindex'] = true;
        $robots['follow'] = true;
    }

    return $robots;
});

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

3. Уберите индексацию вложений

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

<?php
add_action('template_redirect', function () {
    if (is_attachment()) {
        $parent = wp_get_post_parent_id(get_queried_object_id());
        if ($parent) {
            wp_safe_redirect(get_permalink($parent), 301);
        } else {
            wp_safe_redirect(home_url('/'), 301);
        }
        exit;
    }
});

Если у вас уже есть SEO-плагин, проверьте, не делает ли он это сам. Двойной редирект или конфликт правил может привести к цепочке 301.

4. Приведите canonical к одному варианту URL

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

ПодходКогда подходитМинус
Плагин SEOЕсли нужен удобный интерфейс и массовые настройкиЛегко получить конфликт с темой
Код в темеЕсли проект небольшой и логика простаяНужно аккуратно поддерживать вручную
КомбинацияЕсли плагин отвечает за SEO, а тема — только за шаблоныТребует дисциплины: не дублировать функции

Для проверки canonical откройте исходный код и убедитесь, что на каждой странице он один и ведёт на основной адрес без параметров.

Когда лучше править через плагин, а когда через код

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

Что проверить в SEO-плагине

  • не включена ли генерация title и description одновременно в плагине и теме;
  • не создаёт ли плагин отдельные шаблоны для архивов, которые конфликтуют с шаблоном темы;
  • не включены ли noindex для страниц, которые должны индексироваться;
  • не меняет ли плагин canonical для пагинации и архивов.

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

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

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

  1. Откройте несколько типовых страниц: главную, запись, категорию, тег, автора, вложение.
  2. Проверьте исходный код: один title, один description, один canonical.
  3. Убедитесь, что служебные архивы получили noindex, если вы их закрывали.
  4. Прогоните URL через проверку в Search Console и посмотрите, какой canonical выбран Google.
  5. Если были редиректы вложений или параметров, проверьте ответ сервера через curl -I или любой HTTP checker.
curl -I https://example.com/sample-attachment/

В ответе должен быть 301 на нужный URL, а не цепочка из нескольких переходов. Если видите 200 на странице вложения, редирект не сработал.

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

Тема и SEO-плагин оба печатают title

Это самая частая причина. Решение простое: оставьте только один источник. В современной теме title должен идти через поддержку title-tag, а не через ручной вывод в header.php.

Закрыли от индексации всё подряд

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

Редирект вложений ломает медиа-страницы в старых ссылках

Если на вложения уже есть внешние ссылки или они используются как посадочные страницы, редирект нужно планировать отдельно. В таком случае лучше сначала собрать список URL и оценить трафик, а потом менять поведение.

Canonical указывает на URL с параметрами

Обычно это ошибка шаблона или фильтра, который подставляет текущий запрос без очистки. Проверьте, не берётся ли canonical из $_SERVER['REQUEST_URI'] без нормализации.

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

Любые изменения в теме и SEO-логике лучше делать в дочерней теме или через небольшой mu-plugin. Так вы не потеряете правки после обновления. Перед правками сохраните резервную копию базы и файлов, а после внедрения очистите кеш страницы и, если он есть, объектный кеш.

  • не редактируйте исходную тему на боевом сайте без бэкапа;
  • проверяйте изменения на staging-окружении, если сайт уже индексируется;
  • после правок сбрасывайте кеш плагина, сервера и CDN;
  • не добавляйте несколько SEO-решений одновременно без ревизии их функций;
  • если используете кастомный код, держите его в отдельном файле и комментируйте, что именно он отключает.

Когда задача сводится не только к дублям, но и к общей чистке head, служебных страниц и лишних архивов, проще один раз привести проект к понятной схеме, чем потом ловить конфликт между темой, плагином и шаблонами архива. В таких сценариях полезно заранее решить, кто отвечает за SEO-логику: тема, плагин или отдельный mu-plugin. Один источник правды почти всегда дешевле в поддержке, чем два конкурирующих.

×

AI-плагин от WPShop.ru

анализирует конкурентов

пишет статьи

готовит SEO

генерирует изображения

и еще кое-что...
WPGPT
Плагин, который наполняет ваш сайт WordPress
Узнать больше