Если в Search Console всплывают дубли, а в индексе оказываются архивы, страницы с параметрами и служебные URL, проблема обычно не в одном теге noindex. В WordPress дубли появляются из-за структуры темы, архивов таксономий, пагинации, сортировок, пагинации комментариев и технических страниц. Ниже — рабочая схема, как найти источник и закрыть именно то, что мешает индексации.
Какие дубли в WordPress встречаются чаще всего
На практике чаще всего индексируются не те URL, которые вы считаете основными. Это могут быть:
- архивы тегов, авторов и дат, если они не несут самостоятельной ценности;
- страницы пагинации вида
/page/2/; - URL с параметрами сортировки, фильтрации или UTM;
- страницы вложений медиафайлов;
- служебные страницы поиска и результаты внутреннего поиска;
- дубли записей через разные таксономии или шаблоны.
Если сайт небольшой, часть этих URL можно оставить в индексе. Но когда контент уже разрастается, поисковик начинает тратить обход на мусорные страницы, а не на важные.
Диагностика: что именно попало в индекс
Сначала не правьте код вслепую. Проверьте, какие типы страниц реально индексируются. Для этого удобно смотреть:
- отчёт Страницы в Google Search Console;
- поиск по оператору
site:example.comс типовыми шаблонами URL; - логи обхода, если есть доступ к серверу;
- исходный код подозрительных страниц: есть ли
meta robots, canonical и корректные ли они.
Особенно полезно открыть HTML нескольких дублей и сравнить:
- canonical указывает на основную страницу или на сам дубль;
- страница отдаёт
200 OKвместоnoindexили404; - в sitemap не попадают лишние архивы и медиа-страницы.
Если canonical у дубля ведёт на сам дубль, поисковик часто воспринимает его как самостоятельную страницу. Это типичная ошибка темы или SEO-плагина.
Пошаговое решение: что закрывать и чем
1. Уберите из индекса архивы, которые не нужны пользователю
Если теги, архивы автора или даты не дают трафик и не помогают навигации, их лучше закрыть от индексации. Самый безопасный способ — через SEO-плагин или фильтры темы, а не через массовый robots.txt. Robots.txt не удаляет URL из индекса, если они уже известны поисковику.
Для точечной настройки можно использовать фильтр wp_robots в теме или мини-плагине:
<?php
add_filter( 'wp_robots', function( array $robots ) {
if ( is_tag() || is_author() || is_date() ) {
$robots['noindex'] = true;
$robots['nofollow'] = true;
}
return $robots;
} );Этот вариант подходит, если вы контролируете шаблоны и понимаете, какие архивы должны оставаться открытыми. Если сайт уже использует SEO-плагин, проверьте, не конфликтует ли он с ручной логикой.
2. Закройте страницы пагинации, если они не несут ценности
Пагинация часто индексируется как отдельные страницы, хотя по смыслу это продолжение одного архива. Если на сайте нет задачи продвигать вторые и третьи страницы выдачи, их можно закрыть от индексации. Но не путайте это с удалением из навигации: пользователю пагинация нужна.
Пример для wp_robots:
<?php
add_filter( 'wp_robots', function( array $robots ) {
if ( is_paged() ) {
$robots['noindex'] = true;
}
return $robots;
} );Если у вас важны крупные архивы с трафиком, не закрывайте пагинацию автоматически. Сначала проверьте, есть ли у страниц 2+ поисковый спрос и входящий трафик.
3. Отдельно обработайте страницы вложений
Медиа-страницы WordPress — частый источник дублей. Пользователь открывает изображение, а поисковик получает тонкую страницу без полезного контента. В большинстве проектов лучше редиректить вложения на сам файл или на родительскую запись.
Один из рабочих вариантов — перенаправлять attachment URL на родительскую запись, если она есть:
<?php
add_action( 'template_redirect', function() {
if ( is_attachment() ) {
$parent = wp_get_post_parent_id( get_queried_object_id() );
if ( $parent ) {
wp_safe_redirect( get_permalink( $parent ), 301 );
exit;
}
}
} );Если родительской записи нет, нужно отдельно решить, что делать с такими страницами: редирект, noindex или 404/410 в зависимости от структуры сайта.
4. Проверьте canonical на страницах с параметрами
Сортировки, фильтры, UTM и внутренние параметры часто создают десятки дублей одного и того же контента. Для таких URL canonical должен указывать на чистую основную страницу без параметров. Если этого не происходит, ищите проблему в теме, плагине фильтрации или в кастомном шаблоне.
Для проверки откройте исходный код и найдите строку вида:
<link rel="canonical" href="https://example.com/page/" />Если canonical содержит параметры, это почти всегда повод исправлять шаблон генерации ссылок или настройки плагина.
Плагин, код или настройки темы: что выбрать
| Подход | Когда подходит | Минус |
|---|---|---|
| SEO-плагин | Нужно быстро закрыть архивы, теги, авторов и sitemap без правки кода | Может конфликтовать с темой и другими SEO-расширениями |
| Код в теме или мини-плагине | Нужна точечная логика для конкретных шаблонов | Требует контроля при обновлениях |
| Комбинация настроек и кода | На сайте есть и стандартные архивы, и нестандартные фильтры | Нужно следить, чтобы не было двойной логики |
Если задача типовая, удобнее закрывать дубли через SEO-плагин. Если проблема в кастомной теме или в нестандартных URL, без кода не обойтись.
Проверка результата после внедрения
После изменений не ограничивайтесь визуальной проверкой. Нужно убедиться, что поисковик видит именно то, что вы задумали.
- Откройте несколько закрытых URL и проверьте наличие
noindexв исходнике. - Убедитесь, что canonical на дублях ведёт на основную страницу.
- Проверьте, что закрытые страницы не попали в sitemap.
- В Search Console отправьте URL на повторную проверку через инспекцию страницы.
- Через несколько дней сравните отчёт по индексированию и количество дублей в поиске.
Если страница закрыта от индексации, но продолжает появляться в выдаче, обычно причина одна из трёх: поисковик ещё не переобошёл URL, canonical настроен неверно или страница доступна по нескольким адресам без редиректа.
Частые ошибки и как их исправить
Закрыли страницы в robots.txt и ждёте удаления из индекса
Это частая ошибка. Robots.txt мешает обходу, но не гарантирует удаление уже известных URL. Если страница уже в индексе, чаще нужен noindex, canonical или редирект.
Ставят noindex на всё подряд
Иногда закрывают и важные категории, и полезные архивы, и страницы пагинации, не проверив трафик. В результате сайт теряет видимость. Перед массовым закрытием пройдитесь по отчётам Search Console и аналитике.
Оставляют дубли с параметрами без canonical
Если фильтр генерирует десятки URL, а canonical не нормализован, поисковик может выбрать не ту версию страницы. Исправляйте источник генерации ссылок, а не только мета-теги.
Редиректят всё на главную
Это плохая практика для вложений и служебных страниц. Пользователь и поисковик должны попадать на релевантную страницу, а не на общий вход сайта.
Что проверить на стороне безопасности и производительности
Когда вы добавляете код для wp_robots или редиректов, держите его в мини-плагине или в дочерней теме, а не в файле, который часто переписывается. Это снижает риск потерять настройки при обновлении.
Для крупных сайтов полезно:
- не плодить лишние запросы в шаблонах архивов;
- не генерировать canonical вручную в нескольких местах;
- не использовать тяжёлые плагины для задач, которые решаются фильтром WordPress;
- проверять, что редиректы не создают цепочки.
Если нужен более прикладной инструмент для чистки дублей и технических настроек SEO, можно посмотреть Clearfy Pro. Но даже с плагином важно понимать, какие URL вы закрываете и зачем: автоматическая настройка не заменяет проверку структуры сайта.
Рабочий критерий простой: после внедрения в индексе остаются только те страницы, которые реально нужны пользователю и могут приносить трафик. Всё остальное должно либо редиректиться, либо получать корректный noindex, либо исчезать из sitemap и внутренних ссылок.