Фильтр «красные кроссовки» открывает отдельный URL, но SEO-плагин отправляет его canonical на общий каталог. Такое поведение нельзя принимать только потому, что тег присутствует: сначала выясните, нужна ли фильтру самостоятельная поисковая страница. Проверка связывает намерение пользователя, содержимое выдачи товаров и технический адрес.
Разделите сортировку и полезную посадочную страницу
Сортировка обычно меняет порядок того же набора. Фильтр может менять сам набор и отвечать отдельной потребности. Решение о самостоятельной посадочной странице принимайте до настройки canonical; уникальный заголовок сам по себе ещё не доказывает самостоятельность страницы.
Canonical сообщает Google предпочтительный URL; выбор поисковой системы может отличаться от указанного. Официальная документация.
Предположим, магазин продаёт обувь. Страница /shoes/ показывает весь раздел, ?sort=price переставляет товары, а /shoes/red/ отбирает красные модели. Для сортировки логично искать основную версию того же содержимого. Красный фильтр сначала оцените как самостоятельный ответ: есть ли достаточный ассортимент, устойчивый URL, описание выбора и соответствующий запрос. Решение фиксируют редактор и владелец каталога. Разработчик после этого реализует выбранную политику. Автоматическая канонизация всех фильтров на родителя способна убрать полезные посадочные из заявленного состава сайта.
Матрица фильтров до настройки SEO-плагина
Учебные сценарии в таблице задают ожидаемое поведение; фактические ответы своего сайта заносите отдельно.
| Сценарий | Отличие | Решение | Проверка |
|---|---|---|---|
| Категория /shoes/ | Все кроссовки | Основная категория | Self-canonical |
| Сортировка ?sort=price | Те же товары иначе | Технический вариант | Canonical категории |
| Фильтр /shoes/red/ | Только красные | Одобренная посадочная | Self-canonical |
| Фильтр без товаров | Пустой набор | Отдельное решение | Не копировать правило вслепую |
Добавьте в матрицу комбинацию brand=a&color=red и изменение цены. У этих состояний разный срок жизни: бренд и цвет могут оставаться постоянными, ценовой диапазон посетитель выбирает произвольно. Для одобренного фильтра определите один адрес, остальные способы открыть то же состояние согласуйте с ним. Например, переход из меню на /shoes/red/ и выбор красного в интерфейсе должны приводить к сопоставимому набору. Сравнение только title пропустит ситуацию, когда заголовок красный, а сервер возвращает весь каталог.
Сравните серверный canonical и состояние после клика
Сравните набор товаров, текст, title, H1 и ссылки у категории, сортировки и выбранного фильтра. Получите исходный head, затем DOM после загрузки; отдельно проверьте статус назначения canonical и отсутствие блокировки обхода.
В браузерной консоли найдите все элементы link[rel="canonical"], а не только первый. В исходном ответе запишите href, затем выберите другой цвет и наблюдайте DOM. Если приложение меняет список товаров без полноценной навигации, выясните, какой URL окажется при прямом открытии и обновлении. Неподвижный canonical не всегда ошибка: сортировка может намеренно оставаться вариантом категории. Ошибка возникает, когда фактическое поведение расходится с принятой политикой самостоятельного фильтра. Проверьте также Link в HTTP-заголовках, если сайт использует этот механизм.
Проверьте фильтр вместе с пагинацией
Возьмите одну категорию, одну сортировку и два фильтра: полезный и пустой. До изменения выпишите ожидаемый canonical каждого. После правки сравните именно эти четыре адреса, включая открытие фильтра по прямой ссылке.
Пагинацию проверяйте внутри выбранного фильтра. /shoes/red/?page=2 показывает другую часть красного ассортимента, поэтому её нельзя автоматически считать копией первой страницы. Откройте обе части напрямую, сравните товары и переходы next/previous. Убедитесь, что page=2 не сбрасывает цвет и canonical не возвращает посетителя к общему каталогу. Для меняющегося ассортимента выберите контрольные товары с известным распределением по страницам. После теста сохраните именно набор и дату, поскольку изменение наличия может сдвинуть карточки между частями.
Исправьте генератор адресов, ссылок и sitemap
Разведите правила для сортировок и одобренных SEO-фильтров. Генератор ссылок должен использовать выбранный адрес, sitemap — включать только нужные самостоятельные страницы, а canonical — не меняться после выполнения клиентского кода.
Проверьте три генератора: URL интерфейса фильтра, canonical в шаблоне и записи sitemap. Если их обслуживают разные плагины, исправление одной настройки может оставить два противоречащих адреса. Самостоятельные фильтры добавляйте в навигацию по принятому редакционному решению. Служебные перестановки сортировки не нужно размножать в карте. При переводе старого query-адреса на красивый путь сначала подтвердите соответствие состояния, затем проверьте редирект. Приёмка должна включать открытие старого адреса, нового адреса и выбор фильтра через интерфейс.
Как принять правило и не открыть все комбинации
Не делайте все комбинации фильтров индексируемыми автоматически. Пустые и бессмысленные пересечения требуют собственного решения; canonical на родителя не превращает отличающиеся страницы в доказанные дубли.
Пустые пересечения рассмотрите отдельно: сохранённая полезная подборка без текущих товаров и случайная комбинация трёх несовместимых признаков имеют разный смысл. Не применяйте к ним один SEO-шаблон лишь потому, что обе страницы показывают ноль карточек. Для принятого решения выпишите исключения и владельца их списка. После релиза проверьте, что новые значения фильтров не стали автоматически самостоятельными страницами. Отдельная полезная посадочная должна появляться осознанно, а изменения ассортимента — не ломать её устойчивый адрес и понятное сообщение посетителю.
Проверьте сохранённые ссылки и смену ассортимента
Полезный SEO-фильтр должен переживать обычные изменения каталога. Сохраните его URL, удалите один контрольный товар только в тестовой копии и повторите открытие. Заголовок и выбранный признак остаются понятными, исчезнувшая карточка не превращает весь фильтр в ошибку. Затем проверьте изменение имени значения фильтра: внутреннее техническое обозначение и текст для посетителя могут меняться независимо. Если URL меняется, нужна отдельная карта соответствия. Приёмка canonical поэтому включает данные справочника фильтров, а не только текущий HTML. Для многозначных параметров дополнительно проверьте возврат пользователя по сохранённой ссылке: интерфейс должен восстановить ту комбинацию, которая согласована с назначением адреса. Иначе тег будет формально правильным для состояния, которого посетитель фактически не получил.
Критерии завершения проверки
Самостоятельный фильтр отвечает 200, доступен по обычной ссылке, содержит согласованный self-canonical. Техническая сортировка указывает на выбранную основную версию без потери функциональности.
- Категория /shoes/: Self-canonical. Зафиксируйте фактический результат и адрес проверенного сценария.
- Сортировка ?sort=price: Canonical категории. Зафиксируйте фактический результат и адрес проверенного сценария.
- Фильтр /shoes/red/: Self-canonical. Зафиксируйте фактический результат и адрес проверенного сценария.
- Фильтр без товаров: Не копировать правило вслепую. Зафиксируйте фактический результат и адрес проверенного сценария.
Для смежных вопросов: Конфликт canonical, sitemap, hreflang и редиректов и Параметры URL и SEO: фильтры, UTM-метки и дубли — как не убить индексацию. Отдельные проверки сайта собраны на странице технического аудита reChecker.