На WordPress дубли чаще всего появляются не из-за контента, а из-за архивов: страницы авторов, дат, тегов, пагинации, вложений и служебных URL. На небольшом сайте это незаметно, но на проекте с сотнями записей поисковик начинает обходить лишние страницы, а в индексе остаются слабые или повторяющиеся URL.
Задача здесь не в том, чтобы «закрыть всё подряд», а в том, чтобы оставить в индексе полезные страницы и убрать технический шум. Ниже — рабочая схема: сначала диагностика, потом настройка, затем проверка результата.
Какие архивы WordPress чаще всего дают дубли
Если сайт работает на стандартной структуре WordPress, проверьте в первую очередь такие типы страниц:
- архивы тегов, если теги дублируют рубрики по смыслу;
- архивы авторов, если на сайте один автор или у авторов нет уникальной ценности;
- архивы по датам, если вы не ведёте новостной или хронологический проект;
- страницы вложений с отдельными URL для изображений;
- пагинацию архивов, если она индексируется без контроля;
- служебные страницы поиска и фильтров, если они доступны роботам.
Отдельный случай — когда один и тот же материал доступен по нескольким адресам: через рубрику, тег, архив автора и архив даты. Сам пост обычно должен оставаться в индексе, а вот архивы вокруг него — не всегда.
Диагностика проблемы: что смотреть до изменений
Сначала не трогайте настройки. Проверьте, какие URL уже попали в индекс и какие из них реально нужны. Для этого удобно использовать Google Search Console и обычный поиск по сайту.
Быстрая проверка в Search Console
Откройте отчёт по страницам и посмотрите, есть ли там:
- страницы с пометкой «Просканировано, но не проиндексировано»;
- дубли с каноническим URL, который указывает на другой адрес;
- архивы тегов и авторов, которые не должны конкурировать с основными страницами;
- URL вложений вида
/attachment/или отдельные страницы медиафайлов.
Если в индексе уже есть лишние архивы, просто поставить noindex недостаточно. Нужно ещё убрать внутренние ссылки на них там, где они не нужны, и проверить канонические адреса.
Проверка через robots и исходный код
Откройте проблемную страницу и посмотрите, есть ли в HTML мета-тег robots. Если его нет, WordPress или тема его не выводят. Если там стоит index,follow, а страница вам не нужна в поиске, это прямой кандидат на изменение.
Для быстрой проверки можно использовать команду:
curl -I https://example.com/tag/wordpress/Она не покажет мета-тег robots, но поможет увидеть редиректы, статус-код и цепочку ответа. Если страница отдаёт 200 OK и доступна без ограничений, поисковик тоже сможет её обойти.
Что закрывать, а что оставлять
Здесь важен не шаблонный подход, а логика сайта. Для блога с одной редакцией обычно имеет смысл оставить в индексе записи и, возможно, рубрики. Остальное — по ситуации.
| Вариант | Когда подходит | Компромисс |
|---|---|---|
| Плагин SEO | Нужно быстро закрыть теги, авторов, даты и вложения без кода | Меньше контроля над логикой, зависит от настроек плагина |
| Код в теме или mu-plugin | Нужна точечная настройка под конкретный сайт | Нужно следить за обновлениями и не потерять код при смене темы |
| Редиректы и удаление архивов | Архивы не нужны вообще и уже получили трафик из поиска | Нужно аккуратно перенаправить пользователей и роботов |
Если вы не хотите писать код, проще всего использовать SEO-плагин с настройкой noindex для отдельных типов архивов. Если нужен более точный контроль, лучше сделать это через фильтры WordPress.
Пошаговое решение через код
Ниже пример, который закрывает от индексации архивы тегов, авторов и дат, а также страницы вложений. Код можно положить в functions.php дочерней темы или, что безопаснее, в небольшой mu-plugin.
<?php
add_filter('wp_robots', function (array $robots) {
if (is_tag() || is_author() || is_date() || is_attachment()) {
$robots['noindex'] = true;
$robots['follow'] = true;
}
return $robots;
});Что делает этот код:
- добавляет
noindexтолько на выбранные типы архивов; - не ломает переходы по ссылкам, потому что оставляет
follow; - не влияет на обычные записи и страницы.
Если у вас есть архивы тегов, которые реально полезны пользователю и содержат уникальную навигацию, не закрывайте их автоматически. Лучше оценить каждый тип таксономии отдельно.
Если нужно убрать архивы авторов
На сайтах с одним автором архив автора почти всегда дублирует ленту записей. В таком случае можно не только поставить noindex, но и перенаправить архив автора на главную или страницу «О проекте». Но редирект делайте только если архив не нужен для пользователей.
<?php
add_action('template_redirect', function () {
if (is_author()) {
wp_redirect(home_url('/'), 301);
exit;
}
});Это жёсткий вариант. Он подходит, когда архив автора не несёт смысла и не должен существовать как отдельная страница.
Как закрыть дубли через SEO-плагин
Если сайт уже использует SEO-плагин, сначала проверьте его настройки. В большинстве случаев там можно отключить индексацию архивов тегов, авторов и дат без правки кода. Это удобнее для редактора, но важно не включить лишнее.
Что обычно стоит проверить:
- индексацию тегов;
- индексацию архивов авторов;
- архивы по датам;
- страницы вложений;
- канонические URL для пагинации.
Если плагин умеет задавать noindex для отдельных архивов, этого достаточно в большинстве типовых проектов. Но после изменения всё равно проверьте исходный код страницы: наличие мета-тега ещё не означает, что поисковик уже переобходил URL.
Проверка результата после внедрения
После правки не ограничивайтесь визуальной проверкой. Нужны три шага:
- Откройте проблемный архив в браузере и убедитесь, что в исходном коде есть
noindex. - Проверьте заголовки ответа и статус страницы через
curl -Iили аналогичный инструмент. - Отправьте URL на повторную проверку в Search Console, если страница уже была в индексе.
Для быстрой ручной проверки можно посмотреть фрагмент HTML:
<meta name="robots" content="noindex,follow" />Если вместо этого вы видите index,follow, значит правило не сработало или его перебивает тема/плагин.
Что считать успешным результатом
- архивы, которые вы закрывали, перестали появляться в новых результатах индексации;
- внутренние ссылки на них не создают лишних переходов в отчётах;
- основные записи и рубрики остались доступны и не потеряли видимость;
- в Search Console уменьшается количество ненужных URL в отчётах по страницам.
Частые ошибки и как их исправить
Ошибка 1: закрыли всё через robots.txt. Это не то же самое, что noindex. Если запретить обход, поисковик может не увидеть канонический адрес и не понять, что делать с дублем.
Ошибка 2: поставили noindex на важные рубрики. Иногда рубрики — это основная навигация и посадочные страницы. Их нельзя закрывать только потому, что они похожи на архивы.
Ошибка 3: забыли про страницы вложений. Медиафайлы часто создают отдельные URL, которые не несут ценности. Их лучше либо закрыть, либо редиректить на файл/родительскую запись, в зависимости от структуры сайта.
Ошибка 4: изменили только мета-тег, но оставили внутренние ссылки в меню и блоках. Если на архивы ведут десятки ссылок, поисковик всё равно будет тратить на них ресурсы. Уберите лишние ссылки из шаблонов и виджетов.
Ошибка 5: сделали редирект без проверки трафика. Если архив уже получает переходы, редирект должен вести на близкую по смыслу страницу, а не просто на главную.
Безопасность и производительность: что учесть на живом сайте
Если вы вносите код вручную, не редактируйте основной шаблон темы на боевом сайте. Используйте дочернюю тему или mu-plugin. Так обновление темы не сотрёт изменения.
Ещё один практичный момент: не перегружайте сайт несколькими SEO-плагинами одновременно. Два плагина, которые оба управляют robots и canonical, часто создают конфликт. В итоге на странице может появиться дублирующийся мета-тег или неверный канонический URL.
Если нужен набор точечных SEO- и технических настроек без лишнего мусора, иногда удобнее использовать один инструмент для чистки дублей и управления мета-данными. Например, Clearfy Pro может быть уместен именно как набор практических SEO- и технических переключателей, если вам не нужен тяжёлый комбайн. Ссылка: Clearfy Pro.
Мини-чек-лист перед публикацией изменений
- Проверили, какие архивы реально нужны пользователю.
- Убедились, что важные рубрики не закрыты случайно.
- Добавили
noindexтолько на выбранные типы страниц. - Проверили исходный код и статус ответа.
- Обновили URL в Search Console на повторную проверку.
- Убрали лишние внутренние ссылки на закрытые архивы.
Если после правки в индексе всё ещё остаются старые URL, это нормально: поисковику нужно время на повторный обход. Важно, чтобы новые версии страниц уже отдавали правильные директивы и не создавали новых дублей.