WordPress Notes WP24

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

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

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

Когда проблема уже есть: как понять, что в индексе лишние страницы

Первый признак — в поиске находятся страницы, которые вы не считаете посадочными: /tag/, /page/2/, вложения изображений, внутренний поиск, URL с параметрами сортировки или фильтрации. Второй признак — в Google Search Console растёт число страниц без трафика, а в отчётах по индексированию появляются варианты одного и того же контента.

Проверять стоит не только выдачу, но и сам сайт. Откройте несколько типовых URL и посмотрите, как они отдаются:

  • архив рубрики: /category/news/;
  • страница тегов: /tag/wordpress/;
  • пагинация: /category/news/page/2/;
  • вложение медиафайла: /hello-world/attachment/image/ или отдельная страница вложения;
  • поиск: /?s=запрос;
  • URL с параметрами: ?utm_source=..., ?replytocom=..., ?amp если AMP не используется.

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

Какие дубли в WordPress встречаются чаще всего

Архивы таксономий и теги

Категории и теги часто дублируют смысл друг друга. Если у записи есть и рубрика, и несколько тегов, WordPress создаёт отдельные архивы для каждого. На небольшом сайте это удобно, но на контентном проекте теги легко превращаются в тонкие страницы с 1–2 записями и одинаковыми заголовками.

Пагинация архивов

Страницы /page/2/, /page/3/ и дальше не всегда должны индексироваться отдельно. Если на них почти тот же набор карточек, что и на первой странице архива, поисковик видит повторяющийся шаблон.

Страницы вложений

WordPress умеет создавать отдельные страницы вложений для изображений. В большинстве проектов они не несут пользы: на них только картинка и минимум текста. Для SEO это почти всегда лишний слой.

Параметры URL

Параметры сортировки, фильтрации, трекинга и ответа на комментарии могут плодить десятки вариантов одного адреса. Особенно это заметно, если на сайте есть формы, фильтры или внешняя аналитика с UTM-метками.

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

Универсального переключателя нет. Нужна комбинация из трёх вещей: убрать ненужные архивы из индекса, поставить канонические URL там, где дубли неизбежны, и закрыть технические страницы от индексации.

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

Шаг 1. Отключите индексацию ненужных архивов

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

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

<?php
add_action('wp_head', function () {
    if (is_tag() || is_search() || is_attachment()) {
        echo '<meta name="robots" content="noindex,follow" />' . "\n";
    }
});

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

Шаг 2. Уберите страницы вложений в редирект на файл или запись

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

<?php
add_action('template_redirect', function () {
    if (!is_attachment()) {
        return;
    }

    global $post;

    if ($post && !empty($post->post_parent)) {
        wp_redirect(get_permalink($post->post_parent), 301);
        exit;
    }

    $file = wp_get_attachment_url(get_queried_object_id());
    if ($file) {
        wp_redirect($file, 301);
        exit;
    }
});

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

Шаг 3. Приведите каноникал к одному варианту URL

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

Проверка простая: откройте исходный код страницы и найдите rel="canonical". Он должен указывать на чистый основной URL без лишних параметров. Если каноникал отсутствует или указывает на не тот адрес, это уже проблема шаблона или плагина.

Шаг 4. Закройте технические страницы от индексации на уровне robots и мета-тегов

Для поиска по сайту, страниц авторизации, корзины комментариев и похожих технических адресов лучше использовать сочетание noindex и корректного поведения в robots.txt. Но важно не путать запрет на обход и запрет на индексирование: если страница уже известна поисковику, один только Disallow не всегда убирает её из выдачи.

Если нужен контроль через robots.txt, не делайте жёстких запретов на всё подряд. Например, закрывать CSS и JS в современных проектах — плохая идея. Для WordPress обычно достаточно точечных правил для поиска и служебных URL, если они действительно создают мусор.

Быстрый вариант через плагин и когда он оправдан

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

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

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

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

  • страницы, которые вы закрывали, отдают noindex или редирект 301;
  • в исходном коде у основных страниц корректный canonical;
  • в Search Console уменьшается число проиндексированных технических URL;
  • поиск по сайту не возвращает служебные страницы в выдаче;
  • в логах или аналитике нет всплеска ошибок 404 после редиректов.

Проверять удобно в таком порядке:

  1. Откройте страницу в браузере и посмотрите исходный код.
  2. Проверьте заголовки ответа через curl -I https://example.com/page/.
  3. Сравните URL в каноникале с фактическим адресом страницы.
  4. Посмотрите отчёт по индексированию в Google Search Console через несколько дней после переобхода.
curl -I https://example.com/tag/wordpress/

Если страница должна быть закрыта, в ответе вы не увидите случайного 200 OK без noindex или редиректа. Если редирект есть, проверьте, что он ведёт на действительно полезный адрес, а не на главную страницу «на всякий случай».

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

Закрыли страницу в robots.txt, но оставили её индексируемой

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

Поставили noindex на полезные страницы

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

Сделали редирект всех вложений на главную

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

Дублируете правила в плагине и в теме

Если SEO-плагин уже генерирует canonical и meta robots, а вы сверху добавляете свои фильтры, можно получить конфликт. В результате теги дублируются, canonical указывает не туда, а поисковик видит противоречивые сигналы. Выберите одно место, где управляется логика, и держите её там.

Чек-лист перед публикацией правок

  • Проверены архивы категорий, тегов и автора.
  • Понятно, какие страницы вложений должны редиректиться, а какие нет.
  • На основных страницах есть корректный canonical.
  • Технические URL закрыты через noindex или редирект, а не только через robots.txt.
  • После правок протестированы заголовки ответа и исходный код.
  • В Search Console добавлены страницы на переобход или отправлен sitemap, если он менялся.

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

×

Время действовать!

Суперцены на
WordPress!

-20%
на премиум темы

Не упусти шанс ⋙