Дубли в WordPress редко выглядят как одна очевидная проблема. Чаще это набор одинаковых страниц, которые появляются из-за пагинации, архивов, параметров в URL, тегов, авторских страниц, версий для печати или неправильной настройки плагинов SEO. В итоге поисковик видит несколько адресов с одним и тем же или почти одинаковым содержимым, а сайт теряет управляемость индексацией.
Ниже — рабочий сценарий: как сначала найти источник дублей, потом убрать лишнее без риска сломать сайт, и как проверить, что после правок поисковый робот видит именно те страницы, которые вы хотите оставить в индексе.
Как понять, что на сайте есть дубли
Самый частый признак — в Search Console начинают появляться похожие страницы с разными URL, а в отчётах по индексированию растёт число адресов с пометками вроде «другая страница с каноническим тегом» или «сканировано, но не проиндексировано». На самом сайте это может проявляться как одинаковые заголовки в архивах, повторяющиеся мета-описания и страницы с параметрами ?replytocom=, ?amp, ?utm_ или сортировкой.
Что проверить в первую очередь
- архивы категорий, тегов и авторов;
- страницы пагинации вида
/page/2/; - URL с параметрами фильтрации и сортировки;
- версии с и без слеша на конце, если сервер настроен неаккуратно;
- дубли главной страницы через
/home/,/index.phpили отдельную статическую страницу; - страницы вложений медиафайлов, если они индексируются отдельно;
- дубли от плагинов: AMP, кэш, мультиязычность, поиск по сайту, комментарии.
Если у вас есть доступ к консоли поиска, начните с отчёта по страницам и выгрузите список URL, которые поисковик считает похожими. Это быстрее, чем искать проблему вручную по всему сайту.
Диагностика: откуда именно берутся дубли
Перед удалением важно понять тип дубля. Одно дело — технические копии, которые можно закрыть от индексации. Другое — реальные страницы с полезным контентом, которые нужно объединить через canonical или 301-редирект.
| Источник | Что делать | Риск |
|---|---|---|
| Архивы тегов и авторов | Закрыть от индексации или оставить только при реальной пользе | Потеря внутренней перелинковки, если отключить без анализа |
| Параметры URL | Нормализовать canonical, при необходимости редиректить | Можно сломать фильтры и сортировку |
| Страницы вложений | Редиректить на файл или родительскую запись | Потеря трафика на медиа-страницы, если они уже индексируются |
| Пагинация | Оставить, но не плодить лишние копии | Неправильный canonical может убрать нужные страницы из индекса |
Для быстрой проверки откройте исходный код страницы и найдите <link rel="canonical". Если canonical указывает не на ту страницу, которую вы считаете основной, поисковик будет ориентироваться именно на него.
Пошаговое решение: как убрать дубли безопасно
Шаг 1. Составьте список типов дублей
Не пытайтесь «чистить всё подряд». Сначала разделите URL на группы: что должно индексироваться, что должно быть закрыто, а что нужно объединить редиректом. Это особенно важно для новостных и контентных сайтов, где архивы категорий могут быть полезны, а теги — нет.
- Оставить в индексе: основные записи, важные категории, ключевые посадочные страницы.
- Закрыть от индексации: служебные архивы, страницы поиска, пустые таксономии.
- Склеить: дубли с параметрами, старые адреса, вложения без смысла как отдельные страницы.
Шаг 2. Настройте canonical для повторяющихся страниц
Если дубли нужны для навигации, но не должны конкурировать в поиске, canonical — самый безопасный вариант. В WordPress это часто уже делает SEO-плагин, но иногда шаблон или кастомный код его ломают.
Пример: если на сайте есть страница с параметром сортировки, можно принудительно указать canonical на чистый URL:
<?php
add_action('wp_head', function () {
if (is_page('catalog') && isset($_GET['sort'])) {
$canonical = get_permalink();
echo '<link rel="canonical" href="' . esc_url($canonical) . '" />' . "\n";
}
}, 1);Этот подход не заменяет полноценную настройку SEO-плагина, но помогает там, где тема или кастомные шаблоны выводят неправильный canonical.
Шаг 3. Уберите технические дубли через редирект
Если у страницы есть один правильный адрес, а остальные версии не нужны, ставьте 301-редирект. Это касается, например, старых URL после смены структуры, страниц вложений и некоторых параметров, которые не должны жить отдельно.
<?php
add_action('template_redirect', function () {
if (is_attachment()) {
$parent = wp_get_post_parent_id(get_the_ID());
if ($parent) {
wp_redirect(get_permalink($parent), 301);
exit;
}
wp_redirect(home_url('/'), 301);
exit;
}
});Важно: не делайте редирект на главную для всех случаев без разбора. Если вложение реально приносит трафик или используется как отдельная страница, сначала проверьте статистику и ссылки.
Шаг 4. Закройте от индексации архивы, которые не несут пользы
Если у вас десятки пустых тегов, авторские архивы без контента или служебные страницы поиска, их лучше не показывать поисковику. Это можно сделать через SEO-плагин или кодом, если вы контролируете шаблон.
<?php
add_filter('wp_robots', function ($robots) {
if (is_search() || is_author() || is_tag()) {
$robots['noindex'] = true;
$robots['follow'] = true;
}
return $robots;
});Такой вариант не удаляет страницы физически, а только меняет поведение робота. Для большинства сайтов это безопаснее, чем массово удалять архивы и терять внутренние переходы.
Шаг 5. Проверьте sitemap и внутренние ссылки
После удаления дублей карта сайта должна содержать только канонические URL. Если в sitemap остались старые адреса, поисковик будет снова их обходить. Также проверьте меню, хлебные крошки, блоки похожих материалов и ссылки в контенте: они должны вести на основной URL, а не на копию.
Как проверить, что решение сработало
Проверка нужна не только в браузере. Смотрите на поведение поискового робота и на сам HTML.
- Откройте проблемный URL и убедитесь, что он отдаёт 301 или имеет правильный canonical.
- Проверьте, что в исходном коде нет нескольких conflicting canonical-тегов.
- Сравните sitemap до и после: лишние URL должны исчезнуть.
- В Search Console отправьте на проверку основные страницы и посмотрите, как они определяются после переобхода.
- Проверьте серверные ответы через
curl -I https://example.com/old-url/или аналогичный инструмент.
Если страница закрыта от индексации, но всё ещё есть в sitemap, это ошибка настройки. Если canonical указывает на одну страницу, а редирект ведёт на другую, поисковик может долго переосмысливать структуру сайта.
Частые ошибки и как их исправить
Ставят noindex на всё подряд
Так часто ломают трафик. Закрывать нужно только те разделы, которые действительно не должны ранжироваться. Категории с полезным контентом, наоборот, могут быть точками входа из поиска.
Редиректят все дубли на главную
Это плохая практика. Пользователь и поисковик теряют смысловую связь между старым и новым адресом. Если есть релевантная страница-замена, редирект должен вести именно туда.
Оставляют в sitemap страницы с параметрами
Карта сайта должна быть чистой. Параметрические URL в sitemap — почти всегда ошибка, если только это не осознанная часть структуры.
Не проверяют тему и плагины
Иногда дубли создаёт не контент, а шаблон: отдельные версии заголовков, AMP-страницы, страницы автора, вывод архивов в нескольких форматах. После обновления темы или SEO-плагина это стоит перепроверять.
Практические советы по безопасности и производительности
Если вы решаете проблему кодом, не вносите правки прямо в тему. Используйте дочернюю тему или небольшой mu-plugin, чтобы изменения не потерялись при обновлении. Перед массовыми редиректами сделайте резервную копию базы и списка URL.
Для сайтов с большим количеством дублей полезно сначала отключить генерацию лишних архивов и только потом чистить индекс. Если нужен более системный контроль дублей, можно посмотреть в сторону Clearfy Pro: у него есть инструменты для отключения лишних архивов, дублей и части служебных страниц. Это не заменяет анализ, но помогает не держать всё на ручных правках: Clearfy Pro.
Главное правило простое: сначала определите, какой URL должен быть основным, потом склейте или закройте остальные. Если начать с удаления, а не с диагностики, можно потерять страницы, которые уже приносят трафик.