Дубли в WordPress обычно появляются не из-за одной ошибки, а из-за набора мелких настроек: архивы тегов, страницы авторов, параметры в URL, пагинация, версии с www и без него, HTTP и HTTPS, а иногда и отдельные страницы плагинов. В итоге поисковик видит несколько адресов с одинаковым или почти одинаковым содержимым, а сайт теряет краулинговый бюджет и получает размытые сигналы по каноническому URL.
Ниже — рабочая схема, которая помогает не просто «закрыть всё от индексации», а убрать именно технические дубли и оставить в поиске нужные страницы.
Как понять, что проблема именно в дублях
Сначала стоит отличить дубли от обычной просадки трафика. Для этого смотрят не на позиции в целом, а на конкретные признаки в Search Console, логах и исходном коде страниц.
Что проверить в первую очередь
- В Search Console есть несколько URL одной и той же страницы, но с разными параметрами.
- В индексе одновременно присутствуют версии с
httpиhttps, сwwwи без него. - У записей, рубрик и меток совпадает текст, а заголовки и сниппеты почти не отличаются.
- На страницах пагинации и архивов нет явного канонического URL, либо он ведет не туда, куда ожидается.
- В выдаче всплывают служебные страницы: поиск по сайту, вложения медиафайлов, страницы автора без контента.
Если у вас есть доступ к серверным логам, полезно посмотреть, какие URL бот запрашивает чаще всего. Часто именно там видно, что робот ходит по параметрам сортировки, внутреннему поиску или страницам, которые вообще не должны индексироваться.
Какие дубли в WordPress встречаются чаще всего
Не все дубли одинаково опасны. Одни можно закрыть от индексации, другие лучше склеить через rel=canonical, а третьи — вообще убрать на уровне шаблона или настроек.
| Источник дубля | Что делать | Компромисс |
|---|---|---|
| Параметры в URL | Оставить канонический адрес без параметров | Нужно проверить, не ломаются ли фильтры и сортировки |
| Архивы тегов и авторов | Закрыть от индексации или удалить, если они не несут пользы | Может снизиться глубина внутренней перелинковки |
| Вложения медиафайлов | Редиректить на файл или родительскую запись | Нужно аккуратно настроить, чтобы не получить цепочки редиректов |
| Страницы пагинации | Оставить доступными для обхода, но контролировать каноникал | Не всегда стоит закрывать их полностью |
Пошаговое решение: от диагностики к исправлению
Шаг 1. Найдите источник дубля
Начните с одного конкретного URL и проверьте, откуда у него появляется вторая версия. Для этого удобно смотреть исходный код страницы и заголовки ответа.
curl -I https://example.com/sample-page/В ответе проверьте:
- код ответа должен быть
200для основной страницы; - должен быть один понятный
canonical; - не должно быть неожиданных редиректов между версиями URL;
- если страница закрыта от индексации, это должно быть сделано осознанно, а не случайно через шаблон.
Шаг 2. Приведите сайт к одной основной версии
Если сайт доступен по нескольким вариантам домена или протокола, сначала фиксируют единую версию в настройках WordPress и на уровне сервера. WordPress сам по себе не решает все случаи, особенно если на сервере есть отдельные правила для www и HTTPS.
Проверьте, что в Настройки → Общие адрес сайта и адрес WordPress совпадают с основной версией. Если используется Nginx или Apache, редирект должен быть один, без цепочки из двух-трех переходов.
Шаг 3. Уберите служебные архивы из индекса
Если у вас нет задачи продвигать архивы авторов, меток или дат, их лучше не оставлять как полноценные посадочные страницы. Самый безопасный вариант — закрыть их от индексации, но не ломать обход сайта.
Если используете SEO-плагин, проверьте настройки архивов отдельно. Если работаете кодом, можно добавить noindex для конкретных архивов через wp_robots:
add_filter('wp_robots', function ($robots) {
if (is_tag() || is_author() || is_date()) {
$robots['noindex'] = true;
$robots['follow'] = true;
}
return $robots;
});Этот вариант не удаляет страницу из сайта и не мешает ботам переходить по ссылкам, но сигнализирует, что индексировать архив не нужно.
Шаг 4. Проверьте канонические ссылки
Если на странице есть параметры, пагинация или похожие версии контента, канонический URL должен указывать на основную страницу. В WordPress это часто делает SEO-плагин, но после кастомных правок шаблона или фильтров каноникал легко ломается.
Проверка простая: откройте исходный код и найдите <link rel="canonical" ...>. Если там не та версия URL, которую вы считаете основной, сначала ищите конфликт в плагинах, потом в теме.
Шаг 5. Уберите дубли у вложений и медиафайлов
Страницы вложений — типичный источник мусора в индексе. Если у изображения есть отдельная страница-обертка без полезного текста, чаще всего она не нужна. На практике лучше либо редиректить вложение на родительскую запись, либо на сам файл, если это оправдано структурой сайта.
Для редиректа вложений на родительскую запись можно использовать такой код:
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;
}
}
});Если родительской записи нет, лучше не делать редирект вслепую на главную. Это выглядит как мягкая ошибка и может ухудшить поведение в индексе.
Когда лучше править кодом, а когда — настройками
Если дубль создается шаблоном темы или логикой плагина, настройка в админке не всегда помогает. В таких случаях полезно сравнить подходы.
| Подход | Когда подходит | Минус |
|---|---|---|
| SEO-плагин | Нужно быстро закрыть архивы, теги, авторов, пагинацию | Не всегда видно, какой фильтр реально сработал |
| Код в теме или мини-плагине | Нужна точечная логика для конкретного типа записей | Требует контроля после обновлений |
| Настройки сервера | Надо убрать дубли домена, протокола, слэшей | Ошибки здесь ломают весь сайт, если не тестировать |
Если нужен более широкий набор инструментов для чистки дублей и технического SEO, на практике часто используют Clearfy Pro: https://wpshop.ru/plugins/clearfy. Но даже с плагином важно понимать, какие именно URL он меняет, а какие — только скрывает от индексации.
Проверка результата после внедрения
После правок не стоит сразу считать задачу закрытой. Сначала нужно убедиться, что основной URL отвечает корректно, а дубли действительно исчезли или перестали индексироваться.
Что проверить вручную
- Основная версия страницы открывается без лишних редиректов.
- У страницы один canonical, и он указывает на нужный адрес.
- Архивы, которые вы закрывали, отдают
noindexили не попадают в индекс. - Вложения больше не создают отдельные страницы без смысла.
- Внутренние ссылки не ведут на параметры, если они не нужны для индексации.
Дополнительно можно прогнать несколько URL через curl -I и посмотреть заголовки ответа. Для страниц, которые вы закрывали от индексации, полезно проверить, не остался ли старый кэш в CDN или на сервере.
Что смотреть в Search Console
Не ждите мгновенного исчезновения всех дублей. После исправлений поисковику нужно переобойти страницы. В отчете по индексированию обычно видно, что часть URL начинает помечаться как каноническая, а часть — как исключенная по причине noindex или дублирования.
Если через несколько обходов ситуация не меняется, значит проблема не в индексации, а в том, что сайт по-прежнему генерирует дубли на уровне шаблона или маршрутизации.
Частые ошибки и как их исправить
Закрыли от индексации слишком много
Иногда вместе с тегами и авторами закрывают еще и полезные рубрики, пагинацию или страницы фильтров, которые реально приводят трафик. Это ошибка, потому что поисковик теряет часть структуры сайта. Исправление простое: верните индексируемость только тем архивам, которые дают уникальную ценность.
Поставили редирект на главную вместо релевантной страницы
Для вложений, старых URL и служебных страниц редирект на главную выглядит как быстрый способ «почистить» сайт, но на практике это плохой сигнал. Лучше вести на ближайшую релевантную страницу или отдавать 404/410 там, где это оправдано.
Не учли кэш и CDN
После правок старые версии страниц могут еще какое-то время отдаваться из кэша. Если проверять только браузер, легко решить, что ничего не изменилось. Сначала очистите кэш плагина, потом серверный кэш и CDN, если он есть.
Сломали canonical в шаблоне
Иногда разработчик добавляет собственный rel=canonical в тему, а SEO-плагин уже выводит свой. В результате в коде две канонические ссылки, и поисковик выбирает не ту, которую вы ожидали. Нужно оставить только один источник канонического URL.
Практические советы по безопасности и производительности
Чистка дублей влияет не только на SEO, но и на нагрузку. Чем меньше лишних архивов и параметров, тем меньше бесполезных обходов ботом и запросов к базе.
- Не добавляйте массовые редиректы через тяжелые плагины, если задача решается серверным правилом или небольшим хуком.
- Проверяйте изменения на staging-копии, особенно если трогаете
.htaccessили правила Nginx. - Не закрывайте от индексации страницы, которые используются во внутренней навигации и дают трафик из поиска.
- Если меняете структуру URL, заранее составьте карту редиректов, чтобы не потерять старые ссылки.
Если нужен более широкий контроль над техническими дублями, мета-тегами и чисткой служебных страниц, можно смотреть в сторону инструментов, которые позволяют управлять этим централизованно, но без магии. В WordPress почти всегда выигрывает не «одна кнопка», а понятная схема: найти источник дубля, решить, нужен ли он в индексе, и только потом закрывать или склеивать.