wptavern.ru wordpress wptavern.ru

Как закрыть дубли страниц в WordPress через robots.txt и noindex без потери важных URL

Дубли в WordPress обычно появляются не из-за одной ошибки, а из-за набора мелких настроек: архивы тегов, страницы автора, пагинация, служебные URL, параметры сортировки, версии с ?replytocom и похожие адреса. На небольшом сайте это может долго не мешать, но на живом проекте поисковик начинает тратить обход на мусор, а в индексе появляются страницы, которые не должны конкурировать с основными.

Самая частая ошибка — пытаться решить всё только через robots.txt. Это не закрывает URL от индексации, если на них уже есть ссылки или они известны поисковику. Вторая крайность — ставить noindex на всё подряд и случайно убрать из поиска полезные страницы. Ниже — рабочая схема, как разделить задачи: что закрывать от обхода, что от индексации, а что оставить как есть.

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

Сначала не трогайте настройки. Посмотрите, какие URL реально попадают в поиск и в отчёты краулинга. Если у вас есть доступ к Google Search Console, откройте отчёт по страницам и проверьте, не растут ли там:

  • архивы тегов и рубрик с почти одинаковым содержимым;
  • страницы автора на сайте, где автор один;
  • страницы пагинации архивов;
  • URL с параметрами, например ?replytocom=, ?utm_, ?orderby=;
  • страницы поиска по сайту вида /search/ или ?s=;
  • медиавложения, если они открываются как отдельные страницы.

Если у вас установлен краулер вроде Screaming Frog, проверьте, сколько страниц отдают одинаковые title, description и почти одинаковый контент. Это хороший признак того, что поисковик видит не один документ, а набор клонов.

Что считать нормой, а что — проблемой

Не все архивы нужно закрывать. Если рубрика реально является навигационной страницей и у неё есть уникальный текст, её можно оставить в индексе. Если же рубрика или тег просто дублируют записи, лучше убрать их из поиска. То же самое с пагинацией: сама по себе она не вредна, но часто не несёт самостоятельной ценности и создаёт лишние URL.

Что закрывать через robots.txt, а что через noindex

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

ПодходКогда использоватьМинус
robots.txtТехнические URL, которые не должны обходитьсяНе убирает страницу из индекса сам по себе
noindexСтраница должна открываться, но не участвовать в поискеНужен доступ поисковика к странице, чтобы увидеть мета-тег
canonicalПохожие версии одной страницыЭто подсказка, а не жёсткий запрет

Пошаговая настройка без лишнего риска

1. Сначала уберите мусорные URL из обхода

Если у вас есть очевидно технические адреса, их можно закрыть в robots.txt. Пример для типового сайта:

User-agent: *
Disallow: /wp-admin/
Allow: /wp-admin/admin-ajax.php
Disallow: /wp-login.php
Disallow: /*?replytocom=
Disallow: /*?s=
Disallow: /*?orderby=

Этот пример не универсален. Например, если поиск по сайту нужен для пользователей и вы хотите, чтобы поисковик индексировал результаты поиска, строку с ?s= лучше не добавлять. Для большинства проектов страницы поиска всё равно не нужны в индексе, но решение должно быть осознанным.

2. Закройте от индексации архивы, которые не несут ценности

Если вы не хотите, чтобы индексировали теги, архивы автора или служебные таксономии, делайте это через noindex. В WordPress удобнее всего управлять этим через SEO-плагин, который умеет ставить мета-тег и canonical. Если нужен код, можно добавить фильтр в тему или mu-plugin.

<?php
add_action('wp_head', function () {
    if (is_tag() || is_author() || is_search()) {
        echo '<meta name="robots" content="noindex,follow" />' . "\n";
    }
}, 1);

Этот вариант рабочий, но его лучше использовать только если вы понимаете, как у вас устроены SEO-настройки в теме и плагинах. Если SEO-плагин уже выводит robots meta, не дублируйте тег вручную.

3. Проверьте canonical на похожих страницах

Для дублей важен не только noindex. Если у страницы есть несколько версий, canonical должен указывать на основную. Это особенно полезно для пагинации, сортировок и страниц с параметрами. В WordPress canonical обычно генерируется автоматически, но после кастомизации темы или SEO-плагина его стоит проверить вручную.

Если canonical указывает на саму страницу, а не на основную версию, поисковик может продолжать считать URL самостоятельным документом. Это не всегда ошибка, но для параметров и служебных страниц чаще всего лучше указывать канонический адрес без параметров.

Пример: убрать страницы тегов из индекса, но оставить их доступными

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

Вариант через фильтр для SEO-плагина зависит от конкретного плагина, поэтому безопаснее использовать готовую настройку в интерфейсе. Если же у вас кастомная тема и вы точно знаете, что делаете, можно добавить условный вывод мета-тега только для нужных архивов:

<?php
add_action('wp_head', function () {
    if (is_tag()) {
        echo '<meta name="robots" content="noindex,follow" />' . "\n";
    }
}, 1);

После этого проверьте исходный код страницы тега и убедитесь, что там нет второго robots meta от SEO-плагина с конфликтующим значением.

Как проверить, что решение сработало

Проверка нужна не только в браузере. Сначала откройте проблемный URL и посмотрите исходный код страницы. Дальше проверьте HTTP-ответ и индексацию.

  • в исходном коде есть нужный meta robots;
  • canonical указывает на правильный URL;
  • страница не закрыта случайно от обхода, если вы хотите, чтобы поисковик увидел noindex;
  • в robots.txt нет слишком широкого правила, которое зацепило важные разделы;
  • в Search Console после переобхода статус страницы меняется на Excluded by 'noindex' или аналогичный, если это ожидаемо.

Для быстрой локальной проверки можно использовать curl:

curl -I https://example.com/tag/sample/

И посмотреть, не отдает ли сервер редирект, 404 или неожиданные заголовки. Если вы проверяете страницу с параметрами, убедитесь, что canonical не меняется на случайный адрес.

Частые ошибки и почему они возникают

Закрыли URL в robots.txt и ждут, что он исчезнет из поиска

Это самая распространенная ошибка. Если страница уже известна поисковику, Disallow не заставит её исчезнуть. Для удаления из индекса нужен noindex или корректный canonical, а иногда и ручная переобходка после изменения настроек.

Ставят noindex на всё подряд

Так часто делают после установки SEO-плагина, когда в настройках отключают архивы без разбора. В итоге из поиска пропадают полезные рубрики, страницы авторов с реальной ценностью или навигационные разделы. Перед массовым noindex проверьте, какие архивы реально дают трафик и нужны ли они пользователю.

Дублируют robots meta из темы и плагина

Если тема и SEO-плагин оба выводят meta name="robots", поисковик может увидеть конфликтующие директивы. В лучшем случае он возьмёт более осторожную, в худшем — поведение станет непредсказуемым. Оставьте один источник управления мета-тегами.

Закрывают параметры URL, которые нужны для работы сайта

Иногда в robots.txt по привычке добавляют слишком широкие правила вроде Disallow: /*?. Это может сломать полезные фильтры, сортировки или страницы, на которые завязана внутренняя навигация. Сначала проверьте, какие параметры реально используются на сайте, и только потом режьте лишнее.

Практические советы по безопасности и производительности

Чем меньше поисковик тратит времени на мусорные URL, тем лучше он обходит важные страницы. Но не стоит пытаться решить всё только блокировками. Если дубли появляются из-за темы или плагина, лучше исправить источник:

  • убрать лишние архивы и таксономии в настройках темы;
  • отключить генерацию страниц вложений, если они не нужны;
  • проверить, не создаёт ли плагин отдельные URL для фильтров и сортировок;
  • не использовать несколько SEO-плагинов одновременно;
  • не закрывать CSS, JS и изображения без причины — это может ухудшить рендеринг и диагностику.

Если нужен более системный подход к чистке дублей и технических страниц, в экосистеме WPShop есть Clearfy Pro, который закрывает часть типовых задач по SEO и чистке сайта. Но даже с таким плагином логику индексации всё равно нужно проверять руками: автоматические настройки не заменяют понимание того, какие URL должны оставаться в поиске.

Мини-чек-лист перед публикацией изменений

  • Проверил, какие URL реально дублируются.
  • Разделил технические URL и страницы, которые просто не нужны в индексе.
  • Не закрыл важные разделы через robots.txt.
  • Убедился, что noindex не конфликтует с SEO-плагином.
  • Проверил canonical на страницах с параметрами и архивами.
  • После изменений открыл страницу в браузере и посмотрел исходный код.
  • Отправил важные URL на переобход, если они уже были в индексе.

Если после настройки дубли всё равно остаются в выдаче, проблема обычно не в одном теге, а в архитектуре URL. Тогда нужно смотреть на шаблоны архива, генерацию параметров и внутренние ссылки, которые продолжают вести поисковик к лишним страницам.

×
-15%
на премиум-тему
Bono

Создай магазин мечты
на WordPress!

↓ ↓ ↓ ↓ ↓
Купить со скидкой »