wpmeta.ru wordpress WPMeta.ru

Как убрать дубли страниц из индекса WordPress без правок robots.txt

Если в поиске всплывают одинаковые страницы с разными URL, проблема обычно не в robots.txt. Чаще всего дубли появляются из-за архивов, пагинации, параметров фильтра, страниц вложений, тегов, авторских архивов и версий URL со слешем или без него. В таких случаях закрывать всё через robots.txt — плохая идея: робот перестанет видеть страницу, но дубликат может остаться в индексе без нормального сигнала каноничности.

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

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

Проверка начинается с поиска в Google и Яндекс по шаблону URL. Если одна и та же запись доступна как /post-name/, /post-name/?amp, /category/news/post-name/ или через архив автора, поисковик может показать несколько вариантов. Ещё один частый сценарий — страницы тегов и архивов, которые повторяют заголовки и фрагменты контента с основных записей.

Признаки, которые видно без инструментов

  • в индексе есть страницы с одинаковым title и description;
  • в результатах поиска показываются архивы, которые не должны конкурировать с записью;
  • страницы вложений открываются как отдельные URL с пустым или почти пустым контентом;
  • в Search Console растёт число «Просканировано, но не проиндексировано» для однотипных страниц;
  • одна и та же статья доступна по нескольким адресам из-за параметров сортировки, UTM или технических суффиксов.

Что проверить в первую очередь

  1. Откройте исходный код проблемной страницы и найдите <link rel="canonical".
  2. Проверьте, не отдает ли страница статус 200 там, где должен быть редирект или noindex.
  3. Сравните URL с и без слеша, с www и без www, http и https.
  4. Посмотрите, не создаёт ли тема или плагин отдельные архивы для таксономий, которые дублируют основной контент.

Что закрывать, а что оставлять в индексе

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

Тип страницыЧто делатьКомментарий
Страницы вложенийРедирект на файл или родительскую записьЕсли вложения не используются как отдельные страницы
Теги без уникального контентаnoindex,followОставляет обход ссылок, но убирает страницу из индекса
Архивы автора на одиночном блогеnoindex,follow или отключение архиваЗависит от структуры сайта
Параметры сортировки и фильтрыCanonical на чистый URL или редиректЕсли параметр не нужен для индексации
Дубли со слешем/без слеша301-редирект на один вариантЭто лучше, чем полагаться только на canonical

Пошаговое решение без правок robots.txt

Шаг 1. Уберите технические дубли на уровне URL

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

# Пример для Apache: принудительный HTTPS и единый host без www
RewriteEngine On
RewriteCond %{HTTPS} !=on [OR]
RewriteCond %{HTTP_HOST} ^www\.example\.ru$ [NC]
RewriteRule ^ https://example.ru%{REQUEST_URI} [L,R=301]

Этот редирект не решает проблему дублей контента сам по себе, но убирает один из самых частых источников разъезда URL.

Шаг 2. Для архивов и таксономий задайте правильный индексируемый статус

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

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

    return $robots;
} );

Фильтр wp_robots — штатный способ управлять robots-мета для текущей страницы. Он не подменяет canonical, поэтому для дублей URL его лучше использовать вместе с канонизацией или редиректом.

Шаг 3. Исправьте canonical для страниц с параметрами

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

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

Шаг 4. Уберите страницы вложений из выдачи

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

<?php
add_action( 'template_redirect', function() {
    if ( is_attachment() ) {
        $parent = wp_get_post_parent_id( get_queried_object_id() );

        if ( $parent ) {
            wp_redirect( get_permalink( $parent ), 301 );
            exit;
        }
    }
} );

Если у вложения нет родителя, можно редиректить на главную медиа-библиотеки или на 404, но это уже зависит от структуры сайта и старых ссылок.

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

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

ПодходПлюсыМинусы
SEO-плагинБыстро, понятно редактору, меньше ручной поддержкиНе всегда решает нестандартные дубли
Код в теме/плагинеТочный контроль, можно обработать конкретные шаблоныНужна проверка после обновлений темы
Редиректы на сервереБыстро и надёжно для URL-версийНе решает canonical и noindex

Если вам нужен именно комплексный технический контроль над дублями, чисткой архивов и SEO-мета, в экосистеме WPShop для этого есть Clearfy Pro: https://wpshop.ru/plugins/clearfy?utm_source=wpmeta.ru&utm_medium=article&utm_campaign=kak-ubrat-dubli-stranits-iz-indeksa-wordpress-bez-pravok-robots-txt

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

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

  • Откройте проблемный URL и проверьте статус ответа: 200, 301 или 404 — в зависимости от сценария.
  • Посмотрите исходный код: canonical должен вести на нужный адрес, а robots-мета — соответствовать задаче.
  • Проверьте URL в Google Search Console через «Проверка URL» и сравните выбранный canonical с вашим.
  • Если это архив или тег, убедитесь, что страница доступна пользователю, но не претендует на индекс.
  • Через несколько дней повторно проверьте выдачу по точному URL и по заголовку страницы.

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

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

Закрыть дубли через robots.txt

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

Ставить noindex на всё подряд

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

Оставить несколько canonical одновременно

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

Делать редирект без проверки цепочек

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

Безопасность и производительность: что не стоит игнорировать

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

Если на сайте много архивов и фильтров, не пытайтесь решать проблему тяжёлыми запросами к базе на каждом хите. Для массовых изменений лучше использовать один раз настроенные правила, а не постоянные проверки в init или template_redirect без необходимости.

И ещё один практический момент: если дубли создаёт плагин, не отключайте его вслепую. Сначала найдите, какой именно шаблон или параметр порождает лишний URL, и только потом меняйте настройку или заменяйте плагин.

×

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

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

пишет статьи

готовит SEO

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

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