В WordPress дубли чаще всего появляются не из-за «плохого SEO», а из-за штатной логики CMS: архивы, теги, страницы автора, пагинация, параметры сортировки, версии с ?replytocom, страницы вложений. Если не разложить это по полкам, поисковик начинает индексировать лишние URL, а канонические страницы теряют вес и смешиваются в отчётах.
Ниже — рабочая схема: как найти источник дублей, что закрывать от индексации, что оставлять, и как проверить, что после правок сайт не потерял полезные страницы.
Диагностика: какие дубли реально есть на сайте
Сначала не трогайте настройки наугад. В WordPress один и тот же контент может быть доступен по нескольким адресам, и часть из них нужна для навигации, а часть — мусор для индексации.
Что проверить в первую очередь
- архивы рубрик и меток;
- страницы автора, если на сайте один автор или шаблонные описания;
- пагинацию архивов и блога;
- страницы вложений медиафайлов;
- URL с параметрами
?replytocom,?amp,?utm_, если они индексируются; - служебные страницы поиска и фильтров;
- дубли от плагинов SEO, кэша или мультиязычности.
Быстрый способ увидеть проблему — выгрузить список URL из Google Search Console и сравнить его с реальной структурой сайта. Если в индексе есть страницы вида /tag/..., /author/..., /attachment/... или страницы с параметрами, это уже повод разбирать настройки.
Признаки, что проблема именно в дублях
- в поиске ранжируются не те страницы, которые вы продвигаете;
- в отчёте «Страницы» много URL с одинаковым заголовком или почти одинаковым содержимым;
- в индексе есть архивы, которые не несут ценности;
- канонический URL в выдаче отличается от основного адреса статьи;
- после публикации новой записи поисковик долго выбирает не ту версию страницы.
Что закрывать от индексации, а что оставлять
Здесь важен не принцип «закрыть всё лишнее», а баланс. Если убрать из индекса слишком много, сайт потеряет внутреннюю перелинковку и полезные посадочные страницы. Если оставить всё, индекс расползётся.
| Вариант | Когда подходит | Минус |
|---|---|---|
Закрыть через noindex | Для архивов, которые нужны пользователю, но не нужны в поиске | Страница остаётся доступной, но не участвует в индексации |
| Удалить из карты сайта | Для служебных и дублирующих URL | Нужно следить, чтобы они не попадали в sitemap повторно |
| Сделать редирект | Для устаревших или ошибочных адресов | Нельзя использовать вместо решения для всех архивов подряд |
| Оставить индексируемыми | Для рубрик, которые реально собирают трафик | Требуется нормальный контент и уникальные описания |
Если у вас информационный сайт, обычно имеет смысл оставить индексируемыми рубрики, а метки, страницы автора без смысла и вложения закрыть. Но это не универсальное правило: на некоторых проектах теги работают как полноценные посадочные страницы.
Пошаговое решение: как убрать дубли в WordPress
Шаг 1. Настройте SEO-плагин
Если у вас уже стоит SEO-плагин, начните с него. В большинстве случаев этого достаточно, чтобы закрыть архивы от индексации без вмешательства в код. Например, в Yoast SEO или Rank Math можно отключить индексацию тегов, авторов, дат и архивов вложений.
Проверьте, чтобы:
- страницы вложений вели на файл или редиректились на родительскую запись;
- архивы меток были закрыты, если на них нет уникального контента;
- страницы автора были отключены, если автор один или описания пустые;
- в sitemap не попадали служебные URL;
noindexне ставился на важные категории и статьи.
Если используете Clearfy Pro, там есть отдельные настройки для удаления дублей и чистки служебных страниц. Это удобно, когда нужно быстро привести в порядок типовой сайт без ручной правки шаблонов.
Шаг 2. Закройте архивы и вложения кодом, если плагина недостаточно
Иногда проще и надёжнее добавить точечную логику в тему или мини-плагин. Ниже пример, который ставит noindex,follow для страниц автора, дат и вложений. Код лучше размещать в дочерней теме или в отдельном плагине, а не в основном шаблоне.
<?php
add_action('wp_head', function () {
if (is_author() || is_date() || is_attachment()) {
echo '<meta name="robots" content="noindex,follow" />' . "\n";
}
});Это базовый вариант. Если у вас уже есть SEO-плагин, не дублируйте мета-теги без необходимости: два разных robots в коде страницы создают путаницу. Сначала проверьте, что плагин не делает то же самое.
Шаг 3. Уберите страницы вложений с отдельным URL
Страницы медиафайлов часто становятся мусорными дублями. Пользователь открывает картинку, а поисковик индексирует пустую страницу-вложение. Лучше перенаправлять такие URL на сам файл или на родительскую запись.
<?php
add_action('template_redirect', function () {
if (is_attachment()) {
$parent = wp_get_post_parent_id(get_the_ID());
if ($parent) {
wp_safe_redirect(get_permalink($parent), 301);
exit;
}
wp_safe_redirect(home_url('/'), 301);
exit;
}
});Если на сайте много изображений в статьях, это обычно даёт более чистую структуру индекса и убирает пустые страницы из отчётов.
Шаг 4. Проверьте канонические URL и пагинацию
Пагинация архивов и блога не всегда проблема. Но если на страницах 2, 3, 4 повторяется почти один и тот же контент без нормальной навигации, поисковик может считать их слабым дублем. Важно, чтобы у пагинации был корректный canonical и не ломались хлебные крошки.
Если вы вручную меняете шаблоны, не удаляйте canonical-теги SEO-плагина без причины. Для большинства сайтов лучше оставить стандартную логику и не вмешиваться в неё, если нет конкретной ошибки.
Проверка результата после внедрения
После правок не ориентируйтесь только на «страница открывается». Нужно проверить, как её видит поисковик.
- Откройте исходный код страницы и найдите
<meta name="robots">. - Проверьте canonical: он должен вести на основную версию URL.
- Убедитесь, что страницы вложений делают редирект 301, а не 302.
- Прогоните несколько URL через проверку в Google Search Console.
- Сравните sitemap до и после: служебные URL не должны там оставаться.
Если вы закрывали архивы меток, проверьте, что они действительно получили noindex или исчезли из карты сайта. Если делали редиректы для вложений, откройте старый URL в браузере и убедитесь, что он уходит на нужную страницу без цепочки редиректов.
Частые ошибки и как их исправить
Ставят noindex на всё подряд
Так часто ломают рубрики, пагинацию и полезные архивы. В итоге из индекса исчезают страницы, которые собирали переходы. Исправление простое: верните индексирование тем разделам, которые реально нужны для поиска и навигации.
Закрывают дубли, но оставляют их в sitemap
Это типичная несогласованность настроек. Поисковик видит URL в карте сайта, но на самой странице стоит noindex. Сигналы конфликтуют, а результат получается нестабильным. После изменений пересоберите sitemap и проверьте его вручную.
Делают редирект вместо noindex там, где нужен архив
Если страница полезна пользователю, но не нужна в поиске, редирект — не лучший вариант. Например, архив категории может быть удобен для навигации, но не обязан ранжироваться. В таком случае лучше noindex,follow, а не удаление страницы.
Не учитывают плагины, которые генерируют свои URL
Фильтры, квизы, формы, мультиязычность, AMP и некоторые плагины кэша могут создавать дополнительные адреса. Если после базовой чистки дубли остались, проверьте, не добавляет ли их отдельный плагин или тема.
Практические советы по безопасности и производительности
Любые правки лучше вносить не в активную тему напрямую, а через дочернюю тему или мини-плагин. Так вы не потеряете изменения после обновления. Перед внедрением сделайте резервную копию файлов и базы данных.
- не ставьте несколько SEO-плагинов одновременно;
- не дублируйте
noindexчерез код и настройки плагина без проверки; - после редиректов проверьте, что нет цепочек
301 > 301 > 200; - не закрывайте от индексации страницы, которые получают внешний трафик или нужны для внутренней перелинковки;
- если сайт большой, проверяйте изменения на staging-копии, а не на боевом домене.
Если нужно быстро убрать типовые дубли без ручной возни с шаблонами, имеет смысл посмотреть в сторону инструментов для чистки WordPress, например Clearfy Pro: https://wpshop.ru/plugins/clearfy. Но даже с плагином полезно понимать, какие URL вы закрываете и зачем — иначе можно случайно вырезать из индекса важные страницы.
Если после внедрения всё сделано правильно, в Search Console начнут исчезать лишние URL, а в индексе останутся только те страницы, которые действительно должны там быть. Это и есть нормальный результат: не «максимально закрыть сайт», а оставить поисковику чистую и понятную структуру.