Дубли в WordPress обычно появляются не из-за одной ошибки, а из-за набора мелочей: одинаковые записи доступны по разным URL, архивы индексируются вместе с основным контентом, а параметры в ссылках плодят копии страниц. В итоге поисковик видит несколько версий одного и того же материала и выбирает не ту, которую вы ожидали.
Если задача уже проявилась в Search Console как «дубли, выбран другой канонический URL», не стоит сразу массово закрывать всё от индексации. Сначала нужно понять, какие именно URL дублируются и почему.
Как понять, что проблема именно в дублях
Типичный симптом — одна и та же страница открывается по нескольким адресам: со слэшем и без, с ?replytocom=, через архив автора, через метки, через пагинацию или через старую структуру постоянных ссылок. Иногда дубли создают плагины фильтров, хлебные крошки или неправильные редиректы после смены домена.
Проверять нужно не только видимые страницы, но и технические URL. Для этого удобно смотреть:
- отчёт «Страницы» и «Индексирование» в Google Search Console;
- исходный код страницы на наличие
<link rel="canonical">; - ответ сервера для разных вариантов URL;
- логи редиректов после смены структуры постоянных ссылок.
Быстрая диагностика вручную
Откройте одну и ту же запись в нескольких вариантах URL и сравните ответ сервера. Например, если у вас включены ЧПУ, проверьте адрес со слэшем и без него, а также старую ссылку, если структура менялась.
curl -I https://example.com/sample-post/
curl -I https://example.com/sample-post
curl -I https://example.com/?p=123В норме должен быть один основной URL, а все альтернативы — отдавать 301 на канонический адрес. Если вместо редиректа вы видите 200 OK на нескольких вариантах, дубли уже почти гарантированы.
Какие дубли WordPress создаёт чаще всего
Не все дубли одинаково опасны. Одни мешают индексации, другие просто засоряют отчёты. Ниже — самые частые сценарии.
| Источник дубля | Что происходит | Что делать |
|---|---|---|
| Архивы автора, меток, дат | Один и тот же текст доступен в нескольких списках | Оставить индексируемыми только нужные архивы |
| Параметры в URL | Появляются копии с ?replytocom, UTM и фильтрами | Настроить canonical и редиректы, где это безопасно |
| Смена структуры ссылок | Старые URL продолжают жить параллельно новым | Сделать 301-редиректы со старых адресов |
| Теги и категории с одинаковым контентом | Один материал дублируется в нескольких архивах | Сократить индексируемые архивы и убрать лишние шаблоны |
Пошаговое решение: что исправлять в первую очередь
Шаг 1. Приведите к одному виду постоянные ссылки
Проверьте, что сайт не отдаёт одновременно версии со слэшем и без него, а также http и https. Если сайт уже работает на HTTPS, старые варианты должны вести на основной адрес через 301.
Если редиректов нет, добавьте их на уровне сервера или в конфигурации хостинга. В WordPress это лучше не пытаться делать через PHP, если речь идёт о массовой нормализации URL: серверный редирект надёжнее и дешевле по ресурсам.
Шаг 2. Настройте canonical для страниц с параметрами
Для страниц, которые открываются с параметрами, поисковик должен видеть каноническую версию без мусорных хвостов. WordPress и SEO-плагины обычно умеют это делать, но стоит проверить, не ломает ли тему вывод canonical вручную.
Если у вас свой шаблон или кастомная тема, не выводите второй canonical в <head>. Два тега canonical на одной странице — частая причина путаницы.
Шаг 3. Закройте от индексации лишние архивы
Если архивы тегов, дат или авторов не несут самостоятельной ценности, их лучше не продвигать как отдельные посадочные. Это не значит, что их нужно удалять: достаточно убрать из индексации или оставить только те архивы, которые реально помогают навигации.
На практике это особенно полезно для новостных и контентных сайтов, где один материал может попасть сразу в несколько архивов.
Шаг 4. Уберите дубли из шаблонов темы
Иногда дубли создаёт сама тема: одинаковые блоки выводятся в нескольких местах, а в разметке повторяются заголовки, описания или карточки записей. Это не всегда прямой SEO-дубль, но для поисковика и пользователя такой шаблон выглядит шумно.
Проверьте:
- не выводится ли один и тот же H1 дважды;
- нет ли одинаковых блоков «похожие записи» в конце и в сайдбаре;
- не дублируются ли метаописания на архивных страницах;
- не создаёт ли плагин кэширования копии страниц для разных устройств без нужды.
Пример кода: убрать индексирование архивов тегов и дат
Если вы не используете архивы тегов и дат как отдельные точки входа, можно аккуратно изменить robots meta для этих страниц. Делать это лучше через фильтр, а не правкой шаблона вручную.
add_filter( 'wp_robots', function( $robots ) {
if ( is_tag() || is_date() ) {
$robots['noindex'] = true;
$robots['follow'] = true;
}
return $robots;
} );Этот вариант работает на современных версиях WordPress, где используется API wp_robots. Если у вас уже подключён SEO-плагин, сначала проверьте, не конфликтует ли он с этим фильтром.
Пример кода: принудительный 301 с дублирующих URL
Если у вас есть конкретный мусорный параметр, который создаёт копии страниц, его можно отрезать редиректом. Ниже пример для ?replytocom, который часто появляется в комментариях.
add_action( 'template_redirect', function() {
if ( isset( $_GET['replytocom'] ) ) {
$url = remove_query_arg( 'replytocom' );
wp_safe_redirect( $url, 301 );
exit;
}
} );Важно: не делайте такой редирект для всех параметров подряд. UTM-метки, фильтры и служебные параметры могут быть нужны аналитике или функциональности сайта.
Проверка результата после внедрения
После правок не ограничивайтесь визуальной проверкой главной страницы. Нужно подтвердить, что:
- основной URL отдаёт 200 OK;
- все альтернативные варианты ведут на него через 301;
- в исходном коде страницы только один canonical;
- лишние архивы получили
noindex, если это было задумано; - в Search Console постепенно уменьшается число дублей и альтернативных URL.
Для быстрой проверки удобно использовать браузер и curl. Если нужно посмотреть canonical, откройте исходный код страницы и найдите строку с rel="canonical". Если их две — сначала исправляйте тему или SEO-плагин, а уже потом смотрите на индексацию.
Частые ошибки и как их исправить
Редирект сделан на уровне PHP, но сайт всё равно индексирует дубли
Причина обычно в том, что редирект срабатывает не на все варианты URL или выполняется слишком поздно. Для нормализации адресов лучше использовать серверные правила. PHP-редирект оставляйте для точечных случаев, а не для массовой маршрутизации.
Canonical указывает не туда
Такое бывает после смены домена, миграции или установки SEO-плагина поверх старой темы. Проверьте, не жёстко ли прописан адрес в шаблоне и не конфликтует ли он с настройками плагина.
Закрыли от индексации всё подряд
Иногда после борьбы с дублями в noindex уезжают и полезные страницы: категории, авторы, пагинация, даже сами записи. Исправление простое, но неприятное: вернуть индексирование только тем разделам, которые реально должны ранжироваться.
Удалили архивы, но не настроили редиректы
Если страница уже была в индексе и на неё есть ссылки, удаление без 301 создаёт 404 и теряет накопленный вес. Сначала редирект, потом удаление или закрытие.
Что ещё проверить ради безопасности и производительности
Когда вы чистите дубли, заодно стоит проверить, не плодит ли сайт лишние запросы и тяжёлые шаблоны. Это особенно заметно на больших проектах с архивами, фильтрами и кастомными блоками.
- уберите лишние архивы из меню и карты сайта, если они не нужны;
- проверьте, не генерирует ли плагин кэширования отдельные копии для мобильных и десктопных страниц без необходимости;
- не держите одновременно несколько SEO-плагинов с пересекающимися функциями;
- после правок очистите кэш страницы, объекта и CDN, если он есть.
Если нужен более системный аудит дублей, мета-тегов и технической чистки, в экосистеме WPShop для этого часто используют Clearfy Pro: он помогает убрать лишние элементы и сократить технический шум на сайте. Но даже с плагином логику индексации всё равно нужно проверять вручную, а не полагаться на галочки в настройках.
Главный критерий успеха здесь простой: у каждой важной страницы должен быть один основной адрес, один canonical и понятное правило, что делать с альтернативными URL. Если это соблюдено, поисковику проще выбрать правильную версию, а вам — не разбирать хаос из дублей через месяц после очередного обновления темы или плагина.