На WordPress страницы фильтров часто появляются сами: архивы с параметрами, сортировки, фасетная навигация, результаты фильтрации по таксономиям. Для пользователя это удобно, а для поисковика — источник дублей, мусорных URL и размывания веса. Проблема в том, что закрывать нужно не всё подряд, а только те варианты, которые не несут самостоятельной ценности.
Ниже — практический сценарий: как диагностировать фильтры, выбрать способ закрытия и проверить, что сайт не потерял полезную индексацию.
Когда фильтры становятся проблемой
Типичный симптом — в индексе появляются десятки или сотни URL с параметрами вроде ?color=red, ?sort=price, ?brand=... или комбинациями вида /catalog/?size=m&color=black. Если эти страницы не дают уникального контента, поисковик начинает тратить обход на однотипные варианты.
Проверять стоит не только индекс, но и логи поведения сайта:
- в Search Console растёт число страниц с параметрами;
- в выдаче видны URL с сортировками и фильтрами вместо канонических;
- на сайте появляются дубли title и description;
- одна и та же категория доступна по нескольким адресам.
Что считать нормой, а что — лишним
Если фильтр создаёт полноценную посадочную страницу с уникальным спросом, текстом, метаданными и стабильным URL, её можно оставить для индексации. Но если это просто техническая комбинация параметров, которая меняет только выдачу товаров или записей, её лучше закрыть от индексации и, при необходимости, от обхода.
Диагностика: где именно рождаются дубли
Сначала нужно понять, откуда идут лишние адреса: из темы, плагина фильтрации, ручной разметки или настроек ЧПУ. Самый быстрый путь — посмотреть реальные URL в Search Console и пройтись по сайту с включёнными параметрами.
Полезно проверить:
- архивы таксономий;
- страницы поиска по сайту;
- сортировки и фильтры в URL;
- пагинацию внутри фильтров;
- дубли с
www/non-www, со слешем и без него.
Если на сайте уже есть отдельные статьи про пагинацию и внутренний поиск, не смешивайте их с фильтрами: у каждого типа дублей свой способ обработки. Здесь речь именно о страницах, которые возникают из параметров фильтрации.
Как закрыть страницы фильтров: рабочие варианты
Есть три практических подхода. Выбор зависит от того, как устроен сайт и насколько глубоко фильтры встроены в шаблон.
| Способ | Когда подходит | Плюсы | Минусы |
|---|---|---|---|
| meta robots noindex | Нужно убрать страницу из индекса, но оставить доступной для пользователя | Просто внедрить, не ломает навигацию | Страница всё ещё может обходиться роботом |
| canonical на основную страницу | Фильтр не должен иметь самостоятельного веса | Помогает склеить сигналы | Не всегда достаточно без noindex |
| запрет в robots.txt | Параметр создаёт массовый мусор и не нужен в обходе | Снижает нагрузку на обход | Не гарантирует удаление из индекса, если URL уже известен |
Вариант 1: noindex для параметров фильтра
Если фильтры генерируются через GET-параметры, можно отдать для таких страниц мета-тег noindex,follow. Это самый безопасный вариант, когда вы хотите сохранить переходы по сайту, но убрать мусорные адреса из индекса.
<?php
add_action('wp_head', function () {
if (is_admin()) {
return;
}
$filter_params = array('color', 'size', 'brand', 'sort');
foreach ($filter_params as $param) {
if (isset($_GET[$param]) && $_GET[$param] !== '') {
echo '<meta name="robots" content="noindex,follow" />' . "\n";
break;
}
}
});Этот пример не привязан к конкретному плагину и работает на уровне темы или небольшого mu-plugin. Но перед внедрением проверьте, какие именно параметры используются у вас: список должен совпадать с реальными URL.
Вариант 2: canonical на базовую страницу
Если фильтр не должен иметь отдельной поисковой ценности, canonical помогает указать основную версию страницы. Это особенно полезно, когда фильтр меняет только сортировку или порядок вывода.
<?php
add_filter('wpseo_canonical', function ($canonical) {
if (isset($_GET['sort']) || isset($_GET['brand']) || isset($_GET['color'])) {
return get_permalink(get_queried_object_id());
}
return $canonical;
});Этот пример рассчитан на сайты, где уже используется Yoast SEO. Если у вас другой SEO-плагин, логика та же: нужно вернуть канонический URL без параметров. Но canonical не заменяет noindex, если фильтр генерирует много мусорных комбинаций.
Вариант 3: запрет обхода в robots.txt
Если фильтры создают огромный объём технических URL, можно дополнительно ограничить обход параметров. Это не универсальное решение, но для некоторых сайтов помогает снизить нагрузку.
User-agent: *
Disallow: /*?sort=
Disallow: /*?color=
Disallow: /*?size=
Disallow: /*?brand=Здесь важно не переусердствовать. Если закрыть слишком широкий шаблон, можно случайно заблокировать полезные страницы. Robots.txt — это инструмент для управления обходом, а не для тонкой SEO-логики.
Пошаговое решение без лишнего риска
- Соберите список параметров, которые реально создают дубли.
- Отделите полезные посадочные страницы от технических комбинаций.
- Добавьте
noindex,followдля мусорных фильтров. - Поставьте canonical на базовую страницу там, где это логично.
- При необходимости ограничьте обход в
robots.txt. - Проверьте, не ломается ли внутренняя перелинковка и пагинация.
Если фильтры генерируются плагином, лучше искать настройки в самом плагине. Многие решения для фасетной навигации умеют задавать canonical, noindex или исключать параметры из индексации без правок темы. Если же плагин этого не умеет, тогда уже имеет смысл добавлять код в дочернюю тему или mu-plugin.
Как проверить, что решение сработало
Проверка нужна не только в браузере, но и в поисковых инструментах. После внедрения откройте несколько URL с параметрами и убедитесь, что:
- в исходном коде есть
meta robots noindex,followдля нужных страниц; - canonical ведёт на чистый URL без параметров;
- страницы с фильтрами не получают отдельные title и description, если это не задумано;
- в Search Console уменьшается число обнаруженных параметризованных URL;
- внутренние ссылки продолжают работать и не ведут в тупик.
Для быстрой проверки можно открыть страницу и посмотреть исходный код через браузер или командой:
curl -I "https://example.com/catalog/?color=red"
curl -s "https://example.com/catalog/?color=red" | grep -i "robots\|canonical"Если сервер отдаёт редирект на чистый URL, это тоже допустимо, но только если фильтр не нужен пользователю как отдельная страница. В противном случае редирект может ухудшить UX.
Частые ошибки и как их исправить
Закрывают все параметры подряд
Ошибка встречается часто: под noindex попадает не только мусор, но и полезные страницы. Исправление простое — сначала составьте список параметров, а потом тестируйте на выборке URL.
Ставят только robots.txt и считают задачу решённой
Если URL уже известен поисковику, один robots.txt не гарантирует исчезновение из индекса. Лучше сочетать noindex и canonical, а robots использовать как дополнительный слой.
Путают фильтры с посадочными страницами
Иногда фильтр по бренду или категории на самом деле является коммерчески важной страницей. Такие URL нельзя бездумно закрывать. Для них нужен отдельный контент, стабильный адрес и понятная внутренняя ссылка.
Не проверяют шаблон темы
Бывает, что SEO-плагин настроен правильно, но тема выводит собственный canonical или дублирует мета-теги. Тогда в исходнике появляются конфликтующие сигналы. Исправление — убрать дублирующий код из темы и оставить один источник метаданных.
Безопасность и производительность
Чем больше параметров фильтрации, тем выше шанс, что сайт будет генерировать лишние запросы к базе. Это особенно заметно на больших каталогах и архивных сайтах. Если фильтры тяжёлые, проверьте кэширование страниц и не отдавайте уникальный HTML для каждого малозначимого параметра без необходимости.
Если вы вносите правки кодом, лучше вынести их в отдельный mu-plugin, а не править ядро темы. Так обновления не сотрут настройки. И обязательно тестируйте на staging-копии: фильтры легко ломают каноникал, хлебные крошки и цепочки пагинации.
Для сайтов, где нужно одновременно чистить дубли, настраивать canonical и убирать лишние технические страницы, иногда удобнее использовать набор инструментов вроде Clearfy Pro: он закрывает часть рутинных SEO-задач без ручного кода. Но даже в этом случае логику фильтров всё равно нужно проверять вручную, потому что универсальной настройки для всех шаблонов не существует.
Что должно получиться в итоге
После настройки у поисковика остаются только те страницы фильтров, которые действительно полезны. Технические комбинации перестают плодить дубли, canonical указывает на основную версию, а обход сайта становится чище. Самое важное — не пытаться закрыть всё одним способом: для фильтров обычно работает связка из диагностики, noindex и аккуратного canonical.