Дубли страниц в WordPress почти всегда появляются не из-за одной ошибки, а из-за набора мелких настроек: архивы авторов, теги, пагинация, параметры в URL, версии с и без слэша, http и https, www и без www, а иногда — из-за темы или плагина, который генерирует одинаковый контент в нескольких местах. Если это не контролировать, поисковик тратит обход на лишние URL, а в индексе остаются не те страницы, которые вы хотели продвигать.
Ниже — рабочий сценарий: как быстро найти источник дублей, что отключать, что оставлять, и как проверить, что после правок сайт не начал терять нужные страницы.
Как понять, что на сайте есть дубли
Самый частый симптом — в поиске всплывают неканонические адреса: страницы с ?replytocom=, архивы тегов с почти тем же текстом, пагинация, служебные страницы автора, а иногда и дубликаты главной в нескольких вариантах URL. Но ориентироваться только на выдачу нельзя: часть дублей видна только в обходе сайта.
Что проверить в первую очередь
- одинаковые заголовки и мета-описания у разных URL;
- несколько адресов одной и той же записи: со слэшем и без, с параметрами, с пагинацией;
- архивы категорий, тегов и авторов, которые повторяют контент записей;
- страницы поиска сайта и служебные архивы;
- дубли из-за фильтров, сортировки и UTM-параметров, если они индексируются.
Если у вас установлен SEO-плагин, сначала откройте отчет по индексируемым типам контента и архивам. Если плагина нет, смотрите исходный код страниц: там должны быть canonical и, при необходимости, noindex. Но наличие тега само по себе не решает проблему, если сайт отдает несколько одинаковых URL с разным содержимым.
Откуда берутся дубли в WordPress
В WordPress дубли часто появляются на уровне самой структуры сайта. Это не баг в привычном смысле, а следствие того, как CMS строит архивы и маршруты. Поэтому лечить нужно не только SEO-настройки, но и источник генерации URL.
Типовые источники
| Источник | Как выглядит | Что делать |
|---|---|---|
| Архивы тегов | Один и тот же текст доступен в записи и в архиве тега | Оставить только полезные теги, остальные закрыть от индексации или удалить |
| Архивы автора | На сайте один автор, а архив автора повторяет ленту | Отключить архив автора или закрыть его от индексации |
| Параметры URL | ?utm_, ?replytocom, сортировка, фильтры | Нормализовать canonical и при необходимости ставить редирект |
| Дубли главной | /, /index.php, /home/ и другие варианты | Свести к одному каноническому адресу через редирект |
| Пагинация | Страницы архивов /page/2/, /page/3/ | Оставить, но следить за canonical и качеством пагинированных страниц |
Пошаговое решение: что отключить, что редиректить, а что оставить
Здесь важно не рубить всё подряд. Не каждый дубль нужно удалять. Иногда правильнее оставить страницу, но убрать ее из индекса. В других случаях нужен 301-редирект на канонический адрес. А где-то достаточно исправить шаблон темы.
Шаг 1. Уберите технические дубли через редиректы
Если сайт доступен по нескольким вариантам домена или протокола, сначала приведите все запросы к одному формату. Это базовая санитария, без которой остальная настройка теряет смысл.
<IfModule mod_rewrite.c>
RewriteEngine On
RewriteCond %{HTTPS} off [OR]
RewriteCond %{HTTP_HOST} ^www\.example\.ru$ [NC]
RewriteRule ^ https://example.ru%{REQUEST_URI} [R=301,L]
</IfModule>Этот вариант подходит для Apache. Если у вас Nginx, редирект настраивается в конфиге сервера, а не в .htaccess. Важно: не смешивайте несколько правил, которые конфликтуют друг с другом, иначе получите цепочки редиректов.
Шаг 2. Закройте от индексации архивы, которые не несут ценности
На большинстве контентных сайтов архивы тегов и автора либо дублируют записи, либо дают слишком тонкий слой контента. Если они не нужны для поиска, лучше закрыть их от индексации и оставить доступными для пользователей.
Если вы используете SEO-плагин, настройка делается в его интерфейсе. Если хотите контролировать это кодом, можно добавить noindex для архивов в functions.php или через мини-плагин:
<?php
add_filter('wp_robots', function ($robots) {
if (is_author() || is_tag()) {
$robots['noindex'] = true;
$robots['follow'] = true;
}
return $robots;
});Это не заменяет нормальную структуру сайта, но помогает быстро убрать из индекса архивы, которые только размазывают релевантность.
Шаг 3. Проверьте canonical в шаблоне
Если тема или плагин выводит неправильный canonical, поисковик может считать дубль основной страницей. В WordPress canonical обычно формируется автоматически, но кастомные шаблоны и старые темы иногда ломают этот механизм.
Проверьте исходный код страницы и убедитесь, что canonical указывает на текущую основную версию URL без параметров. Для записей это особенно важно, если на страницу ведут ссылки с UTM или других параметров.
Шаг 4. Уберите дубли из темы и виджетов
Иногда дубли создаются не на уровне URL, а на уровне контента. Например, блок «последние записи» выводится на главной, в сайдбаре и внизу статьи, а еще дублируется в похожих материалах. Это не всегда проблема для индекса, но если в шаблоне повторяется крупный кусок текста, поисковик может воспринимать страницу как переоптимизированную или малополезную.
Проверьте шаблоны home.php, archive.php, single.php и блоки, которые подключаются через get_template_part(). Если один и тот же фрагмент используется в нескольких местах, убедитесь, что он не дублирует основной контент страницы.
Когда лучше править кодом, а когда — плагином
Если задача разовая и сайт небольшой, проще решить ее через SEO-плагин и редиректы на сервере. Если же дубли появляются из-за темы, кастомных типов записей или параметров в URL, без кода не обойтись. Важно не смешивать подходы: один плагин должен отвечать за мета-данные, а сервер — за редиректы и нормализацию URL.
| Подход | Плюсы | Минусы |
|---|---|---|
| Плагин | Быстро, без правки темы | Зависимость от интерфейса и настроек |
| Код | Точечный контроль, меньше лишней логики | Нужна проверка после обновлений темы |
| Серверный редирект | Работает до загрузки WordPress | Нужно аккуратно тестировать, особенно на Nginx |
Проверка результата после внедрения
После правок не ограничивайтесь открытием пары страниц в браузере. Нужно проверить, что сайт действительно отдает один канонический вариант и не создает новых цепочек.
Чек-лист проверки
- откройте главную и несколько записей с
http,https,wwwи без них — должен остаться один вариант; - проверьте страницы с параметрами
?utm_source=и убедитесь, что canonical указывает на чистый URL; - посмотрите архивы тегов, автора и поиска — они должны быть либо закрыты, либо осознанно оставлены;
- проверьте ответ сервера для старых адресов: нужен
301, а не302; - сделайте повторный обход сайта через Screaming Frog, Sitebulb или аналогичный краулер и сравните количество дублей до и после.
Если используете Google Search Console, смотрите не только отчет по страницам, но и примеры URL, которые попали в индекс. Иногда проблема остается только в старых адресах, и их нужно дожимать редиректами или удалением внутренних ссылок.
Частые ошибки и как их исправить
Закрыли архивы, но оставили внутренние ссылки на них
Это распространенная ситуация: архив закрыт от индексации, но меню, хлебные крошки или блоки в сайдбаре продолжают вести на него. В результате поисковик все равно тратит обход на эти URL. Решение простое: либо убирайте ссылки, либо оставляйте архив полезным и наполненным.
Поставили noindex вместо редиректа
Если у вас технический дубль одного и того же адреса, noindex не заменяет редирект. Поисковик может еще долго видеть обе версии. Для http/https, www/без www и старых URL нужен именно 301.
Сломали canonical в кастомной теме
Иногда разработчики вручную выводят canonical и забывают про пагинацию, параметры и архивы. В итоге все страницы начинают ссылаться на главную или на первую запись. После этого поисковик теряет структуру сайта. Проверьте шаблон <head> и уберите самописный canonical, если он конфликтует с ядром или SEO-плагином.
Удалили теги, но не почистили внутреннюю перелинковку
Если тегов было много, а потом их просто удалили, старые ссылки из записей и виджетов могут вести в 404. Для таких адресов нужен 301-редирект на релевантную категорию или на главную, если точного аналога нет. Массово отправлять все в главную — плохая практика, но лучше, чем оставить пустые 404 на важных внутренних ссылках.
Практические советы по безопасности и производительности
Чистка дублей полезна не только для SEO. Она уменьшает количество лишних запросов к базе и снижает нагрузку на обход сайта. Но не стоит превращать это в бесконечную ручную настройку.
- не создавайте десятки таксономий и архивов без реальной структуры;
- не индексируйте служебные страницы, если они не дают трафик и не нужны в поиске;
- проверяйте обновления темы: после них часто ломаются шаблоны архивов и canonical;
- если используете плагины для SEO и чистки дублей, не включайте одинаковые функции в двух местах;
- делайте бэкап перед массовыми редиректами и удалением таксономий.
Если нужен более системный подход к чистке дублей, мета-данных и служебных страниц, имеет смысл смотреть в сторону инструментов вроде Clearfy Pro: он помогает собрать часть технических настроек в одном месте, но все равно требует проверки после включения каждого модуля. Для сайта с кастомной темой это особенно важно, потому что конфликт настроек чаще всего возникает не в плагине, а в шаблоне.
Как понять, что проблема решена окончательно
Решение можно считать рабочим, если выполняются три условия: старые адреса стабильно редиректят на канонический URL, в исходном коде у нужных страниц правильный canonical, а в краулере больше не растет число дублей. Если после этого в индексе еще остаются старые варианты, это уже вопрос времени и повторного обхода, а не новой настройки.
Самая полезная привычка здесь — не лечить дубли точечно по одному URL, а один раз привести к порядку структуру архивов, параметры и шаблоны. Тогда проблема не возвращается после каждого обновления темы или установки нового плагина.