Дубли в WordPress обычно появляются не из-за одной ошибки, а из-за набора мелких настроек: архивы тегов, страницы автора, пагинация, параметры в URL, версии с www и без него, HTTP/HTTPS, а иногда и служебные страницы плагинов. Если их не контролировать, поисковик начинает индексировать лишние адреса, а канонические страницы теряют вес.
Ниже — рабочая схема, которая помогает не «рубить всё подряд», а убрать именно те дубли, которые реально мешают индексации. Подход подходит для обычного WordPress-сайта без привязки к конкретной теме или SEO-плагину.
Как понять, что у вас именно проблема дублей
Сначала стоит отличить дубли от обычных страниц-архивов. Не каждая страница с похожим контентом вредна. Проблема начинается там, где у одного и того же материала есть несколько URL, а в индекс попадают не те версии.
Признаки, которые можно проверить вручную
- в поиске находятся и
/page/2/, и основная страница архива, хотя второй экран не нужен в выдаче; - в индексе есть страницы автора, хотя на сайте один редактор и они не несут пользы;
- одна и та же запись открывается с параметрами вроде
?utm_source=или?replytocom=; - в выдаче видны версии сайта с разными протоколами или поддоменами;
- в отчётах Search Console растёт число «Просканировано, но не проиндексировано» для похожих URL.
Что смотреть в первую очередь
Откройте несколько проблемных URL и сравните три вещи: <link rel="canonical">, статус ответа и содержимое страницы. Если canonical указывает на правильный адрес, но в индекс всё равно попадает дубль, значит, у вас либо слабая внутренняя перелинковка, либо страница слишком доступна для обхода.
Для быстрой проверки удобно использовать команду:
curl -I https://example.com/sample-page/И отдельно посмотреть HTML:
curl -s https://example.com/sample-page/ | grep -i canonicalЕсли canonical отсутствует, у страницы нет явного сигнала, какую версию считать основной.
Какие дубли WordPress встречаются чаще всего
На практике проблема почти всегда сводится к нескольким типам URL. Их лучше разбирать по отдельности, потому что для каждого сценария решение отличается.
| Источник дубля | Что происходит | Что делать |
|---|---|---|
| Архивы тегов и авторов | Порождают много слабых страниц с похожими сниппетами | Оставить только полезные архивы, остальные закрыть от индексации |
| Параметры в URL | Один и тот же контент доступен по множеству адресов | Ставить canonical на чистый URL и не плодить ссылки с параметрами |
| Пагинация архивов | В индекс попадают страницы, которые не нужны в выдаче | Проверить, нужна ли индексация второй и следующих страниц |
| Технические страницы плагинов | Появляются служебные URL без ценности для пользователя | Закрыть от индексации или убрать из публичного доступа |
Пошаговое решение: как убрать дубли без поломки SEO
Лучше идти от безопасных изменений к более жёстким. Сначала настраиваем канонизацию и мета-robots, затем убираем лишние архивы, и только потом вмешиваемся в генерацию URL.
Шаг 1. Приведите сайт к одной основной версии
Проверьте, что сайт открывается только в одном варианте: с https, с нужным доменом и без лишних редирект-цепочек. Это базовая вещь, но именно она часто создаёт дубли на уровне всего сайта.
Если в wp-config.php или настройках хостинга есть смешение адресов, сначала исправьте его, а уже потом трогайте индексацию. Иначе поисковик будет видеть несколько равноправных версий страницы.
Шаг 2. Закройте от индексации архивы, которые не дают ценности
Если на сайте нет смысла в авторских архивах или тегах, их лучше не индексировать. Это не значит удалять страницы физически — достаточно убрать их из поиска и оставить доступными для пользователей, если они нужны навигационно.
Пример для темы или мини-плагина, который добавляет noindex на архивы тегов и авторов:
<?php
add_action('wp_head', function () {
if (is_tag() || is_author()) {
echo '<meta name="robots" content="noindex,follow" />' . "\n";
}
}, 1);Этот вариант рабочий, если у вас нет SEO-плагина, который уже управляет robots meta. Если плагин есть, не дублируйте логику в коде — получите конфликт сигналов.
Шаг 3. Уберите параметры, которые создают мусорные URL
Частая история — ссылки с UTM-метками, ?replytocom= и другими параметрами попадают в индекс как отдельные страницы. Для комментариев и шаринга это особенно заметно на старых сайтах.
Если вы формируете внутренние ссылки вручную, не добавляйте параметры без необходимости. Для внешних кампаний это нормально, но внутри сайта лучше использовать чистые URL. А для канонического адреса можно явно указать основную версию страницы:
<?php
add_filter('get_canonical_url', function ($canonical, $post) {
if ($post instanceof WP_Post) {
return get_permalink($post);
}
return $canonical;
}, 10, 2);Фильтр get_canonical_url существует в WordPress, но применять его стоит аккуратно. Если SEO-плагин уже генерирует canonical, не ломайте его логику без причины.
Шаг 4. Проверьте архивы пагинации
Пагинация сама по себе не ошибка. Ошибка — когда в индекс попадают страницы, которые не нужны для поиска. Например, второй и третий экран архива тегов на маленьком сайте часто не несут самостоятельной ценности.
Если решите закрыть такие страницы, делайте это точечно. Не трогайте пагинацию на разделах, где она действительно помогает пользователю находить материалы.
Шаг 5. Уберите дубли на уровне шаблона
Иногда проблема не в индексации, а в том, что одна и та же запись выводится в нескольких шаблонах с одинаковым текстом: на главной, в архиве категории, в блоке похожих материалов и в отдельной странице автора. Тогда поисковик получает слишком много одинаковых сигналов.
Здесь помогает не запрет, а переработка шаблона: сократите повторяющиеся анонсы, добавьте уникальные описания для архивов и не выводите полный текст записи в нескольких местах.
Когда лучше решать через плагин, а когда через код
Если у вас типовой сайт и нужно быстро закрыть теги, авторов и служебные страницы, удобнее использовать SEO-плагин или плагин для чистки дублей. Если же проблема точечная и касается только нескольких шаблонов, код в теме или небольшом mu-plugin обычно надёжнее.
Для ориентира:
- Плагин — быстрее внедрить, проще поддерживать редактору, но выше риск конфликтов настроек.
- Код — точнее и легче контролировать, но нужен доступ к теме или отдельному плагину.
- Компромисс — использовать плагин для базовых правил, а кодом закрывать редкие исключения.
Если нужен инструмент для чистки дублей, служебных страниц и мелких SEO-настроек, можно посмотреть Clearfy Pro: https://wpshop.ru/plugins/clearfy. Но даже с плагином стоит понимать, какие именно URL вы закрываете и почему.
Как проверить, что решение сработало
После изменений не ограничивайтесь визуальной проверкой. Нужно убедиться, что поисковик видит правильные сигналы.
- Откройте проблемный URL и проверьте исходный код страницы.
- Убедитесь, что у нужной страницы есть корректный
canonical. - Проверьте, что закрытые архивы отдают
noindex, если вы это настраивали. - Посмотрите статус ответа: служебные страницы не должны случайно отдавать
200 OK, если вы рассчитывали на редирект или404. - В Search Console отправьте на переобход несколько основных URL и сравните, какие версии попадают в индекс через несколько дней или недель.
Для быстрой локальной проверки можно использовать:
curl -s https://example.com/tag/sample/ | grep -iE 'canonical|robots'Если на странице есть и canonical, и robots meta, проверьте, что они не противоречат друг другу. Например, noindex на странице, которая должна ранжироваться, — это уже ошибка настройки, а не решение проблемы дублей.
Частые ошибки и как их исправить
Ставят noindex на всё подряд
Так часто делают, когда хотят быстро «почистить индекс». В итоге исчезают полезные категории, архивы и страницы, которые реально приводят трафик. Исправление простое: сначала составьте список URL-типов, которые должны остаться в поиске, и только потом закрывайте остальное.
Отключают архивы, но оставляют внутренние ссылки на них
Если архив закрыт от индексации, но на него продолжают вести десятки ссылок из меню и блоков, поисковик всё равно будет тратить на него обход. Лучше убрать лишние ссылки или заменить их на более полезные посадочные страницы.
Путают canonical и redirect
Canonical подсказывает поисковику основную версию, но не запрещает доступ к дублю. Редирект же меняет адрес для пользователя и бота. Если дубль не должен существовать как отдельная страница, нужен редирект, а не только canonical.
Дублируют настройки в плагине и в теме
Например, SEO-плагин уже ставит canonical, а в теме добавлен свой wp_head с тем же тегом. В результате поисковик получает два разных сигнала. Исправление — оставить один источник правды.
Не проверяют пагинацию и архивы после обновления темы
После смены темы или обновления шаблона часто меняется разметка архивов, и старые правила перестают работать. Это особенно заметно, если разработчик темы добавил собственные блоки и новые шаблонные части.
Практические советы по безопасности и производительности
Любые изменения в индексации лучше вносить через дочернюю тему или отдельный mu-plugin, а не править ядро темы напрямую. Тогда обновление не сотрёт ваши настройки.
Если добавляете код, держите его минимальным: один фильтр, одна задача. Не смешивайте в одном файле и robots meta, и редиректы, и генерацию canonical. Так проще отлаживать и откатывать изменения.
Перед массовой правкой URL сделайте резервную копию базы и файлов. Это не формальность: иногда после изменения правил индексации всплывают старые редиректы, которые были незаметны месяцами.
Если сайт большой, не меняйте всё за один заход. Сначала закройте один тип дублей, затем проверьте Search Console и только после этого переходите к следующему. Так проще понять, что именно сработало, а что создало побочный эффект.