Дубли в WordPress редко появляются из одной причины. Обычно это смесь архивов, пагинации, параметров в URL, тегов, авторских страниц и служебных страниц темы или плагинов. В итоге поисковик видит несколько адресов с почти одинаковым контентом и начинает выбирать канонический вариант не так, как вы ожидаете.
Ниже — рабочая схема, которая помогает не «лечить SEO в целом», а точечно убрать повторяющиеся страницы там, где они реально возникают.
Где искать дубли в первую очередь
Начинать лучше не с правки кода, а с диагностики. Иначе легко закрыть от индексации полезные страницы или, наоборот, оставить источник дублей нетронутым.
Типовые источники дублей в WordPress
- страницы пагинации архивов:
/page/2/,/page/3/; - архивы рубрик, меток и авторов, если они дублируют друг друга по заголовкам и сниппетам;
- страницы с GET-параметрами: сортировка, фильтры, поиск, UTM;
- страницы вложений медиафайлов;
- служебные архивы дат, если они не нужны в выдаче;
- дубликаты из-за неправильного
rel=canonicalили его отсутствия.
Если сайт небольшой, часть дублей можно увидеть вручную. Для более живого проекта удобнее пройтись по индексации в Google Search Console и по списку URL из краулера вроде Screaming Frog или Sitebulb. Смотрите не только на статус ответа, но и на повторяющиеся title, description и H1.
Диагностика: как понять, что проблема именно в дублях
Есть три признака, которые обычно совпадают:
- в поиске всплывают не те URL, которые вы хотели бы видеть основными;
- одинаковые страницы доступны по разным адресам;
- в отчётах по индексации растёт число «Просканировано, но не проиндексировано» или похожих исключений.
Проверьте несколько URL вручную. Например, одну запись, её архив рубрики, страницу пагинации и вариант с параметром сортировки. Если контент почти одинаковый, а адреса разные — это уже кандидат на канонизацию или закрытие от индексации.
Полезно сравнить HTML-код страниц. Иногда проблема не в контенте, а в теме: она выводит одинаковые блоки, одинаковые мета-теги и одинаковые хлебные крошки на разных типах архивов. Тогда поисковик видит слишком мало различий между страницами.
Что делать: пошаговая схема
1. Оставьте индексируемыми только те архивы, которые реально нужны
Если рубрики используются как навигация и имеют уникальную структуру, их можно оставить открытыми. Если же у вас десятки меток, которые дублируют рубрики, метки лучше закрыть от индексации или удалить совсем.
Для служебных архивов и страниц вложений часто достаточно убрать их из индекса и настроить редирект на родительскую запись или медиафайл. Это уменьшает шум и не ломает навигацию.
2. Уберите индексацию страниц поиска и параметров
Страницы внутреннего поиска почти всегда не нужны в поисковой выдаче. То же касается URL с параметрами сортировки и фильтрации, если они создают множество почти одинаковых страниц.
Если фильтры нужны пользователю, но не нужны поисковику, обычно оставляют их доступными для обхода, но закрывают от индексации через noindex или канонический URL на основную версию страницы. Выбор зависит от того, как устроен шаблон и плагин фильтрации.
3. Настройте canonical на основной адрес
Для пагинации и параметров canonical часто решает проблему без грубого закрытия страниц. Но canonical должен указывать на осмысленный основной URL, а не на случайную страницу архива.
Например, если у вас есть сортировка по цене, канонический URL обычно должен вести на чистую категорию без параметра сортировки. Если это пагинация, каждая страница пагинации должна иметь свой собственный canonical, а не ссылаться на первую страницу архива.
4. Уберите лишние архивы из темы и плагинов
Иногда дубли создаёт не SEO-плагин, а сама тема: выводит архивы автора, даты, меток и вложений без необходимости. Тогда лучше отключить именно источник, а не маскировать последствия.
Если вы работаете с кодом темы, проверьте, не генерируются ли лишние таксономии и архивы в меню, хлебных крошках и sitemap. Часто проблема всплывает после установки нового шаблона или миграции сайта.
Пример: закрыть служебные архивы и страницы вложений
Если вы не хотите индексировать авторов, даты и вложения, это можно сделать через фильтры SEO-плагина. Ниже пример для robots и canonical на уровне темы или небольшого mu-plugin. Код нужно адаптировать под вашу схему, но логика рабочая.
<?php
add_filter('wp_robots', function ($robots) {
if (is_author() || is_date() || is_attachment()) {
$robots['noindex'] = true;
$robots['nofollow'] = true;
}
return $robots;
});
add_filter('get_canonical_url', function ($canonical) {
if (is_attachment()) {
$parent_id = wp_get_post_parent_id(get_the_ID());
if ($parent_id) {
return get_permalink($parent_id);
}
}
return $canonical;
});Этот вариант не заменяет настройку SEO-плагина, но помогает, если часть дублей идёт из шаблона или кастомной логики. После внедрения обязательно проверьте исходный код страницы и убедитесь, что теги реально выводятся.
Пример: убрать индексацию страниц поиска и параметров
Для страниц поиска можно задать noindex и не пускать их в sitemap. Для параметров лучше не пытаться «угадывать» все варианты вручную, а решить вопрос на уровне шаблона или плагина фильтрации.
<?php
add_filter('wp_robots', function ($robots) {
if (is_search()) {
$robots['noindex'] = true;
$robots['nofollow'] = true;
}
return $robots;
});
add_filter('rank_math/frontend/robots', function ($robots) {
if (is_search()) {
$robots['index'] = 'noindex';
$robots['follow'] = 'nofollow';
}
return $robots;
});Второй фильтр приведён как пример для Rank Math, первый — более общий. Используйте только тот вариант, который соответствует вашему стеку. Не вешайте оба без понимания, какой SEO-плагин активен: можно получить конфликт правил.
Когда лучше решить задачу плагином, а когда кодом
| Подход | Когда подходит | Минус |
|---|---|---|
| SEO-плагин | Нужно быстро закрыть архивы, метки, поиск, вложения | Не всегда удобно для нестандартных шаблонов и параметров |
| Код в теме или mu-plugin | Есть кастомные типы записей, фильтры, особая логика URL | Нужно тестировать после обновлений |
| Комбинированный вариант | Часть дублей типовая, часть создаёт тема или плагин | Требует аккуратной настройки, чтобы не задвоить правила |
Если у вас уже стоит плагин для SEO и чистки сайта, например Clearfy Pro, часть задач можно закрыть без кода: убрать архивы, отключить лишние страницы и сократить число дублей. Но даже в этом случае стоит проверить, как плагин влияет на canonical и sitemap, особенно после обновлений темы.
Если нужен конкретный сценарий, а не общая чистка, код часто надёжнее. Он не зависит от интерфейса плагина и проще для ревью в git.
Как проверить, что решение сработало
Проверка должна быть не формальной, а по факту.
- Откройте страницу в браузере и посмотрите исходный код: есть ли
noindex, правильныйcanonical, нет ли лишних архивов в ссылках. - Проверьте несколько URL с параметрами: они должны вести себя предсказуемо и не плодить новые индексируемые адреса.
- Запустите повторный краул и сравните число дублей до и после.
- В Google Search Console посмотрите, уменьшилось ли количество страниц, которые поисковик выбирает как альтернативные канонические.
Если вы закрывали страницы вложений, проверьте, не сломались ли старые ссылки из материалов и медиатеки. Иногда нужен 301-редирект, а не просто noindex.
Частые ошибки и как их исправить
Закрыли от индексации всё подряд
Так бывает, когда в noindex попадают и полезные рубрики, и служебные архивы. Исправление простое: разделите правила по типам страниц и проверьте, какие архивы реально приносят трафик.
Canonical указывает на неправильную страницу
Частая ошибка после кастомизации шаблона. Например, все страницы пагинации ссылаются на первую страницу архива. Для пагинации это не всегда корректно. Проверьте шаблон и логику генерации canonical отдельно для каждого типа URL.
Параметры URL продолжают индексироваться
Если фильтр создаёт бесконечное число комбинаций, одного noindex может быть мало. Иногда нужно отключить индексацию параметризованных URL на уровне плагина фильтрации или переписать логику формирования ссылок.
Удалили страницы вложений, но не настроили редирект
В результате старые URL дают 404, а это уже другая проблема. Если вложения были в индексе или в ссылках из контента, лучше сделать 301 на родительскую запись или на сам файл, если это оправдано.
Практические советы по безопасности и производительности
Чистка дублей полезна не только для SEO. Чем меньше мусорных URL, тем меньше лишней работы у краулеров, логов и кеша. Это особенно заметно на сайтах с большим архивом материалов и активной фильтрацией.
- не храните в индексе страницы поиска и технические архивы без необходимости;
- не плодите метки ради внутренней перелинковки, если они не несут смысла;
- проверяйте, не создаёт ли плагин фильтрации десятки URL на один и тот же набор товаров или статей;
- после правок очищайте кеш страницы и, если используется, объектный кеш;
- не меняйте правила индексации без резервной копии и списка затронутых URL.
Если задача уже расползлась по теме, плагинам и архивам, проще сначала собрать карту URL, а потом править по списку. Это быстрее, чем ловить дубли по одному после каждого обновления.
В ряде проектов помогает связка SEO-плагина и инструмента для чистки дублей. Если нужен именно прикладной набор для WordPress, можно посмотреть Clearfy Pro: https://wpshop.ru/plugins/clearfy. Но ставить его стоит не вместо диагностики, а после того, как вы поняли, какие именно URL создают проблему.