Дубли title и description в WordPress — как найти и убрать | Мастерская — статьи по WordPress и серверам | de-bor.ru

Частный web-мастер Денис Борисов
WordPress-сайтов

Дубли title и description в WordPress — как найти и убрать

WordPress: ошибки и фиксы · 2026-09-04 · 8 мин чтения
Яндекс Вебмастер показывает сотни дублей title и description. Это сигнал проверить, какие URL их генерируют и не создают ли они проблемы с обходом и индексированием. На одном магазине было 970 дублей title и 936 дублей description — после чистки фильтров, пагинации, тегов и sitemap осталось меньше 50 тех и других. Разбираем 4 типовые причины дублей и пошаговую чистку с проверкой.

Как понять, что дубли есть

Откройте Яндекс Вебмастер → Индексирование → Заголовки и описания. Там видны количество одинаковых title и description и группы страниц с одинаковыми значениями. При большом количестве дублей предупреждение также появляется в разделе Диагностика. В нашем кейсе было 970 дублей title в 60 группах и 936 дублей description в 50 группах. Самая большая группа — 614 URL с метками tag, order и code в адресе: это служебный мусор, а не контент.

Параллельно проверьте Google Search Console → Индексирование → Страницы: дубли часто совпадают с мусором, который Google просканировал и не взял в индекс. Само по себе количество дублей ничего не говорит о критичности: важно, какие URL дублируются, попадают ли они в поиск и создают ли лишнюю нагрузку на обход.

Важно
Не начинайте с удаления страниц. Сначала определите тип дубля: фильтр, пагинация, тег или мусор в sitemap. Удаление без переобхода и редиректов оставляет битые URL в индексе на месяцы.

4 причины дублей

1. Фасетные фильтры плодят сотни адресов

Фильтры по цене, цвету, размеру и производителю генерируют адреса вида ?filter=price-1000-5000 или /filter/color-red/. Каждый такой адрес отдает тот же листинг с тем же title — поисковик фиксирует дубль. На магазине фильтров было 136 адресов плюс сортировки и поиск — все с одинаковыми мета-тегами.

В WordPress то же самое делают фильтры WooCommerce и плагины faceted search: параметры ?filter_, ?min_price, ?orderby создают дубли карточек категорий. Отдельная беда — AJAX-фильтры, которые при прямом заходе отдают полную страницу.

2. Пагинация без self-canonical

Классика: страницы пагинации (/category/page/2/, /category/page/3/) либо вообще без canonical, либо с canonical на первую страницу. Если страницы пагинации не имеют корректного canonical, поисковику сложнее определить их назначение и взаимосвязь. Во втором — поисковик, скорее всего, исключит страницы 2+ из индекса как неосновные. Если ваша тема или плагин делает пагинацию через GET-параметр (например ?page=2), применяйте те же принципы к этим URL.

Рабочая схема: self-canonical для страниц 2, 3 и далее (rel="canonical" указывает на собственный URL страницы), а первая страница пагинации отдает 301 на чистый URL категории. Это заметно лучше, чем canonical всех страниц на первую, если страницы пагинации должны оставаться в поиске. В нашем кейсе пагинация шла через GET-параметр ?page=N (OpenCart): правка шаблонов категорий сделала 16 страниц снова доступными обходу.

3. Теги, поиск и служебные URL в индексе

Голые адреса вида ?tag=xxx без маршрута отдавали главную с кодом 200 — классический soft-404: страница вроде есть, а контента нет. Поисковик индексирует сотни таких «страниц» с одинаковым title главной. Сюда же — внутренний поиск ?s=, страницы сортировок и трекинговые параметры ?utm_.

4. Мусор в sitemap.xml

Sitemap содержал 825 URL вместо 270: каждый товар был прописан трижды (прямая ссылка, через категорию, через производителя), плюс категории с устаревшим префиксом. Поисковик получал подсказку индексировать дубли: sitemap помогает обнаруживать URL, но не гарантирует ни обход, ни индексацию. После чистки — один URL на товар и категории без лишнего префикса.

В WordPress за sitemap обычно отвечают Yoast SEO или Rank Math: проверьте, не включены ли там таксономии-пустышки, архивы авторов и типы записей, которых нет в меню. Лишний URL в sitemap сообщает поисковику, что вы считаете страницу основной, — это может способствовать дополнительному обходу таких URL.

Пошаговая чистка дублей

Порядок важен: сначала закрываем генерацию новых дублей, потом чистим sitemap, в конце — переобход в Вебмастере.

Шаг 1. Пагинация: self-canonical + 301 для /page/1/. Проверьте исходный код страниц /category/page/2/ и /category/page/3/: canonical должен указывать на саму страницу. В WordPress это настраивается в SEO-плагине, в кастомных темах — правится шаблон архива. URL первой страницы пагинации (/category/page/1/) должен отдавать 301 на чистый URL категории (/category/).

Шаг 2. Фильтры: noindex,follow — без Disallow для этих URL. Разделите стратегии: хотите noindex — URL доступен роботу, robots.txt его не блокирует. Если URL закрыт в robots.txt, робот не сможет зайти на страницу и прочитать ее noindex, поэтому такая директива не сработает. Хотите полностью запретить обход технического мусора — используйте Disallow, но тогда noindex там не сработает. Для фильтров нужен мета-тег robots на самих страницах. Рабочий вариант — условие в header.php темы:

<?php if (isset($_GET['filter']) || isset($_GET['orderby'])
    || isset($_GET['min_price'])) : ?>
<meta name="robots" content="noindex,follow">
<?php endif; ?>

В кейсе весь фильтр (136 адресов) закрыли именно через условие в шаблоне шапки — минус 161 дубль за один шаг. Проверьте исключения заранее: корзина и checkout тоже отдают динамические URL, их трогать не надо. Про механику кэша динамических страниц я писал в статье про ускорение WooCommerce.

Шаг 3. Теги и поиск: 404 для невалидных, noindex для остальных. Если ?tag=... не является валидным URL страницы тега, а сервер вместо этого отдает главную с кодом 200, такой URL нужно исправить: несуществующий адрес должен отдавать 404, а не копию главной. Проверяется curl:

curl -s -o /dev/null -w "%{http_code}" "https://example.ru/?tag=test123"
# должно быть 404, а не 200

Если внутренний поиск не должен индексироваться, его можно закрыть от обхода через robots.txt или использовать noindex на доступных роботу страницах — выбор зависит от задачи. Не тратить обход на внутренний поиск — логичная цель для Disallow.

Шаг 4. Clean-param для незначащих GET-параметров. Для значащих параметров задавайте обработку явно. Многие стандартные трекинговые параметры Яндекс умеет исключать из поиска автоматически, но при необходимости укажите их через Clean-param. Построчная запись ниже — вопрос читаемости, а не требование: несколько параметров можно перечислить одной директивой через &. Не используйте слишком широкие маски: они могут зацепить функциональные параметры и изменить обработку нужных URL:

User-agent: Yandex
Disallow: /*?s=
Clean-param: utm_source&utm_medium&utm_campaign&_openstat /
Clean-param: s /

Файл robots.txt на Beget и Timeweb правится через файл-менеджер панели или по FTP — файл изменяется сразу, перезапуск сервера для этого не требуется. Когда поисковый робот перечитает обновленный robots.txt — зависит от частоты его обхода.

Шаг 5. Почистите sitemap. Один URL на страницу: уберите дубли через категории/производителей, отключите пустые таксономии, приведите адреса к виду из меню (без устаревших префиксов). В кейсе чистка дала 825 → 270 URL. Про редиректы при смене адресов читайте в статье про перенос без потери SEO — механика 301 та же.

Шаг 6. Переобход и удаление в Вебмастере — одной партией. Сформируйте два списка: URL на переобход (приоритет — категории) и мусор на удаление. В кейсе вышло 179 на переобход и 89 на удаление. Отправьте один раз: повторно слать одни и те же URL каждый день нет смысла — это не ускоряет переобход. Изменения отражаются с задержкой от нескольких дней до нескольких недель. Неотправленные остатки (в кейсе 162 адреса) досылаются одной партией после первой волны.

Быстрая проверка
После шагов 1–2 откройте 5–10 URL фильтров и страниц пагинации: фильтры должны отдавать noindex, страницы пагинации — self-canonical. Это 10 минут в браузере вместо месяца ожидания.

Проверка результата

После переобхода с задержкой от нескольких дней до нескольких недель смотрите Диагностику Вебмастера: счетчики дублей должны упасть. В кейсе динамика была такой: старт 970/936 → после шагов 1–2 осталось 156 → после sitemap и пагинации — меньше 50/50. Каждый шаг проверялся live: curl на canonical, коды ответов фильтров, размер sitemap.

Дополнительно проверьте запросом site:example.ru inurl:filter — используйте site: как дополнительную быструю проверку, а не как точный отчет об индексировании: оператор может показывать неполную выборку. Тренд на исчезновение мусорных адресов из выдачи — хороший знак. Если через месяц счетчик стоит — ищите второй источник дублей: www-зеркало, http-версию или второй шаблон, отдающий те же страницы (в кейсе был дубль оригинал + modification-копия).

Когда чистка не сработает

Если дубли генерируются зеркалами (www/без www, http/https) — это отдельная задача со склейкой зеркал, а не фильтры. Если дубли идут из двух активных тем/модулей, отдающих один контент (как seo_url + seo_pro в кейсе), — патчить нужно оба, иначе правка видна только наполовину. Если сайт на JS-рендере без SSR — поисковик может видеть одинаковые заглушки вместо разных страниц, тут нужна серверная отдача мета-тегов.

И главное: изменения в индексировании отражаются с задержкой — от нескольких дней до нескольких недель. Не откатывайте правильные правки только потому, что счетчик еще не упал.

Сколько ждать падения дублей после чистки?
Задержка от нескольких дней до нескольких недель — это норма переобхода, а не ошибка в правках. Отправьте переобход и удаление одной партией и не трогайте настройки. Повторная отправка тех же URL каждый день переобход не ускоряет.
Достаточно ли закрыть фильтры в robots.txt?
Нет, и комбинировать их для одних URL нельзя. Disallow запрещает роботу заходить на страницу — тогда noindex он не увидит, и дубли останутся в индексе. Либо noindex на доступных роботу страницах фильтров, либо Disallow для полного запрета обхода мусора — выберите одно для каждого типа URL.
Canonical страниц пагинации — на первую или на себя?
На себя: страницы /page/2/, /page/3/ каноничны сами на себя, URL /category/page/1/ отдает 301 на чистый URL категории. Canonical всех страниц на первую — плохой вариант: поисковик может исключить страницы 2+ из индекса. Помните: canonical — подсказка для выбора основной страницы, итоговое решение принимает поисковик.
Clean-param писать маской или построчно?
Как удобно: построчно или одной директивой через & — требование только в явном списке параметров. Построчно читаемее и проще править. Слишком широкие маски рискованны: могут зацепить функциональные параметры и изменить обработку нужных URL.
Теги удалять или закрывать noindex?
Если ?tag=... — невалидный URL, а сервер отдает вместо него главную с кодом 200, исправьте: несуществующий адрес должен отдавать 404, а не копию главной, иначе это soft-404 и сотни дублей главной. Остальные страницы тегов — noindex,follow.
Надо ли чистить sitemap, если страницы уже закрыты?
Да. Sitemap должен содержать только URL страниц, которые вы рекомендуете поисковику обходить и индексировать. Лишние URL в sitemap (в кейсе 825 вместо 270) могут способствовать их обнаружению и дополнительному обходу, поэтому sitemap нужно поддерживать в актуальном состоянии. Один URL на страницу: sitemap помогает обнаружению, но не гарантирует индексацию.

Вебмастер показывает сотни дублей?

Проведу аудит дублей title и description — найду источники мусора, закрою фильтры и пагинацию, почищу sitemap и доведу счетчики до нормы.

Написать в Telegram Написать в MAX

Сопровождение и поддержка сайта

Сопровождение и поддержка сайта

Исправлю ошибки WordPress, восстановлю сайт.

от 5.400 ₽/мес

Подробнее
Техническая оптимизация

Техническая оптимизация

Ускорю сайт, настрою кэш, устраню узкие места.

7.200

Подробнее

Разрабатываю WordPress-сайты

Лендинги, многостраничные сайты, интернет-магазины на WooCommerce — всё на WordPress с удобной панелью управления.

Сайт под ключ: регистрация домена и хостинга, установка WordPress, настройка шаблона и модулей.

Поддерживаю WordPress-сайты

Обновление плагинов и тем, резервное копирование, мониторинг работоспособности — сайт работает без сбоев.

Оперативное исправление ошибок, создание новых разделов, доработка функционала и наполнение контентом.

Продвигаю WordPress-сайты

SEO-оптимизация, настройка Яндекс Метрики и Вебмастера, подключение Google Search Console.

Оптимизация позволяет «поднять» сайт в поисковых выдачах, увеличить целевой трафик и привлечь новых клиентов.

Чистка от вирусов WordPress

Если сайт взломали, появился подозрительный код или спам-рассылка — найду и удалю вредоносный код, закрою уязвимости и настрою защиту от повторного заражения.

После чистки проверю все файлы и плагины, обновлю WordPress до актуальной версии и настрою автоматическое резервное копирование.

Диагностика сайта

Проверю ваш сайт по ключевым параметрам и подготовлю отчёт с рекомендациями:

  • Скорость загрузки и производительность;
  • Безопасность и уязвимости;
  • SEO-состояние и индексация;
  • Мобильная адаптация;
  • Технические ошибки и код.
Заказать диагностику
Михайлова Анастасия

Денис МАСТЕР своего дела. Вёл целый проект, работали с ним на протяжении 4х месяцев. Отзывчивый, понимающий с полуслова специалист. Стоимость услуг радует, а качество работы приводит в восторг.

Денис спасибо Вам от лица нашей строительной компании и от всего нашего персонала.

Михайлова Анастасия

Игорь Караваев

Обратился к Денису для восстановления сайта на WordPress после сбоя. Сделал, как и обещал, за сутки — сайт снова работает без ошибок. Профессионал своего дела, доходчиво объясняет, вежлив и тактичен. Однозначно рекомендую!

Игорь Караваев

Яна Веркулич

Денис, спасибо огромное за работу)) Очень тепло вспоминаю Вас и все что Вы сделали для моей работы и моего сайта.

Денис Профессионал с большой буквы, решает любые вопросы, отличный специалист))

Рекомендую к сотрудничеству, еще раз спасибо)

Яна Веркулич

Бюро Переводов

Денис оперативно и грамотно справляется со всеми поставленными задачами. Внес правки на англоязычную и русскоязычную версии сайта, учел все пожелания. Будем обращаться еще!

Бюро Переводов

Анастасия Виричева

Денис мастер своего дела, рекомендую его как специалиста.
Понимает, что нужно сделать и справляется с поставленной задачей в короткое время.

Делал сайт для салона красоты, просто и функционально.

Анастасия Виричева

Владимир

Очень много времени мучались с сайтом на OpenCart. «Специалисты» не могли нормально разобраться в проблеме, возникавшей при выполнении элементарной задачи.

Денис сделал это в два счета, также расписал подробно, в чем была проблема и как она решена. На 200% доволен. Даже не хочется его рекомендовать, потому что будет постоянно занят))

Владимир

Ксения Петровская

Денис оперативно ответил и помог решить проблему, которую я даже описать нормально не могла)) Мы сами что-то накрутили с корпоративной почтой — письма то уходили, то нет, в общем всё сломали.

Денис всё починил, теперь у нас нормальная почта, домен работает, письма приходят и уходят. Цена как заявлена — оплатили по факту проверки. Спасибо большое!

Ксения Петровская

Александр Кривуля

Заказал у Дениса доработать сайт на WordPress. При этом трудно себе представлял, что сам хочу. Благодаря профессионализму Дениса и его умению всё грамотно и просто объяснять, предлагать разные варианты решений — цель была достигнута.

Умение общаться доходчиво и терпеливо с клиентами — огромный плюс. Я очень доволен. Однозначно рекомендую!

Александр Кривуля

Кондитер мания

Прекрасный специалист, ответил и устранил ошибку на сайте за пару часов, сохранила контакт, будем по необходимости обращаться. Рекомендую!

Кондитер мания

Бесплатная настройка хостинга и домена

Регистрация хостинга на 1 месяц и домена .ru/.рф на 1 год входит в стоимость разработки сайта.

Подробнее