Если в Search Console растут дубли, а в индексе появляются почти одинаковые страницы, проблема обычно не в одном месте. В WordPress это часто смесь архивов, тегов, пагинации, параметров в URL и страниц с одинаковым контентом, доступных по разным адресам. Лечить это точечно, по одному URL, можно долго и без результата. Рабочий подход — сначала понять, какие именно типы дублей создаёт сайт, а потом уже решать: где нужен noindex, где canonical, а где редирект.
Ниже — схема для типичного сайта на WordPress: без выдуманных хуков и без советов в стиле «просто закройте всё от индексации». Такой подход обычно ломает трафик на нормальные страницы.
Как понять, что дубли уже мешают индексации
Сначала смотрим не на количество страниц вообще, а на повторяющиеся шаблоны URL. Если в отчётах видны адреса вида /tag/, /page/2/, ?utm_source=, ?replytocom= или параметры фильтров, это уже сигнал. Ещё один маркер — в поиске находятся страницы, которые должны быть вспомогательными: архивы авторов, меток, дат, внутренние результаты поиска.
Что проверить руками
- Поиск в Google по
site:example.comи по конкретным шаблонам URL. - Отчёт «Страницы» в Google Search Console: дубли без выбранной пользователем канонической страницы, альтернативная страница с правильным canonical, просканировано, но не проиндексировано.
- Исходный код проблемных страниц: есть ли
rel="canonical"и куда он указывает. - Логи сервера или отчёт аналитики: не ходят ли боты по параметрам, которые не должны создавать отдельные страницы.
Если canonical указывает на саму страницу, но в индексе всё равно сидят дубли, значит проблема не только в canonical. Часто поисковик видит слишком много почти одинаковых URL и выбирает не тот вариант, который вы ожидали.
Какие дубли в WordPress встречаются чаще всего
У WordPress есть несколько типовых источников дублей. Их удобно разделить по способу исправления: что-то закрывается от индексации, что-то нормализуется редиректом, а что-то лучше вообще не генерировать на уровне темы или плагина.
| Источник дубля | Что делать | Компромисс |
|---|---|---|
| Теги, авторы, даты | noindex или отключение архива, если он не нужен | Можно потерять полезные страницы навигации |
| Пагинация архивов | Оставить доступной, но следить за canonical и качеством листинга | Не всегда стоит закрывать полностью |
| UTM и служебные параметры | Каноникал на чистый URL, иногда редирект для мусорных параметров | Нельзя редиректить всё подряд |
?replytocom=, ?amp, старые варианты URL | Редирект или нормализация на сервере | Нужно проверить совместимость с темой и плагинами |
Пошаговое решение: от диагностики к исправлению
1. Уберите дубли, которые создаёт сам сайт
Если у вас есть архивы, которые не несут ценности для поиска, их лучше закрыть от индексации. Это касается, например, страниц меток на слабом контенте, архивов по датам и авторов на небольшом сайте. Если архив нужен пользователю, но не нужен в поиске, используйте noindex,follow, а не редирект.
Для управления мета-роботами удобнее использовать SEO-плагин, который умеет задавать правила для архивов. Если вы правите это кодом, логика должна быть предсказуемой и не зависеть от случайных условий.
<?php
add_filter( 'wp_robots', function( $robots ) {
if ( is_tag() || is_date() || is_author() ) {
$robots['noindex'] = true;
$robots['follow'] = true;
}
return $robots;
} );Этот вариант не убирает страницу из сайта, а только подсказывает поисковику не индексировать её как отдельную посадочную. Перед применением проверьте, что архивы действительно не нужны в поиске. Для крупного медиа или каталога авторские страницы могут быть полезны.
2. Нормализуйте параметры URL
UTM-метки, параметры сортировки, фильтров и внутреннего поиска часто создают десятки адресов с одинаковым содержимым. Если страница с параметром не должна существовать как отдельная сущность, canonical должен вести на чистый URL. Если параметр вообще не нужен, лучше убрать его из генерации ссылок или настроить редирект только для безопасных случаев.
<?php
add_filter( 'get_canonical_url', function( $canonical, $post ) {
if ( is_singular() ) {
return get_permalink( $post );
}
return $canonical;
}, 10, 2 );Этот фильтр не решает все случаи, но полезен, если тема или плагин подмешивают параметры в канонический URL. После правки обязательно проверьте исходный код страницы и убедитесь, что canonical не содержит UTM, сортировку или внутренние параметры.
3. Закройте мусорные архивы и служебные страницы
Архивы тегов, дат и авторов часто индексируются по инерции, хотя не дают ценности. Если на сайте мало контента, такие страницы быстро превращаются в тонкие дубли. В этом случае лучше либо отключить их вывод в поиске, либо вообще убрать из карты сайта, если SEO-логика проекта это допускает.
Если используете SEO-плагин, проверьте отдельно:
- архивы тегов;
- архивы авторов;
- архивы дат;
- страницы внутреннего поиска;
- медиа-страницы вложений.
Медиа-страницы вложений — частая причина дублей. У них часто почти пустой контент и отдельный URL, который не нужен в поиске. Обычно их лучше редиректить на сам файл или на родительскую запись, если это поддерживается вашей конфигурацией.
4. Уберите дубли на уровне редиректов только там, где это безопасно
Редирект — не универсальный ответ. Им стоит пользоваться для старых URL, технических вариантов адреса и страниц, которые не должны существовать параллельно. Но редиректить все параметры подряд опасно: можно сломать фильтры, сортировки и страницы, которыми реально пользуются.
<?php
add_action( 'template_redirect', function() {
if ( isset( $_GET['replytocom'] ) ) {
$url = remove_query_arg( 'replytocom' );
wp_safe_redirect( $url, 301 );
exit;
}
} );Такой приём полезен для комментариев, где параметр создаёт лишние URL без нового смысла. Но перед включением проверьте, что на сайте нет плагина комментариев или темы, которая использует этот параметр иначе.
Как проверить, что решение сработало
Проверка нужна не только в браузере. Сначала смотрим HTML, потом ответ сервера, потом отчёты поисковика. Если ограничиться только визуальной проверкой, легко пропустить неправильный canonical или случайный 200-ответ на мусорный URL.
- Откройте проблемную страницу и проверьте исходный код: canonical должен вести на чистый URL.
- Проверьте мета-robots: для закрытых архивов должен быть
noindex, если именно это вы настраивали. - Откройте URL с параметром и убедитесь, что он либо редиректит, либо не создаёт отдельную индексируемую страницу.
- В Google Search Console запросите повторную проверку после изменения шаблонов.
- Через несколько дней проверьте, исчезают ли из отчётов дублированные варианты адресов.
Если после правки дубли остаются, не спешите добавлять ещё один редирект. Сначала убедитесь, что проблема не в карте сайта, внутренней перелинковке или плагине, который генерирует альтернативные URL.
Частые ошибки и как их исправить
Закрыли слишком много страниц
Самая частая ошибка — поставить noindex на всё подряд. В итоге из поиска исчезают не только мусорные архивы, но и полезные страницы навигации. Исправление простое: верните индексирование там, где архив реально помогает пользователю находить контент, и закрывайте только слабые или пустые разделы.
Сделали редирект вместо canonical
Если у страницы есть рабочее содержимое и она нужна пользователю, редирект на чистый URL может быть лишним. В таких случаях canonical часто безопаснее. Редирект оставляйте для старых адресов, дубликатов с техническими параметрами и страниц, которые не должны жить отдельно.
Оставили дубли в sitemap.xml
Иногда страницу закрывают от индексации, но она продолжает попадать в карту сайта. Это плохой сигнал для поисковика. Проверьте, что закрытые архивы и служебные страницы не отдаются в sitemap, если ваш SEO-плагин позволяет управлять этим отдельно.
Не учли кэш
После изменения canonical, robots или редиректов старый HTML может ещё какое-то время отдаваться из кэша. Очистите серверный кэш, кэш плагина и CDN, если он есть. Иначе вы будете проверять уже не тот код, который реально видит бот.
Что делать для безопасности и производительности
Чем больше костылей в обработке параметров, тем выше риск сломать нормальные URL. Поэтому сначала убирайте причину дубля в генерации ссылок, а не лечите всё на лету. Если параметр не нужен, не добавляйте его в меню, фильтры и внутренние ссылки. Если нужен только для аналитики, не давайте ему создавать отдельные индексируемые страницы.
На больших сайтах полезно держать под контролем количество архивов и таксономий. Лишние архивы увеличивают объём обхода, а это уже влияет на скорость переобхода важных страниц. Если у вас много служебных шаблонов, имеет смысл проверить, не создаёт ли тема лишние термины, пустые архивы и страницы вложений.
Если нужен более системный подход к чистке дублей и технических хвостов, можно посмотреть в сторону Clearfy Pro, но только как на инструмент для настройки, а не как на замену диагностике. Сначала выясните, какие URL реально плодят дубли, и только потом включайте конкретные опции.
Мини-чек-лист перед публикацией правок
- Проблемные URL найдены в Search Console и в поиске по сайту.
- Canonical указывает на чистый адрес без параметров.
- Закрытые архивы не попадают в sitemap.
- Редиректы настроены только для тех URL, которые не должны существовать отдельно.
- Кэш очищен на всех уровнях.
- После правок проверен исходный код и ответ сервера.
Если после этого дубли всё ещё появляются, ищите источник в теме, фильтрах таксономий или плагинах, которые генерируют альтернативные представления одного и того же контента. В WordPress это почти всегда вопрос не одной настройки, а последовательной нормализации URL и шаблонов.