Дубли в WordPress обычно появляются не из-за одной ошибки, а из-за набора мелких настроек: архивы тегов, страницы автора, пагинация, параметры в URL, версии с http/https, со слешем и без него. Если поисковик видит несколько адресов с одним и тем же контентом, он сам выбирает канонический вариант не всегда так, как нужно сайту. В результате часть страниц выпадает из индекса, а часть начинает конкурировать между собой.
Ниже разберём практическую схему: как диагностировать дубли, что закрывать через robots.txt, где нужен canonical, а где лучше вообще не трогать индексацию, чтобы не сломать нормальную выдачу.
Как понять, что проблема именно в дублях
Сначала стоит проверить не только отчёты в поисковой консоли, но и сам сайт. В WordPress дубли часто видны прямо в структуре URL: одна и та же запись открывается через архив рубрики, через метки, через поиск по сайту, через UTM-параметры и через пагинацию. Если у вас включены хлебные крошки, похожие ссылки могут появляться ещё и в блоках навигации.
Что смотреть в первую очередь
- Страницы с одинаковым title и description, но разными адресами.
- Архивы тегов, авторов, дат, если они не несут самостоятельной ценности.
- Параметры сортировки, фильтров и трекинга в URL.
- Версии страниц со слешем и без слеша, если сервер отвечает на обе.
- Пагинацию архивов, когда в индекс попадают страницы
/page/2/,/page/3/без необходимости.
Если есть доступ к поисковой консоли, откройте отчёт по индексированию и посмотрите, какие URL помечены как дубли или как «страница с альтернативным каноническим URL». Это полезнее, чем гадать по ощущениям: иногда проблема не в robots, а в том, что canonical на странице вообще не совпадает с реальным основным адресом.
Что закрывать через robots.txt, а что — через canonical
Это ключевой момент. robots.txt не удаляет страницу из индекса, а только ограничивает обход. Если страница уже известна поисковику, она может остаться в выдаче без сниппета. Поэтому robots.txt подходит не для всего подряд.
| Сценарий | Что делать | Комментарий |
|---|---|---|
| Технические параметры, служебные URL | Закрыть в robots.txt | Если эти адреса не должны сканироваться вообще |
| Дубли контента с нужной страницей | Поставить canonical | Поисковик должен понимать основной URL |
| Архивы без ценности | Удалить из индекса через noindex или отключить генерацию | Зависит от темы и SEO-логики сайта |
| Пагинация полезных архивов | Оставить доступной, но следить за canonical | Не закрывайте её без анализа |
Если вы просто запретите обход в robots.txt, но не уберёте источник дубля, поисковик может продолжать держать URL в индексе. Поэтому для большинства контентных дублей правильнее сначала настроить canonical, а уже потом решать, нужно ли ограничивать обход.
Пошаговая схема для WordPress
1. Проверьте базовые настройки постоянных ссылок
Иногда дубли появляются из-за того, что сайт доступен по нескольким вариантам адреса. Убедитесь, что в Настройки → Постоянные ссылки выбран один формат, а сервер делает 301-редирект на единственную версию домена: с https, с нужным слешем и без лишних дублей.
Если у вас в .htaccess или конфигурации nginx уже есть правила редиректа, проверьте, что они не конфликтуют с плагинами SEO и кеширования. Два разных редиректа на один и тот же URL часто создают цепочку, которую потом сложно диагностировать.
2. Уберите из индекса служебные архивы
Для большинства сайтов не нужны отдельные страницы автора, даты и внутреннего поиска. Если тема или SEO-плагин позволяет отключить такие архивы, это обычно лучше, чем оставлять их открытыми и надеяться на canonical. В WordPress это особенно актуально для небольших сайтов, где архив автора дублирует главную ленту или страницу «О проекте».
Если вы используете SEO-плагин, проверьте настройки индексации архивов. Не надо механически ставить noindex на всё подряд: если у вас сильная рубрикация и архивы реально приводят трафик, их лучше оставить. Важно не количество закрытых URL, а отсутствие мусора в индексе.
3. Настройте canonical на страницах, где есть альтернативные URL
Canonical должен указывать на основную версию страницы. Для записей это обычно сам URL записи, для рубрик — URL рубрики без параметров, для пагинации — соответствующая страница архива, если она должна индексироваться.
Если canonical генерируется темой или плагином неправильно, можно переопределить его через фильтр wpseo_canonical в Yoast SEO или через аналогичный механизм другого SEO-плагина. Но сначала проверьте, не ломает ли canonical сама тема.
<?php
add_filter( 'wpseo_canonical', function( $canonical ) {
if ( is_singular( 'post' ) ) {
return get_permalink();
}
if ( is_category() ) {
$term = get_queried_object();
if ( $term && ! is_wp_error( $term ) ) {
return get_term_link( $term );
}
}
return $canonical;
} );Этот пример не «чинит всё», а лишь показывает принцип: canonical должен быть предсказуемым и соответствовать реальному основному адресу. Если у вас другой SEO-плагин, ищите его фильтр canonical, но не подменяйте URL вручную без понимания структуры сайта.
4. Закройте параметрические URL
Параметры ?utm_, ?replytocom=, фильтры и сортировки часто плодят дубли. Для маркетинговых меток обычно достаточно canonical на чистую страницу. Для служебных параметров лучше вообще не допускать их индексации и обхода, если они не нужны поиску.
Если у вас есть формы комментариев, параметр replytocom иногда создаёт отдельные URL. В таких случаях полезно проверить, не генерирует ли тема лишние ссылки с этим параметром, и при необходимости отключить их на уровне шаблона или плагина.
Пример robots.txt для типового контентного сайта
Ниже не универсальный шаблон, а рабочая база, которую нужно адаптировать под реальную структуру. Не закрывайте всё без разбора: robots.txt должен отражать именно ваш сайт, а не чужой пример из статьи.
User-agent: *
Disallow: /wp-admin/
Allow: /wp-admin/admin-ajax.php
Disallow: /?s=
Disallow: /*?replytocom=
Disallow: /*?utm_
Disallow: /*?fbclid=
Disallow: /*?gclid=
Sitemap: https://example.com/sitemap_index.xmlЗдесь важно понимать ограничение: правила с параметрами работают не во всех сценариях одинаково, и поисковики могут интерпретировать их по-разному. Поэтому после правок обязательно проверяйте отчёты по обходу и индексации, а не только сам файл robots.txt.
Как проверить, что решение сработало
Проверка нужна не «для галочки», а чтобы не получить скрытую проблему через пару недель. Сразу после внедрения откройте несколько типовых URL и убедитесь, что:
- основная версия страницы отдаёт
200 OK; - дублированные адреса редиректят на канонический URL или получают корректный canonical;
- в исходном коде страницы canonical совпадает с основным адресом;
- robots.txt не блокирует важные страницы и ресурсы;
- в поисковой консоли уменьшается число URL с пометкой о дублях или альтернативном canonical.
Полезно проверить заголовки ответа через curl. Это быстрее, чем щёлкать по сайту руками и гадать, какой редирект сработал.
curl -I https://example.com/page/
curl -I https://example.com/page?utm_source=testЕсли на параметрическом URL вы видите 301 на чистую страницу, это хороший знак. Если же страница открывается как отдельный адрес и canonical не меняется, значит источник дубля ещё не устранён.
Частые ошибки и как их исправить
Закрыли страницу в robots.txt, но не убрали её из индекса
Это типичная ошибка. Robots.txt не гарантирует удаление URL из выдачи. Если страница уже проиндексирована, поисковик может продолжать её показывать. В таком случае нужен либо редирект, либо noindex, либо canonical на основную страницу — в зависимости от задачи.
Поставили canonical на главную вместо релевантной страницы
Так делают, когда хотят «быстро убрать дубли», но в итоге поисковик начинает считать все похожие страницы копиями главной. Это ломает релевантность и мешает ранжированию. Canonical должен вести на ближайший правильный аналог, а не на произвольную страницу.
Закрыли архивы, которые реально дают трафик
Если рубрики или теги собирают переходы из поиска, их нельзя отключать только потому, что они похожи на дубли. Сначала посмотрите статистику и запросы. Иногда правильнее доработать шаблон архива, добавить уникальный текст и нормальный title, чем вырезать его из индекса.
Смешали редиректы плагина и сервера
Когда часть правил работает в .htaccess, а часть — в плагине, легко получить цепочку из двух-трёх переходов. Это ухудшает скорость и усложняет диагностику. Лучше оставить редиректы в одном месте и документировать, что именно делает каждое правило.
Что делать, если дубли создаёт тема или плагин
Иногда источник проблемы не в SEO-настройках, а в шаблоне. Например, тема может выводить одинаковые карточки в нескольких архивах, а плагин — генерировать дополнительные страницы фильтров. В этом случае не стоит лечить симптом только через robots.txt.
Если проблема повторяется после обновлений, проверьте:
- не создаёт ли плагин собственные архивы или таксономии;
- не дублируются ли хлебные крошки и внутренние ссылки;
- не добавляет ли тема лишние query string в URL;
- не конфликтуют ли SEO-плагин и кеш-плагин при генерации canonical.
Для сайтов, где нужно одновременно чистить дубли, отключать мусорные архивы и управлять SEO-метками, иногда удобнее использовать один инструмент вместо набора разрозненных настроек. Например, в Clearfy Pro есть функции для удаления дублей и технической чистки сайта, но даже с таким плагином логику индексации всё равно нужно проверять вручную: автоматизация не отменяет контроль.
Практика безопасности и производительности
Чем больше лишних URL вы оставляете открытыми, тем больше обхода тратится на мусор. Это не всегда заметно на маленьком сайте, но на большом проекте с архивами, фильтрами и параметрами crawl budget уходит впустую. Поэтому техническая чистка — это не только про SEO, но и про нагрузку на сервер.
Не храните в robots.txt правила «на всякий случай» без понимания, что они делают. Через пару месяцев никто не вспомнит, почему был закрыт конкретный раздел, и можно случайно заблокировать нужный контент после редизайна. Лучше вести короткий список правил с пояснением: что закрыто, зачем и чем это подтверждено.
Если нужно быстро проверить структуру дублей и убрать часть технического мусора без ручной возни, можно посмотреть на Clearfy Pro. Но даже в этом случае финальная проверка canonical, редиректов и индексации остаётся обязательной.