Как закрыть страницы опросов WordPress от индексации и убрать дубли

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

Задача здесь не в том, чтобы «запретить всё подряд», а в том, чтобы оставить в индексе только полезные страницы: сам опрос, если он нужен в поиске, или вообще ничего, если это внутренний интерактивный блок. Остальное — архивы, результаты, страницы пагинации, параметры сортировки и служебные URL — лучше закрыть аккуратно.

Когда проблема действительно есть

Сначала проверьте, что именно индексируется. Частая ошибка — закрывать URL наугад, не понимая, откуда берутся дубли. Для опросов типичны такие сценарии:

  • один и тот же опрос доступен по разным адресам с параметрами ?result=1, ?tab=results, ?vote=1;
  • есть архивы опросов, страницы рубрик или тегов, которые дублируют заголовки и краткие описания;
  • страницы результатов отличаются только числом голосов, но содержат почти одинаковый контент;
  • в sitemap попадают URL, которые не должны индексироваться;
  • внутренний поиск или фильтры создают бесконечные комбинации URL.

Что смотреть в первую очередь

Откройте в Google Search Console отчёт по страницам и проверьте, какие URL уже попали в индекс. Затем сравните:

  • канонический URL страницы опроса;
  • служебные URL с параметрами;
  • архивы и таксономии, если они есть;
  • страницы, которые отдают одинаковый title и description.

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

Какой подход выбрать: плагин, код или оба варианта

Для большинства сайтов лучше комбинировать настройки SEO-плагина и точечный код. Плагин удобен для массовых правил, код — для нестандартных URL и страниц результатов.

ПодходКогда подходитМинус
SEO-плагинНужно закрыть архивы, таксономии, отдельные типы записейНе всегда умеет работать с параметрами и служебными страницами опросов
Код в теме или мини-плагинеЕсть конкретные URL, которые нужно пометить noindex или исключить из sitemapНужно аккуратно тестировать после обновлений
КомбинацияЕсть и архивы, и параметры, и отдельные результатыНужно следить, чтобы правила не конфликтовали

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

Пошаговое решение

1. Закройте архивы и служебные страницы в SEO-плагине

Если опросы у вас оформлены как отдельный тип записей или как таксономия, в настройках SEO-плагина отключите индексацию архивов, если они не несут самостоятельной ценности. Для страниц результатов и фильтров лучше использовать noindex, а не просто надеяться на robots.txt.

Важно: robots.txt не гарантирует удаление URL из индекса. Если страница уже известна поисковику, он может продолжать показывать её без содержимого. Для дублей это слабая защита.

2. Добавьте noindex для параметров и результатов

Если результаты опроса открываются через query string, можно отдать мета-тег noindex, follow только на таких страницах. Ниже пример для wp_head:

<?php
add_action('wp_head', function () {
    if (is_admin()) {
        return;
    }

    $has_poll_result = isset($_GET['result']) || isset($_GET['tab']) && $_GET['tab'] === 'results';

    if ($has_poll_result) {
        echo '<meta name="robots" content="noindex,follow" />' . "\n";
    }
}, 1);

Этот вариант подходит, если у вас есть понятные служебные параметры. Не расширяйте условие до всех GET-параметров подряд: можно случайно закрыть полезные страницы с сортировкой, пагинацией или UTM-метками.

3. Задайте канонический URL для основной страницы опроса

Если одна и та же страница открывается с параметрами, поисковику нужно явно показать основную версию. Для этого можно переопределить canonical:

<?php
add_filter('get_canonical_url', function ($canonical, $post) {
    if (is_admin() || ! $post instanceof WP_Post) {
        return $canonical;
    }

    if (isset($_GET['result']) || (isset($_GET['tab']) && $_GET['tab'] === 'results')) {
        return get_permalink($post);
    }

    return $canonical;
}, 10, 2);

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

4. Исключите служебные URL из sitemap

Если ваш SEO-плагин добавляет в sitemap страницы результатов или архивы опросов, их нужно убрать. Логика зависит от плагина, но принцип один: в sitemap должны попадать только те URL, которые вы готовы видеть в поиске.

Для кастомного типа записей можно использовать фильтр, если sitemap формируется через WordPress core. Пример для исключения определённого post type из XML sitemap:

<?php
add_filter('wp_sitemaps_post_types', function ($post_types) {
    unset($post_types['poll_result']);
    return $post_types;
});

Если у вас не отдельный post type, а обычные страницы с параметрами, sitemap нужно чистить на уровне SEO-плагина или не включать такие URL в генерацию вообще.

Проверка результата после внедрения

После правок не ограничивайтесь просмотром исходника страницы. Проверьте цепочку целиком:

  • открывается ли основная страница опроса без параметров;
  • есть ли на служебной странице <meta name="robots" content="noindex,follow" />;
  • не изменился ли canonical на неправильный URL;
  • не попали ли служебные страницы в sitemap;
  • не отдаются ли для них 200 OK, если вы ожидали редирект или 404.

Быстрая проверка через браузер и curl:

curl -I "https://example.com/poll/?result=1"
curl -s "https://example.com/poll/?result=1" | grep -i robots

Если страница должна быть закрыта, но в ответе нет noindex, значит условие в коде не сработало или шаблон страницы обходит wp_head. Если canonical указывает на служебный URL, проверьте, не переопределяет ли его SEO-плагин позже по приоритету.

Частые ошибки и как их исправить

Закрывают всё через robots.txt

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

Ставят noindex на основную страницу опроса

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

Оставляют дубли в sitemap

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

Не учитывают кэш

Если на сайте стоит кэширование страниц, после изменения мета-тегов вы можете видеть старую версию HTML. Очистите кэш плагина, серверный кэш и CDN, если он есть. Иначе проверка будет ложной.

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

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

  • не индексируйте страницы с результатами, если они не несут самостоятельной ценности;
  • не добавляйте в sitemap URL с параметрами;
  • если результаты нужны только авторизованным пользователям, ограничьте доступ по роли, а не только мета-тегом;
  • проверяйте, не создаёт ли тема или плагин отдельные архивы для опросов без необходимости;
  • после обновления SEO-плагина повторно проверьте canonical и robots meta.

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

Хороший ориентир простой: в индексе остаётся только та страница, которую вы готовы показать пользователю из поиска. Всё остальное либо закрыто noindex, либо исключено из sitemap, либо вообще не создаётся как отдельный URL.

Как закрыть от индексации страницы поискового фильтра в WordPress
09.09.2026
Как закрыть от индексации страницы пагинации архива в WordPress
12.09.2026