Дубли в WordPress обычно появляются не из-за одной ошибки, а из-за набора мелочей: одинаковые записи доступны по нескольким адресам, архивы индексируются вместе с основным контентом, а пагинация и параметры URL создают новые версии той же страницы. В результате поисковик видит несколько почти одинаковых документов и выбирает не тот, который вы хотели бы продвигать.
Ниже разберём практический сценарий: как быстро найти дубли, что именно закрывать от индексации, где ставить редиректы и как проверить, что после правок сайт не потерял нужные страницы из поиска.
Как понять, что проблема именно в дублях
Симптомы обычно заметны в Search Console, логах или при ручной проверке. Если одна и та же статья открывается по нескольким адресам, а в индексе всплывают версии с /page/2/, ?replytocom=, ?utm_ или с разными вариантами слеша, это уже повод разбираться.
Что проверить в первую очередь
- одинаковый ли контент доступен по
httpиhttps; - есть ли версии с
wwwи безwww; - не индексируются ли архивы категорий, тегов, авторов и дат без необходимости;
- не создают ли плагины фильтров, сортировки или поиска отдельные URL с тем же контентом;
- не открывается ли одна запись по нескольким слагам после смены адреса.
Если у вас есть доступ к Google Search Console, откройте отчёт по страницам и посмотрите, какие URL считаются каноническими, а какие — дубликатами. Это не всегда ошибка, но часто показывает, где WordPress отдаёт лишние версии.
Диагностика дублей: где искать источник
Начинать лучше не с плагинов, а с структуры сайта. WordPress сам по себе создаёт архивы, вложения медиафайлов, страницы пагинации и служебные URL. Плагины SEO, кэширования и фильтры контента добавляют свои варианты.
Быстрая проверка вручную
Откройте одну и ту же страницу в нескольких вариантах и сравните ответ сервера и канонический URL в HTML. Для этого достаточно посмотреть исходный код и заголовки ответа.
curl -I https://example.com/sample-post/В идеале вы должны видеть один основной адрес и 301-редирект со всех альтернативных вариантов. Если вместо редиректа страница отдаёт 200 OK на нескольких URL, поисковик может индексировать дубли.
Что часто создаёт дубли в WordPress
- архивы тегов, если теги используются без системы;
- архивы авторов на сайтах с одним автором;
- страницы вложений медиафайлов;
- страницы пагинации архивов, если они не нужны для индексации;
- параметры сортировки, фильтрации и поиска;
- версии с UTM-метками, если они попадают в индекс;
- дубли из-за неправильного canonical в теме или плагине SEO.
Пошаговое решение: как убрать дубли без лишнего риска
Лучше идти по порядку: сначала нормализовать адреса, затем закрыть служебные архивы, потом настроить canonical и редиректы. Так вы не сломаете уже проиндексированные страницы.
Шаг 1. Приведите сайт к одному основному формату URL
Проверьте, что сайт открывается только в одной версии: https, с нужным вариантом домена и единым слешем в конце. Это делается на уровне сервера, а не через JavaScript или редиректы в шаблоне.
Если у вас Apache, базовая логика обычно строится на mod_rewrite. Пример ниже показывает только принцип: используйте его аккуратно и тестируйте на staging.
<IfModule mod_rewrite.c>
RewriteEngine On
RewriteCond %{HTTPS} !=on [OR]
RewriteCond %{HTTP_HOST} ^www\.example\.com$ [NC]
RewriteRule ^ https://example.com%{REQUEST_URI} [L,R=301]
</IfModule>На Nginx это делается через отдельный server block. Если у вас уже есть рабочая конфигурация, не дублируйте редиректы в нескольких местах сразу.
Шаг 2. Закройте от индексации ненужные архивы
Если сайт не использует архивы авторов или дат как посадочные страницы, их лучше отключить в SEO-плагине или через код. Для тегов решение зависит от структуры контента: на небольших сайтах теги часто создают больше дублей, чем пользы.
Ниже пример, как убрать архивы автора и даты из индексации через robots meta и canonical. Код не отключает сами страницы, а только помогает поисковику не считать их основными.
add_filter('wp_robots', function (array $robots) {
if (is_author() || is_date()) {
$robots['noindex'] = true;
$robots['follow'] = true;
}
return $robots;
});Если используете Yoast SEO, Rank Math или другой SEO-плагин, проверьте, не конфликтует ли этот код с их настройками. Дублировать логику в двух местах не стоит.
Шаг 3. Уберите страницы вложений
Страницы attachment часто индексируются отдельно, хотя полезного контента там нет. Обычно достаточно редиректить вложение на сам файл или на родительскую запись.
add_action('template_redirect', function () {
if (is_attachment()) {
$parent = wp_get_post_parent_id(get_queried_object_id());
if ($parent) {
wp_redirect(get_permalink($parent), 301);
exit;
}
}
});Если у вложения нет родителя, можно отправлять на главную медиафайлов или просто закрыть такие страницы от индексации через SEO-плагин. Главное — не оставлять их как отдельные индексируемые документы.
Шаг 4. Проверьте canonical на шаблонах и в SEO-плагине
Canonical должен указывать на единственную предпочтительную версию страницы. Если тема выводит свой canonical, а SEO-плагин — свой, получится конфликт. В исходном коде страницы должен быть один корректный тег rel="canonical".
Проверка простая: откройте исходник страницы и найдите canonical. Если он указывает на URL с параметрами, на архив вместо записи или на неверный домен, это надо исправлять в настройках темы или плагина.
Когда лучше использовать плагин, а когда код
Если задача типовая и сайт ведётся без кастомной логики, проще закрыть дубли в SEO-плагине. Если у вас нестандартные типы записей, фильтры или сложная структура архивов, код даёт больше контроля.
| Подход | Когда подходит | Минус |
|---|---|---|
| SEO-плагин | Стандартные архивы, canonical, noindex | Меньше гибкости при нестандартных сценариях |
| Код в теме или mu-plugin | Точные правила для авторов, дат, вложений, CPT | Нужно тестировать после обновлений |
| Редиректы на сервере | Нормализация домена, https, www | Ошибки конфигурации ломают весь сайт |
Для сайтов, где нужно одновременно чистить дубли, архивы и служебные страницы, иногда удобнее использовать набор настроек в Clearfy Pro: там есть инструменты для отключения лишнего мусора WordPress и управления SEO-элементами. Но даже с плагином логику canonical и редиректов всё равно стоит проверить вручную: автоматическая настройка не гарантирует, что она подходит именно вашему шаблону.
Проверка результата после внедрения
После правок не ограничивайтесь открытием пары страниц в браузере. Нужна проверка на уровне ответа сервера, HTML и индексации.
Минимальный чек-лист
- основной URL отдаёт
200 OK; - все альтернативные версии дают
301на канонический адрес; - в исходнике страницы один canonical;
- архивы, которые не нужны, закрыты от индексации;
- страницы вложений не висят отдельными документами;
- в Search Console уменьшается число дублей и альтернативных URL.
Для быстрой технической проверки можно использовать curl и смотреть заголовки:
curl -I https://example.com/?p=123
curl -I https://www.example.com/sample-post/
curl -I http://example.com/sample-post/Если все варианты ведут на один адрес, значит нормализация работает. Если где-то остаётся 200 или цепочка из нескольких редиректов, это нужно исправить до отправки сайта на переобход.
Частые ошибки и как их исправить
Редиректы настроены в двух местах
Частая ситуация: часть редиректов прописана в .htaccess, часть — в плагине, ещё часть — в настройках хостинга. В итоге появляются циклы, лишние переходы и нестабильный ответ сервера. Оставьте один источник правды для каждого типа редиректа.
Noindex поставили на нужные страницы
Иногда при массовой чистке закрывают от индексации не только архивы, но и важные категории или записи. Это происходит, когда правило написано слишком широко, например по шаблону is_archive() без уточнений. Проверяйте условия отдельно.
Canonical указывает не туда
Если после смены домена или структуры ссылок canonical остался старым, поисковик продолжит считать старый URL основным. Это особенно заметно после миграций. Проверьте, что canonical совпадает с текущим основным адресом и не содержит параметров.
Удалили страницы, но не поставили редирект
Если дубль уже был в индексе, простое удаление страницы без 301 может привести к 404 и потере веса ссылок. Для старых адресов лучше делать редирект на ближайший релевантный URL, а не на главную без разбора.
Практические советы по безопасности и производительности
Чистка дублей полезна не только для SEO. Чем меньше лишних архивов и параметров, тем меньше страниц обходят боты и тем проще кэшировать сайт. Это снижает нагрузку на сервер и уменьшает шанс, что служебные URL будут использоваться как точка входа для мусорного трафика.
- не оставляйте открытыми страницы вложений, если они не нужны;
- не индексируйте архивы, которые не дают ценности пользователю;
- не плодите параметры в URL без необходимости;
- проверяйте, как SEO-плагин работает после обновления темы;
- после массовых изменений очищайте кэш страницы и объектный кэш, если он есть.
Если у вас много служебных страниц и дублей из-за настроек темы, имеет смысл сначала навести порядок в структуре WordPress, а уже потом заниматься контентом. Иначе поисковик будет продолжать обходить лишние URL, даже если основной контент уже оптимизирован.