В WordPress дубли чаще появляются не из-за «плохого SEO», а из-за штатных механизмов: архивы тегов и авторов, страницы пагинации, параметры сортировки, версии с ?replytocom, служебные URL плагинов и темы. Если их не контролировать, поисковик тратит обход на второстепенные страницы, а в индексе остаются варианты одной и той же записи.
Ниже — рабочая схема: сначала находим источник дублей, потом решаем, что закрывать через noindex, что отдавать в robots.txt, а что лучше вообще убрать из генерации ссылок.
Как понять, что у вас именно проблема дублей
Не стоит начинать с массового закрытия всего подряд. Сначала проверьте, какие URL реально индексируются и где поисковик видит повторяющийся контент.
Что смотреть в первую очередь
- отчёт «Страницы» в Google Search Console: повторяющиеся URL с разными параметрами;
- поиск по сайту через
site:example.ruи сравнение заголовков; - архивы тегов, авторов, дат, если они дублируют рубрики или записи;
- URL с параметрами
?replytocom,?amp,?utm_, если они попадают в индекс; - страницы пагинации, если на них почти нет уникального текста.
Если в индексе много технических URL, а основные записи ранжируются нестабильно, обычно проблема не в одном теге noindex, а в наборе мелких источников дублей.
Что закрывать через noindex, а что через robots.txt
Это ключевой момент. noindex говорит поисковику не включать страницу в индекс. robots.txt ограничивает обход, но сам по себе не гарантирует удаление URL из индекса, если он уже известен поисковику.
| Подход | Когда использовать | Ограничение |
|---|---|---|
noindex | Для страниц, которые могут быть доступны пользователю, но не должны ранжироваться | Страница может продолжать обходиться роботом |
robots.txt | Для технических URL и разделов, которые не должны обходиться | Не удаляет уже известные URL из индекса мгновенно |
| Удаление генерации | Когда URL вообще не нужен | Нужно править тему, плагин или шаблон |
Практически это значит: архивы, теги и авторов чаще закрывают через noindex, а служебные пути вроде внутренних поисков, если они не нужны, — через robots.txt и/или отключение их вывода в теме.
Пошаговое решение в WordPress
1. Закрываем архивы тегов, авторов и дат
Если у вас информационный сайт, архивы тегов и авторов часто дублируют рубрики или сами записи. Самый безопасный вариант — оставить их доступными для пользователей, но убрать из индекса.
Если вы используете SEO-плагин, проверьте, есть ли у него настройки для архивов. Если нужен код, можно добавить noindex на нужные типы архивов через wp_head:
<?php
add_action('wp_head', function () {
if (is_tag() || is_author() || is_date()) {
echo '<meta name="robots" content="noindex,follow" />' . "\n";
}
});Этот вариант рабочий, но его нужно применять аккуратно: если у вас авторские страницы реально полезны и имеют уникальный контент, закрывать их не стоит.
2. Убираем дубли от параметров и служебных URL
Параметры в URL часто создают десятки почти одинаковых страниц. Если параметр нужен только для интерфейса, а не для отдельной посадочной страницы, его лучше не индексировать.
Для примера можно закрыть страницы с параметрами replytocom и некоторые виды пагинации:
<?php
add_action('template_redirect', function () {
if (isset($_GET['replytocom'])) {
nocache_headers();
}
});
add_action('wp_head', function () {
if (isset($_GET['replytocom'])) {
echo '<meta name="robots" content="noindex,follow" />' . "\n";
}
});Если параметр создаёт отдельный URL, но страница не должна быть доступна вообще, лучше не ограничиваться мета-тегом. Тогда нужно либо убрать генерацию ссылки, либо настроить редирект на чистый адрес.
3. Настраиваем robots.txt без лишней агрессии
robots.txt полезен для технических разделов, но не для «лечения» всех дублей. Не закрывайте им то, что уже должно быть удалено из индекса через noindex.
Типичный аккуратный вариант:
User-agent: *
Disallow: /wp-admin/
Allow: /wp-admin/admin-ajax.php
Disallow: /?s=
Disallow: /*?replytocom=
Sitemap: https://example.ru/sitemap_index.xmlСтрока с поиском по сайту нужна не всегда: если внутренний поиск полезен и не индексируется, можно оставить его открытым для обхода, но закрыть через noindex на шаблоне результатов поиска.
4. Закрываем результаты поиска и пустые архивы
Страница поиска по сайту почти всегда создаёт мусорный индекс, если её не ограничить. Для неё обычно ставят noindex,follow и при необходимости отключают индексацию пустых результатов.
<?php
add_action('wp_head', function () {
if (is_search() || is_404()) {
echo '<meta name="robots" content="noindex,follow" />' . "\n";
}
});Для 404 это спорный приём: иногда его используют, чтобы не плодить мусорные страницы в индексах логов и кэша, но если у вас нормальная обработка 404, отдельный запрет не обязателен.
Если нужен более чистый вариант: убрать дубли на уровне темы или плагина
Иногда проблема не в индексации, а в том, что тема сама генерирует лишние ссылки: архивы тегов в карточках, ссылки на даты, дубли H1, канонические URL без нужной логики. В таком случае noindex — только половина решения.
Полезно проверить:
- не выводятся ли на карточках записи ссылки на теги, которые не нужны для навигации;
- не создаёт ли тема отдельные шаблоны для авторов и дат без уникального контента;
- есть ли корректный
rel="canonical"на страницах с параметрами; - не дублируется ли заголовок записи в хлебных крошках и на странице одновременно без необходимости.
Если вы используете плагин для технической чистки, например Clearfy Pro, его удобно применять именно для таких задач: убрать лишние архивы, закрыть служебные страницы, отключить дублирующие элементы интерфейса. Но даже в этом случае нужно проверять итоговый HTML, а не полагаться только на галочки в настройках.
Как проверить, что решение сработало
Проверка должна быть не визуальной, а технической. Откройте проблемный URL и посмотрите исходный код страницы: в <head> должен быть нужный robots-мета-тег, а в каноническом URL — правильный адрес без лишних параметров.
Что проверить по шагам:
- Откройте страницу с параметром, архив тегов, автора или поиска.
- Посмотрите исходный код и убедитесь, что есть
noindex,followтам, где он нужен. - Проверьте, что в
robots.txtнет запрета на важные CSS/JS-файлы и sitemap. - В Google Search Console отправьте URL на проверку и посмотрите, как робот видит страницу.
- Через несколько дней проверьте, уменьшается ли число дублей в отчёте по индексированию.
Если URL всё ещё попадает в индекс, причина обычно одна из трёх: робот не успел переобойти страницу, мета-тег стоит не на том шаблоне, либо URL доступен по нескольким адресам без каноникализации.
Частые ошибки и как их исправить
Закрыли всё через robots.txt и ждёте удаления из индекса
Это самая частая ошибка. Если URL уже известен поисковику, одного Disallow мало. Для удаления из индекса нужен noindex или редирект, а иногда и ручная очистка через инструменты вебмастера.
Ставят noindex на важные страницы
Иногда под раздачу попадают рубрики, которые реально собирают трафик, или страницы авторов с уникальными материалами. Перед массовым закрытием проверьте, какие страницы уже ранжируются и приносят переходы.
Закрывают параметры, которые нужны для фильтрации
Если параметр формирует полезную посадочную страницу, его нельзя просто запретить. В таком случае лучше настроить канонический URL, уникальный заголовок и текст, а не убирать страницу из индекса.
Ломают кэш и sitemap
После правок в шаблонах и robots.txt иногда забывают очистить кэш. В результате в браузере виден старый код, а в индексе — уже новый. После изменений обязательно сбросьте серверный кэш, кэш плагина и, если есть, CDN.
Чек-лист перед публикацией правок
- проверены реальные дубли в Search Console и вручную;
- определено, что закрывается через
noindex, а что черезrobots.txt; - не закрыты важные рубрики, записи и посадочные страницы;
- проверен исходный код на нужный robots-мета-тег;
- обновлён sitemap и очищен кэш;
- проверены canonical-ссылки на страницах с параметрами;
- сделана повторная проверка URL в Search Console.
Когда лучше не писать код вручную
Если у вас несколько типов архивов, мультиязычность, сложная тема и набор SEO-правил, ручные правки в functions.php быстро становятся хрупкими. В этом случае удобнее вынести управление дублями в SEO-плагин или в плагин для технической чистки, а код оставить только для точечных исключений.
Главный принцип простой: сначала убираем источник дубля, потом ограничиваем индексацию, и только после этого проверяем, как поисковик переобходит сайт. Если сделать наоборот, можно получить не меньше, а больше проблем с видимостью страниц.